blob: c4d280e577d1dd62d11018b2776e325fdafd0de2 [file] [log] [blame]
Ben Murdochb8a8cc12014-11-26 15:28:44 +00001// Copyright 2014 the V8 project authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5function testError(error) {
6 // Reconfigure e.stack to be non-configurable
7 var desc1 = Object.getOwnPropertyDescriptor(error, "stack");
8 Object.defineProperty(error, "stack",
9 {get: desc1.get, set: desc1.set, configurable: false});
10
11 var desc2 = Object.getOwnPropertyDescriptor(error, "stack");
12 assertFalse(desc2.configurable);
13 assertEquals(desc1.get, desc2.get);
14 assertEquals(desc2.get, desc2.get);
15}
16
17function stackOverflow() {
18 function f() { f(); }
19 try { f() } catch (e) { return e; }
20}
21
22function referenceError() {
23 try { g() } catch (e) { return e; }
24}
25
26testError(referenceError());
27testError(stackOverflow());