Closed Bug 750279 (UntangleFrontEnd) Opened 14 years ago Closed 14 years ago

[meta] Untangle front-end state

Categories

(Core :: JavaScript Engine, defect)

defect
Not set
normal

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.
Alias: UntangleFrontEnd
Depends on: 750282
\o/
Depends on: 750580
Depends on: 750606
Depends on: 751818
Depends on: 752758
Depends on: 752793
Depends on: 752816
Depends on: 753249
Depends on: 753657
Depends on: 754179
Depends on: 754180
Depends on: 754181
Depends on: 754739
Depends on: 757336
Depends on: 757690
Depends on: 759246
Depends on: 761914
Depends on: 764714
Depends on: 767202
Depends on: 770067
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.