Last active
November 4, 2015 21:26
-
-
Save gskachkov/e658e5b68518dfde1eb7 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Generated DFG JIT code for f#EI3Q4I:[0x105c7e800->0x105c7f100->0x105c6c900, DFGFunctionCall, 56 (StrictMode)], instruction count = 56: | |
Optimized with execution counter = 945.000000/1290.000000, -55 | |
Code at [0x598072c043a0, 0x598072c0477b): | |
0x598072c043a0: push %rbp | |
0x598072c043a1: mov %rsp, %rbp | |
0x598072c043a4: mov $0x105c7e800, %r11 | |
0x598072c043ae: mov %r11, 0x10(%rbp) | |
0x598072c043b2: lea -0x50(%rbp), %rsi | |
0x598072c043b6: mov $0x105c06378, %r11 | |
0x598072c043c0: cmp %rsi, (%r11) | |
0x598072c043c3: ja 0x598072c04612 | |
0x598072c043c9: lea -0x40(%rbp), %rsp | |
0x598072c043cd: test $0xf, %spl | |
0x598072c043d1: jz 0x598072c043de | |
0x598072c043d7: mov $0x64, %r11d | |
0x598072c043dd: int3 | |
0x598072c043de: mov %rbx, -0x28(%rbp) | |
0x598072c043e2: mov %r12, -0x20(%rbp) | |
0x598072c043e6: mov %r13, -0x18(%rbp) | |
0x598072c043ea: mov %r14, -0x10(%rbp) | |
0x598072c043ee: mov %r15, -0x8(%rbp) | |
0x598072c043f2: mov $0xffff000000000000, %r14 | |
0x598072c043fc: mov %r14, %r15 | |
0x598072c043ff: or $0x2, %r15 | |
Block #0 (bc#0): (OSR target) | |
Execution count: 1.000000 | |
Predecessors: | |
Successors: #1 (ForwardEdge) #2 (ForwardEdge) | |
Dominated by: #0 | |
Dominates: #0 #1 #2 | |
Dominance Frontier: | |
Iterated Dominance Frontier: | |
Pre/Post Numbering: 0/2 | |
0x598072c04403: test $0x7, %bpl | |
0x598072c04407: jz 0x598072c04414 | |
0x598072c0440d: mov $0xa, %r11d | |
0x598072c04413: int3 | |
0x598072c04414: mov $0xffff000000000000, %r11 | |
0x598072c0441e: cmp %r11, %r14 | |
0x598072c04421: jz 0x598072c0442f | |
0x598072c04427: mov $0x82, %r11d | |
0x598072c0442d: int3 | |
0x598072c0442e: int3 | |
0x598072c0442f: mov $0xffff000000000002, %r11 | |
0x598072c04439: cmp %r11, %r15 | |
0x598072c0443c: jz 0x598072c04449 | |
0x598072c04442: mov $0x78, %r11d | |
0x598072c04448: int3 | |
0x598072c04449: cmp $0x989680, 0x20(%rbp) | |
0x598072c04450: jb 0x598072c0445d | |
0x598072c04456: mov $0x1e, %r11d | |
0x598072c0445c: int3 | |
1:< 7:loc5> JSConstant(JS|PureInt, Other, Undefined, bc#0) | |
0x598072c0445d: mov $0x105c06398, %r11 | |
0x598072c04467: mov (%r11), %r11 | |
0x598072c0446a: test %r11, %r11 | |
0x598072c0446d: jz 0x598072c0447a | |
0x598072c04473: mov $0x113, %r11d | |
0x598072c04479: int3 | |
2:<!0:-> MovHint(@1, MustGen, loc0, W:SideState, ClobbersExit, bc#0) | |
0x598072c0447a: mov $0x105c06398, %r11 | |
0x598072c04484: mov (%r11), %r11 | |
0x598072c04487: test %r11, %r11 | |
0x598072c0448a: jz 0x598072c04497 | |
0x598072c04490: mov $0x113, %r11d | |
0x598072c04496: int3 | |
4:<!0:-> MovHint(@1, MustGen, loc1, W:SideState, ClobbersExit, bc#0, ExitInvalid) | |
0x598072c04497: mov $0x105c06398, %r11 | |
0x598072c044a1: mov (%r11), %r11 | |
0x598072c044a4: test %r11, %r11 | |
0x598072c044a7: jz 0x598072c044b4 | |
0x598072c044ad: mov $0x113, %r11d | |
0x598072c044b3: int3 | |
6:<!0:-> MovHint(@1, MustGen, loc2, W:SideState, ClobbersExit, bc#0, ExitInvalid) | |
0x598072c044b4: mov $0x105c06398, %r11 | |
0x598072c044be: mov (%r11), %r11 | |
0x598072c044c1: test %r11, %r11 | |
0x598072c044c4: jz 0x598072c044d1 | |
0x598072c044ca: mov $0x113, %r11d | |
0x598072c044d0: int3 | |
8:<!0:-> MovHint(@1, MustGen, loc3, W:SideState, ClobbersExit, bc#0, ExitInvalid) | |
0x598072c044d1: mov $0x105c06398, %r11 | |
0x598072c044db: mov (%r11), %r11 | |
0x598072c044de: test %r11, %r11 | |
0x598072c044e1: jz 0x598072c044ee | |
0x598072c044e7: mov $0x113, %r11d | |
0x598072c044ed: int3 | |
10:<!0:-> MovHint(@1, MustGen, loc4, W:SideState, ClobbersExit, bc#0, ExitInvalid) | |
0x598072c044ee: mov $0x105c06398, %r11 | |
0x598072c044f8: mov (%r11), %r11 | |
0x598072c044fb: test %r11, %r11 | |
0x598072c044fe: jz 0x598072c0450b | |
0x598072c04504: mov $0x113, %r11d | |
0x598072c0450a: int3 | |
12:<!0:-> MovHint(@1, MustGen, loc5, W:SideState, ClobbersExit, bc#0, ExitInvalid) | |
0x598072c0450b: mov $0x105c06398, %r11 | |
0x598072c04515: mov (%r11), %r11 | |
0x598072c04518: test %r11, %r11 | |
0x598072c0451b: jz 0x598072c04528 | |
0x598072c04521: mov $0x113, %r11d | |
0x598072c04527: int3 | |
14:<!0:-> MovHint(@1, MustGen, loc6, W:SideState, ClobbersExit, bc#0, ExitInvalid) | |
0x598072c04528: mov $0x105c06398, %r11 | |
0x598072c04532: mov (%r11), %r11 | |
0x598072c04535: test %r11, %r11 | |
0x598072c04538: jz 0x598072c04545 | |
0x598072c0453e: mov $0x113, %r11d | |
0x598072c04544: int3 | |
16:< 1:loc5> GetCallee(JS|UseAsOther, Function, R:Stack(3), bc#1) | |
0x598072c04545: mov $0x105c06398, %r11 | |
0x598072c0454f: mov (%r11), %r11 | |
0x598072c04552: test %r11, %r11 | |
0x598072c04555: jz 0x598072c04562 | |
0x598072c0455b: mov $0x113, %r11d | |
0x598072c04561: int3 | |
0x598072c04562: mov 0x18(%rbp), %rax | |
17:< 3:loc5> GetScope(KnownCell:@16, JS|UseAsOther, Otherobj, bc#1) | |
0x598072c04566: mov $0x105c06398, %r11 | |
0x598072c04570: mov (%r11), %r11 | |
0x598072c04573: test %r11, %r11 | |
0x598072c04576: jz 0x598072c04583 | |
0x598072c0457c: mov $0x113, %r11d | |
0x598072c04582: int3 | |
0x598072c04583: test %rax, %r15 | |
0x598072c04586: jz 0x598072c04593 | |
0x598072c0458c: mov $0xb4, %r11d | |
0x598072c04592: int3 | |
0x598072c04593: mov 0x10(%rax), %rax | |
18:<!0:-> MovHint(@17, MustGen, loc3, W:SideState, ClobbersExit, bc#1) | |
0x598072c04597: mov $0x105c06398, %r11 | |
0x598072c045a1: mov (%r11), %r11 | |
0x598072c045a4: test %r11, %r11 | |
0x598072c045a7: jz 0x598072c045b4 | |
0x598072c045ad: mov $0x113, %r11d | |
0x598072c045b3: int3 | |
20:<!0:-> MovHint(@17, MustGen, loc4, W:SideState, ClobbersExit, bc#3) | |
0x598072c045b4: mov $0x105c06398, %r11 | |
0x598072c045be: mov (%r11), %r11 | |
0x598072c045c1: test %r11, %r11 | |
0x598072c045c4: jz 0x598072c045d1 | |
0x598072c045ca: mov $0x113, %r11d | |
0x598072c045d0: int3 | |
23:<!0:-> ForceOSRExit(MustGen, W:SideState, Exits, bc#6) | |
0x598072c045d1: mov $0x105c06398, %r11 | |
0x598072c045db: mov (%r11), %r11 | |
0x598072c045de: test %r11, %r11 | |
0x598072c045e1: jz 0x598072c045ee | |
0x598072c045e7: mov $0x113, %r11d | |
0x598072c045ed: int3 | |
0x598072c045ee: jmp 0x598072c04754 | |
0x598072c045f3: mov $0xc3, %r10 | |
0x598072c045fd: mov $0xa2, %r11d | |
0x598072c04603: int3 | |
55:<!0:-> Phantom(@17, MustGen, bc#6) | |
24:< 3:loc5> JSConstant(JS|UseAsOther, Other, Null, bc#6) | |
25:<!0:-> MovHint(@24, MustGen, loc7, W:SideState, ClobbersExit, bc#6) | |
28:< 1:loc6> GetClosureVar(Check:KnownCell:@24, JS|PureInt, Function, scope1, R:ScopeProperties(1), Exits, bc#13) predicting Function | |
29:<!0:-> MovHint(@28, MustGen, loc6, W:SideState, ClobbersExit, bc#13) | |
32:< 7:loc5> GetClosureVar(Check:KnownCell:@24, JS|UseAsOther, Final, scope0, R:ScopeProperties(0), Exits, bc#21) predicting Final | |
33:<!0:-> MovHint(@32, MustGen, this, W:SideState, ClobbersExit, bc#21) | |
35:<!0:-> CheckNotEmpty(@32, MustGen, Exits, bc#29) | |
36:<!0:-> MovHint(@32, MustGen, loc5, W:SideState, ClobbersExit, bc#31) | |
40:<!0:-> CheckStructure(Check:Cell:@32, MustGen, [%Bl:Object], R:JSCell_structureID, Exits, bc#36) | |
41:< 2:loc6> GetByOffset(Check:KnownCell:@32, Check:KnownCell:@32, JS|UseAsOther, Stringident, id3{id}, 0, inferredType = String, R:NamedProperties(3), Exits, bc#36) predicting Stringident | |
42:<!0:-> MovHint(@41, MustGen, loc8, W:SideState, ClobbersExit, bc#36) | |
44:< 1:loc7> JSConstant(JS|UseAsOther, Stringident, Strong:String (atomic) (identifier): A, ID: 4, bc#45) | |
45:< 2:loc7> CompareStrictEq(Check:StringIdent:@41, Check:StringIdent:@44, Boolean|UseAsOther, Bool, Exits, bc#45) | |
56:<!0:-> Phantom(@32, MustGen, bc#45) | |
46:<!0:-> MovHint(@45, MustGen, loc8, W:SideState, ClobbersExit, bc#45) | |
48:<!0:-> Branch(Check:KnownBoolean:@45, MustGen, T:#1/w:1.000000, F:#2/w:1.000000, W:SideState, bc#49) | |
Block #1 (bc#52): | |
Execution count: 1.000000 | |
Predecessors: #0 | |
Successors: | |
Dominated by: #0 #1 | |
Dominates: #1 | |
Dominance Frontier: | |
Iterated Dominance Frontier: | |
Pre/Post Numbering: 2/1 | |
0x598072c04604: mov $0xdc, %r11d | |
0x598072c0460a: int3 | |
49:< 1:loc7> JSConstant(JS|UseAsOther, Stringident, Strong:String (atomic) (identifier): ok, ID: 4, bc#52) | |
54:<!0:-> CheckTierUpAtReturn(MustGen, W:SideState, Exits, bc#52) | |
50:<!0:-> Return(@49, MustGen, W:SideState, Exits, bc#52) | |
Block #2 (bc#54): | |
Execution count: 1.000000 | |
Predecessors: #0 | |
Successors: | |
Dominated by: #0 #2 | |
Dominates: #2 | |
Dominance Frontier: | |
Iterated Dominance Frontier: | |
Pre/Post Numbering: 1/0 | |
0x598072c0460b: mov $0xdc, %r11d | |
0x598072c04611: int3 | |
51:< 1:loc7> JSConstant(JS|UseAsOther, Stringident, Strong:String (atomic) (identifier): ok, ID: 4, bc#54) | |
53:<!0:-> CheckTierUpAtReturn(MustGen, W:SideState, Exits, bc#54) | |
52:<!0:-> Return(@51, MustGen, W:SideState, Exits, bc#54) | |
(End Of Main Path) | |
0x598072c04612: mov $0x0, 0x24(%rbp) | |
0x598072c04619: mov $0x105c7e800, %rsi | |
0x598072c04623: mov %rbp, %rdi | |
0x598072c04626: mov $0x105c047f0, %r11 | |
0x598072c04630: mov $0xbadbeef, (%r11) | |
0x598072c04637: mov $0x105c047f4, %r11 | |
0x598072c04641: mov $0xbadbeef, (%r11) | |
0x598072c04648: mov $0x1, 0x24(%rbp) | |
0x598072c0464f: mov $0x10395fb40, %r11 | |
0x598072c04659: call %r11 | |
0x598072c0465c: mov $0x105c06398, %r11 | |
0x598072c04666: mov (%r11), %r11 | |
0x598072c04669: test %r11, %r11 | |
0x598072c0466c: jnz 0x598072c0470a | |
0x598072c04672: push %rbp | |
0x598072c04673: mov %rsp, %rbp | |
0x598072c04676: mov $0x105c7e800, %r11 | |
0x598072c04680: mov %r11, 0x10(%rbp) | |
0x598072c04684: mov 0x20(%rbp), %esi | |
0x598072c04687: cmp $0x1, %esi | |
0x598072c0468a: jae 0x598072c043b2 | |
0x598072c04690: mov $0x2, 0x24(%rbp) | |
0x598072c04697: mov %rbp, %rdi | |
0x598072c0469a: mov $0x105c047f0, %r11 | |
0x598072c046a4: mov $0xbadbeef, (%r11) | |
0x598072c046ab: mov $0x105c047f4, %r11 | |
0x598072c046b5: mov $0xbadbeef, (%r11) | |
0x598072c046bc: mov $0x3, 0x24(%rbp) | |
0x598072c046c3: mov $0x10395fbd0, %r11 | |
0x598072c046cd: call %r11 | |
0x598072c046d0: mov $0x105c06398, %r11 | |
0x598072c046da: mov (%r11), %r11 | |
0x598072c046dd: test %r11, %r11 | |
0x598072c046e0: jnz 0x598072c0470a | |
0x598072c046e6: test %eax, %eax | |
0x598072c046e8: jz 0x598072c043b2 | |
0x598072c046ee: mov $0x4, 0x24(%rbp) | |
0x598072c046f5: mov %rax, %rdi | |
0x598072c046f8: mov $0x598072c01ca0, %r11 | |
0x598072c04702: call %r11 | |
0x598072c04705: jmp 0x598072c043b2 | |
0x598072c0470a: mov $0x105c06218, %r9 | |
0x598072c04714: mov %rbx, (%r9) | |
0x598072c04717: mov %r12, 0x8(%r9) | |
0x598072c0471b: mov %r13, 0x10(%r9) | |
0x598072c0471f: mov %r14, 0x18(%r9) | |
0x598072c04723: mov %r15, 0x20(%r9) | |
0x598072c04727: mov $0x105c02000, %rdi | |
0x598072c04731: mov %rbp, %rsi | |
0x598072c04734: lea -0x40(%rbp), %rsp | |
0x598072c04738: mov $0x1039680a0, %r11 | |
0x598072c04742: call %r11 | |
0x598072c04745: mov $0x105c06290, %rsi | |
0x598072c0474f: mov (%rsi), %rsi | |
0x598072c04752: jmp %rsi | |
0x598072c04754: test $0x7, %bpl | |
0x598072c04758: jz 0x598072c04765 | |
0x598072c0475e: mov $0xa, %r11d | |
0x598072c04764: int3 | |
0x598072c04765: mov $0x105c062a0, %r11 | |
0x598072c0476f: mov $0x0, (%r11) | |
0x598072c04776: jmp 0x598072c04120 | |
Structures: | |
%Bl:Object = 0x105c54e00:[Object, {id:0}, NonArray, Proto:0x105c33d80] | |
Generated JIT code for DFG OSR exit #0 (bc#6, InadequateCoverage) from f#EI3Q4I:[0x105c7e800->0x105c7f100->0x105c6c900, DFGFunctionCall, 56 (StrictMode)], with operands = arg0:[Undefined] loc0:[Undefined] loc1:[Undefined] loc2:[Undefined] loc3:cell(%rax) loc4:cell(%rax) loc5:[Undefined] loc6:[Undefined] loc7:[Undefined] loc8:[Undefined] loc9:[Undefined]: | |
Code at [0x598072c04800, 0x598072c049c0): | |
0x598072c04800: test $0x7, %bpl | |
0x598072c04804: jz 0x598072c04811 | |
0x598072c0480a: mov $0xa, %r11d | |
0x598072c04810: int3 | |
0x598072c04811: mov $0xffff000000000000, %r11 | |
0x598072c0481b: cmp %r11, %r14 | |
0x598072c0481e: jz 0x598072c0482c | |
0x598072c04824: mov $0x82, %r11d | |
0x598072c0482a: int3 | |
0x598072c0482b: int3 | |
0x598072c0482c: mov $0xffff000000000002, %r11 | |
0x598072c04836: cmp %r11, %r15 | |
0x598072c04839: jz 0x598072c04846 | |
0x598072c0483f: mov $0x78, %r11d | |
0x598072c04845: int3 | |
0x598072c04846: mov %rax, 0x105efd488 | |
0x598072c04850: mov %rax, 0x105efd490 | |
0x598072c0485a: lea -0x50(%rbp), %rsp | |
0x598072c0485e: mov -0x28(%rbp), %rbx | |
0x598072c04862: mov -0x20(%rbp), %r12 | |
0x598072c04866: mov -0x18(%rbp), %r13 | |
0x598072c0486a: mov -0x10(%rbp), %r14 | |
0x598072c0486e: mov -0x8(%rbp), %r15 | |
0x598072c04872: mov %r13, -0x18(%rbp) | |
0x598072c04876: mov %r14, -0x10(%rbp) | |
0x598072c0487a: mov %r15, -0x8(%rbp) | |
0x598072c0487e: mov $0xffff000000000000, %r14 | |
0x598072c04888: mov %r14, %r15 | |
0x598072c0488b: or $0x2, %r15 | |
0x598072c0488f: mov $0xa, 0x28(%rbp) | |
0x598072c04897: mov 0x105efd488, %rax | |
0x598072c048a1: mov %rax, -0x20(%rbp) | |
0x598072c048a5: mov 0x105efd490, %rax | |
0x598072c048af: mov %rax, -0x28(%rbp) | |
0x598072c048b3: mov $0xa, -0x30(%rbp) | |
0x598072c048bb: mov $0xa, -0x38(%rbp) | |
0x598072c048c3: mov $0xa, -0x40(%rbp) | |
0x598072c048cb: mov $0xa, -0x48(%rbp) | |
0x598072c048d3: mov $0xa, -0x50(%rbp) | |
0x598072c048db: mov $0x105eba704, %r11 | |
0x598072c048e5: add $0x1, (%r11) | |
0x598072c048e9: mov $0x105c7e800, %rax | |
0x598072c048f3: mov 0x214(%rax), %edx | |
0x598072c048f9: inc %edx | |
0x598072c048fb: mov %edx, 0x214(%rax) | |
0x598072c04901: mov $0x105c7f100, %rax | |
0x598072c0490b: cmp $0x0, 0x204(%rax) | |
0x598072c04912: jge 0x598072c04925 | |
0x598072c04918: mov $0x64, %esi | |
0x598072c0491d: cmp %esi, %edx | |
0x598072c0491f: jbe 0x598072c04944 | |
0x598072c04925: mov %rax, %rdi | |
0x598072c04928: mov $0x105eba700, %rsi | |
0x598072c04932: mov $0x1035c6e20, %r10 | |
0x598072c0493c: call %r10 | |
0x598072c0493f: jmp 0x598072c04962 | |
0x598072c04944: mov $0xfffffc18, 0x204(%rax) | |
0x598072c0494e: mov $0x50a, 0x20c(%rax) | |
0x598072c04958: mov $0x447a0000, 0x208(%rax) | |
0x598072c04962: mov $0x105c7f100, %r11 | |
0x598072c0496c: mov %r11, 0x10(%rbp) | |
0x598072c04970: mov $0x6, 0x24(%rbp) | |
0x598072c04977: mov $0x105c7f100, %rsi | |
0x598072c04981: cmp $0x0, 0x7(%rsi) | |
0x598072c04985: jnz 0x598072c0499b | |
0x598072c0498b: mov %rbp, %rdi | |
0x598072c0498e: mov $0x103967ee0, %r10 | |
0x598072c04998: call %r10 | |
0x598072c0499b: lea -0x50(%rbp), %rsp | |
0x598072c0499f: mov $0x5980b2c00a64, %rdx | |
0x598072c049a9: jmp %rdx | |
Jettisoning f#EI3Q4I:[0x105c7e800->0x105c7f100->0x105c6c900, DFGFunctionCall, 56 (StrictMode)] and counting reoptimization due to OSRExit. | |
Did invalidate f#EI3Q4I:[0x105c7e800->0x105c7f100->0x105c6c900, DFGFunctionCall, 56 (StrictMode)] | |
Did count reoptimization for f#EI3Q4I:[0x105c7e800->0x105c7f100->0x105c6c900, DFGFunctionCall, 56 (StrictMode)] | |
Did install baseline version of f#EI3Q4I:[0x105c7e800->0x105c7f100->0x105c6c900, DFGFunctionCall, 56 (StrictMode)] | |
Generated DFG JIT code for check#CM9wQu:[0x105c7e500->0x105c7fa00->0x105c6cc00, DFGFunctionCall, 80], instruction count = 80: | |
Optimized with execution counter = 945.000000/1379.000000, -55 | |
Code at [0x598072c04d40, 0x598072c0552a): | |
0x598072c04d40: push %rbp | |
0x598072c04d41: mov %rsp, %rbp | |
0x598072c04d44: mov $0x105c7e500, %r11 | |
0x598072c04d4e: mov %r11, 0x10(%rbp) | |
0x598072c04d52: lea -0x140(%rbp), %rsi | |
0x598072c04d59: mov $0x105c06378, %r11 | |
0x598072c04d63: cmp %rsi, (%r11) | |
0x598072c04d66: ja 0x598072c053be | |
0x598072c04d6c: lea -0xe0(%rbp), %rsp | |
0x598072c04d73: test $0xf, %spl | |
0x598072c04d77: jz 0x598072c04d84 | |
0x598072c04d7d: mov $0x64, %r11d | |
0x598072c04d83: int3 | |
0x598072c04d84: mov %rbx, -0x28(%rbp) | |
0x598072c04d88: mov %r12, -0x20(%rbp) | |
0x598072c04d8c: mov %r13, -0x18(%rbp) | |
0x598072c04d90: mov %r14, -0x10(%rbp) | |
0x598072c04d94: mov %r15, -0x8(%rbp) | |
0x598072c04d98: mov $0xffff000000000000, %r14 | |
0x598072c04da2: mov %r14, %r15 | |
0x598072c04da5: or $0x2, %r15 | |
Block #0 (bc#0): (OSR target) | |
Execution count: 1.000000 | |
Predecessors: | |
Successors: #4 (ForwardEdge) #5 (ForwardEdge) | |
Dominated by: #0 | |
Dominates: #0 #4 #5 | |
Dominance Frontier: | |
Iterated Dominance Frontier: | |
Pre/Post Numbering: 0/2 | |
0x598072c04da9: test $0x7, %bpl | |
0x598072c04dad: jz 0x598072c04dba | |
0x598072c04db3: mov $0xa, %r11d | |
0x598072c04db9: int3 | |
0x598072c04dba: mov $0xffff000000000000, %r11 | |
0x598072c04dc4: cmp %r11, %r14 | |
0x598072c04dc7: jz 0x598072c04dd5 | |
0x598072c04dcd: mov $0x82, %r11d | |
0x598072c04dd3: int3 | |
0x598072c04dd4: int3 | |
0x598072c04dd5: mov $0xffff000000000002, %r11 | |
0x598072c04ddf: cmp %r11, %r15 | |
0x598072c04de2: jz 0x598072c04def | |
0x598072c04de8: mov $0x78, %r11d | |
0x598072c04dee: int3 | |
0x598072c04def: cmp $0x989680, 0x20(%rbp) | |
0x598072c04df6: jb 0x598072c04e03 | |
0x598072c04dfc: mov $0x1e, %r11d | |
0x598072c04e02: int3 | |
0:< 1:-> SetArgument(IsFlushed, this(a), machine:this, W:SideState, bc#0) predicting Otherobj | |
0x598072c04e03: mov $0x105c06398, %r11 | |
0x598072c04e0d: mov (%r11), %r11 | |
0x598072c04e10: test %r11, %r11 | |
0x598072c04e13: jz 0x598072c04e20 | |
0x598072c04e19: mov $0x113, %r11d | |
0x598072c04e1f: int3 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Generated DFG JIT code for f#EI3Q4I:[0x10b086500->0x10b086e00->0x10b06c800, DFGFunctionCall, 56 (StrictMode)], instruction count = 56: | |
Optimized with execution counter = 375.000000/1290.000000, -625 | |
Code at [0x5fb903a04260, 0x5fb903a04ad2): | |
0x5fb903a04260: push %rbp | |
0x5fb903a04261: mov %rsp, %rbp | |
0x5fb903a04264: mov $0x10b086500, %r11 | |
0x5fb903a0426e: mov %r11, 0x10(%rbp) | |
0x5fb903a04272: lea -0x50(%rbp), %rsi | |
0x5fb903a04276: mov $0x10b006378, %r11 | |
0x5fb903a04280: cmp %rsi, (%r11) | |
0x5fb903a04283: ja 0x5fb903a048f4 | |
0x5fb903a04289: lea -0x40(%rbp), %rsp | |
0x5fb903a0428d: test $0xf, %spl | |
0x5fb903a04291: jz 0x5fb903a0429e | |
0x5fb903a04297: mov $0x64, %r11d | |
0x5fb903a0429d: int3 | |
0x5fb903a0429e: mov %rbx, -0x28(%rbp) | |
0x5fb903a042a2: mov %r12, -0x20(%rbp) | |
0x5fb903a042a6: mov %r13, -0x18(%rbp) | |
0x5fb903a042aa: mov %r14, -0x10(%rbp) | |
0x5fb903a042ae: mov %r15, -0x8(%rbp) | |
0x5fb903a042b2: mov $0xffff000000000000, %r14 | |
0x5fb903a042bc: mov %r14, %r15 | |
0x5fb903a042bf: or $0x2, %r15 | |
Block #0 (bc#0): (OSR target) | |
Execution count: 1.000000 | |
Predecessors: | |
Successors: #1 (ForwardEdge) #2 (ForwardEdge) | |
Dominated by: #0 | |
Dominates: #0 #1 #2 | |
Dominance Frontier: | |
Iterated Dominance Frontier: | |
Pre/Post Numbering: 0/2 | |
0x5fb903a042c3: test $0x7, %bpl | |
0x5fb903a042c7: jz 0x5fb903a042d4 | |
0x5fb903a042cd: mov $0xa, %r11d | |
0x5fb903a042d3: int3 | |
0x5fb903a042d4: mov $0xffff000000000000, %r11 | |
0x5fb903a042de: cmp %r11, %r14 | |
0x5fb903a042e1: jz 0x5fb903a042ef | |
0x5fb903a042e7: mov $0x82, %r11d | |
0x5fb903a042ed: int3 | |
0x5fb903a042ee: int3 | |
0x5fb903a042ef: mov $0xffff000000000002, %r11 | |
0x5fb903a042f9: cmp %r11, %r15 | |
0x5fb903a042fc: jz 0x5fb903a04309 | |
0x5fb903a04302: mov $0x78, %r11d | |
0x5fb903a04308: int3 | |
0x5fb903a04309: cmp $0x989680, 0x20(%rbp) | |
0x5fb903a04310: jb 0x5fb903a0431d | |
0x5fb903a04316: mov $0x1e, %r11d | |
0x5fb903a0431c: int3 | |
1:< 7:loc5> JSConstant(JS|PureInt, Other, Undefined, bc#0) | |
0x5fb903a0431d: mov $0x10b006398, %r11 | |
0x5fb903a04327: mov (%r11), %r11 | |
0x5fb903a0432a: test %r11, %r11 | |
0x5fb903a0432d: jz 0x5fb903a0433a | |
0x5fb903a04333: mov $0x113, %r11d | |
0x5fb903a04339: int3 | |
2:<!0:-> MovHint(@1, MustGen, loc0, W:SideState, ClobbersExit, bc#0) | |
0x5fb903a0433a: mov $0x10b006398, %r11 | |
0x5fb903a04344: mov (%r11), %r11 | |
0x5fb903a04347: test %r11, %r11 | |
0x5fb903a0434a: jz 0x5fb903a04357 | |
0x5fb903a04350: mov $0x113, %r11d | |
0x5fb903a04356: int3 | |
4:<!0:-> MovHint(@1, MustGen, loc1, W:SideState, ClobbersExit, bc#0, ExitInvalid) | |
0x5fb903a04357: mov $0x10b006398, %r11 | |
0x5fb903a04361: mov (%r11), %r11 | |
0x5fb903a04364: test %r11, %r11 | |
0x5fb903a04367: jz 0x5fb903a04374 | |
0x5fb903a0436d: mov $0x113, %r11d | |
0x5fb903a04373: int3 | |
6:<!0:-> MovHint(@1, MustGen, loc2, W:SideState, ClobbersExit, bc#0, ExitInvalid) | |
0x5fb903a04374: mov $0x10b006398, %r11 | |
0x5fb903a0437e: mov (%r11), %r11 | |
0x5fb903a04381: test %r11, %r11 | |
0x5fb903a04384: jz 0x5fb903a04391 | |
0x5fb903a0438a: mov $0x113, %r11d | |
0x5fb903a04390: int3 | |
8:<!0:-> MovHint(@1, MustGen, loc3, W:SideState, ClobbersExit, bc#0, ExitInvalid) | |
0x5fb903a04391: mov $0x10b006398, %r11 | |
0x5fb903a0439b: mov (%r11), %r11 | |
0x5fb903a0439e: test %r11, %r11 | |
0x5fb903a043a1: jz 0x5fb903a043ae | |
0x5fb903a043a7: mov $0x113, %r11d | |
0x5fb903a043ad: int3 | |
10:<!0:-> MovHint(@1, MustGen, loc4, W:SideState, ClobbersExit, bc#0, ExitInvalid) | |
0x5fb903a043ae: mov $0x10b006398, %r11 | |
0x5fb903a043b8: mov (%r11), %r11 | |
0x5fb903a043bb: test %r11, %r11 | |
0x5fb903a043be: jz 0x5fb903a043cb | |
0x5fb903a043c4: mov $0x113, %r11d | |
0x5fb903a043ca: int3 | |
12:<!0:-> MovHint(@1, MustGen, loc5, W:SideState, ClobbersExit, bc#0, ExitInvalid) | |
0x5fb903a043cb: mov $0x10b006398, %r11 | |
0x5fb903a043d5: mov (%r11), %r11 | |
0x5fb903a043d8: test %r11, %r11 | |
0x5fb903a043db: jz 0x5fb903a043e8 | |
0x5fb903a043e1: mov $0x113, %r11d | |
0x5fb903a043e7: int3 | |
14:<!0:-> MovHint(@1, MustGen, loc6, W:SideState, ClobbersExit, bc#0, ExitInvalid) | |
0x5fb903a043e8: mov $0x10b006398, %r11 | |
0x5fb903a043f2: mov (%r11), %r11 | |
0x5fb903a043f5: test %r11, %r11 | |
0x5fb903a043f8: jz 0x5fb903a04405 | |
0x5fb903a043fe: mov $0x113, %r11d | |
0x5fb903a04404: int3 | |
16:< 1:loc5> GetCallee(JS|UseAsOther, Function, R:Stack(3), bc#1) | |
0x5fb903a04405: mov $0x10b006398, %r11 | |
0x5fb903a0440f: mov (%r11), %r11 | |
0x5fb903a04412: test %r11, %r11 | |
0x5fb903a04415: jz 0x5fb903a04422 | |
0x5fb903a0441b: mov $0x113, %r11d | |
0x5fb903a04421: int3 | |
0x5fb903a04422: mov 0x18(%rbp), %rax | |
17:< 5:loc5> GetScope(KnownCell:@16, JS|UseAsOther, Otherobj, bc#1) | |
0x5fb903a04426: mov $0x10b006398, %r11 | |
0x5fb903a04430: mov (%r11), %r11 | |
0x5fb903a04433: test %r11, %r11 | |
0x5fb903a04436: jz 0x5fb903a04443 | |
0x5fb903a0443c: mov $0x113, %r11d | |
0x5fb903a04442: int3 | |
0x5fb903a04443: test %rax, %r15 | |
0x5fb903a04446: jz 0x5fb903a04453 | |
0x5fb903a0444c: mov $0xb4, %r11d | |
0x5fb903a04452: int3 | |
0x5fb903a04453: mov 0x10(%rax), %rax | |
18:<!0:-> MovHint(@17, MustGen, loc3, W:SideState, ClobbersExit, bc#1) | |
0x5fb903a04457: mov $0x10b006398, %r11 | |
0x5fb903a04461: mov (%r11), %r11 | |
0x5fb903a04464: test %r11, %r11 | |
0x5fb903a04467: jz 0x5fb903a04474 | |
0x5fb903a0446d: mov $0x113, %r11d | |
0x5fb903a04473: int3 | |
20:<!0:-> MovHint(@17, MustGen, loc4, W:SideState, ClobbersExit, bc#3) | |
0x5fb903a04474: mov $0x10b006398, %r11 | |
0x5fb903a0447e: mov (%r11), %r11 | |
0x5fb903a04481: test %r11, %r11 | |
0x5fb903a04484: jz 0x5fb903a04491 | |
0x5fb903a0448a: mov $0x113, %r11d | |
0x5fb903a04490: int3 | |
23:<!0:-> MovHint(@17, MustGen, loc7, W:SideState, ClobbersExit, bc#6) | |
0x5fb903a04491: mov $0x10b006398, %r11 | |
0x5fb903a0449b: mov (%r11), %r11 | |
0x5fb903a0449e: test %r11, %r11 | |
0x5fb903a044a1: jz 0x5fb903a044ae | |
0x5fb903a044a7: mov $0x113, %r11d | |
0x5fb903a044ad: int3 | |
26:< 1:loc6> GetClosureVar(KnownCell:@17, JS|PureInt, Function, scope1, R:ScopeProperties(1), Exits, bc#13) predicting Function | |
0x5fb903a044ae: mov $0x10b006398, %r11 | |
0x5fb903a044b8: mov (%r11), %r11 | |
0x5fb903a044bb: test %r11, %r11 | |
0x5fb903a044be: jz 0x5fb903a044cb | |
0x5fb903a044c4: mov $0x113, %r11d | |
0x5fb903a044ca: int3 | |
0x5fb903a044cb: test %rax, %r15 | |
0x5fb903a044ce: jz 0x5fb903a044db | |
0x5fb903a044d4: mov $0xb4, %r11d | |
0x5fb903a044da: int3 | |
0x5fb903a044db: mov 0x28(%rax), %rsi | |
27:<!0:-> MovHint(@26, MustGen, loc6, W:SideState, ClobbersExit, bc#13) | |
0x5fb903a044df: mov $0x10b006398, %r11 | |
0x5fb903a044e9: mov (%r11), %r11 | |
0x5fb903a044ec: test %r11, %r11 | |
0x5fb903a044ef: jz 0x5fb903a044fc | |
0x5fb903a044f5: mov $0x113, %r11d | |
0x5fb903a044fb: int3 | |
30:< 6:loc5> GetClosureVar(KnownCell:@17, JS|UseAsOther, Final, scope0, R:ScopeProperties(0), Exits, bc#21) predicting Final | |
0x5fb903a044fc: mov $0x10b006398, %r11 | |
0x5fb903a04506: mov (%r11), %r11 | |
0x5fb903a04509: test %r11, %r11 | |
0x5fb903a0450c: jz 0x5fb903a04519 | |
0x5fb903a04512: mov $0x113, %r11d | |
0x5fb903a04518: int3 | |
0x5fb903a04519: test %rax, %r15 | |
0x5fb903a0451c: jz 0x5fb903a04529 | |
0x5fb903a04522: mov $0xb4, %r11d | |
0x5fb903a04528: int3 | |
0x5fb903a04529: mov 0x20(%rax), %rsi | |
31:<!0:-> MovHint(@30, MustGen, this, W:SideState, ClobbersExit, bc#21) | |
0x5fb903a0452d: mov $0x10b006398, %r11 | |
0x5fb903a04537: mov (%r11), %r11 | |
0x5fb903a0453a: test %r11, %r11 | |
0x5fb903a0453d: jz 0x5fb903a0454a | |
0x5fb903a04543: mov $0x113, %r11d | |
0x5fb903a04549: int3 | |
34:<!0:-> MovHint(@30, MustGen, loc5, W:SideState, ClobbersExit, bc#31) | |
0x5fb903a0454a: mov $0x10b006398, %r11 | |
0x5fb903a04554: mov (%r11), %r11 | |
0x5fb903a04557: test %r11, %r11 | |
0x5fb903a0455a: jz 0x5fb903a04567 | |
0x5fb903a04560: mov $0x113, %r11d | |
0x5fb903a04566: int3 | |
38:<!0:-> CheckStructure(Check:Cell:@30, MustGen, [%B0:Object], R:JSCell_structureID, Exits, bc#36) | |
0x5fb903a04567: mov $0x10b006398, %r11 | |
0x5fb903a04571: mov (%r11), %r11 | |
0x5fb903a04574: test %r11, %r11 | |
0x5fb903a04577: jz 0x5fb903a04584 | |
0x5fb903a0457d: mov $0x113, %r11d | |
0x5fb903a04583: int3 | |
0x5fb903a04584: test %rsi, %r15 | |
0x5fb903a04587: jnz 0x5fb903a04a36 | |
0x5fb903a0458d: cmp $0x1de, (%rsi) | |
0x5fb903a04593: jnz 0x5fb903a04a5d | |
39:< 2:loc6> GetByOffset(KnownCell:@30, KnownCell:@30, JS|UseAsOther, Stringident, id2{id}, 0, inferredType = String, R:NamedProperties(2), Exits, bc#36) predicting Stringident | |
0x5fb903a04599: mov $0x10b006398, %r11 | |
0x5fb903a045a3: mov (%r11), %r11 | |
0x5fb903a045a6: test %r11, %r11 | |
0x5fb903a045a9: jz 0x5fb903a045b6 | |
0x5fb903a045af: mov $0x113, %r11d | |
0x5fb903a045b5: int3 | |
0x5fb903a045b6: test %rsi, %r15 | |
0x5fb903a045b9: jz 0x5fb903a045c6 | |
0x5fb903a045bf: mov $0xb4, %r11d | |
0x5fb903a045c5: int3 | |
0x5fb903a045c6: mov 0x10(%rsi), %rax | |
40:<!0:-> MovHint(@39, MustGen, loc8, W:SideState, ClobbersExit, bc#36) | |
0x5fb903a045ca: mov $0x10b006398, %r11 | |
0x5fb903a045d4: mov (%r11), %r11 | |
0x5fb903a045d7: test %r11, %r11 | |
0x5fb903a045da: jz 0x5fb903a045e7 | |
0x5fb903a045e0: mov $0x113, %r11d | |
0x5fb903a045e6: int3 | |
42:< 1:loc7> JSConstant(JS|UseAsOther, Stringident, Strong:String (atomic) (identifier): A, ID: 4, bc#45) | |
0x5fb903a045e7: mov $0x10b006398, %r11 | |
0x5fb903a045f1: mov (%r11), %r11 | |
0x5fb903a045f4: test %r11, %r11 | |
0x5fb903a045f7: jz 0x5fb903a04604 | |
0x5fb903a045fd: mov $0x113, %r11d | |
0x5fb903a04603: int3 | |
43:< 2:loc7> CompareStrictEq(Check:StringIdent:@39, StringIdent:@42, Boolean|UseAsOther, Bool, Exits, bc#45) | |
0x5fb903a04604: mov $0x10b006398, %r11 | |
0x5fb903a0460e: mov (%r11), %r11 | |
0x5fb903a04611: test %r11, %r11 | |
0x5fb903a04614: jz 0x5fb903a04621 | |
0x5fb903a0461a: mov $0x113, %r11d | |
0x5fb903a04620: int3 | |
0x5fb903a04621: mov $0x10b03b7a0, %r8 | |
0x5fb903a0462b: mov 0x10(%rax), %rdx | |
0x5fb903a0462f: test %rdx, %rdx | |
0x5fb903a04632: jz 0x5fb903a04a84 | |
0x5fb903a04638: test $0x10, 0x10(%rdx) | |
0x5fb903a0463c: jz 0x5fb903a04aab | |
0x5fb903a04642: mov 0x10(%r8), %rcx | |
0x5fb903a04646: cmp %rcx, %rdx | |
0x5fb903a04649: setz %dl | |
0x5fb903a0464c: movzx %dl, %edx | |
0x5fb903a0464f: or $0x6, %edx | |
53:<!0:-> Phantom(@30, MustGen, bc#45) | |
0x5fb903a04652: mov $0x10b006398, %r11 | |
0x5fb903a0465c: mov (%r11), %r11 | |
0x5fb903a0465f: test %r11, %r11 | |
0x5fb903a04662: jz 0x5fb903a0466f | |
0x5fb903a04668: mov $0x113, %r11d | |
0x5fb903a0466e: int3 | |
44:<!0:-> MovHint(@43, MustGen, loc8, W:SideState, ClobbersExit, bc#45) | |
0x5fb903a0466f: mov $0x10b006398, %r11 | |
0x5fb903a04679: mov (%r11), %r11 | |
0x5fb903a0467c: test %r11, %r11 | |
0x5fb903a0467f: jz 0x5fb903a0468c | |
0x5fb903a04685: mov $0x113, %r11d | |
0x5fb903a0468b: int3 | |
46:<!0:-> Branch(KnownBoolean:@43, MustGen, T:#1/w:1.000000, F:#2/w:1.000000, W:SideState, bc#49) | |
0x5fb903a0468c: mov $0x10b006398, %r11 | |
0x5fb903a04696: mov (%r11), %r11 | |
0x5fb903a04699: test %r11, %r11 | |
0x5fb903a0469c: jz 0x5fb903a046a9 | |
0x5fb903a046a2: mov $0x113, %r11d | |
0x5fb903a046a8: int3 | |
0x5fb903a046a9: test $0x1, %dl | |
0x5fb903a046ac: jz 0x5fb903a047d3 | |
Block #1 (bc#52): | |
Execution count: 1.000000 | |
Predecessors: #0 | |
Successors: | |
Dominated by: #0 #1 | |
Dominates: #1 | |
Dominance Frontier: | |
Iterated Dominance Frontier: | |
Pre/Post Numbering: 2/1 | |
0x5fb903a046b2: test $0x7, %bpl | |
0x5fb903a046b6: jz 0x5fb903a046c3 | |
0x5fb903a046bc: mov $0xa, %r11d | |
0x5fb903a046c2: int3 | |
0x5fb903a046c3: mov $0xffff000000000000, %r11 | |
0x5fb903a046cd: cmp %r11, %r14 | |
0x5fb903a046d0: jz 0x5fb903a046de | |
0x5fb903a046d6: mov $0x82, %r11d | |
0x5fb903a046dc: int3 | |
0x5fb903a046dd: int3 | |
0x5fb903a046de: mov $0xffff000000000002, %r11 | |
0x5fb903a046e8: cmp %r11, %r15 | |
0x5fb903a046eb: jz 0x5fb903a046f8 | |
0x5fb903a046f1: mov $0x78, %r11d | |
0x5fb903a046f7: int3 | |
0x5fb903a046f8: cmp $0x989680, 0x20(%rbp) | |
0x5fb903a046ff: jb 0x5fb903a0470c | |
0x5fb903a04705: mov $0x1e, %r11d | |
0x5fb903a0470b: int3 | |
47:< 1:loc7> JSConstant(JS|UseAsOther, Stringident, Strong:String (atomic) (identifier): ok, ID: 4, bc#52) | |
0x5fb903a0470c: mov $0x10b006398, %r11 | |
0x5fb903a04716: mov (%r11), %r11 | |
0x5fb903a04719: test %r11, %r11 | |
0x5fb903a0471c: jz 0x5fb903a04729 | |
0x5fb903a04722: mov $0x113, %r11d | |
0x5fb903a04728: int3 | |
52:<!0:-> CheckTierUpAtReturn(MustGen, W:SideState, Exits, bc#52) | |
0x5fb903a04729: mov $0x10b006398, %r11 | |
0x5fb903a04733: mov (%r11), %r11 | |
0x5fb903a04736: test %r11, %r11 | |
0x5fb903a04739: jz 0x5fb903a04746 | |
0x5fb903a0473f: mov $0x113, %r11d | |
0x5fb903a04745: int3 | |
0x5fb903a04746: mov $0x10b2b7144, %r11 | |
0x5fb903a04750: add $0xf, (%r11) | |
0x5fb903a04754: js 0x5fb903a04793 | |
0x5fb903a0475a: mov %rbp, %rdi | |
0x5fb903a0475d: mov $0x10b0047f0, %r11 | |
0x5fb903a04767: mov $0xbadbeef, (%r11) | |
0x5fb903a0476e: mov $0x10b0047f4, %r11 | |
0x5fb903a04778: mov $0xbadbeef, (%r11) | |
0x5fb903a0477f: mov $0x0, 0x24(%rbp) | |
0x5fb903a04786: mov $0x108a0c0c0, %r11 | |
0x5fb903a04790: call %r11 | |
48:<!0:-> Return(@47, MustGen, W:SideState, Exits, bc#52) | |
0x5fb903a04793: mov $0x10b006398, %r11 | |
0x5fb903a0479d: mov (%r11), %r11 | |
0x5fb903a047a0: test %r11, %r11 | |
0x5fb903a047a3: jz 0x5fb903a047b0 | |
0x5fb903a047a9: mov $0x113, %r11d | |
0x5fb903a047af: int3 | |
0x5fb903a047b0: mov $0x10b04d300, %rax | |
0x5fb903a047ba: mov -0x28(%rbp), %rbx | |
0x5fb903a047be: mov -0x20(%rbp), %r12 | |
0x5fb903a047c2: mov -0x18(%rbp), %r13 | |
0x5fb903a047c6: mov -0x10(%rbp), %r14 | |
0x5fb903a047ca: mov -0x8(%rbp), %r15 | |
0x5fb903a047ce: mov %rbp, %rsp | |
0x5fb903a047d1: pop %rbp | |
0x5fb903a047d2: ret | |
Block #2 (bc#54): | |
Execution count: 1.000000 | |
Predecessors: #0 | |
Successors: | |
Dominated by: #0 #2 | |
Dominates: #2 | |
Dominance Frontier: | |
Iterated Dominance Frontier: | |
Pre/Post Numbering: 1/0 | |
0x5fb903a047d3: test $0x7, %bpl | |
0x5fb903a047d7: jz 0x5fb903a047e4 | |
0x5fb903a047dd: mov $0xa, %r11d | |
0x5fb903a047e3: int3 | |
0x5fb903a047e4: mov $0xffff000000000000, %r11 | |
0x5fb903a047ee: cmp %r11, %r14 | |
0x5fb903a047f1: jz 0x5fb903a047ff | |
0x5fb903a047f7: mov $0x82, %r11d | |
0x5fb903a047fd: int3 | |
0x5fb903a047fe: int3 | |
0x5fb903a047ff: mov $0xffff000000000002, %r11 | |
0x5fb903a04809: cmp %r11, %r15 | |
0x5fb903a0480c: jz 0x5fb903a04819 | |
0x5fb903a04812: mov $0x78, %r11d | |
0x5fb903a04818: int3 | |
0x5fb903a04819: cmp $0x989680, 0x20(%rbp) | |
0x5fb903a04820: jb 0x5fb903a0482d | |
0x5fb903a04826: mov $0x1e, %r11d | |
0x5fb903a0482c: int3 | |
49:< 1:loc7> JSConstant(JS|UseAsOther, Stringident, Strong:String (atomic) (identifier): ok, ID: 4, bc#54) | |
0x5fb903a0482d: mov $0x10b006398, %r11 | |
0x5fb903a04837: mov (%r11), %r11 | |
0x5fb903a0483a: test %r11, %r11 | |
0x5fb903a0483d: jz 0x5fb903a0484a | |
0x5fb903a04843: mov $0x113, %r11d | |
0x5fb903a04849: int3 | |
51:<!0:-> CheckTierUpAtReturn(MustGen, W:SideState, Exits, bc#54) | |
0x5fb903a0484a: mov $0x10b006398, %r11 | |
0x5fb903a04854: mov (%r11), %r11 | |
0x5fb903a04857: test %r11, %r11 | |
0x5fb903a0485a: jz 0x5fb903a04867 | |
0x5fb903a04860: mov $0x113, %r11d | |
0x5fb903a04866: int3 | |
0x5fb903a04867: mov $0x10b2b7144, %r11 | |
0x5fb903a04871: add $0xf, (%r11) | |
0x5fb903a04875: js 0x5fb903a048b4 | |
0x5fb903a0487b: mov %rbp, %rdi | |
0x5fb903a0487e: mov $0x10b0047f0, %r11 | |
0x5fb903a04888: mov $0xbadbeef, (%r11) | |
0x5fb903a0488f: mov $0x10b0047f4, %r11 | |
0x5fb903a04899: mov $0xbadbeef, (%r11) | |
0x5fb903a048a0: mov $0x1, 0x24(%rbp) | |
0x5fb903a048a7: mov $0x108a0c0c0, %r11 | |
0x5fb903a048b1: call %r11 | |
50:<!0:-> Return(@49, MustGen, W:SideState, Exits, bc#54) | |
0x5fb903a048b4: mov $0x10b006398, %r11 | |
0x5fb903a048be: mov (%r11), %r11 | |
0x5fb903a048c1: test %r11, %r11 | |
0x5fb903a048c4: jz 0x5fb903a048d1 | |
0x5fb903a048ca: mov $0x113, %r11d | |
0x5fb903a048d0: int3 | |
0x5fb903a048d1: mov $0x10b04d300, %rax | |
0x5fb903a048db: mov -0x28(%rbp), %rbx | |
0x5fb903a048df: mov -0x20(%rbp), %r12 | |
0x5fb903a048e3: mov -0x18(%rbp), %r13 | |
0x5fb903a048e7: mov -0x10(%rbp), %r14 | |
0x5fb903a048eb: mov -0x8(%rbp), %r15 | |
0x5fb903a048ef: mov %rbp, %rsp | |
0x5fb903a048f2: pop %rbp | |
0x5fb903a048f3: ret | |
(End Of Main Path) | |
0x5fb903a048f4: mov $0x2, 0x24(%rbp) | |
0x5fb903a048fb: mov $0x10b086500, %rsi | |
0x5fb903a04905: mov %rbp, %rdi | |
0x5fb903a04908: mov $0x10b0047f0, %r11 | |
0x5fb903a04912: mov $0xbadbeef, (%r11) | |
0x5fb903a04919: mov $0x10b0047f4, %r11 | |
0x5fb903a04923: mov $0xbadbeef, (%r11) | |
0x5fb903a0492a: mov $0x3, 0x24(%rbp) | |
0x5fb903a04931: mov $0x108da4b40, %r11 | |
0x5fb903a0493b: call %r11 | |
0x5fb903a0493e: mov $0x10b006398, %r11 | |
0x5fb903a04948: mov (%r11), %r11 | |
0x5fb903a0494b: test %r11, %r11 | |
0x5fb903a0494e: jnz 0x5fb903a049ec | |
0x5fb903a04954: push %rbp | |
0x5fb903a04955: mov %rsp, %rbp | |
0x5fb903a04958: mov $0x10b086500, %r11 | |
0x5fb903a04962: mov %r11, 0x10(%rbp) | |
0x5fb903a04966: mov 0x20(%rbp), %esi | |
0x5fb903a04969: cmp $0x1, %esi | |
0x5fb903a0496c: jae 0x5fb903a04272 | |
0x5fb903a04972: mov $0x4, 0x24(%rbp) | |
0x5fb903a04979: mov %rbp, %rdi | |
0x5fb903a0497c: mov $0x10b0047f0, %r11 | |
0x5fb903a04986: mov $0xbadbeef, (%r11) | |
0x5fb903a0498d: mov $0x10b0047f4, %r11 | |
0x5fb903a04997: mov $0xbadbeef, (%r11) | |
0x5fb903a0499e: mov $0x5, 0x24(%rbp) | |
0x5fb903a049a5: mov $0x108da4bd0, %r11 | |
0x5fb903a049af: call %r11 | |
0x5fb903a049b2: mov $0x10b006398, %r11 | |
0x5fb903a049bc: mov (%r11), %r11 | |
0x5fb903a049bf: test %r11, %r11 | |
0x5fb903a049c2: jnz 0x5fb903a049ec | |
0x5fb903a049c8: test %eax, %eax | |
0x5fb903a049ca: jz 0x5fb903a04272 | |
0x5fb903a049d0: mov $0x6, 0x24(%rbp) | |
0x5fb903a049d7: mov %rax, %rdi | |
0x5fb903a049da: mov $0x5fb903a01ca0, %r11 | |
0x5fb903a049e4: call %r11 | |
0x5fb903a049e7: jmp 0x5fb903a04272 | |
0x5fb903a049ec: mov $0x10b006218, %r9 | |
0x5fb903a049f6: mov %rbx, (%r9) | |
0x5fb903a049f9: mov %r12, 0x8(%r9) | |
0x5fb903a049fd: mov %r13, 0x10(%r9) | |
0x5fb903a04a01: mov %r14, 0x18(%r9) | |
0x5fb903a04a05: mov %r15, 0x20(%r9) | |
0x5fb903a04a09: mov $0x10b002000, %rdi | |
0x5fb903a04a13: mov %rbp, %rsi | |
0x5fb903a04a16: lea -0x40(%rbp), %rsp | |
0x5fb903a04a1a: mov $0x108dad0a0, %r11 | |
0x5fb903a04a24: call %r11 | |
0x5fb903a04a27: mov $0x10b006290, %rsi | |
0x5fb903a04a31: mov (%rsi), %rsi | |
0x5fb903a04a34: jmp %rsi | |
0x5fb903a04a36: test $0x7, %bpl | |
0x5fb903a04a3a: jz 0x5fb903a04a47 | |
0x5fb903a04a40: mov $0xa, %r11d | |
0x5fb903a04a46: int3 | |
0x5fb903a04a47: mov $0x10b0062a0, %r11 | |
0x5fb903a04a51: mov $0x0, (%r11) | |
0x5fb903a04a58: jmp 0x5fb903a03fe0 | |
0x5fb903a04a5d: test $0x7, %bpl | |
0x5fb903a04a61: jz 0x5fb903a04a6e | |
0x5fb903a04a67: mov $0xa, %r11d | |
0x5fb903a04a6d: int3 | |
0x5fb903a04a6e: mov $0x10b0062a0, %r11 | |
0x5fb903a04a78: mov $0x1, (%r11) | |
0x5fb903a04a7f: jmp 0x5fb903a03fe0 | |
0x5fb903a04a84: test $0x7, %bpl | |
0x5fb903a04a88: jz 0x5fb903a04a95 | |
0x5fb903a04a8e: mov $0xa, %r11d | |
0x5fb903a04a94: int3 | |
0x5fb903a04a95: mov $0x10b0062a0, %r11 | |
0x5fb903a04a9f: mov $0x2, (%r11) | |
0x5fb903a04aa6: jmp 0x5fb903a03fe0 | |
0x5fb903a04aab: test $0x7, %bpl | |
0x5fb903a04aaf: jz 0x5fb903a04abc | |
0x5fb903a04ab5: mov $0xa, %r11d | |
0x5fb903a04abb: int3 | |
0x5fb903a04abc: mov $0x10b0062a0, %r11 | |
0x5fb903a04ac6: mov $0x3, (%r11) | |
0x5fb903a04acd: jmp 0x5fb903a03fe0 | |
Structures: | |
%B0:Object = 0x10b054d80:[Object, {id:0}, NonArray, Proto:0x10b033d60] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var testCase = function (actual, expected, message) { | |
if (actual !== expected) { | |
throw message + ". Expected '" + expected + "', but was '" + actual + "'"; | |
} | |
}; | |
var A = class A { | |
constructor() { | |
this.id = 'A' | |
} | |
}; | |
var B = class B extends A { | |
constructor (beforeSuper) { | |
var f = () => { | |
//debug('S1.2'); | |
var s = this; | |
//debug('S1.2.1') | |
//debug(s); | |
if (this.id === 'A') { | |
//debug('S1.3'); | |
return 'ok'; | |
} | |
//debug('S1.4'); | |
return 'ok'; | |
}; | |
let val; | |
//debug('S1.0'); | |
if (beforeSuper) { | |
//debug('S1.1'); | |
//var s = this; | |
//debug(s); | |
val = f(); | |
//debug('S1.3'); | |
super(); | |
debug('S1.3'); | |
} else { | |
super(); | |
val = f(); | |
} | |
this.res = val; | |
} | |
}; | |
var tryToCreate = function (classForCreate) { | |
let result = false; | |
try { | |
new B(true); | |
} catch (e) { | |
result = e instanceof ReferenceError; | |
} | |
return result; | |
} | |
var check = function (classForCheck) { | |
testCase(tryToCreate(classForCheck), true, 'Exception wasn\'t thrown or was not a reference error'); | |
var result = new classForCheck(false); | |
} | |
var checkSuccess = function (classForCheck) { | |
testCase((new classForCheck(false)).res, 'ok', 'Error in setting id '); | |
}; | |
noInline(B); | |
for (var i = 0; i < 10000; i++) { | |
check(B); | |
} | |
for (var i = 0; i < 10000; i++) { | |
checkSuccess(B); | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<global>#Dli5SE:[0x10b087d00->0x10b06d700, NoneGlobal, 38]: 38 m_instructions; 304 bytes; 1 parameter(s); 16 callee register(s); 5 variable(s) | |
[ 0] enter | |
[ 1] get_scope loc3 | |
[ 3] mov loc4, loc3 | |
[ 6] mov loc5, Undefined(const0) | |
[ 9] resolve_scope loc10, loc3, load(@id0), <GlobalProperty>, 1, 0x10b043700 | |
[ 16] get_from_scope loc6, loc10, load(@id0), 1024<ThrowIfNotFound|GlobalProperty|NotInitialization>, 163 predicting None | |
[ 24] mov loc9, String (atomic) (identifier): test_class_12.js, ID: 4(const1) | |
[ 27] call loc5, loc6, 2, 16 status(Could Take Slow Path, maxNumArguments = 1) Original; predicting None | |
[ 36] end loc5 | |
Identifiers: | |
id0 = load | |
Constants: | |
k0 = Undefined | |
k1 = String (atomic) (identifier): test_class_12.js, ID: 4 | |
<global>#DNtw0K:[0x10b087a00->0x10b06d600, NoneGlobal, 726]: 726 m_instructions; 5808 bytes; 1 parameter(s); 26 callee register(s); 5 variable(s) | |
[ 0] enter | |
[ 1] get_scope loc3 | |
[ 3] mov loc4, loc3 | |
[ 6] mov loc5, Undefined(const0) | |
[ 9] resolve_scope loc6, loc3, testCase(@id0), <GlobalVar>, 1, 0x10b043700 | |
[ 16] new_func_exp loc7, loc3, f0 | |
[ 20] put_to_scope loc6, testCase(@id0), loc7, 1048577<DoNotThrowIfNotFound|GlobalVar|Initialization>, <structure>, 188518536 | |
[ 27] resolve_scope loc6, loc3, A(@id1), <GlobalVar>, 1, 0x10b043700 | |
[ 34] mov loc7, <JSValue()>(const1) | |
[ 37] new_func_exp loc8, loc3, f1 | |
[ 41] new_object loc9, 2 | |
[ 45] mov loc10, String (atomic) (identifier): constructor, ID: 4(const2) | |
[ 48] new_object loc11, 3 | |
[ 52] mov loc12, True(const3) | |
[ 55] put_by_id loc11, configurable(@id2), loc12, IsDirect|Bottom | |
[ 64] put_by_id loc11, writable(@id3), loc12, IsDirect|Bottom | |
[ 73] put_by_id loc11, value(@id4), loc8, IsDirect|Bottom | |
[ 82] mov loc13, Cell: 0x10b06a2f0 (0x10b02a400:[Function, {name:100, length:101}, NonArray, Proto:0x10b039e00, Leaf]), ID: 56(const4) | |
[ 85] mov loc18, Undefined(const0) | |
[ 88] mov loc17, loc9 | |
[ 91] mov loc16, loc10 | |
[ 94] mov loc15, loc11 | |
[ 97] call loc19, loc13, 4, 24 status(Could Take Slow Path, maxNumArguments = 1) Original; predicting None | |
[ 106] mov loc11, String (atomic) (identifier): prototype, ID: 4(const5) | |
[ 109] new_object loc12, 2 | |
[ 113] mov loc13, True(const3) | |
[ 116] mov loc14, False(const6) | |
[ 119] put_by_id loc12, writable(@id3), loc14, IsDirect|Bottom | |
[ 128] put_by_id loc12, value(@id4), loc9, IsDirect|Bottom | |
[ 137] mov loc14, Cell: 0x10b06a2f0 (0x10b02a400:[Function, {name:100, length:101}, NonArray, Proto:0x10b039e00, Leaf]), ID: 56(const4) | |
[ 140] mov loc20, Undefined(const0) | |
[ 143] mov loc19, loc8 | |
[ 146] mov loc18, loc11 | |
[ 149] mov loc17, loc12 | |
[ 152] call loc21, loc14, 4, 26 status(Could Take Slow Path, maxNumArguments = 1) Original; predicting None | |
[ 161] mov loc7, loc8 | |
[ 164] put_to_scope loc6, A(@id1), loc8, 1048577<DoNotThrowIfNotFound|GlobalVar|Initialization>, <structure>, 188576616 | |
[ 171] resolve_scope loc6, loc3, B(@id5), <GlobalVar>, 1, 0x10b043700 | |
[ 178] mov loc7, <JSValue()>(const1) | |
[ 181] resolve_scope loc8, loc3, A(@id1), <GlobalVar>, 1, 0x10b043700 | |
[ 188] get_from_scope loc8, loc8, A(@id1), 1025<ThrowIfNotFound|GlobalVar|NotInitialization>, 188576616 predicting None | |
[ 196] new_func_exp loc9, loc3, f2 | |
[ 200] new_object loc10, 1 | |
[ 204] mov loc11, Null(const7) | |
[ 207] is_undefined loc12, loc8 | |
[ 210] jtrue loc12, 15(->225) | |
[ 213] eq_null loc12, loc8 | |
[ 216] jtrue loc12, 39(->255) | |
[ 219] is_object loc12, loc8 | |
[ 222] jtrue loc12, 6(->228) | |
[ 225] throw_static_error String (atomic) (identifier): The superclass is not an object., ID: 4(const8), false | |
[ 228] get_by_id loc11, loc8, prototype(@id6) predicting None | |
[ 237] is_object_or_null loc12, loc11 | |
[ 240] jtrue loc12, 6(->246) | |
[ 243] throw_static_error String (atomic) (identifier): The superclass's prototype is not an object., ID: 4(const9), false | |
[ 246] put_by_id loc9, __proto__(@id7), loc8, Bottom | |
[ 255] put_by_id loc10, __proto__(@id7), loc11, Bottom | |
[ 264] put_by_id loc9, PrivateSymbol.homeObject(@id8), loc10, Bottom | |
[ 273] mov loc11, String (atomic) (identifier): constructor, ID: 4(const2) | |
[ 276] new_object loc12, 3 | |
[ 280] mov loc13, True(const3) | |
[ 283] put_by_id loc12, configurable(@id2), loc13, IsDirect|Bottom | |
[ 292] put_by_id loc12, writable(@id3), loc13, IsDirect|Bottom | |
[ 301] put_by_id loc12, value(@id4), loc9, IsDirect|Bottom | |
[ 310] mov loc14, Cell: 0x10b06a2f0 (0x10b02a400:[Function, {name:100, length:101}, NonArray, Proto:0x10b039e00, Leaf]), ID: 56(const4) | |
[ 313] mov loc20, Undefined(const0) | |
[ 316] mov loc19, loc10 | |
[ 319] mov loc18, loc11 | |
[ 322] mov loc17, loc12 | |
[ 325] call loc21, loc14, 4, 26 status(Could Take Slow Path, maxNumArguments = 1) Original; predicting None | |
[ 334] mov loc12, String (atomic) (identifier): prototype, ID: 4(const5) | |
[ 337] new_object loc13, 2 | |
[ 341] mov loc14, True(const3) | |
[ 344] mov loc15, False(const6) | |
[ 347] put_by_id loc13, writable(@id3), loc15, IsDirect|Bottom | |
[ 356] put_by_id loc13, value(@id4), loc10, IsDirect|Bottom | |
[ 365] mov loc15, Cell: 0x10b06a2f0 (0x10b02a400:[Function, {name:100, length:101}, NonArray, Proto:0x10b039e00, Leaf]), ID: 56(const4) | |
[ 368] mov loc20, Undefined(const0) | |
[ 371] mov loc19, loc9 | |
[ 374] mov loc18, loc12 | |
[ 377] mov loc17, loc13 | |
[ 380] call loc21, loc15, 4, 26 status(Could Take Slow Path, maxNumArguments = 1) Original; predicting None | |
[ 389] mov loc7, loc9 | |
[ 392] put_to_scope loc6, B(@id5), loc9, 1048577<DoNotThrowIfNotFound|GlobalVar|Initialization>, <structure>, 188518528 | |
[ 399] resolve_scope loc6, loc3, tryToCreate(@id9), <GlobalVar>, 1, 0x10b043700 | |
[ 406] new_func_exp loc7, loc3, f3 | |
[ 410] put_to_scope loc6, tryToCreate(@id9), loc7, 1048577<DoNotThrowIfNotFound|GlobalVar|Initialization>, <structure>, 188576608 | |
[ 417] resolve_scope loc6, loc3, check(@id10), <GlobalVar>, 1, 0x10b043700 | |
[ 424] new_func_exp loc7, loc3, f4 | |
[ 428] put_to_scope loc6, check(@id10), loc7, 1048577<DoNotThrowIfNotFound|GlobalVar|Initialization>, <structure>, 188576632 | |
[ 435] resolve_scope loc6, loc3, checkSuccess(@id11), <GlobalVar>, 1, 0x10b043700 | |
[ 442] new_func_exp loc7, loc3, f5 | |
[ 446] put_to_scope loc6, checkSuccess(@id11), loc7, 1048577<DoNotThrowIfNotFound|GlobalVar|Initialization>, <structure>, 188576624 | |
[ 453] resolve_scope loc10, loc3, noInline(@id12), <GlobalProperty>, 1, 0x10b043700 | |
[ 460] get_from_scope loc6, loc10, noInline(@id12), 1024<ThrowIfNotFound|GlobalProperty|NotInitialization>, 170 predicting None | |
[ 468] resolve_scope loc9, loc3, B(@id5), <GlobalVar>, 1, 0x10b043700 | |
[ 475] get_from_scope loc9, loc9, B(@id5), 1025<ThrowIfNotFound|GlobalVar|NotInitialization>, 188518528 predicting None | |
[ 483] call loc5, loc6, 2, 16 status(Could Take Slow Path, maxNumArguments = 1) Original; predicting None | |
[ 492] resolve_scope loc6, loc3, i(@id13), <GlobalVar>, 1, 0x10b043700 | |
[ 499] put_to_scope loc6, i(@id13), Int32: 0(const10), 1048577<DoNotThrowIfNotFound|GlobalVar|Initialization>, <structure>, 188518544 | |
[ 506] resolve_scope loc6, loc3, i(@id13), <GlobalVar>, 1, 0x10b043700 | |
[ 513] get_from_scope loc7, loc6, i(@id13), 1025<ThrowIfNotFound|GlobalVar|NotInitialization>, 188518544 predicting None | |
[ 521] jnless loc7, Int32: 10000(const11), 87(->608) | |
[ 525] loop_hint | |
[ 526] resolve_scope loc10, loc3, check(@id10), <GlobalVar>, 1, 0x10b043700 | |
[ 533] get_from_scope loc6, loc10, check(@id10), 1025<ThrowIfNotFound|GlobalVar|NotInitialization>, 188576632 predicting None | |
[ 541] resolve_scope loc9, loc3, B(@id5), <GlobalVar>, 1, 0x10b043700 | |
[ 548] get_from_scope loc9, loc9, B(@id5), 1025<ThrowIfNotFound|GlobalVar|NotInitialization>, 188518528 predicting None | |
[ 556] call loc5, loc6, 2, 16 status(Could Take Slow Path, maxNumArguments = 1) Original; predicting None | |
[ 565] resolve_scope loc6, loc3, i(@id13), <GlobalVar>, 1, 0x10b043700 | |
[ 572] get_from_scope loc7, loc6, i(@id13), 1025<ThrowIfNotFound|GlobalVar|NotInitialization>, 188518544 predicting None | |
[ 580] inc loc7 | |
[ 582] put_to_scope loc6, i(@id13), loc7, 1025<ThrowIfNotFound|GlobalVar|NotInitialization>, <structure>, 188518544 | |
[ 589] resolve_scope loc6, loc3, i(@id13), <GlobalVar>, 1, 0x10b043700 | |
[ 596] get_from_scope loc7, loc6, i(@id13), 1025<ThrowIfNotFound|GlobalVar|NotInitialization>, 188518544 predicting None | |
[ 604] jless loc7, Int32: 10000(const11), -79(->525) | |
[ 608] resolve_scope loc6, loc3, i(@id13), <GlobalVar>, 1, 0x10b043700 | |
[ 615] put_to_scope loc6, i(@id13), Int32: 0(const10), 1048577<DoNotThrowIfNotFound|GlobalVar|Initialization>, <structure>, 188518544 | |
[ 622] resolve_scope loc6, loc3, i(@id13), <GlobalVar>, 1, 0x10b043700 | |
[ 629] get_from_scope loc7, loc6, i(@id13), 1025<ThrowIfNotFound|GlobalVar|NotInitialization>, 188518544 predicting None | |
[ 637] jnless loc7, Int32: 10000(const11), 87(->724) | |
[ 641] loop_hint | |
[ 642] resolve_scope loc10, loc3, checkSuccess(@id11), <GlobalVar>, 1, 0x10b043700 | |
[ 649] get_from_scope loc6, loc10, checkSuccess(@id11), 1025<ThrowIfNotFound|GlobalVar|NotInitialization>, 188576624 predicting None | |
[ 657] resolve_scope loc9, loc3, B(@id5), <GlobalVar>, 1, 0x10b043700 | |
[ 664] get_from_scope loc9, loc9, B(@id5), 1025<ThrowIfNotFound|GlobalVar|NotInitialization>, 188518528 predicting None | |
[ 672] call loc5, loc6, 2, 16 status(Could Take Slow Path, maxNumArguments = 1) Original; predicting None | |
[ 681] resolve_scope loc6, loc3, i(@id13), <GlobalVar>, 1, 0x10b043700 | |
[ 688] get_from_scope loc7, loc6, i(@id13), 1025<ThrowIfNotFound|GlobalVar|NotInitialization>, 188518544 predicting None | |
[ 696] inc loc7 | |
[ 698] put_to_scope loc6, i(@id13), loc7, 1025<ThrowIfNotFound|GlobalVar|NotInitialization>, <structure>, 188518544 | |
[ 705] resolve_scope loc6, loc3, i(@id13), <GlobalVar>, 1, 0x10b043700 | |
[ 712] get_from_scope loc7, loc6, i(@id13), 1025<ThrowIfNotFound|GlobalVar|NotInitialization>, 188518544 predicting None | |
[ 720] jless loc7, Int32: 10000(const11), -79(->641) | |
[ 724] end loc5 | |
Identifiers: | |
id0 = testCase | |
id1 = A | |
id2 = configurable | |
id3 = writable | |
id4 = value | |
id5 = B | |
id6 = prototype | |
id7 = __proto__ | |
id8 = PrivateSymbol.homeObject | |
id9 = tryToCreate | |
id10 = check | |
id11 = checkSuccess | |
id12 = noInline | |
id13 = i | |
Constants: | |
k0 = Undefined | |
k1 = <JSValue()> | |
k2 = String (atomic) (identifier): constructor, ID: 4 | |
k3 = True | |
k4 = Cell: 0x10b06a2f0 (0x10b02a400:[Function, {name:100, length:101}, NonArray, Proto:0x10b039e00, Leaf]), ID: 56 | |
k5 = String (atomic) (identifier): prototype, ID: 4 | |
k6 = False | |
k7 = Null | |
k8 = String (atomic) (identifier): The superclass is not an object., ID: 4 | |
k9 = String (atomic) (identifier): The superclass's prototype is not an object., ID: 4 | |
k10 = Int32: 0: in source as integer | |
k11 = Int32: 10000: in source as integer | |
check#Ec4uUn:[0x10b087700->0x10b06cb00, NoneFunctionCall, 80]: 80 m_instructions; 640 bytes; 2 parameter(s); 22 callee register(s); 7 variable(s) | |
[ 0] enter | |
[ 1] get_scope loc3 | |
[ 3] mov loc4, loc3 | |
[ 6] resolve_scope loc12, loc3, testCase(@id0), <GlobalVar>, 1, 0x10b043700 | |
[ 13] get_from_scope loc7, loc12, testCase(@id0), 1025<ThrowIfNotFound|GlobalVar|NotInitialization>, 188518536 predicting None | |
[ 21] resolve_scope loc16, loc3, tryToCreate(@id1), <GlobalVar>, 1, 0x10b043700 | |
[ 28] get_from_scope loc13, loc16, tryToCreate(@id1), 1025<ThrowIfNotFound|GlobalVar|NotInitialization>, 188576608 predicting None | |
[ 36] mov loc15, arg1 | |
[ 39] call loc11, loc13, 2, 22 status(Could Take Slow Path, maxNumArguments = 1) Original; predicting None | |
[ 48] mov loc10, True(const1) | |
[ 51] mov loc9, String (atomic) (identifier): Exception wasn't thrown or was not a reference error, ID: 4(const2) | |
[ 54] call loc7, loc7, 4, 18 status(Could Take Slow Path, maxNumArguments = 1) Original; predicting None | |
[ 63] mov loc10, arg1 | |
[ 66] mov loc9, False(const3) | |
[ 69] construct loc5, arg1, 2, 16 status(Could Take Slow Path, maxNumArguments = 1) predicting None | |
[ 78] ret Undefined(const4) | |
Identifiers: | |
id0 = testCase | |
id1 = tryToCreate | |
Constants: | |
k0 = Cell: 0x10b04bd60 (0x10b02b600:[SymbolTable, {}, NonArray, Leaf]), ID: 20 | |
k1 = True | |
k2 = String (atomic) (identifier): Exception wasn't thrown or was not a reference error, ID: 4 | |
k3 = False | |
k4 = Undefined | |
tryToCreate#EZrPRb:[0x10b087400->0x10b06cc00, NoneFunctionCall, 88]: 88 m_instructions; 704 bytes; 2 parameter(s); 18 callee register(s); 6 variable(s) | |
[ 0] enter | |
[ 1] get_scope loc3 | |
[ 3] mov loc4, loc3 | |
[ 6] mov loc6, <JSValue()>(const1) | |
[ 9] mov loc6, False(const2) | |
[ 12] resolve_scope loc7, loc3, B(@id0), <GlobalVar>, 1, 0x10b043700 | |
[ 19] get_from_scope loc8, loc7, B(@id0), 1025<ThrowIfNotFound|GlobalVar|NotInitialization>, 188518528 predicting None | |
[ 27] mov loc12, loc8 | |
[ 30] mov loc11, True(const3) | |
[ 33] construct loc8, loc8, 2, 18 status(Could Take Slow Path, maxNumArguments = 1) predicting None | |
[ 42] jmp 44(->86) | |
[ 44] catch loc7, loc8 | |
[ 47] mov loc3, loc4 | |
[ 50] mov loc9, loc8 | |
[ 53] resolve_scope loc10, loc3, ReferenceError(@id1), <GlobalProperty>, 1, 0x10b043700 | |
[ 60] get_from_scope loc11, loc10, ReferenceError(@id1), 1024<ThrowIfNotFound|GlobalProperty|NotInitialization>, 107 predicting None | |
[ 68] check_has_instance loc6, loc9, loc11, 18(->86) | |
[ 73] get_by_id loc12, loc11, prototype(@id2) predicting None | |
[ 82] instanceof loc6, loc9, loc12 | |
[ 86] ret loc6 | |
Identifiers: | |
id0 = B | |
id1 = ReferenceError | |
id2 = prototype | |
Constants: | |
k0 = Cell: 0x10b04bba0 (0x10b02b600:[SymbolTable, {}, NonArray, Leaf]), ID: 20 | |
k1 = <JSValue()> | |
k2 = False | |
k3 = True | |
Exception Handlers: | |
1: { start: [ 12] end: [ 44] target: [ 44] } catch | |
B#EOCSTa:[0x10b087100->0x10b06cd00, NoneFunctionConstruct, 235 (NeverInline) (StrictMode)]: 235 m_instructions; 1880 bytes; 2 parameter(s); 20 callee register(s); 9 variable(s); lexical environment in r-7 | |
[ 0] enter | |
[ 1] get_scope loc3 | |
[ 3] mov loc4, loc3 | |
[ 6] mov loc5, head3 | |
[ 9] create_lexical_environment loc6, loc3, Cell: 0x10b04b9e0 (0x10b02b600:[SymbolTable, {}, NonArray, Leaf]), ID: 20(const0), Undefined(const1) | |
[ 14] mov loc3, loc6 | |
[ 17] mov loc8, this | |
[ 20] mov this, <JSValue()>(const2) | |
[ 23] put_to_scope loc6, this(@id0), this, 1049604<DoNotThrowIfNotFound|LocalClosureVar|NotInitialization>, <structure>, 0 | |
[ 30] put_to_scope loc6, PrivateSymbol.newTargetLocal(@id1), loc8, 1049604<DoNotThrowIfNotFound|LocalClosureVar|NotInitialization>, <structure>, 1 | |
[ 37] put_to_scope loc6, PrivateSymbol.underscoreProtoScopeLocal(@id2), head3, 1049610<DoNotThrowIfNotFound|UnresolvedProperty|NotInitialization>, <structure>, 0 | |
[ 44] mov loc9, <JSValue()>(const2) | |
[ 47] op_new_arrow_func_exp loc7, loc3, f0, this | |
[ 52] mov loc9, Undefined(const1) | |
[ 55] jfalse arg1, 80(->135) | |
[ 58] op_check_tdz loc9 | |
[ 60] mov loc10, loc7 | |
[ 63] mov loc12, Undefined(const1) | |
[ 66] call loc9, loc10, 1, 18 status(Could Take Slow Path, maxNumArguments = 1) Original; predicting None | |
[ 75] get_by_id loc10, head3, __proto__(@id3) predicting None | |
[ 84] mov loc12, loc8 | |
[ 87] construct loc10, loc10, 1, 18 status(Could Take Slow Path, maxNumArguments = 1) predicting None | |
[ 96] mov this, loc10 | |
[ 99] put_to_scope loc6, this(@id0), this, 1049604<DoNotThrowIfNotFound|LocalClosureVar|NotInitialization>, <structure>, 0 | |
[ 106] resolve_scope loc14, loc3, debug(@id4), <GlobalProperty>, 2, 0x10b043700 | |
[ 113] get_from_scope loc10, loc14, debug(@id4), 1024<ThrowIfNotFound|GlobalProperty|NotInitialization>, 148 predicting None | |
[ 121] mov loc13, String (atomic) (identifier): S1.3, ID: 4(const3) | |
[ 124] call loc10, loc10, 2, 20 status(Could Take Slow Path, maxNumArguments = 1) Original; predicting None | |
[ 133] jmp 50(->183) | |
[ 135] get_by_id loc10, head3, __proto__(@id3) predicting None | |
[ 144] mov loc12, loc8 | |
[ 147] construct loc10, loc10, 1, 18 status(Could Take Slow Path, maxNumArguments = 1) predicting None | |
[ 156] mov this, loc10 | |
[ 159] put_to_scope loc6, this(@id0), this, 1049604<DoNotThrowIfNotFound|LocalClosureVar|NotInitialization>, <structure>, 0 | |
[ 166] op_check_tdz loc9 | |
[ 168] mov loc10, loc7 | |
[ 171] mov loc12, Undefined(const1) | |
[ 174] call loc9, loc10, 1, 18 status(Could Take Slow Path, maxNumArguments = 1) Original; predicting None | |
[ 183] get_from_scope this, loc6, this(@id0), 1049603<DoNotThrowIfNotFound|ClosureVar|NotInitialization>, 0 predicting None | |
[ 191] op_check_tdz this | |
[ 193] op_check_tdz loc9 | |
[ 195] put_by_id this, res(@id5), loc9, Bottom | |
[ 204] get_from_scope this, loc6, this(@id0), 1049603<DoNotThrowIfNotFound|ClosureVar|NotInitialization>, 0 predicting None | |
[ 212] op_check_tdz this | |
[ 214] is_object loc10, this | |
[ 217] jtrue loc10, 16(->233) | |
[ 220] is_undefined loc10, this | |
[ 223] jtrue loc10, 6(->229) | |
[ 226] throw_static_error String (atomic) (identifier): Cannot return a non-object type in the constructor of a derived class., ID: 4(const4), false | |
[ 229] op_check_tdz this | |
[ 231] ret this | |
[ 233] ret this | |
Identifiers: | |
id0 = this | |
id1 = PrivateSymbol.newTargetLocal | |
id2 = PrivateSymbol.underscoreProtoScopeLocal | |
id3 = __proto__ | |
id4 = debug | |
id5 = res | |
Constants: | |
k0 = Cell: 0x10b04b9e0 (0x10b02b600:[SymbolTable, {}, NonArray, Leaf]), ID: 20 | |
k1 = Undefined | |
k2 = <JSValue()> | |
k3 = String (atomic) (identifier): S1.3, ID: 4 | |
k4 = String (atomic) (identifier): Cannot return a non-object type in the constructor of a derived class., ID: 4 | |
f#EI3Q4I:[0x10b086e00->0x10b06c800, NoneFunctionCall, 56 (StrictMode)]: 56 m_instructions; 448 bytes; 1 parameter(s); 10 callee register(s); 7 variable(s) | |
[ 0] enter | |
[ 1] get_scope loc3 | |
[ 3] mov loc4, loc3 | |
[ 6] resolve_scope loc7, loc3, this(@id0), <ClosureVar>, 0, 0x10b04b9e0 | |
[ 13] get_from_scope loc6, loc7, PrivateSymbol.newTargetLocal(@id1), 1049603<DoNotThrowIfNotFound|ClosureVar|NotInitialization>, 1 predicting None | |
[ 21] get_from_scope this, loc7, this(@id0), 1049603<DoNotThrowIfNotFound|ClosureVar|NotInitialization>, 0 predicting None | |
[ 29] op_check_tdz this | |
[ 31] mov loc5, this | |
[ 34] op_check_tdz this | |
[ 36] get_by_id loc8, this, id(@id2) predicting None | |
[ 45] stricteq loc8, loc8, String (atomic) (identifier): A, ID: 4(const1) | |
[ 49] jfalse loc8, 5(->54) | |
[ 52] ret String (atomic) (identifier): ok, ID: 4(const2) | |
[ 54] ret String (atomic) (identifier): ok, ID: 4(const2) | |
Identifiers: | |
id0 = this | |
id1 = PrivateSymbol.newTargetLocal | |
id2 = id | |
Constants: | |
k0 = Cell: 0x10b04b900 (0x10b02b600:[SymbolTable, {}, NonArray, Leaf]), ID: 20 | |
k1 = String (atomic) (identifier): A, ID: 4 | |
k2 = String (atomic) (identifier): ok, ID: 4 | |
testCase#AbtSW4:[0x10b086b00->0x10b06cf00, NoneFunctionCall, 48]: 48 m_instructions; 384 bytes; 4 parameter(s); 12 callee register(s); 6 variable(s) | |
[ 0] enter | |
[ 1] get_scope loc3 | |
[ 3] mov loc4, loc3 | |
[ 6] nstricteq loc6, arg1, arg2 | |
[ 10] jfalse loc6, 36(->46) | |
[ 13] mov loc6, arg3 | |
[ 16] mov loc7, String (atomic) (identifier): . Expected ', ID: 4(const1) | |
[ 19] to_primitive loc6, loc6 | |
[ 22] mov loc8, arg2 | |
[ 25] to_primitive loc8, loc8 | |
[ 28] mov loc9, String (atomic) (identifier): ', but was ', ID: 4(const2) | |
[ 31] mov loc10, arg1 | |
[ 34] to_primitive loc10, loc10 | |
[ 37] mov loc11, String (atomic) (identifier): ', ID: 4(const3) | |
[ 40] strcat loc6, loc6, 6 | |
[ 44] throw loc6 | |
[ 46] ret Undefined(const4) | |
Constants: | |
k0 = Cell: 0x10b04b820 (0x10b02b600:[SymbolTable, {}, NonArray, Leaf]), ID: 20 | |
k1 = String (atomic) (identifier): . Expected ', ID: 4 | |
k2 = String (atomic) (identifier): ', but was ', ID: 4 | |
k3 = String (atomic) (identifier): ', ID: 4 | |
k4 = Undefined | |
A#DkhXIP:[0x10b086800->0x10b06ce00, NoneFunctionConstruct, 36 (StrictMode)]: 36 m_instructions; 288 bytes; 1 parameter(s); 8 callee register(s); 7 variable(s) | |
[ 0] enter | |
[ 1] get_scope loc3 | |
[ 3] mov loc4, loc3 | |
[ 6] mov loc5, head3 | |
[ 9] mov loc6, this | |
[ 12] create_this this, this, 1, 0 | |
[ 17] put_by_id this, id(@id0), String (atomic) (identifier): A, ID: 4(const1), Bottom | |
[ 26] is_object loc7, this | |
[ 29] jtrue loc7, 5(->34) | |
[ 32] ret this | |
[ 34] ret this | |
Identifiers: | |
id0 = id | |
Constants: | |
k0 = Cell: 0x10b04b6d0 (0x10b02b600:[SymbolTable, {}, NonArray, Leaf]), ID: 20 | |
k1 = String (atomic) (identifier): A, ID: 4 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment