Document Object Model • ϒϥβͰͷHTMLͷ෦දݱ • Ͱ͋Γɺ͔ͭ JavaScript Ͱૢ࡞Ͱ͖Δσʔλߏ var div = document.body. fi rstChild; var p2 = div.childNodes[1]; p2.appendChild(document.createElement("span")); +BWB4DSJQU &OHJOF CJOEJOHT
ͷ • ηϨΫλͷଐੑͷ • ηϨΫλͷཁૉ໊ͷ \^ BCDETQFDJ fi DJUZ MJ \^ BCDETQFDJ fi DJUZ MJ fi STUMJOF\^ BCDETQFDJ fi DJUZ VMMJ \^ BCDETQFDJ fi DJUZ VMPM MJ \^ BCDETQFDJ fi DJUZ I <SFMVQ>\^ BCDETQFDJ fi DJUZ VMPMMJSFE \^ BCDETQFDJ fi DJUZ MJSFEMFWFM \^ BCDETQFDJ fi DJUZ YZ \^ BCDETQFDJ fi DJUZ TUZMF BCDETQFDJ fi DJUZ http://taligarsiel.com/Projects/howbrowserswork1.htm#Speci fi ty
(let i =0;i <100000;i++) { let li = document.createElement("li"); i.textContent = `${i}`; // fragment ʹରͯ͠ೖΕ͓ͯ͘ fr.appendChild(li); } ul.appendChild(fr);
• not a string (จࣈྻ͡Όͳ͔ͬͨ) • not an array index (ྻͷఴࣈ͡Ό ͳ͔ͬͨ) • etc https://github.com/v8/v8/blob/master/src/deoptimizer/deoptimize-reason.h • ༧ظͤ͵ૢ࡞ • cow array's elements changed (ίϐʔͨ͠ྻ͕มߋ͞Εͨ) • division by zero (θϩআࢉ) • Out of bounds (ྻͷൣғ͑) • etc
• not a string (จࣈྻ͡Όͳ͔ͬͨ) • not an array index (ྻͷఴࣈ͡Ό ͳ͔ͬͨ) • etc https://github.com/v8/v8/blob/master/src/deoptimizer/deoptimize-reason.h • ༧ظͤ͵ૢ࡞ • cow array's elements changed (ίϐʔͨ͠ྻ͕มߋ͞Εͨ) • division by zero (θϩআࢉ) • Out of bounds (ྻͷൣғ͑) • etc ֮͑Δඞཁͳ͍͕ɺॻ࣌͘ʹʮԿΛ͠ͳ͍ํ͕͍͍͔ʯΛ ͓͍ͬͯͨ΄͏͕ྑ͍ɻ