You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
839 B
35 lines
839 B
/* eslint no-restricted-syntax: 0, no-with: 0, strict: 0 */ |
|
|
|
var test = require('tape'); |
|
|
|
var shimUnscopables = require('../'); |
|
|
|
test('`with` statement', { skip: typeof Symbol !== 'function' || !Symbol.unscopables }, function (t) { |
|
var entries; |
|
var concat; |
|
with ([]) { |
|
t.equal(concat, Array.prototype.concat, 'concat is dynamically bound'); |
|
t.notEqual(entries, Array.prototype.entries, 'entries is not dynamically bound'); |
|
} |
|
|
|
var obj = { |
|
foo: 1, |
|
bar: 2 |
|
}; |
|
var foo; |
|
var bar; |
|
obj[Symbol.unscopables] = { foo: true }; |
|
with (obj) { |
|
t.equal(foo, undefined); |
|
t.equal(bar, obj.bar); |
|
} |
|
|
|
shimUnscopables('concat'); |
|
|
|
with ([]) { |
|
t.notEqual(concat, Array.prototype.concat, 'concat is no longer dynamically bound'); |
|
t.notEqual(entries, Array.prototype.entries, 'entries is still not dynamically bound'); |
|
} |
|
|
|
t.end(); |
|
});
|
|
|