ê° JavaScript ìì§ë§ë¤ ê³ ì í ì¤í ì¶ì íìì ì¬ì©íì§ë§, ëì ìì¤ì 구조ë 꽤 ì¼ê´ì ì ëë¤. 모ë 구íì ì¤íìì ë³ëì ì¤ì ì¬ì©íì¬ ê° í¨ì í¸ì¶ì ëíë ëë¤. ì¤ë¥ë¥¼ ì§ì ì ì¼ë¡ ì¼ì¼í¨ í¸ì¶ì 맨 ìì ë°°ì¹ëê³ ì ì²´ í¸ì¶ ì²´ì¸ì ìì í¸ì¶ì 맨 ìëì ë°°ì¹ë©ëë¤. ë¤ìì ì¤í ì¶ì ì ëª ê°ì§ ìì ëë¤.
function foo() {
bar();
}
function bar() {
baz();
}
function baz() {
console.log(new Error().stack);
}
foo();
#### JavaScriptCore baz@filename.js:10:24 bar@filename.js:6:6 foo@filename.js:2:6 global code@filename.js:13:4 #### SpiderMonkey baz@filename.js:10:15 bar@filename.js:6:3 foo@filename.js:2:3 @filename.js:13:1 #### V8 Error at baz (filename.js:10:15) at bar (filename.js:6:3) at foo (filename.js:2:3) at filename.js:13:1
ìì§ë§ë¤ ì´ ê°ì ì¤ì íë ìì ì´ ë¤ë¦
ëë¤. ëë¶ë¶ì ìµì ìì§ì Error
ê°ì²´ê° ìì±ë ë ì´ ê°ì ì¤ì í©ëë¤. ì¦, ë¤ìì ì¬ì©íì¬ í¨ì ë´ìì ì ì²´ í¸ì¶ ì¤í ì 보를 ì»ì ì ììµëë¤:
function foo() {
console.log(new Error().stack);
}
ì¤ë¥ë¥¼ ë°ììí¨ ë¤ì ë¤ì ì²ë¦¬í íìê° ììµëë¤.
V8ììë ë¹íì¤ Error.captureStackTrace()
, Error.stackTraceLimit
ë° Error.prepareStackTrace()
API를 ì¬ì©íì¬ ì¤í ì¶ì ì ì¬ì©ì ì ìí ì ììµëë¤. ìì¸í ë´ì©ì V8 문ììì ì¤í ì¶ì API를 참조íì¸ì.
ì¤í íë ìì ëª
ìì í¨ì í¸ì¶ ì´ì¸ì ê²ì¼ ìë ììµëë¤. ì를 ë¤ì´ ì´ë²¤í¸ 리ì¤ë, íììì ìì
, íë¡ë¯¸ì¤ ì²ë¦¬ê¸°ë 모ë ìì²´ í¸ì¶ ì²´ì¸ì ììí©ëë¤. eval()
ë° Function
ìì±ì í¸ì¶ ë´ì ìì¤ ì½ëë ì¤íì ëíë©ëë¤.
console.log(new Function("return new Error('Function failed')")().stack);
console.log("====");
console.log(eval("new Error('eval failed')").stack);
#### JavaScriptCore anonymous@ global code@filename.js:1:65 ==== eval code@ eval@[native code] global code@filename.js:3:17 #### SpiderMonkey anonymous@filename.js line 1 > Function:1:8 @filename.js:1:65 ==== @filename.js line 3 > eval:1:1 @filename.js:3:13 #### V8 Error: Function failed at eval (eval at <anonymous> (filename.js:1:13), <anonymous>:1:8) at filename.js:1:65 ==== Error: eval failed at eval (eval at <anonymous> (filename.js:3:13), <anonymous>:1:1) at filename.js:3:13
Firefoxììë //# sourceURL
ì§ìì´ë¥¼ ì¬ì©íì¬ íê° ìì¤ì ì´ë¦ì ì§ì í ì ììµëë¤. ìì¸í ë´ì©ì Firefox ëë²ê·¸ íê° ìì¤ ë¬¸ìì //# sourceURL
ì§ì문ì ì¬ì©íì¬ eval
ì¤í¬ë¦½í¸ ì´ë¦ ì§ì í기 ë¸ë¡ê·¸ ê²ì물ì 참조íì¸ì.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4