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