OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
99 assertEquals(26, e.stack.split('\n').length); | 99 assertEquals(26, e.stack.split('\n').length); |
100 } | 100 } |
101 | 101 |
102 Error.stackTraceLimit = NaN; | 102 Error.stackTraceLimit = NaN; |
103 try { | 103 try { |
104 rec1(0); | 104 rec1(0); |
105 } catch (e) { | 105 } catch (e) { |
106 assertEquals(1, e.stack.split('\n').length); | 106 assertEquals(1, e.stack.split('\n').length); |
107 } | 107 } |
108 | 108 |
| 109 // A limit outside the range of integers. |
| 110 Error.stackTraceLimit = 1e12; |
| 111 try { |
| 112 rec1(0); |
| 113 } catch (e) { |
| 114 assertTrue(e.stack.split('\n').length > 100); |
| 115 } |
| 116 |
| 117 Error.stackTraceLimit = Infinity; |
| 118 try { |
| 119 rec1(0); |
| 120 } catch (e) { |
| 121 assertTrue(e.stack.split('\n').length > 100); |
| 122 } |
| 123 |
109 Error.stackTraceLimit = "not a number"; | 124 Error.stackTraceLimit = "not a number"; |
110 try { | 125 try { |
111 rec1(0); | 126 rec1(0); |
112 } catch (e) { | 127 } catch (e) { |
113 assertEquals(undefined, e.stack); | 128 assertEquals(undefined, e.stack); |
114 } | 129 } |
115 | 130 |
116 Error.stackTraceLimit = 3; | 131 Error.stackTraceLimit = 3; |
117 Error = ""; // Overwrite Error in the global object. | 132 Error = ""; // Overwrite Error in the global object. |
118 try { | 133 try { |
119 rec1(0); | 134 rec1(0); |
120 } catch (e) { | 135 } catch (e) { |
121 assertEquals(4, e.stack.split('\n').length); | 136 assertEquals(4, e.stack.split('\n').length); |
122 } | 137 } |
OLD | NEW |