|
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 ch07/7.6/7.6.1/7.6.1-8-8.js |
|
8 * @description Allow reserved words as property names by set function within an object, accessed via indexing: this, with, default |
|
9 */ |
|
10 |
|
11 |
|
12 function testcase() { |
|
13 var test0 = 0, test1 = 1, test2 = 2; |
|
14 var tokenCodes = { |
|
15 set this(value){ |
|
16 test0 = value; |
|
17 }, |
|
18 get this(){ |
|
19 return test0; |
|
20 }, |
|
21 set with(value){ |
|
22 test1 = value; |
|
23 }, |
|
24 get with(){ |
|
25 return test1; |
|
26 }, |
|
27 set default(value){ |
|
28 test2 = value; |
|
29 }, |
|
30 get default(){ |
|
31 return test2; |
|
32 } |
|
33 }; |
|
34 var arr = [ |
|
35 'this', |
|
36 'with', |
|
37 'default' |
|
38 ]; |
|
39 for (var i = 0; i < arr.length; i++) { |
|
40 if (tokenCodes[arr[i]] !== i) { |
|
41 return false; |
|
42 }; |
|
43 } |
|
44 return true; |
|
45 } |
|
46 runTestCase(testcase); |