Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Debugger Statementについて
Search
Taketoshi Aono(青野健利 a.k.a brn)
March 20, 2018
Programming
1
570
Debugger Statementについて
Debugger Statementの紹介と使い方
proposal-debugger-operandsについて
Taketoshi Aono(青野健利 a.k.a brn)
March 20, 2018
Tweet
Share
More Decks by Taketoshi Aono(青野健利 a.k.a brn)
See All by Taketoshi Aono(青野健利 a.k.a brn)
document.write再考
brn
6
3k
Parsing Javascript
brn
14
9.3k
JSON & Object Tips
brn
1
500
CA 1Day Youth Bootcamp for Frontend LT
brn
0
950
Modern TypeScript
brn
2
810
javascript - behind the scene
brn
3
740
tc39 proposals
brn
0
880
プロダクト開発とTypeScript
brn
8
2.9k
React-Springでリッチなアニメーション
brn
1
700
Other Decks in Programming
See All in Programming
AI Ramen Fight
yusukebe
0
110
状態遷移図を書こう / Sequence Chart vs State Diagram
orgachem
PRO
3
270
TypeScriptでDXを上げろ! Hono編
yusukebe
3
870
Go製CLIツールをnpmで配布するには
syumai
0
520
0から始めるモジュラーモノリス-クリーンなモノリスを目指して
sushi0120
0
160
CIを整備してメンテナンスを生成AIに任せる
hazumirr
0
260
AI Agent 時代のソフトウェア開発を支える AWS Cloud Development Kit (CDK)
konokenj
6
1k
商品比較サービス「マイベスト」における パーソナライズレコメンドの第一歩
ucchiii43
0
200
SQLアンチパターン第2版 データベースプログラミングで陥りがちな失敗とその対策 / Intro to SQL Antipatterns 2nd
twada
PRO
33
9.7k
知って得する@cloudflare_vite-pluginのあれこれ
chimame
1
120
React 使いじゃなくても知っておきたい教養としての React
oukayuka
6
370
No Install CMS戦略 〜 5年先を見据えたフロントエンド開発を考える / no_install_cms
rdlabo
0
350
Featured
See All Featured
RailsConf 2023
tenderlove
30
1.2k
Gamification - CAS2011
davidbonilla
81
5.4k
Git: the NoSQL Database
bkeepers
PRO
431
65k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
720
Thoughts on Productivity
jonyablonski
69
4.8k
A designer walks into a library…
pauljervisheath
207
24k
KATA
mclloyd
30
14k
A Tale of Four Properties
chriscoyier
160
23k
Unsuck your backbone
ammeep
671
58k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.6k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
47
9.6k
Site-Speed That Sticks
csswizardry
10
720
Transcript
Debugger Statement
Name @brn (ꫬꅿ⨳ⵃ) Occupation ؿٗٝزؒٝسؒٝآص،٥ط؎ذ؍ـؒٝآص، Company Cyberagent ،سذؙأةآؔ AI Messenger
OSS Contributor of V8 About http://info.b6n.ch
What is debugger? debugger statementהכ؝٦س⚥ח剅ֻֿהדرغحؖ饯⹛׃ـ ٖ؎ؙ׃גֻ堣腉
const ret = foo()! if (ret) {! debugger;! }!
None
In V8 BytecodeהJIT؝٦سדⰟ鸐ךⳢ椚遤ֲ
Bytecode DebuggerعٝسָٓDebuggerغ؎ز؝٦س鋅אֽה Runtime_HandleDebuggerStatementㄎן⳿׃גծ✲ח涫 ꐮׁגְ؝٦ٕغحؙㄎן⳿ׅ In V8
JIT Code JIT⻉ך麓玎דㄏ⟀ך⽃秪⻉הְֲ剑黝⻉ָ遤ָծך麓 玎דDebugger Statementכ⯓玎ך Runtime_HandleDebuggerStatementㄎן⳿׃ך؝٦سפה湫 䱸㢌䳔ׁ In V8
Break Point אְדזךדBreakpointחאְג ـٓؐؠך؎ٝألؙةַ䭷㹀ֿׅהָדֹ • In V8
None
In V8 DebugBreakכDebugger Statementה麩גוֿח䯏Ⰵַׁ ַזְךד✲חRuntime_HandleDebuggerStatementהַח כ㢌䳔דֹזְ
Bytecode DebugBreakعٝسָٓDebug::HandleDebugBreakㄎן⳿׃ גծ穠卓Debugger StatementהずׄⳢ椚遤ֲ In V8
JIT Code(X64) ـٖ؎ؙه؎ٝزכׅץגInt3ㄏ⟀ָ涪遤ׁגSIGTRAP䒷ֹ 饯ֿׅ interruptָ饯ֿהStackGuard::HandleInterruptsָㄎן⳿ׁ גծַֿDebug::HandleDebugBreakפ In V8
Future ⯓傈ךTC39 Meetingדproposal-debugger-operandָStage1ח ז
proposal-debugger-operand ـٖ؎ؙه؎ٝزךؚٕ٦ف⻉ח״♧俕ON/OFFծ勴⟝➰ֹـ ٖ؎ؙך鏣㹀瘝ָ遤ִ Future
const log = (v) => {! debugger { group: 'logging'
};! console.log(v);! };!
const route = (httpRequest) => {! debugger {! test: ()
=> httpRequest.tracing || !isProduction! };! console.log(v);! };!
㹋騧 涪儗חכDebugger㙵鴥דծٔٔ٦أ儗ח嶊ׅ Webpack⢪גזUglifyָ嶊׃גֻ v4ך㜥さכmode productionד䩛ח嶊ִ
class Logger {! fatal() {! console.error("Error");! debugger;! }! }!
תה ⢪ג➂㼰זְ⽩韋דָׅ涪儗ח⢪ֲה穠圓嚂דׅ