summaryrefslogtreecommitdiff
path: root/test/built-ins/Object/defineProperty/15.2.3.6-4-624.js
diff options
context:
space:
mode:
authorBrian Terlson <brian.terlson@microsoft.com>2014-12-05 15:50:00 -0800
committerBrian Terlson <brian.terlson@microsoft.com>2014-12-07 15:33:09 -0800
commit2a74f0ec1b671f15fc7df3e1e294a65abc8ebac8 (patch)
tree7315f60ffd86513bf163c05e4252fab0810bfbe8 /test/built-ins/Object/defineProperty/15.2.3.6-4-624.js
parentda465e7399bcecd3c78fa1f5e898c9d52b4c7096 (diff)
downloadqtdeclarative-testsuites-2a74f0ec1b671f15fc7df3e1e294a65abc8ebac8.tar.gz
Reorganize ./test
Diffstat (limited to 'test/built-ins/Object/defineProperty/15.2.3.6-4-624.js')
-rw-r--r--test/built-ins/Object/defineProperty/15.2.3.6-4-624.js49
1 files changed, 49 insertions, 0 deletions
diff --git a/test/built-ins/Object/defineProperty/15.2.3.6-4-624.js b/test/built-ins/Object/defineProperty/15.2.3.6-4-624.js
new file mode 100644
index 000000000..68d0a9da5
--- /dev/null
+++ b/test/built-ins/Object/defineProperty/15.2.3.6-4-624.js
@@ -0,0 +1,49 @@
+// 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.
+
+/*---
+es5id: 15.2.3.6-4-624
+description: >
+ ES5 Attributes - all attributes in Date.prototype.toJSON are
+ correct
+includes: [runTestCase.js]
+---*/
+
+function testcase() {
+ var desc = Object.getOwnPropertyDescriptor(Date.prototype, "toJSON");
+
+ var propertyAreCorrect = (desc.writable === true && desc.enumerable === false && desc.configurable === true);
+
+ var temp = Date.prototype.toJSON;
+
+ try {
+ Date.prototype.toJSON = "2010";
+
+ var isWritable = (Date.prototype.toJSON === "2010");
+
+ var isEnumerable = false;
+
+ for (var prop in Date.prototype) {
+ if (prop === "toJSON") {
+ isEnumerable = true;
+ }
+ }
+
+ delete Date.prototype.toJSON;
+
+ var isConfigurable = !Date.prototype.hasOwnProperty("toJSON");
+
+ return propertyAreCorrect && isWritable && !isEnumerable && isConfigurable;
+ } finally {
+ Object.defineProperty(Date.prototype, "toJSON", {
+ value: temp,
+ writable: true,
+ enumerable: false,
+ configurable: true
+ });
+ }
+ }
+runTestCase(testcase);