Index: test/mjsunit/harmony/reflect-prevent-extensions.js |
diff --git a/test/mjsunit/object-prevent-extensions.js b/test/mjsunit/harmony/reflect-prevent-extensions.js |
similarity index 84% |
copy from test/mjsunit/object-prevent-extensions.js |
copy to test/mjsunit/harmony/reflect-prevent-extensions.js |
index bde3161c60cd48593b5d3fd027e327240e46eb7c..a964ed7b2d874cb0beb0dd11a502559e7bfbf3b4 100644 |
--- a/test/mjsunit/object-prevent-extensions.js |
+++ b/test/mjsunit/harmony/reflect-prevent-extensions.js |
@@ -1,4 +1,4 @@ |
-// Copyright 2010 the V8 project authors. All rights reserved. |
+// Copyright 2010-2015 the V8 project authors. All rights reserved. |
// Redistribution and use in source and binary forms, with or without |
// modification, are permitted provided that the following conditions are |
// met: |
@@ -25,15 +25,16 @@ |
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
-// Tests the Object.preventExtensions method - ES 15.2.3.10 |
+// Tests the Reflect.preventExtensions method - ES6 26.1.12. |
+// This is adapted from object-prevent-extensions.js. |
-// Flags: --allow-natives-syntax |
+// Flags: --allow-natives-syntax --harmony-reflect |
var obj1 = {}; |
// Extensible defaults to true. |
assertTrue(Object.isExtensible(obj1)); |
-Object.preventExtensions(obj1); |
+assertTrue(Reflect.preventExtensions(obj1)); |
// Make sure the is_extensible flag is set. |
assertFalse(Object.isExtensible(obj1)); |
@@ -52,7 +53,7 @@ obj2.x = 42; |
assertEquals(42, obj2.x); |
assertTrue(Object.isExtensible(obj2)); |
-Object.preventExtensions(obj2); |
+assertTrue(Reflect.preventExtensions(obj2)); |
assertEquals(42, obj2.x); |
obj2.y = 42; |
@@ -83,12 +84,12 @@ assertEquals(undefined, obj2[1]); |
var arr = new Array(); |
arr[1] = 10; |
-Object.preventExtensions(arr); |
+assertTrue(Reflect.preventExtensions(arr)); |
arr[2] = 42; |
assertEquals(10, arr[1]); |
-// We should still be able to change exiting elements. |
+// We should still be able to change existing elements. |
arr[1]= 42; |
assertEquals(42, arr[1]); |
@@ -96,7 +97,7 @@ assertEquals(42, arr[1]); |
// Test the the extensible flag is not inherited. |
var parent = {}; |
parent.x = 42; |
-Object.preventExtensions(parent); |
+assertTrue(Reflect.preventExtensions(parent)); |
var child = Object.create(parent); |
@@ -112,14 +113,15 @@ function foo() { |
return 42; |
} |
-Object.preventExtensions(foo); |
+assertTrue(Reflect.preventExtensions(foo)); |
foo.x = 29; |
assertEquals(undefined, foo.x); |
// when Object.isExtensible(o) === false |
// assignment should return right hand side value |
-var o = Object.preventExtensions({}); |
+var o = {}; |
+assertTrue(Reflect.preventExtensions(o)); |
var v = o.v = 50; |
assertEquals(undefined, o.v); |
assertEquals(50, v); |
@@ -132,7 +134,7 @@ assertEquals(100, n); |
// Fast properties should remain fast |
obj = { x: 42, y: 'foo' }; |
assertTrue(%HasFastProperties(obj)); |
-Object.preventExtensions(obj); |
+assertTrue(Reflect.preventExtensions(obj)); |
assertFalse(Object.isExtensible(obj)); |
assertFalse(Object.isSealed(obj)); |
assertTrue(%HasFastProperties(obj)); |
@@ -141,8 +143,8 @@ assertTrue(%HasFastProperties(obj)); |
obj = { prop1: 1, prop2: 2 }; |
obj2 = { prop1: 3, prop2: 4 }; |
assertTrue(%HaveSameMap(obj, obj2)); |
-Object.preventExtensions(obj); |
-Object.preventExtensions(obj2); |
+assertTrue(Reflect.preventExtensions(obj)); |
+assertTrue(Reflect.preventExtensions(obj2)); |
assertFalse(Object.isExtensible(obj)); |
assertFalse(Object.isExtensible(obj2)); |
assertFalse(Object.isSealed(obj)); |
@@ -153,8 +155,8 @@ assertTrue(%HaveSameMap(obj, obj2)); |
obj = { prop1: 1, prop2: 2, 75: 'foo' }; |
obj2 = { prop1: 3, prop2: 4, 150: 'bar' }; |
assertTrue(%HaveSameMap(obj, obj2)); |
-Object.preventExtensions(obj); |
-Object.preventExtensions(obj2); |
+assertTrue(Reflect.preventExtensions(obj)); |
+assertTrue(Reflect.preventExtensions(obj2)); |
assertFalse(Object.isExtensible(obj)); |
assertFalse(Object.isExtensible(obj2)); |
assertFalse(Object.isSealed(obj)); |