Closed
Bug 750279
(UntangleFrontEnd)
Opened 14 years ago
Closed 14 years ago
[meta] Untangle front-end state
Categories
(Core :: JavaScript Engine, defect)
Core
JavaScript Engine
Tracking
()
RESOLVED
FIXED
People
(Reporter: n.nethercote, Assigned: n.nethercote)
References
Details
(Keywords: meta)
The front-end is a big ball of mud. In particular, the state is very intertwined. Examples:
- Parser has a pointer to TreeContext, and TreeContext has a pointer to Parser.
- Parser.cpp includes BytecodeEmitter.h; BytecodeEmitter.cpp includes Parser.h.
- BytecodeEmitter is a sub-class of TreeContext, but sometimes we down-cast TreeContext to BytecodeEmitter.
- The tcflags are a mish-mash of values with a range of lifetimes and mutability. Some are set up-front and not changed; some are set and cleared multiple times. Some are relevant only in the parser; some are relevant in the parser and bytecode emitter.
As a result, any function that has access to any of the major pieces of front-end state -- Parser, TreeContext, BytecodeEmitter -- has access to pretty much all of it. Speaking as someone who's only just started looking closely at the front-end, this makes things really hard to understand.
This is a tracking bug for cleaning this up.
| Assignee | ||
Updated•14 years ago
|
Alias: UntangleFrontEnd
Comment 1•14 years ago
|
||
\o/
| Assignee | ||
Comment 2•14 years ago
|
||
I think I'm done with this.
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•