summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/language/statements/for-in/12.6.4-2.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/test262/language/statements/for-in/12.6.4-2.js')
-rw-r--r--js/src/tests/test262/language/statements/for-in/12.6.4-2.js36
1 files changed, 36 insertions, 0 deletions
diff --git a/js/src/tests/test262/language/statements/for-in/12.6.4-2.js b/js/src/tests/test262/language/statements/for-in/12.6.4-2.js
new file mode 100644
index 0000000000..1a021881f8
--- /dev/null
+++ b/js/src/tests/test262/language/statements/for-in/12.6.4-2.js
@@ -0,0 +1,36 @@
+// Copyright (c) 2012 Ecma International. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+es5id: 12.6.4-2
+description: >
+ The for-in Statement - the values of [[Enumerable]] attributes are
+ not considered when determining if a property of a prototype
+ object is shadowed by a previous object on the prototype chain
+---*/
+
+ var proto = {
+ prop: "enumerableValue"
+ };
+
+ var ConstructFun = function () { };
+ ConstructFun.prototype = proto;
+
+ var child = new ConstructFun();
+
+ Object.defineProperty(child, "prop", {
+ value: "nonEnumerableValue",
+ enumerable: false
+ });
+
+ var accessedProp = false;
+
+ for (var p in child) {
+ if (p === "prop") {
+ accessedProp = true;
+ }
+ }
+
+assert.sameValue(accessedProp, false, 'accessedProp');
+
+reportCompare(0, 0);