From 0dca29de4a303881ac34ad6542844ed39f224576 Mon Sep 17 00:00:00 2001 From: Bill Ticehurst Date: Wed, 16 May 2012 18:08:23 -0700 Subject: Adding more tests to cover undefined being non-writable (see https://bugs.ecmascript.org/show_bug.cgi?id=223 ) --- test/suite/ch15/15.1/15.1.1/15.1.1.3/15.1.1.3-1.js | 22 ++++++++++++++++++ test/suite/ch15/15.1/15.1.1/15.1.1.3/15.1.1.3-2.js | 26 ++++++++++++++++++++++ test/suite/ch15/15.1/15.1.1/15.1.1.3/15.1.1.3-3.js | 16 +++++++++++++ 3 files changed, 64 insertions(+) create mode 100644 test/suite/ch15/15.1/15.1.1/15.1.1.3/15.1.1.3-1.js create mode 100644 test/suite/ch15/15.1/15.1.1/15.1.1.3/15.1.1.3-2.js create mode 100644 test/suite/ch15/15.1/15.1.1/15.1.1.3/15.1.1.3-3.js (limited to 'test') diff --git a/test/suite/ch15/15.1/15.1.1/15.1.1.3/15.1.1.3-1.js b/test/suite/ch15/15.1/15.1.1/15.1.1.3/15.1.1.3-1.js new file mode 100644 index 000000000..156307567 --- /dev/null +++ b/test/suite/ch15/15.1/15.1.1/15.1.1.3/15.1.1.3-1.js @@ -0,0 +1,22 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch15/15.1/15.1.1/15.1.1.3/15.1.1.3-1.js + * @description undefined is not writable, should not throw in non-strict mode + * @noStrict + */ + +function testcase(){ + undefined === 5; + if(typeof undefined !== "undefined") return false; + + var nosuchproperty; + if(nosuchproperty !== undefined) return false; + + return true; +} + +runTestCase(testcase); diff --git a/test/suite/ch15/15.1/15.1.1/15.1.1.3/15.1.1.3-2.js b/test/suite/ch15/15.1/15.1.1/15.1.1.3/15.1.1.3-2.js new file mode 100644 index 000000000..9d7a614c4 --- /dev/null +++ b/test/suite/ch15/15.1/15.1.1/15.1.1.3/15.1.1.3-2.js @@ -0,0 +1,26 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch15/15.1/15.1.1/15.1.1.3/15.1.1.3-2.js + * @description undefined is not writable, should throw TypeError in strict mode + * @onlyStrict + */ + +function testcase(){ + "use strict"; + var global = fnGlobalObject(); + try{ + global["undefined"] = 5; // Should throw a TypeError as per 8.12.5 + } catch (ex) { + if(ex instanceof TypeError){ + return true; + } else { + return false; + } + } +} + +runTestCase(testcase); diff --git a/test/suite/ch15/15.1/15.1.1/15.1.1.3/15.1.1.3-3.js b/test/suite/ch15/15.1/15.1.1/15.1.1.3/15.1.1.3-3.js new file mode 100644 index 000000000..b2dec459a --- /dev/null +++ b/test/suite/ch15/15.1/15.1.1/15.1.1.3/15.1.1.3-3.js @@ -0,0 +1,16 @@ +/// Copyright (c) 2012 Ecma International. All rights reserved. +/// Ecma International makes this code available under the terms and conditions set +/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the +/// "Use Terms"). Any redistribution of this code must retain the above +/// copyright and this notice and otherwise comply with the Use Terms. +/** + * @path ch15/15.1/15.1.1/15.1.1.3/15.1.1.3-3.js + * @description undefined is not writable, simple assignment should return the rval value (11.13.1-6) + */ + +function testcase(){ + var newProperty = undefined = 42; + return (newProperty === 42); +} + +runTestCase(testcase); -- cgit v1.2.3