Closed
Bug 1605101
Opened 5 years ago
Closed 4 years ago
[meta] js::Stencil data structures
Categories
(Core :: JavaScript Engine, task, P3)
Core
JavaScript Engine
Tracking
()
RESOLVED
FIXED
People
(Reporter: tcampbell, Unassigned)
References
(Blocks 1 open bug)
Details
(Keywords: meta)
This is a meta-bug for the design of data structures for Bug 1601332. Also includes cleanup work on types shared with runtime (such as definition of flags).
Current Objectives (subject to change):
- No GC pointers
- Defined in Rust with C++ bindings
- Simplified model vs the final runtime script model
- Avoid cyclic references
- Straightforward serialization to disk
- Use formats like js::ImmutableScriptData directly
The current C++ frontend and the new frontend should be migrated to targeting this format.
Reporter | ||
Comment 1•5 years ago
|
||
The rough set of types I think we want are:
- Stencil (top-level)
- parse-flags
- BaseScript::ImmutableFlags
- js::ImmutableScriptData
- Maybe<exports>
- Maybe<imports>
- Function
- AllocKind/group-hint flags
- FunctionFlags
- BaseScript::ImmutableFlags
- Maybe<js::ImmutableScriptData>
- Scope
- scope-kind
- ScopeData
- enclosing scope reference
- ObjectLiteral
- BigIntLiteral
Things such as shapes and environments are hopefully implied easily by the rest of the data. A lazy function should just be a function without ImmutableScriptData. I've glossed over how JSAtom* will be handled.
Reporter | ||
Updated•5 years ago
|
Reporter | ||
Comment 3•4 years ago
|
||
The data structures are now workable so I'll close this bug.
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•