Introduce LexicalScopeFeatures to enable future bytecode optimizations
Created attachment 424944 [details] Patch
Created attachment 425040 [details] Patch Fix --debug build and make LexicalScopeFeatures constructor / static methods explicit.
Comment on attachment 425040 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=425040&action=review r=me with some nits. > Source/JavaScriptCore/ChangeLog:9 > + statement, direct `eval`, or certain variable names only within the current executable: Typo: "to reason about" => "of reasoning about" and "of with statement" => "of with statements" > Source/JavaScriptCore/ChangeLog:27 > + If ResolveNode would know that unforgeable global properties are not shadowed and there Nit: "would know" => "knew" > Source/JavaScriptCore/bytecode/UnlinkedFunctionExecutable.h:257 > unsigned m_firstLineOffset : 31; This probably shouldn't be a bit field or other bit fields should be shuffled around to repack the struct.
<rdar://problem/76366251>
Created attachment 430502 [details] Patch Update ChangeLog, drop OptionSet to align with other features and use bit fields, add LexicalScopeFeatures to more classes, remove now unused StrictModeFeature and ArrowFunctionContextFeature, and fix bit fields packing.
(In reply to Alexey Shvayka from comment #5) > Created attachment 430502 [details] > Patch sizeof (r278401) sizeof (patch) UnlinkedCodeBlock 160 160 UnlinkedFunctionExecutable 96 96 ScopeNode 304 304 FunctionMetadataNode 144 144 SourceProviderCacheItem 32 32 CachedCodeBlock 464 464 CachedFunctionExecutableMetadata 4 4 ScriptExecutable 72 72
Created attachment 430507 [details] Patch Fix --debug build.
Committed r278588 (238578@main): <https://commits.webkit.org/238578@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 430507 [details].