Wed, 31 Dec 2014 13:27:57 +0100
Ignore runtime configuration files generated during quality assurance.
michael@0 | 1 | /// Copyright (c) 2012 Ecma International. All rights reserved. |
michael@0 | 2 | /// Ecma International makes this code available under the terms and conditions set |
michael@0 | 3 | /// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the |
michael@0 | 4 | /// "Use Terms"). Any redistribution of this code must retain the above |
michael@0 | 5 | /// copyright and this notice and otherwise comply with the Use Terms. |
michael@0 | 6 | /** |
michael@0 | 7 | * This test is actually testing the [[Delete]] internal method (8.12.8). Since the |
michael@0 | 8 | * language provides no way to directly exercise [[Delete]], the tests are placed here. |
michael@0 | 9 | * |
michael@0 | 10 | * @path ch11/11.4/11.4.1/11.4.4-4.a-3-s.js |
michael@0 | 11 | * @description delete operator throws TypeError when deleting a non-configurable data property in strict mode |
michael@0 | 12 | * @onlyStrict |
michael@0 | 13 | */ |
michael@0 | 14 | |
michael@0 | 15 | |
michael@0 | 16 | function testcase() { |
michael@0 | 17 | 'use strict'; |
michael@0 | 18 | |
michael@0 | 19 | var o = {}; |
michael@0 | 20 | var desc = { value : 1 }; // all other attributes default to false |
michael@0 | 21 | Object.defineProperty(o, "foo", desc); |
michael@0 | 22 | |
michael@0 | 23 | // Now, deleting o.foo should throw TypeError because [[Configurable]] on foo is false. |
michael@0 | 24 | try { |
michael@0 | 25 | delete o.foo; |
michael@0 | 26 | return false; |
michael@0 | 27 | } |
michael@0 | 28 | catch (e) { |
michael@0 | 29 | return (e instanceof TypeError); |
michael@0 | 30 | } |
michael@0 | 31 | } |
michael@0 | 32 | runTestCase(testcase); |