make let scoping collision detection much more reliable

This commit is contained in:
Sebastian McKenzie
2015-01-18 12:15:50 +11:00
parent ddd59b94b0
commit 320c78b815
6 changed files with 69 additions and 34 deletions

View File

@@ -4,19 +4,19 @@ var A = new WeakMap();
var B = new WeakMap(),
C = new WeakMap();
var D = (function () {
var F = new WeakMap(),
G = new WeakMap();
var E = new WeakMap();
var _F = new WeakMap(),
_G = new WeakMap();
var _E = new WeakMap();
function D() {}
return D;
})();
var H = (function () {
var J = new WeakMap(),
K = new WeakMap();
var I = new WeakMap();
var _J = new WeakMap(),
_K = new WeakMap();
var _I = new WeakMap();
function H() {}
return H;
})();
})();

View File

@@ -4,9 +4,9 @@ var arr = (function () {
var _arr = [];
for (var _iterator = [1, 2, 3][Symbol.iterator](), _step; !(_step = _iterator.next()).done;) {
var _i = _step.value;
if (_i > 1) {
_arr.push(_i * _i);
var i = _step.value;
if (i > 1) {
_arr.push(i * i);
}
}

View File

@@ -6,9 +6,9 @@ var seattlers = (function () {
for (var _iterator = countries[Symbol.iterator](), _step; !(_step = _iterator.next()).done;) {
var customers = _step.value;
for (var _iterator2 = customers[Symbol.iterator](), _step2; !(_step2 = _iterator2.next()).done;) {
var _c = _step2.value;
if (_c.city == "Seattle") {
_seattlers.push({ name: _c.name, age: _c.age });
var c = _step2.value;
if (c.city == "Seattle") {
_seattlers.push({ name: c.name, age: c.age });
}
}
}

View File

@@ -4,9 +4,9 @@ var arr = (function () {
var _arr = [];
for (var _iterator = nums[Symbol.iterator](), _step; !(_step = _iterator.next()).done;) {
var _i = _step.value;
if (_i > 1) {
_arr.push(_i * _i);
var i = _step.value;
if (i > 1) {
_arr.push(i * i);
}
}

View File

@@ -0,0 +1,21 @@
assert.equal(8, 2 ** 3);
assert.equal(24, 3 * 2 ** 3);
var x = 2;
assert.equal(8, 2 ** ++x);
assert.equal(1, (2 ** -1) * 2);
var calls = 0;
var q = {q: 3};
var o = {
get p() {
calls++;
return q;
}
};
o.p.q **= 2;
assert.equal(1, calls);
assert.equal(9, o.p.q);
assert.equal(512, 2 ** (3 ** 2));
assert.equal(512, 2 ** 3 ** 2);