зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1454923: Add debugging support for anyref return values in wasm; r=lth
--HG-- extra : rebase_source : 7da83800e74d72ad1f0ef312f50a4b2649a52c65 extra : amend_source : 0eae3689ff025bb43184e662f27aac7fefddeaa7
This commit is contained in:
Родитель
76fe94ac99
Коммит
a3f49c13ba
|
@ -150,6 +150,12 @@ ref = exports.nested(baguette, 0);
|
|||
assertEq(ref, baguette);
|
||||
assertEq(ref.calories, baguette.calories);
|
||||
|
||||
if (wasmDebuggingIsSupported()) {
|
||||
let g = newGlobal();
|
||||
let dbg = new Debugger(g);
|
||||
g.eval(`o = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary('(module (func (result anyref) (param anyref) get_local 0) (export "" 0))')));`);
|
||||
}
|
||||
|
||||
// More interesting use cases about control flow joins.
|
||||
|
||||
function assertJoin(body) {
|
||||
|
|
|
@ -3429,6 +3429,9 @@ class BaseCompiler final : public BaseCompilerInterface
|
|||
case ExprType::F32:
|
||||
masm.storeFloat32(RegF32(ReturnFloat32Reg), resultsAddress);
|
||||
break;
|
||||
case ExprType::AnyRef:
|
||||
masm.storePtr(RegPtr(ReturnReg), resultsAddress);
|
||||
break;
|
||||
default:
|
||||
MOZ_CRASH("Function return type");
|
||||
}
|
||||
|
@ -3453,6 +3456,9 @@ class BaseCompiler final : public BaseCompilerInterface
|
|||
case ExprType::F32:
|
||||
masm.loadFloat32(resultsAddress, RegF32(ReturnFloat32Reg));
|
||||
break;
|
||||
case ExprType::AnyRef:
|
||||
masm.loadPtr(resultsAddress, RegPtr(ReturnReg));
|
||||
break;
|
||||
default:
|
||||
MOZ_CRASH("Function return type");
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче