|
1 /// Copyright (c) 2012 Ecma International. All rights reserved. |
|
2 /// Ecma International makes this code available under the terms and conditions set |
|
3 /// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the |
|
4 /// "Use Terms"). Any redistribution of this code must retain the above |
|
5 /// copyright and this notice and otherwise comply with the Use Terms. |
|
6 /** |
|
7 * @path ch13/13.2/13.2-15-1.js |
|
8 * @description Function Object has length as its own property and does not invoke the setter defined on Function.prototype.length (Step 15) |
|
9 */ |
|
10 |
|
11 |
|
12 function testcase() { |
|
13 var fun = function (x, y) { }; |
|
14 |
|
15 var verifyValue = false; |
|
16 verifyValue = (fun.hasOwnProperty("length") && fun.length === 2); |
|
17 |
|
18 var verifyWritable = false; |
|
19 fun.length = 1001; |
|
20 verifyWritable = (fun.length === 1001); |
|
21 |
|
22 var verifyEnumerable = false; |
|
23 for (var p in fun) { |
|
24 if (p === "length") { |
|
25 verifyEnumerable = true; |
|
26 } |
|
27 } |
|
28 |
|
29 var verifyConfigurable = false; |
|
30 delete fun.length; |
|
31 verifyConfigurable = fun.hasOwnProperty("length"); |
|
32 |
|
33 return verifyValue && !verifyWritable && !verifyEnumerable && verifyConfigurable; |
|
34 } |
|
35 runTestCase(testcase); |