deps: update v8 to 4.3.61.21
[platform/upstream/nodejs.git] / deps / v8 / test / mjsunit / regress / regress-3985.js
1 // Copyright 2015 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
5 // Flags: --allow-natives-syntax
6
7 var shouldThrow = false;
8
9 function h() {
10   try {  // Prevent inlining in Crankshaft.
11   } catch(e) { }
12   var res = g.arguments[0].x;
13   if (shouldThrow) {
14     throw res;
15   }
16   return res;
17 }
18
19 function g(o) { h(); }
20
21 function f1() {
22   var o = { x : 1 };
23   g(o);
24   return o.x;
25 }
26
27 function f2() {
28   var o = { x : 2 };
29   g(o);
30   return o.x;
31 }
32
33 f1();
34 f2();
35 f1();
36 f2();
37 %OptimizeFunctionOnNextCall(f1);
38 %OptimizeFunctionOnNextCall(f2);
39 shouldThrow = true;
40 try { f1(); } catch(e) {
41   assertEquals(e, 1);
42 }
43 try { f2(); } catch(e) {
44   assertEquals(e, 2);
45 }