Imported Upstream version 1.0.0
[platform/upstream/js.git] / js / src / tests / ecma_5 / Object / extensibility-02.js
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!");