Record the generator's strictness for each emitted bytecode instruction, instead of applying the executable's final strictness to every instruction during assembly. This lets class heritage and computed element names run with strict assignment semantics inside sloppy scripts. Also create the class self-binding as a strict immutable binding, matching ClassDefinitionEvaluation, and cover strict class heritage and computed names in the runtime tests.
46 lines
1.5 KiB
Text
46 lines
1.5 KiB
Text
$2a66ad4a super-constructor-call.js:1:1
|
|
Registers: 8
|
|
Blocks: 1
|
|
Constants:
|
|
[0] = Undefined
|
|
[1] = Int32(1)
|
|
|
|
block0:
|
|
[ 0] GetLexicalEnvironment dst:reg4
|
|
[ 8] CreateLexicalEnvironment dst:reg5, parent:reg4, capacity:0, is_catch_environment:false
|
|
[ 20] CreateVariable `Base`, is_immutable:true, is_global:false, is_strict:true
|
|
[ 30] SetLexicalEnvironment environment:reg4
|
|
[ 38] NewClass dst:reg6, class_environment:reg5, class_blueprint_index:0
|
|
[ 58] DynamicInitializeLexicalBinding `Base`, src:reg6
|
|
[ 68] CreateLexicalEnvironment dst:reg6, parent:reg4, capacity:0, is_catch_environment:false
|
|
[ 80] CreateVariable `Derived`, is_immutable:true, is_global:false, is_strict:true
|
|
[ 90] GetGlobal dst:reg5, `Base`
|
|
[ a0] SetLexicalEnvironment environment:reg4
|
|
[ a8] NewClass dst:reg7, super_class:reg5, class_environment:reg6, class_blueprint_index:1
|
|
[ c8] DynamicInitializeLexicalBinding `Derived`, src:reg7
|
|
[ d8] GetGlobal dst:reg6, `Derived`
|
|
[ e8] CallConstruct dst:reg7, callee:reg6, Derived, arguments:[Int32(1)]
|
|
[ 108] End value:reg7
|
|
|
|
|
|
Derived$eee8d5da super-constructor-call.js:4:14
|
|
Registers: 7
|
|
Blocks: 1
|
|
Constants:
|
|
[0] = Undefined
|
|
|
|
block0:
|
|
[ 0] Mov dst:reg6, src:arg0
|
|
[ 10] NewArray dst:reg5, elements:[reg6]
|
|
[ 28] SuperCallWithArgumentArray dst:reg6, arguments:reg5, is_synthetic:false
|
|
[ 38] End value:Undefined
|
|
|
|
|
|
Base$a461b108
|
|
Registers: 5
|
|
Blocks: 1
|
|
Constants:
|
|
[0] = Undefined
|
|
|
|
block0:
|
|
[ 0] End value:Undefined
|