01aa7f4ad6
This is a reland of commit 936b61a209
Change compared to original: Fix parameter types for CallRuntimeStub
in Liftoff.
Original change's description:
> [wasm-gc] Canonicalize JS Numbers as i31ref at the boundary
>
> JS numbers flowing into Wasm as i31ref should be canonicalized at the
> boundary. In-range numbers get canonicalized to Smis, and out-of-range
> numbers to HeapNumbers. This way, casting to i31ref, or checking for
> i31ref when casting to other types, is reduced to a Smi check.
>
> Bug: v8:7748
> Change-Id: Icd2bbca7870c094f32ddc9cba1d2be16207e80d1
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4008345
> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#84219}
Bug: v8:7748
Change-Id: I67737150252b844a296338db0c60f76b470aa43b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4022711
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84240}
41 lines
1.5 KiB
Plaintext
41 lines
1.5 KiB
Plaintext
Test inspection of Wasm anyref objects
|
|
|
|
Running test: test
|
|
Calling instantiate function.
|
|
Waiting for wasm script to be parsed.
|
|
Got wasm script!
|
|
Module instantiated.
|
|
Tables populated.
|
|
Setting breakpoint
|
|
{
|
|
columnNumber : 260
|
|
lineNumber : 0
|
|
scriptId : <scriptId>
|
|
}
|
|
Paused:
|
|
Script wasm://wasm/8fd0ec76 byte offset 260: Wasm opcode 0x01 (kExprNop)
|
|
Scope:
|
|
at $main (0:260):
|
|
- scope (wasm-expression-stack):
|
|
stack:
|
|
- scope (local):
|
|
$anyref_local: Struct ((ref $type0))
|
|
$anyref_local2: Array ((ref $type1))
|
|
$anyref_local_i31: 30 (anyref)
|
|
$anyref_local_null: null (anyref)
|
|
- scope (module):
|
|
instance: exports: "exported_ref_table" (Table), "exported_func_table" (Table), "fill_tables" (Function), "main" (Function)
|
|
module: Module
|
|
functions: "$my_func": (Function), "$fill_tables": (Function), "$main": (Function)
|
|
globals: "$global0": function $my_func() { [native code] } (funcref)
|
|
tables:
|
|
$import.any_table: 0: Array(2) (anyref), 1: Struct ((ref $type0)), 2: null (anyref)
|
|
$import.func_table: 0: function () { [native code] } (funcref), 1: function $my_func() { [native code] } (funcref), 2: null (funcref)
|
|
$exported_ref_table: 0: Struct ((ref $type0)), 1: Array ((ref $type1)), 2: 30 (anyref), 3: null (anyref)
|
|
$exported_func_table: 0: function external_fct() { [native code] } (funcref), 1: function $my_func() { [native code] } (funcref), 2: null (funcref)
|
|
at (anonymous) (0:17):
|
|
- scope (global):
|
|
-- skipped globals
|
|
|
|
exports.main returned. Test finished.
|