Comments (2)
Re 1: That would be okay, but is there really a collision? 0x40 is not a proper type opcode, but more like an escape code. A decoder can first check for 0x40, and then decode the type separately – which I think is a more efficient factoring anyway, since it avoids populating the internal type representation with a pseudotype that you then have to check for retroactively, and in all other places, too.
Re 2: The primary unit of parsing here is the table type (elemtype+limits), which occurs in other places that do not have initialisers (e.g., table imports). Putting the initialiser inside the table type would clearly be in conflict with that. Putting it before would be inconsistent with the rest of the language – in all other places we know the expected result type of an instruction sequence before we decode it, and decoders may be factored towards that assumption. In either case, to parse type+initialiser as a unit you'd have to give up parsing table types as a unit, which would strike me as a very odd choice with no benefit.
from function-references.
I suppose that I should just think of 0x40
as the escape for "not a value type" since it indicates an empty block type, and here, an extended global type. For 2, it is only a minor annoyance that I can fix with a few lines of code :-)
from function-references.
Related Issues (20)
- Issues with the JavaScript spec tests HOT 4
- `Illegal macro parameter reference` in the spec HOT 1
- Binary encoding out of sync with GC proposal
- Merge in latest spec repo HOT 2
- Function reference from JavaScript functions? HOT 4
- Validation rule for call_ref with polymorphic stack HOT 5
- Fix table-elem desugaring
- `func.bind` and iso-recursion HOT 2
- Validating local.get in nested blocks with unreachable HOT 5
- br_on_non_null.wast needs unreachable test HOT 1
- slowness of test/core/skip-stack-guard-page.wast HOT 3
- Drop null casts? HOT 4
- JS-API is missing value conversions HOT 3
- Extend `TableType` to support non-nullable references in JS-API HOT 1
- Progress toward phase 4 HOT 2
- Malformed br_on_null and br_on_non_null in tests HOT 1
- Default/init values in JS-API for globals and table. HOT 3
- Clarification request: initializers for tables with non-nullable type and initial_size == 0 HOT 3
- Should non-nullable locals be initialized by unreachable code? HOT 13
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from function-references.