Create separate words based off immutableFlags for input, parse, and BCE
Categories
(Core :: JavaScript Engine, task, P2)
Tracking
()
People
(Reporter: caroline, Assigned: caroline)
References
Details
Since immutable flags contains flags from input, parse and BCE and throughout the frontend we use these immutableFlags, yet there is no obvious way of knowing what flags are valid in what stages. Input flags are set on input, parse flags are generated for lazy and non lazy scripts, an BCE flags must have bytecode associated with them. All of these flags are currently combined together into immutable flags. For clarity purposes, there will be separate words that represent input, parse and BCE flags that are based on immutable flags.
Within each of these categories there are often distinct sub categories. For example, in parse there are flags that are function box flags and flags for the rest of the script (see JSScript::initFromFunctionBox) . It would be helpful to create a word dedicated to these flags that aligns with immutable flags but helps define what flags you can expect to be accurate and where, yet makes it easy to combine our flags into their final immutableFlags form.
Some flags in the frontend are combined to create other flags (see FunctionBox::hasMappedArgsObj). Often the flags used to create immutable flags like this particular example are no longer valid after you are out of that phase of compilation. It would be helpful to allow for flags used in this way to still be included in the new word of flags, yet mask them off when we ultimately combine them into the immutable flags word or use them anywhere outside of where they are valid.
In this way, immutable flags will ultimately take the form or a vm type, yet will remain in SharedStencil to provide an outline for these distinct words for each phase of the frontend.
| Assignee | ||
Updated•5 years ago
|
Comment 1•5 years ago
|
||
This is probably not necessary now that BCE flags are gone and we are cleaning up input flags elsewhere.
Description
•