| 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); |
| } |
| }()); |