Matthias Liedtke
Matthias Liedtke
This is a follow-up to https://github.com/WebAssembly/gc/issues/313#issuecomment-1458062757 where the question was raised whether we'd need or want to have an `array.new_copy` instruction. We have a micro-benchmark mainly consisting of copying an...
Following up on https://github.com/WebAssembly/stringref/issues/5#issuecomment-1312572737 we decided to implement `string.from_code_point` for performance evaluations in V8 (see also #58): - `string.from_code_point(codepoint: i32) -> ref string`, opcode `0xfba9` - returns a string consisting...
We have another instruction that is added to v8 for our performance experiments: - `string.hash(str: string) -> int32`, opcode `0xfbaa` - returns an *implementation defined* 32 bit hash value The...
For performance evaluations we added the following instruction to v8 ([change](https://chromium-review.googlesource.com/c/v8/v8/+/4191772)) and it might make sense to add it to the stringref proposal: - `string.compare` [`0xfba8`] - returns -1, 0...
An initializer expression is very similar to a function body just with a much more restricted set of allowed instructions. For function bodys we have a limit of `7,654,321 bytes`...
We should add some basic coverage for externref globals. (We should extend this if https://github.com/WebAssembly/spec/issues/1980 results in adding more allowed types.)
The algorithm [ToWebAssemblyValue](https://webassembly.github.io/spec/js-api/#towebassemblyvalue) has the following specification for `i31`: > 7.4. Else if v [is a Number](https://tc39.github.io/ecma262/#sec-ecmascript-language-types-number-type) and v is equal to [?](https://tc39.github.io/ecma262/#sec-returnifabrupt-shorthands) [ToInt32](https://tc39.es/ecma262/multipage/abstract-operations.html#sec-toint32)(v) and [ℝ](https://tc39.github.io/ecma262/#%E2%84%9D)(v) < 2^30 and [ℝ](https://tc39.github.io/ecma262/#%E2%84%9D)(v)...
The WebAssembly [JS-API spec](https://webassembly.github.io/spec/js-api/#globals) mentions the following types for globals: ``` enum ValueType { "i32", "i64", "f32", "f64", "v128", "externref", "anyfunc", }; ``` However, both V8 and SpiderMonkey support multiple...