]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - tests/stress/values-unscopables.js
JavaScriptCore-7601.1.46.3.tar.gz
[apple/javascriptcore.git] / tests / stress / values-unscopables.js
diff --git a/tests/stress/values-unscopables.js b/tests/stress/values-unscopables.js
new file mode 100644 (file)
index 0000000..3deb96c
--- /dev/null
@@ -0,0 +1,53 @@
+function test(actual, expected) {
+    if (actual !== expected)
+        throw new Error('bad value: ' + actual);
+}
+
+(function () {
+    var array = [];
+    var values = 42;
+
+    with (array) {
+        test(values, 42);
+    }
+
+    array[Symbol.unscopables].values = false;
+
+    with (array) {
+        test(values, Array.prototype.values);
+    }
+}());
+
+(function () {
+    var map  = new Map();
+    var values = 42;
+
+    with (map) {
+        test(values, Map.prototype.values);
+    }
+
+    map[Symbol.unscopables] = {
+        values: true
+    };
+
+    with (map) {
+        test(values, 42);
+    }
+}());
+
+(function () {
+    var set  = new Set();
+    var values = 42;
+
+    with (set) {
+        test(values, Set.prototype.values);
+    }
+
+    set[Symbol.unscopables] = {
+        values: true
+    };
+
+    with (set) {
+        test(values, 42);
+    }
+}());