exceptions.js (1166B)
1 function uncaughtException() { 2 throw "unreachable" 3 } 4 5 function caughtException() { 6 try { 7 throw "reachable"; 8 } catch (e) { 9 debugger; 10 } 11 } 12 13 function deepError() { 14 function a() { b(); } 15 function b() { c(); } 16 function c() { throw new Error(); } 17 18 try { 19 a(); 20 } catch (e) {} 21 22 debugger; 23 } 24 25 function deepErrorFinally() { 26 function a() { b(); } 27 function b() { 28 try { 29 c(); 30 } finally { 31 debugger; 32 } 33 } 34 function c() { throw new Error(); } 35 36 try { 37 a(); 38 } catch (e) {} 39 40 debugger; 41 } 42 43 function deepErrorCatch() { 44 function a() { b(); } 45 function b() { 46 try { 47 c(); 48 } catch (e) { 49 debugger; 50 throw e; 51 } 52 } 53 function c() { throw new Error(); } 54 55 try { 56 a(); 57 } catch (e) {} 58 59 debugger; 60 } 61 62 function deepErrorThrowDifferent() { 63 function a() { b(); } 64 function b() { 65 try { 66 c(); 67 } catch (e) { 68 throw new Error(); 69 } 70 } 71 function c() { throw new Error(); } 72 73 try { 74 a(); 75 } catch (e) {} 76 77 debugger; 78 } 79 80 function throwInNewFunctionArgument() { 81 new Function("f=doesntExists()", "return 42;")(); 82 } 83 84 function inlineExc() { 85 'abc'.push(1); 86 } 87 88 inlineExc();