|
1 /* |
|
2 * Any copyright is dedicated to the Public Domain. |
|
3 * http://creativecommons.org/licenses/publicdomain/ |
|
4 * Contributor: |
|
5 * Jeff Walden <jwalden+code@mit.edu> |
|
6 */ |
|
7 |
|
8 var gTestfile = '15.2.3.4-01.js'; |
|
9 //----------------------------------------------------------------------------- |
|
10 var BUGNUMBER = 492849; |
|
11 var summary = 'ES5: Implement Object.preventExtensions, Object.isExtensible'; |
|
12 |
|
13 print(BUGNUMBER + ": " + summary); |
|
14 |
|
15 /************** |
|
16 * BEGIN TEST * |
|
17 **************/ |
|
18 |
|
19 assertEq(typeof Object.isExtensible, "function"); |
|
20 assertEq(Object.isExtensible.length, 1); |
|
21 |
|
22 var slowArray = [1, 2, 3]; |
|
23 slowArray.slow = 5; |
|
24 var objs = |
|
25 [{}, { 1: 2 }, { a: 3 }, [], [1], [, 1], slowArray, function a(){}, /a/]; |
|
26 |
|
27 for (var i = 0, sz = objs.length; i < sz; i++) |
|
28 { |
|
29 var o = objs[i]; |
|
30 assertEq(Object.isExtensible(o), true, "object " + i + " not extensible?"); |
|
31 |
|
32 var o2 = Object.preventExtensions(o); |
|
33 assertEq(o, o2); |
|
34 |
|
35 assertEq(Object.isExtensible(o), false, "object " + i + " is extensible?"); |
|
36 } |
|
37 |
|
38 /******************************************************************************/ |
|
39 |
|
40 reportCompare(true, true); |
|
41 |
|
42 print("All tests passed!"); |