Chromium Code Reviews| Index: test/mjsunit/global-var-delete.js |
| diff --git a/test/mjsunit/global-var-delete.js b/test/mjsunit/global-var-delete.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..a7ea9ea4b1145aaa859980b48c555c7a6bb8c9eb |
| --- /dev/null |
| +++ b/test/mjsunit/global-var-delete.js |
| @@ -0,0 +1,73 @@ |
| +// Copyright 2015 the V8 project authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
|
Michael Starzinger
2015/04/21 12:34:01
suggestion: Should we move this file into the "com
|
| + |
| +// Flags: --allow-natives-syntax |
| + |
| +function test(expected, f) { |
| + assertEquals(expected, f()); |
| + assertEquals(expected, f()); |
| + %OptimizeFunctionOnNextCall(f); |
| + assertEquals(expected, f()); |
| + assertEquals(expected, f()); |
| +} |
| + |
| +function testThrows(f) { |
| + assertThrows(f); |
| + assertThrows(f); |
| + %OptimizeFunctionOnNextCall(f); |
| + assertThrows(f); |
| + assertThrows(f); |
| +} |
| + |
| +// --- Constant case. |
| +var a = 11; |
| + |
| +function f1() { return a; } |
| +test(11, f1); |
| + |
| +delete a; |
| + |
| +test(11, f1); |
| + |
| + |
| +// --- SMI case. |
| + |
| +var b = 11; |
| +b = 12; |
| +b = 13; |
| + |
| +function f2() { return b; } |
| +test(13, f2); |
| + |
| +delete b; |
| + |
| +test(13, f2); |
| + |
| + |
| +// --- double case. |
| + |
| +var c = 11; |
| +c = 12.25; |
| +c = 13.25; |
| + |
| +function f3() { return c; } |
| +test(13.25, f3); |
| + |
| +delete c; |
| + |
| +test(13.25, f3); |
| + |
| + |
| +// --- tagged case. |
| + |
| +var d = 11; |
| +d = 12.25; |
| +d = "hello"; |
| + |
| +function f4() { return d; } |
| +test("hello", f4); |
| + |
| +delete d; |
| + |
| +test("hello", f4); |