|
|
Experimental code to detect transitive closure of parser code which causes new-space allocations
This CL adds a `Thread::inside_parser_` field which is used for keeping
track of whether upper frames are inside the parser or not.
The field is kept up-to-date via `EnterParserScope`/`LeaveParserScope`
and is checked in Dart heap allocation code to ensure we never allocate
in Heap::kNew from parser (or transitively called code) -- (the
Parser::allocation_space_ has been fixed to Heap::kOld for this purpose).
-> This code allows us to see all Heap::kNew allocation sites
transitively reachable by the parser.
(not to be committed)
|