--- Optimized code ---
optimization_id = 1
source_position = 23
kind = TURBOFAN_JS
name = sumWithForLoop
compiler = turbofan
address = 0x1996405c2209
Instructions (size = 620)
0x7083e40044c0 0 55 push rbp
0x7083e40044c1 1 4889e5 REX.W movq rbp,rsp
0x7083e40044c4 4 56 push rsi
0x7083e40044c5 5 57 push rdi
0x7083e40044c6 6 50 push rax
0x7083e40044c7 7 4883ec28 REX.W subq rsp,0x28
0x7083e40044cb b 488975e0 REX.W movq [rbp-0x20],rsi
0x7083e40044cf f 493b65a0 REX.W cmpq rsp,[r13-0x60] (external value (StackGuard::address_of_jslimit()))
0x7083e40044d3 13 0f8671010000 jna 0x7083e400464a <+0x18a>
0x7083e40044d9 19 488b5518 REX.W movq rdx,[rbp+0x18]
0x7083e40044dd 1d f6c201 testb rdx,0x1
0x7083e40044e0 20 0f8422020000 jz 0x7083e4004708 <+0x248>
0x7083e40044e6 26 48b919af39186d300000 REX.W movq rcx,0x306d1839af19
0x7083e40044f0 30 48394aff REX.W cmpq [rdx-0x1],rcx
0x7083e40044f4 34 0f8512020000 jnz 0x7083e400470c <+0x24c>
0x7083e40044fa 3a 488b4a17 REX.W movq rcx,[rdx+0x17]
0x7083e40044fe 3e 48c1f920 REX.W sarq rcx, 32
0x7083e4004502 42 85c9 testl rcx,rcx
0x7083e4004504 44 0f871c000000 ja 0x7083e4004526 <+0x66>
0x7083e400450a 4a 33c0 xorl rax,rax
0x7083e400450c 4c 488b4de8 REX.W movq rcx,[rbp-0x18]
0x7083e4004510 50 488be5 REX.W movq rsp,rbp
0x7083e4004513 53 5d pop rbp
0x7083e4004514 54 4883f902 REX.W cmpq rcx,0x2
0x7083e4004518 58 7f03 jg 0x7083e400451d <+0x5d>
0x7083e400451a 5a c21000 ret 0x10
0x7083e400451d 5d 415a pop r10
0x7083e400451f 5f 488d24cc REX.W leaq rsp,[rsp+rcx*8]
0x7083e4004523 63 4152 push r10
0x7083e4004525 65 c3 retl
0x7083e4004526 66 488b7a0f REX.W movq rdi,[rdx+0xf]
0x7083e400452a 6a 4c8b470f REX.W movq r8,[rdi+0xf]
0x7083e400452e 6e 49c1f820 REX.W sarq r8, 32
0x7083e4004532 72 458bc0 movl r8,r8
0x7083e4004535 75 41807db100 cmpb [r13-0x4f] (external value (StackGuard::address_of_interrupt_request(StackGuard::InterruptLevel::kNoH
0x7083e400453a 7a 0f8540010000 jnz 0x7083e4004680 <+0x1c0>
0x7083e4004540 80 41b901000000 movl r9,0x1
0x7083e4004546 86 660f1f840000000000 nop
0x7083e400454f 8f 660f1f840000000000 nop
0x7083e4004558 98 660f1f840000000000 nop
0x7083e4004561 a1 660f1f840000000000 nop
0x7083e400456a aa 660f1f840000000000 nop
0x7083e4004573 b3 660f1f840000000000 nop
0x7083e400457c bc 0f1f4000 nop
0x7083e4004580 c0 443bc9 cmpl r9,rcx
0x7083e4004583 c3 0f8391000000 jnc 0x7083e400461a <+0x15a>
0x7083e4004589 c9 4e8b5ccf0f REX.W movq r11,[rdi+r9*8+0xf]
0x7083e400458e ce 49c1fb20 REX.W sarq r11, 32
0x7083e4004592 d2 458bdb movl r11,r11
0x7083e4004595 d5 458d6101 leal r12,[r9+0x1]
0x7083e4004599 d9 4503d8 addl r11,r8
0x7083e400459c dc 0f806e010000 jo 0x7083e4004710 <+0x250>
0x7083e40045a2 e2 443be1 cmpl r12,rcx
0x7083e40045a5 e5 0f837b000000 jnc 0x7083e4004626 <+0x166>
0x7083e40045ab eb 4e8b44e70f REX.W movq r8,[rdi+r12*8+0xf]
0x7083e40045b0 f0 49c1f820 REX.W sarq r8, 32
0x7083e40045b4 f4 458bc0 movl r8,r8
0x7083e40045b7 f7 458d4c2401 leal r9,[r12+0x1]
0x7083e40045bc fc 4503c3 addl r8,r11
0x7083e40045bf ff 0f804f010000 jo 0x7083e4004714 <+0x254>
0x7083e40045c5 105 443bc9 cmpl r9,rcx
0x7083e40045c8 108 0f8364000000 jnc 0x7083e4004632 <+0x172>
0x7083e40045ce 10e 4e8b5ccf0f REX.W movq r11,[rdi+r9*8+0xf]
0x7083e40045d3 113 49c1fb20 REX.W sarq r11, 32
0x7083e40045d7 117 458bdb movl r11,r11
0x7083e40045da 11a 458d6101 leal r12,[r9+0x1]
0x7083e40045de 11e 4503d8 addl r11,r8
0x7083e40045e1 121 0f8031010000 jo 0x7083e4004718 <+0x258>
0x7083e40045e7 127 443be1 cmpl r12,rcx
0x7083e40045ea 12a 0f834e000000 jnc 0x7083e400463e <+0x17e>
0x7083e40045f0 130 4e8b44e70f REX.W movq r8,[rdi+r12*8+0xf]
0x7083e40045f5 135 49c1f820 REX.W sarq r8, 32
0x7083e40045f9 139 458bc0 movl r8,r8
0x7083e40045fc 13c 458d4c2401 leal r9,[r12+0x1]
0x7083e4004601 141 4503c3 addl r8,r11
0x7083e4004604 144 0f8012010000 jo 0x7083e400471c <+0x25c>
0x7083e400460a 14a 41807db100 cmpb [r13-0x4f] (external value (StackGuard::address_of_interrupt_request(StackGuard::InterruptLevel::kNoH
0x7083e400460f 14f 0f85ac000000 jnz 0x7083e40046c1 <+0x201>
0x7083e4004615 155 e966ffffff jmp 0x7083e4004580 <+0xc0>
0x7083e400461a 15a 49c1e020 REX.W shlq r8, 32
0x7083e400461e 15e 498bc0 REX.W movq rax,r8
0x7083e4004621 161 e9e6feffff jmp 0x7083e400450c <+0x4c>
0x7083e4004626 166 49c1e320 REX.W shlq r11, 32
0x7083e400462a 16a 498bc3 REX.W movq rax,r11
0x7083e400462d 16d e9dafeffff jmp 0x7083e400450c <+0x4c>
0x7083e4004632 172 49c1e020 REX.W shlq r8, 32
0x7083e4004636 176 498bc0 REX.W movq rax,r8
0x7083e4004639 179 e9cefeffff jmp 0x7083e400450c <+0x4c>
0x7083e400463e 17e 49c1e320 REX.W shlq r11, 32
0x7083e4004642 182 498bc3 REX.W movq rax,r11
0x7083e4004645 185 e9c2feffff jmp 0x7083e400450c <+0x4c>
0x7083e400464a 18a 48ba0000000010000000 REX.W movq rdx,0x1000000000
0x7083e4004654 194 52 push rdx
0x7083e4004655 195 48bb80a53a0100000000 REX.W movq rbx,0x13aa580
0x7083e400465f 19f b801000000 movl rax,0x1
0x7083e4004664 1a4 48be090138186d300000 REX.W movq rsi,0x306d18380109
0x7083e400466e 1ae 49ba8039ab0100000000 REX.W movq r10,0x1ab3980 (CEntry_Return1_ArgvOnStack_NoBuiltinExit)
0x7083e4004678 1b8 41ffd2 call r10
0x7083e400467b 1bb e959feffff jmp 0x7083e40044d9 <+0x19>
0x7083e4004680 1c0 48bbd0a33a0100000000 REX.W movq rbx,0x13aa3d0
0x7083e400468a 1ca 33c0 xorl rax,rax
0x7083e400468c 1cc 48be090138186d300000 REX.W movq rsi,0x306d18380109
0x7083e4004696 1d6 48897dd0 REX.W movq [rbp-0x30],rdi
0x7083e400469a 1da 48894dc8 REX.W movq [rbp-0x38],rcx
0x7083e400469e 1de 4c8945c0 REX.W movq [rbp-0x40],r8
0x7083e40046a2 1e2 4c8b15c7ffffff REX.W movq r10,[rip+0xffffffc7]
0x7083e40046a9 1e9 41ffd2 call r10
0x7083e40046ac 1ec 488b5518 REX.W movq rdx,[rbp+0x18]
0x7083e40046b0 1f0 488b7dd0 REX.W movq rdi,[rbp-0x30]
0x7083e40046b4 1f4 488b4dc8 REX.W movq rcx,[rbp-0x38]
0x7083e40046b8 1f8 448b45c0 movl r8,[rbp-0x40]
0x7083e40046bc 1fc e97ffeffff jmp 0x7083e4004540 <+0x80>
0x7083e40046c1 201 4c894dd8 REX.W movq [rbp-0x28],r9
0x7083e40046c5 205 4c8945c0 REX.W movq [rbp-0x40],r8
0x7083e40046c9 209 48897dd0 REX.W movq [rbp-0x30],rdi
0x7083e40046cd 20d 48894dc8 REX.W movq [rbp-0x38],rcx
0x7083e40046d1 211 488b1daaffffff REX.W movq rbx,[rip+0xffffffaa]
0x7083e40046d8 218 33c0 xorl rax,rax
0x7083e40046da 21a 48be090138186d300000 REX.W movq rsi,0x306d18380109
0x7083e40046e4 224 4c8b1585ffffff REX.W movq r10,[rip+0xffffff85]
0x7083e40046eb 22b 41ffd2 call r10
0x7083e40046ee 22e 488b5518 REX.W movq rdx,[rbp+0x18]
0x7083e40046f2 232 448b4dd8 movl r9,[rbp-0x28]
0x7083e40046f6 236 4c8b45c0 REX.W movq r8,[rbp-0x40]
0x7083e40046fa 23a 488b7dd0 REX.W movq rdi,[rbp-0x30]
0x7083e40046fe 23e 488b4dc8 REX.W movq rcx,[rbp-0x38]
0x7083e4004702 242 e979feffff jmp 0x7083e4004580 <+0xc0>
0x7083e4004707 247 90 nop
0x7083e4004708 248 41ff55d8 call [r13-0x28]
0x7083e400470c 24c 41ff55d8 call [r13-0x28]
0x7083e4004710 250 41ff55d8 call [r13-0x28]
0x7083e4004714 254 41ff55d8 call [r13-0x28]
0x7083e4004718 258 41ff55d8 call [r13-0x28]
0x7083e400471c 25c 41ff55d8 call [r13-0x28]
0x7083e4004720 260 41ff55e0 call [r13-0x20]
0x7083e4004724 264 41ff55e0 call [r13-0x20]
0x7083e4004728 268 41ff55e0 call [r13-0x20]
Source positions:
pc offset position
b 23
19 89
3e 80
4a 159
66 130
75 54
c0 80
c9 130
d5 103
d9 130
e2 54
e2 80
eb 130
f7 103
fc 130
105 54
105 80
10e 130
11a 103
11e 130
127 54
127 80
130 130
13c 103
141 130
14a 54
15a 159
18a 23
1c0 54
Inlined functions (count = 0)
Deoptimization Input Data (deopt points = 9)
index bytecode-offset pc
0 4 NA
1 4 NA
2 4 NA
3 4 NA
4 4 NA
5 4 NA
6 -1 1bb
7 31 1ec
8 31 22e
Safepoints (stack slots = 10, entries = 3, byte size = 30)
0x7083e400467b 1bb slots (sp->fp): 0000100000 deopt 6 trampoline: 260
0x7083e40046ac 1ec slots (sp->fp): 0010100000 deopt 7 trampoline: 264
0x7083e40046ee 22e slots (sp->fp): 0010100000 deopt 8 trampoline: 268
RelocInfo (size = c5)
0x7083e40044e8 full embedded object (0x306d1839af19 <Map[20](PACKED_SMI_ELEMENTS)>)
0x7083e4004666 full embedded object (0x306d18380109 <NativeContext[12e]>)
0x7083e400468e full embedded object (0x306d18380109 <NativeContext[12e]>)
0x7083e40046dc full embedded object (0x306d18380109 <NativeContext[12e]>)
0x7083e4004708 deopt script offset (59)
0x7083e4004708 deopt inlining id (ffffffffffffffff)
0x7083e4004708 deopt reason (Smi)
0x7083e4004708 deopt index
0x7083e400470c deopt script offset (59)
0x7083e400470c deopt inlining id (ffffffffffffffff)
0x7083e400470c deopt reason (wrong map)
0x7083e400470c deopt index
0x7083e4004710 deopt script offset (82)
0x7083e4004710 deopt inlining id (ffffffffffffffff)
0x7083e4004710 deopt reason (overflow)
0x7083e4004710 deopt index
0x7083e4004714 deopt script offset (82)
0x7083e4004714 deopt inlining id (ffffffffffffffff)
0x7083e4004714 deopt reason (overflow)
0x7083e4004714 deopt index
0x7083e4004718 deopt script offset (82)
0x7083e4004718 deopt inlining id (ffffffffffffffff)
0x7083e4004718 deopt reason (overflow)
0x7083e4004718 deopt index
0x7083e400471c deopt script offset (82)
0x7083e400471c deopt inlining id (ffffffffffffffff)
0x7083e400471c deopt reason (overflow)
0x7083e400471c deopt index
0x7083e4004720 deopt script offset (17)
0x7083e4004720 deopt inlining id (ffffffffffffffff)
0x7083e4004720 deopt reason ((unknown))
0x7083e4004720 deopt index
0x7083e4004724 deopt script offset (36)
0x7083e4004724 deopt inlining id (ffffffffffffffff)
0x7083e4004724 deopt reason ((unknown))
0x7083e4004724 deopt index
0x7083e4004728 deopt script offset (36)
0x7083e4004728 deopt inlining id (ffffffffffffffff)
0x7083e4004728 deopt reason ((unknown))
0x7083e4004728 deopt index
--- End code ---
--- Raw source ---
(values) {
let total = 0
values.forEach((value) => {
total += value
})
return total
}
--- Optimized code ---
optimization_id = 2
source_position = 186
kind = TURBOFAN_JS
name = sumWithForEach
compiler = turbofan
address = 0x1996405c2e21
Instructions (size = 628)
0x7083e4004dc0 0 55 push rbp
0x7083e4004dc1 1 4889e5 REX.W movq rbp,rsp
0x7083e4004dc4 4 56 push rsi
0x7083e4004dc5 5 57 push rdi
0x7083e4004dc6 6 50 push rax
0x7083e4004dc7 7 4883ec38 REX.W subq rsp,0x38
0x7083e4004dcb b 4c8d9424a0feffff REX.W leaq r10,[rsp-0x160]
0x7083e4004dd3 13 4d3b55a0 REX.W cmpq r10,[r13-0x60] (external value (StackGuard::address_of_jslimit()))
0x7083e4004dd7 17 0f8676010000 jna 0x7083e4004f53 <+0x193>
0x7083e4004ddd 1d 498b4d50 REX.W movq rcx,[r13+0x50] (external value (Heap::NewSpaceAllocationTopAddress()))
0x7083e4004de1 21 488d7960 REX.W leaq rdi,[rcx+0x60]
0x7083e4004de5 25 49397d58 REX.W cmpq [r13+0x58] (external value (Heap::NewSpaceAllocationLimitAddress())),rdi
0x7083e4004de9 29 0f86a5010000 jna 0x7083e4004f94 <+0x1d4>
0x7083e4004def 2f 488d7928 REX.W leaq rdi,[rcx+0x28]
0x7083e4004df3 33 49897d50 REX.W movq [r13+0x50] (external value (Heap::NewSpaceAllocationTopAddress())),rdi
0x7083e4004df7 37 4883c101 REX.W addq rcx,0x1
0x7083e4004dfb 3b 49b8591438186d300000 REX.W movq r8,0x306d18381459
0x7083e4004e05 45 4c8941ff REX.W movq [rcx-0x1],r8
0x7083e4004e09 49 49b80000000003000000 REX.W movq r8,0x300000000
0x7083e4004e13 53 4c894107 REX.W movq [rcx+0x7],r8
0x7083e4004e17 57 49b89137f2e0f12e0000 REX.W movq r8,0x2ef1e0f23791
0x7083e4004e21 61 4c89410f REX.W movq [rcx+0xf],r8
0x7083e4004e25 65 48897117 REX.W movq [rcx+0x17],rsi
0x7083e4004e29 69 48c7411f00000000 REX.W movq [rcx+0x1f],0x0
0x7083e4004e31 71 48894de0 REX.W movq [rbp-0x20],rcx
0x7083e4004e35 75 4c8b4518 REX.W movq r8,[rbp+0x18]
0x7083e4004e39 79 41f6c001 testb r8,0x1
0x7083e4004e3d 7d 0f84d7010000 jz 0x7083e400501a <+0x25a>
0x7083e4004e43 83 49b919af39186d300000 REX.W movq r9,0x306d1839af19
0x7083e4004e4d 8d 4d3948ff REX.W cmpq [r8-0x1],r9
0x7083e4004e51 91 0f85c7010000 jnz 0x7083e400501e <+0x25e>
0x7083e4004e57 97 49b95938f2e0f12e0000 REX.W movq r9,0x2ef1e0f23859
0x7083e4004e61 a1 458b590f movl r11,[r9+0xf]
0x7083e4004e65 a5 4c8d6738 REX.W leaq r12,[rdi+0x38]
0x7083e4004e69 a9 4d896550 REX.W movq [r13+0x50] (external value (Heap::NewSpaceAllocationTopAddress())),r12
0x7083e4004e6d ad 4883c701 REX.W addq rdi,0x1
0x7083e4004e71 b1 49bc991038186d300000 REX.W movq r12,0x306d18381099
0x7083e4004e7b bb 4c8967ff REX.W movq [rdi-0x1],r12
0x7083e4004e7f bf 4d8ba5e8020000 REX.W movq r12,[r13+0x2e8] (root (empty_fixed_array))
0x7083e4004e86 c6 4c896707 REX.W movq [rdi+0x7],r12
0x7083e4004e8a ca 4c89670f REX.W movq [rdi+0xf],r12
0x7083e4004e8e ce 49bce937f2e0f12e0000 REX.W movq r12,0x2ef1e0f237e9
0x7083e4004e98 d8 4c89671f REX.W movq [rdi+0x1f],r12
0x7083e4004e9c dc 48894f27 REX.W movq [rdi+0x27],rcx
0x7083e4004ea0 e0 4c894f2f REX.W movq [rdi+0x2f],r9
0x7083e4004ea4 e4 44895f17 movl [rdi+0x17],r11
0x7083e4004ea8 e8 4d8b4817 REX.W movq r9,[r8+0x17]
0x7083e4004eac ec 4d8bd9 REX.W movq r11,r9
0x7083e4004eaf ef 49c1fb20 REX.W sarq r11, 32
0x7083e4004eb3 f3 48897dd8 REX.W movq [rbp-0x28],rdi
0x7083e4004eb7 f7 4531e4 xorl r12,r12
0x7083e4004eba fa 4d8bbd28020000 REX.W movq r15,[r13+0x228] (root (the_hole_value))
0x7083e4004ec1 101 e968000000 jmp 0x7083e4004f2e <+0x16e>
0x7083e4004ec6 106 660f1f840000000000 nop
0x7083e4004ecf 10f 660f1f840000000000 nop
0x7083e4004ed8 118 660f1f840000000000 nop
0x7083e4004ee1 121 660f1f840000000000 nop
0x7083e4004eea 12a 660f1f840000000000 nop
0x7083e4004ef3 133 660f1f840000000000 nop
0x7083e4004efc 13c 0f1f4000 nop
0x7083e4004f00 140 f6c301 testb rbx,0x1
0x7083e4004f03 143 0f8519010000 jnz 0x7083e4005022 <+0x262>
0x7083e4004f09 149 488bd3 REX.W movq rdx,rbx
0x7083e4004f0c 14c 48c1fa20 REX.W sarq rdx, 32
0x7083e4004f10 150 8bd2 movl rdx,rdx
0x7083e4004f12 152 488bf0 REX.W movq rsi,rax
0x7083e4004f15 155 48c1fe20 REX.W sarq rsi, 32
0x7083e4004f19 159 8bf6 movl rsi,rsi
0x7083e4004f1b 15b 03f2 addl rsi,rdx
0x7083e4004f1d 15d 0f8003010000 jo 0x7083e4005026 <+0x266>
0x7083e4004f23 163 48c1e620 REX.W shlq rsi, 32
0x7083e4004f27 167 4889711f REX.W movq [rcx+0x1f],rsi
0x7083e4004f2b 16b 458be6 movl r12,r14
0x7083e4004f2e 16e 453be3 cmpl r12,r11
0x7083e4004f31 171 0f8380000000 jnc 0x7083e4004fb7 <+0x1f7>
0x7083e4004f37 177 458d742401 leal r14,[r12+0x1]
0x7083e4004f3c 17c 498b400f REX.W movq rax,[r8+0xf]
0x7083e4004f40 180 4a8b44e00f REX.W movq rax,[rax+r12*8+0xf]
0x7083e4004f45 185 488b591f REX.W movq rbx,[rcx+0x1f]
0x7083e4004f49 189 4c3bfb REX.W cmpq r15,rbx
0x7083e4004f4c 18c 75b2 jnz 0x7083e4004f00 <+0x140>
0x7083e4004f4e 18e e982000000 jmp 0x7083e4004fd5 <+0x215>
0x7083e4004f53 193 48b90000000060010000 REX.W movq rcx,0x16000000000
0x7083e4004f5d 19d 51 push rcx
0x7083e4004f5e 19e 488975d8 REX.W movq [rbp-0x28],rsi
0x7083e4004f62 1a2 b801000000 movl rax,0x1
0x7083e4004f67 1a7 48b9090138186d300000 REX.W movq rcx,0x306d18380109
0x7083e4004f71 1b1 48bb80a53a0100000000 REX.W movq rbx,0x13aa580
0x7083e4004f7b 1bb 488bf1 REX.W movq rsi,rcx
0x7083e4004f7e 1be 49ba8039ab0100000000 REX.W movq r10,0x1ab3980 (CEntry_Return1_ArgvOnStack_NoBuiltinExit)
0x7083e4004f88 1c8 41ffd2 call r10
0x7083e4004f8b 1cb 488b75d8 REX.W movq rsi,[rbp-0x28]
0x7083e4004f8f 1cf e949feffff jmp 0x7083e4004ddd <+0x1d>
0x7083e4004f94 1d4 ba60000000 movl rdx,0x60
0x7083e4004f99 1d9 488975d8 REX.W movq [rbp-0x28],rsi
0x7083e4004f9d 1dd 49ba80c5a00100000000 REX.W movq r10,0x1a0c580 (AllocateInYoungGeneration)
0x7083e4004fa7 1e7 41ffd2 call r10
0x7083e4004faa 1ea 488d48ff REX.W leaq rcx,[rax-0x1]
0x7083e4004fae 1ee 488b75d8 REX.W movq rsi,[rbp-0x28]
0x7083e4004fb2 1f2 e938feffff jmp 0x7083e4004def <+0x2f>
0x7083e4004fb7 1f7 488b411f REX.W movq rax,[rcx+0x1f]
0x7083e4004fbb 1fb 488b4de8 REX.W movq rcx,[rbp-0x18]
0x7083e4004fbf 1ff 488be5 REX.W movq rsp,rbp
0x7083e4004fc2 202 5d pop rbp
0x7083e4004fc3 203 4883f902 REX.W cmpq rcx,0x2
0x7083e4004fc7 207 7f03 jg 0x7083e4004fcc <+0x20c>
0x7083e4004fc9 209 c21000 ret 0x10
0x7083e4004fcc 20c 415a pop r10
0x7083e4004fce 20e 488d24cc REX.W leaq rsp,[rsp+rcx*8]
0x7083e4004fd2 212 4152 push r10
0x7083e4004fd4 214 c3 retl
0x7083e4004fd5 215 4d8b9dd01c0000 REX.W movq r11,[r13+0x1cd0] (root (total_string))
0x7083e4004fdc 21c 4153 push r11
0x7083e4004fde 21e 4c8975d0 REX.W movq [rbp-0x30],r14
0x7083e4004fe2 222 4c894dc8 REX.W movq [rbp-0x38],r9
0x7083e4004fe6 226 488945c0 REX.W movq [rbp-0x40],rax
0x7083e4004fea 22a 4c8965b8 REX.W movq [rbp-0x48],r12
0x7083e4004fee 22e 48895db0 REX.W movq [rbp-0x50],rbx
0x7083e4004ff2 232 48be090138186d300000 REX.W movq rsi,0x306d18380109
0x7083e4004ffc 23c 48bbd0993a0100000000 REX.W movq rbx,0x13a99d0
0x7083e4005006 246 b801000000 movl rax,0x1
0x7083e400500b 24b 4c8bdb REX.W movq r11,rbx
0x7083e400500e 24e 4c8b156bffffff REX.W movq r10,[rip+0xffffff6b]
0x7083e4005015 255 41ffd2 call r10
0x7083e4005018 258 cc int3l
0x7083e4005019 259 90 nop
0x7083e400501a 25a 41ff55d8 call [r13-0x28]
0x7083e400501e 25e 41ff55d8 call [r13-0x28]
0x7083e4005022 262 41ff55d8 call [r13-0x28]
0x7083e4005026 266 41ff55d8 call [r13-0x28]
0x7083e400502a 26a 41ff55e0 call [r13-0x20]
0x7083e400502e 26e 41ff55e0 call [r13-0x20]
0x7083e4005032 272 6690 nop
Source positions:
pc offset position
b 186
69 211
71 224
140 258
163 255
16e 224
185 249
193 186
1f7 274
1fb 287
215 249
Inlined functions (count = 1)
0x2ef1e0f237e9 <SharedFunctionInfo>
Deoptimization Input Data (deopt points = 6)
index bytecode-offset pc
0 11 NA
1 11 NA
2 7 NA
3 7 NA
4 -1 1cb
5 2 258
Safepoints (stack slots = 12, entries = 3, byte size = 30)
0x7083e4004f8b 1cb slots (sp->fp): 000001000000 deopt 4 trampoline: 26a
0x7083e4004faa 1ea slots (sp->fp): 000001000000
0x7083e4005018 258 slots (sp->fp): 100001100000 deopt 5 trampoline: 26e
RelocInfo (size = 8a)
0x7083e4004dfd full embedded object (0x306d18381459 <Map(FUNCTION_CONTEXT_TYPE)>)
0x7083e4004e19 full embedded object (0x2ef1e0f23791 <ScopeInfo FUNCTION_SCOPE>)
0x7083e4004e45 full embedded object (0x306d1839af19 <Map[20](PACKED_SMI_ELEMENTS)>)
0x7083e4004e59 full embedded object (0x2ef1e0f23859 <FeedbackCell[many closures]>)
0x7083e4004e73 full embedded object (0x306d18381099 <Map[38](HOLEY_ELEMENTS)>)
0x7083e4004e90 full embedded object (0x2ef1e0f237e9 <SharedFunctionInfo>)
0x7083e4004f69 full embedded object (0x306d18380109 <NativeContext[12e]>)
0x7083e4004ff4 full embedded object (0x306d18380109 <NativeContext[12e]>)
0x7083e400501a deopt script offset (e0)
0x7083e400501a deopt inlining id (ffffffffffffffff)
0x7083e400501a deopt reason (Smi)
0x7083e400501a deopt index
0x7083e400501e deopt script offset (e0)
0x7083e400501e deopt inlining id (ffffffffffffffff)
0x7083e400501e deopt reason (wrong map)
0x7083e400501e deopt index
0x7083e4005022 deopt script offset (102)
0x7083e4005022 deopt inlining id (0)
0x7083e4005022 deopt reason (not a Smi)
0x7083e4005022 deopt index
0x7083e4005026 deopt script offset (102)
0x7083e4005026 deopt inlining id (0)
0x7083e4005026 deopt reason (overflow)
0x7083e4005026 deopt index
0x7083e400502a deopt script offset (ba)
0x7083e400502a deopt inlining id (ffffffffffffffff)
0x7083e400502a deopt reason ((unknown))
0x7083e400502a deopt index
0x7083e400502e deopt script offset (f9)
0x7083e400502e deopt inlining id (0)
0x7083e400502e deopt reason ((unknown))
0x7083e400502e deopt index
--- End code ---
function sumWithForLoop(values) {
let total = 0;
for (let index = 0; index < values.length; index += 1) {
total += values[index];
}
return total;
}
function sumWithForEach(values) {
let total = 0;
values.forEach((value) => {
total += value;
});
return total;
}
const values = Array.from({ length: 100 }, (_, index) => index + 1);
for (let iteration = 0; iteration < 100000; iteration += 1) {
globalThis.forLoopResult = sumWithForLoop(values);
globalThis.forEachResult = sumWithForEach(values);
}