mirror of
https://github.com/tc39/test262.git
synced 2025-07-27 07:54:41 +02:00
Regenerate tests
This commit is contained in:
parent
86da171663
commit
58111fff7b
@ -33,13 +33,20 @@ info: |
|
|||||||
exception.
|
exception.
|
||||||
|
|
||||||
---*/
|
---*/
|
||||||
var iterable = {};
|
var nextCount = 0;
|
||||||
|
var returnCount = 0;
|
||||||
|
var unreachable = 0;
|
||||||
var iterator = {
|
var iterator = {
|
||||||
|
next: function() {
|
||||||
|
nextCount += 1;
|
||||||
|
return {done: false, value: undefined};
|
||||||
|
},
|
||||||
return: function() {
|
return: function() {
|
||||||
|
returnCount += 1;
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
var iter;
|
var iterable = {};
|
||||||
iterable[Symbol.iterator] = function() {
|
iterable[Symbol.iterator] = function() {
|
||||||
return iterator;
|
return iterator;
|
||||||
};
|
};
|
||||||
@ -48,7 +55,7 @@ function* g() {
|
|||||||
var result;
|
var result;
|
||||||
var vals = iterable;
|
var vals = iterable;
|
||||||
|
|
||||||
result = [ {}[yield] ] = vals;
|
result = [ {} = yield ] = vals;
|
||||||
|
|
||||||
unreachable += 1;
|
unreachable += 1;
|
||||||
|
|
||||||
@ -56,9 +63,14 @@ assert.sameValue(result, vals);
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
iter = g();
|
var iter = g();
|
||||||
iter.next();
|
iter.next();
|
||||||
|
|
||||||
|
assert.sameValue(nextCount, 1);
|
||||||
|
assert.sameValue(returnCount, 0);
|
||||||
assert.throws(TypeError, function() {
|
assert.throws(TypeError, function() {
|
||||||
iter.return();
|
iter.return();
|
||||||
});
|
});
|
||||||
|
assert.sameValue(nextCount, 1);
|
||||||
|
assert.sameValue(returnCount, 1);
|
||||||
|
assert.sameValue(unreachable, 0, 'Unreachable statement was not executed');
|
||||||
|
@ -31,12 +31,16 @@ info: |
|
|||||||
8. If innerResult.[[type]] is throw, return Completion(innerResult).
|
8. If innerResult.[[type]] is throw, return Completion(innerResult).
|
||||||
|
|
||||||
---*/
|
---*/
|
||||||
|
var nextCount = 0;
|
||||||
var returnCount = 0;
|
var returnCount = 0;
|
||||||
var unreachable = 0;
|
var unreachable = 0;
|
||||||
var thisValue = null;
|
var thisValue = null;
|
||||||
var args = null;
|
var args = null;
|
||||||
var iterable = {};
|
|
||||||
var iterator = {
|
var iterator = {
|
||||||
|
next: function() {
|
||||||
|
nextCount += 1;
|
||||||
|
return {done: false, value: undefined};
|
||||||
|
},
|
||||||
return: function() {
|
return: function() {
|
||||||
returnCount += 1;
|
returnCount += 1;
|
||||||
thisValue = this;
|
thisValue = this;
|
||||||
@ -44,7 +48,7 @@ var iterator = {
|
|||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
var iter, result;
|
var iterable = {};
|
||||||
iterable[Symbol.iterator] = function() {
|
iterable[Symbol.iterator] = function() {
|
||||||
return iterator;
|
return iterator;
|
||||||
};
|
};
|
||||||
@ -54,17 +58,22 @@ function* g() {
|
|||||||
var result;
|
var result;
|
||||||
var vals = iterable;
|
var vals = iterable;
|
||||||
|
|
||||||
result = [ {}[yield] ] = vals;
|
result = [ {} = yield ] = vals;
|
||||||
|
|
||||||
unreachable += 1;
|
unreachable += 1;
|
||||||
|
|
||||||
assert.sameValue(result, vals);
|
assert.sameValue(result, vals);
|
||||||
|
|
||||||
}
|
}
|
||||||
iter = g();
|
var iter = g();
|
||||||
iter.next();
|
iter.next();
|
||||||
result = iter.return(777);
|
|
||||||
|
|
||||||
|
assert.sameValue(nextCount, 1);
|
||||||
|
assert.sameValue(returnCount, 0);
|
||||||
|
|
||||||
|
var result = iter.return(777);
|
||||||
|
|
||||||
|
assert.sameValue(nextCount, 1);
|
||||||
assert.sameValue(returnCount, 1);
|
assert.sameValue(returnCount, 1);
|
||||||
assert.sameValue(unreachable, 0, 'Unreachable statement was not executed');
|
assert.sameValue(unreachable, 0, 'Unreachable statement was not executed');
|
||||||
assert.sameValue(result.value, 777);
|
assert.sameValue(result.value, 777);
|
||||||
|
@ -36,17 +36,21 @@ info: |
|
|||||||
8. If innerResult.[[type]] is throw, return Completion(innerResult).
|
8. If innerResult.[[type]] is throw, return Completion(innerResult).
|
||||||
|
|
||||||
---*/
|
---*/
|
||||||
|
var nextCount = 0;
|
||||||
var returnCount = 0;
|
var returnCount = 0;
|
||||||
var unreachable = 0;
|
var unreachable = 0;
|
||||||
var iterable = {};
|
|
||||||
var iterator = {
|
var iterator = {
|
||||||
|
next: function() {
|
||||||
|
nextCount += 1;
|
||||||
|
return {done: false, value: undefined};
|
||||||
|
},
|
||||||
return: function() {
|
return: function() {
|
||||||
returnCount += 1;
|
returnCount += 1;
|
||||||
|
|
||||||
throw new Test262Error();
|
throw new Test262Error();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
var iter;
|
var iterable = {};
|
||||||
iterable[Symbol.iterator] = function() {
|
iterable[Symbol.iterator] = function() {
|
||||||
return iterator;
|
return iterator;
|
||||||
};
|
};
|
||||||
@ -56,7 +60,7 @@ function* g() {
|
|||||||
var result;
|
var result;
|
||||||
var vals = iterable;
|
var vals = iterable;
|
||||||
|
|
||||||
result = [ {}[yield] , ] = vals;
|
result = [ {} = yield , ] = vals;
|
||||||
|
|
||||||
unreachable += 1;
|
unreachable += 1;
|
||||||
|
|
||||||
@ -64,11 +68,14 @@ assert.sameValue(result, vals);
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
iter = g();
|
var iter = g();
|
||||||
iter.next();
|
iter.next();
|
||||||
|
|
||||||
|
assert.sameValue(nextCount, 1);
|
||||||
|
assert.sameValue(returnCount, 0);
|
||||||
assert.throws(Test262Error, function() {
|
assert.throws(Test262Error, function() {
|
||||||
iter.return();
|
iter.return();
|
||||||
});
|
});
|
||||||
|
assert.sameValue(nextCount, 1);
|
||||||
assert.sameValue(returnCount, 1);
|
assert.sameValue(returnCount, 1);
|
||||||
assert.sameValue(unreachable, 0, 'Unreachable statement was not executed');
|
assert.sameValue(unreachable, 0, 'Unreachable statement was not executed');
|
||||||
|
@ -39,13 +39,19 @@ info: |
|
|||||||
exception.
|
exception.
|
||||||
|
|
||||||
---*/
|
---*/
|
||||||
var iterable = {};
|
var nextCount = 0;
|
||||||
|
var returnCount = 0;
|
||||||
var iterator = {
|
var iterator = {
|
||||||
|
next: function() {
|
||||||
|
nextCount += 1;
|
||||||
|
return {done: false, value: undefined};
|
||||||
|
},
|
||||||
return: function() {
|
return: function() {
|
||||||
|
returnCount += 1;
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
var iter;
|
var iterable = {};
|
||||||
iterable[Symbol.iterator] = function() {
|
iterable[Symbol.iterator] = function() {
|
||||||
return iterator;
|
return iterator;
|
||||||
};
|
};
|
||||||
@ -55,7 +61,7 @@ function* g() {
|
|||||||
var result;
|
var result;
|
||||||
var vals = iterable;
|
var vals = iterable;
|
||||||
|
|
||||||
result = [ {}[yield] , ] = vals;
|
result = [ {} = yield , ] = vals;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -63,9 +69,13 @@ assert.sameValue(result, vals);
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
iter = g();
|
var iter = g();
|
||||||
iter.next();
|
iter.next();
|
||||||
|
|
||||||
|
assert.sameValue(nextCount, 1);
|
||||||
|
assert.sameValue(returnCount, 0);
|
||||||
assert.throws(TypeError, function() {
|
assert.throws(TypeError, function() {
|
||||||
iter.return();
|
iter.return();
|
||||||
});
|
});
|
||||||
|
assert.sameValue(nextCount, 1);
|
||||||
|
assert.sameValue(returnCount, 1);
|
||||||
|
@ -37,12 +37,17 @@ info: |
|
|||||||
8. If innerResult.[[type]] is throw, return Completion(innerResult).
|
8. If innerResult.[[type]] is throw, return Completion(innerResult).
|
||||||
|
|
||||||
---*/
|
---*/
|
||||||
|
var nextCount = 0;
|
||||||
var returnCount = 0;
|
var returnCount = 0;
|
||||||
var unreachable = 0;
|
var unreachable = 0;
|
||||||
var thisValue = null;
|
var thisValue = null;
|
||||||
var args = null;
|
var args = null;
|
||||||
var iterable = {};
|
var iterable = {};
|
||||||
var iterator = {
|
var iterator = {
|
||||||
|
next: function() {
|
||||||
|
nextCount += 1;
|
||||||
|
return {done: false, value: undefined};
|
||||||
|
},
|
||||||
return: function() {
|
return: function() {
|
||||||
returnCount += 1;
|
returnCount += 1;
|
||||||
thisValue = this;
|
thisValue = this;
|
||||||
@ -61,7 +66,7 @@ function* g() {
|
|||||||
var result;
|
var result;
|
||||||
var vals = iterable;
|
var vals = iterable;
|
||||||
|
|
||||||
result = [ {}[yield] , ] = vals;
|
result = [ {} = yield , ] = vals;
|
||||||
|
|
||||||
unreachable += 1;
|
unreachable += 1;
|
||||||
|
|
||||||
@ -71,8 +76,13 @@ assert.sameValue(result, vals);
|
|||||||
|
|
||||||
iter = g();
|
iter = g();
|
||||||
iter.next();
|
iter.next();
|
||||||
|
|
||||||
|
assert.sameValue(nextCount, 1);
|
||||||
|
assert.sameValue(returnCount, 0);
|
||||||
|
|
||||||
result = iter.return(888);
|
result = iter.return(888);
|
||||||
|
|
||||||
|
assert.sameValue(nextCount, 1);
|
||||||
assert.sameValue(returnCount, 1);
|
assert.sameValue(returnCount, 1);
|
||||||
assert.sameValue(unreachable, 0, 'Unreachable statement was not executed');
|
assert.sameValue(unreachable, 0, 'Unreachable statement was not executed');
|
||||||
assert.sameValue(result.value, 888);
|
assert.sameValue(result.value, 888);
|
||||||
|
@ -24,12 +24,6 @@ info: |
|
|||||||
lhs using AssignmentPattern as the goal symbol.
|
lhs using AssignmentPattern as the goal symbol.
|
||||||
[...]
|
[...]
|
||||||
|
|
||||||
AssignmentElement : DestructuringAssignmentTarget Initializer
|
|
||||||
1. If DestructuringAssignmentTarget is neither an ObjectLiteral nor an ArrayLiteral, then
|
|
||||||
a. Let lref be the result of evaluating DestructuringAssignmentTarget.
|
|
||||||
b. ReturnIfAbrupt(lref).
|
|
||||||
[...]
|
|
||||||
|
|
||||||
ArrayAssignmentPattern : [ AssignmentElementList ]
|
ArrayAssignmentPattern : [ AssignmentElementList ]
|
||||||
|
|
||||||
[...]
|
[...]
|
||||||
@ -46,8 +40,15 @@ info: |
|
|||||||
|
|
||||||
---*/
|
---*/
|
||||||
let unreachable = 0;
|
let unreachable = 0;
|
||||||
|
let nextCount = 0;
|
||||||
|
let returnCount = 0;
|
||||||
let iterator = {
|
let iterator = {
|
||||||
|
next() {
|
||||||
|
nextCount += 1;
|
||||||
|
return {done: false, value: undefined};
|
||||||
|
},
|
||||||
return() {
|
return() {
|
||||||
|
returnCount += 1;
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -59,7 +60,7 @@ let iterable = {
|
|||||||
|
|
||||||
let iterCount = 0;
|
let iterCount = 0;
|
||||||
async function * fn() {
|
async function * fn() {
|
||||||
for await ([ {}[yield] ] of [iterable]) {
|
for await ([ {} = yield ] of [iterable]) {
|
||||||
unreachable += 1;
|
unreachable += 1;
|
||||||
iterCount += 1;
|
iterCount += 1;
|
||||||
}
|
}
|
||||||
@ -68,10 +69,14 @@ async function * fn() {
|
|||||||
let iter = fn();
|
let iter = fn();
|
||||||
|
|
||||||
iter.next().then(result => {
|
iter.next().then(result => {
|
||||||
|
assert.sameValue(nextCount, 1);
|
||||||
|
assert.sameValue(returnCount, 0);
|
||||||
assert.sameValue(result.value, undefined);
|
assert.sameValue(result.value, undefined);
|
||||||
assert.sameValue(result.done, false);
|
assert.sameValue(result.done, false);
|
||||||
|
|
||||||
iter.return().then(() => $DONE('Promise incorrectly fulfilled.'), ({ constructor }) => {
|
iter.return().then(() => $DONE('Promise incorrectly fulfilled.'), ({ constructor }) => {
|
||||||
|
assert.sameValue(nextCount, 1);
|
||||||
|
assert.sameValue(returnCount, 1);
|
||||||
assert.sameValue(unreachable, 0);
|
assert.sameValue(unreachable, 0);
|
||||||
assert.sameValue(constructor, TypeError);
|
assert.sameValue(constructor, TypeError);
|
||||||
}).then($DONE, $DONE);
|
}).then($DONE, $DONE);
|
||||||
|
@ -42,13 +42,20 @@ info: |
|
|||||||
exception.
|
exception.
|
||||||
|
|
||||||
---*/
|
---*/
|
||||||
var iterable = {};
|
var nextCount = 0;
|
||||||
|
var returnCount = 0;
|
||||||
|
var unreachable = 0;
|
||||||
var iterator = {
|
var iterator = {
|
||||||
|
next: function() {
|
||||||
|
nextCount += 1;
|
||||||
|
return {done: false, value: undefined};
|
||||||
|
},
|
||||||
return: function() {
|
return: function() {
|
||||||
|
returnCount += 1;
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
var iter;
|
var iterable = {};
|
||||||
iterable[Symbol.iterator] = function() {
|
iterable[Symbol.iterator] = function() {
|
||||||
return iterator;
|
return iterator;
|
||||||
};
|
};
|
||||||
@ -56,7 +63,7 @@ function* g() {
|
|||||||
|
|
||||||
var counter = 0;
|
var counter = 0;
|
||||||
|
|
||||||
for ([ {}[yield] ] of [iterable]) {
|
for ([ {} = yield ] of [iterable]) {
|
||||||
unreachable += 1;
|
unreachable += 1;
|
||||||
counter += 1;
|
counter += 1;
|
||||||
}
|
}
|
||||||
@ -65,9 +72,14 @@ assert.sameValue(counter, 1);
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
iter = g();
|
var iter = g();
|
||||||
iter.next();
|
iter.next();
|
||||||
|
|
||||||
|
assert.sameValue(nextCount, 1);
|
||||||
|
assert.sameValue(returnCount, 0);
|
||||||
assert.throws(TypeError, function() {
|
assert.throws(TypeError, function() {
|
||||||
iter.return();
|
iter.return();
|
||||||
});
|
});
|
||||||
|
assert.sameValue(nextCount, 1);
|
||||||
|
assert.sameValue(returnCount, 1);
|
||||||
|
assert.sameValue(unreachable, 0, 'Unreachable statement was not executed');
|
||||||
|
@ -40,12 +40,16 @@ info: |
|
|||||||
8. If innerResult.[[type]] is throw, return Completion(innerResult).
|
8. If innerResult.[[type]] is throw, return Completion(innerResult).
|
||||||
|
|
||||||
---*/
|
---*/
|
||||||
|
var nextCount = 0;
|
||||||
var returnCount = 0;
|
var returnCount = 0;
|
||||||
var unreachable = 0;
|
var unreachable = 0;
|
||||||
var thisValue = null;
|
var thisValue = null;
|
||||||
var args = null;
|
var args = null;
|
||||||
var iterable = {};
|
|
||||||
var iterator = {
|
var iterator = {
|
||||||
|
next: function() {
|
||||||
|
nextCount += 1;
|
||||||
|
return {done: false, value: undefined};
|
||||||
|
},
|
||||||
return: function() {
|
return: function() {
|
||||||
returnCount += 1;
|
returnCount += 1;
|
||||||
thisValue = this;
|
thisValue = this;
|
||||||
@ -53,7 +57,7 @@ var iterator = {
|
|||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
var iter, result;
|
var iterable = {};
|
||||||
iterable[Symbol.iterator] = function() {
|
iterable[Symbol.iterator] = function() {
|
||||||
return iterator;
|
return iterator;
|
||||||
};
|
};
|
||||||
@ -62,7 +66,7 @@ function* g() {
|
|||||||
|
|
||||||
var counter = 0;
|
var counter = 0;
|
||||||
|
|
||||||
for ([ {}[yield] ] of [iterable]) {
|
for ([ {} = yield ] of [iterable]) {
|
||||||
unreachable += 1;
|
unreachable += 1;
|
||||||
counter += 1;
|
counter += 1;
|
||||||
}
|
}
|
||||||
@ -70,10 +74,15 @@ for ([ {}[yield] ] of [iterable]) {
|
|||||||
assert.sameValue(counter, 1);
|
assert.sameValue(counter, 1);
|
||||||
|
|
||||||
}
|
}
|
||||||
iter = g();
|
var iter = g();
|
||||||
iter.next();
|
iter.next();
|
||||||
result = iter.return(777);
|
|
||||||
|
|
||||||
|
assert.sameValue(nextCount, 1);
|
||||||
|
assert.sameValue(returnCount, 0);
|
||||||
|
|
||||||
|
var result = iter.return(777);
|
||||||
|
|
||||||
|
assert.sameValue(nextCount, 1);
|
||||||
assert.sameValue(returnCount, 1);
|
assert.sameValue(returnCount, 1);
|
||||||
assert.sameValue(unreachable, 0, 'Unreachable statement was not executed');
|
assert.sameValue(unreachable, 0, 'Unreachable statement was not executed');
|
||||||
assert.sameValue(result.value, 777);
|
assert.sameValue(result.value, 777);
|
||||||
|
@ -45,17 +45,21 @@ info: |
|
|||||||
8. If innerResult.[[type]] is throw, return Completion(innerResult).
|
8. If innerResult.[[type]] is throw, return Completion(innerResult).
|
||||||
|
|
||||||
---*/
|
---*/
|
||||||
|
var nextCount = 0;
|
||||||
var returnCount = 0;
|
var returnCount = 0;
|
||||||
var unreachable = 0;
|
var unreachable = 0;
|
||||||
var iterable = {};
|
|
||||||
var iterator = {
|
var iterator = {
|
||||||
|
next: function() {
|
||||||
|
nextCount += 1;
|
||||||
|
return {done: false, value: undefined};
|
||||||
|
},
|
||||||
return: function() {
|
return: function() {
|
||||||
returnCount += 1;
|
returnCount += 1;
|
||||||
|
|
||||||
throw new Test262Error();
|
throw new Test262Error();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
var iter;
|
var iterable = {};
|
||||||
iterable[Symbol.iterator] = function() {
|
iterable[Symbol.iterator] = function() {
|
||||||
return iterator;
|
return iterator;
|
||||||
};
|
};
|
||||||
@ -64,7 +68,7 @@ function* g() {
|
|||||||
|
|
||||||
var counter = 0;
|
var counter = 0;
|
||||||
|
|
||||||
for ([ {}[yield] , ] of [iterable]) {
|
for ([ {} = yield , ] of [iterable]) {
|
||||||
unreachable += 1;
|
unreachable += 1;
|
||||||
counter += 1;
|
counter += 1;
|
||||||
}
|
}
|
||||||
@ -73,11 +77,14 @@ assert.sameValue(counter, 1);
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
iter = g();
|
var iter = g();
|
||||||
iter.next();
|
iter.next();
|
||||||
|
|
||||||
|
assert.sameValue(nextCount, 1);
|
||||||
|
assert.sameValue(returnCount, 0);
|
||||||
assert.throws(Test262Error, function() {
|
assert.throws(Test262Error, function() {
|
||||||
iter.return();
|
iter.return();
|
||||||
});
|
});
|
||||||
|
assert.sameValue(nextCount, 1);
|
||||||
assert.sameValue(returnCount, 1);
|
assert.sameValue(returnCount, 1);
|
||||||
assert.sameValue(unreachable, 0, 'Unreachable statement was not executed');
|
assert.sameValue(unreachable, 0, 'Unreachable statement was not executed');
|
||||||
|
@ -48,13 +48,19 @@ info: |
|
|||||||
exception.
|
exception.
|
||||||
|
|
||||||
---*/
|
---*/
|
||||||
var iterable = {};
|
var nextCount = 0;
|
||||||
|
var returnCount = 0;
|
||||||
var iterator = {
|
var iterator = {
|
||||||
|
next: function() {
|
||||||
|
nextCount += 1;
|
||||||
|
return {done: false, value: undefined};
|
||||||
|
},
|
||||||
return: function() {
|
return: function() {
|
||||||
|
returnCount += 1;
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
var iter;
|
var iterable = {};
|
||||||
iterable[Symbol.iterator] = function() {
|
iterable[Symbol.iterator] = function() {
|
||||||
return iterator;
|
return iterator;
|
||||||
};
|
};
|
||||||
@ -63,7 +69,7 @@ function* g() {
|
|||||||
|
|
||||||
var counter = 0;
|
var counter = 0;
|
||||||
|
|
||||||
for ([ {}[yield] , ] of [iterable]) {
|
for ([ {} = yield , ] of [iterable]) {
|
||||||
|
|
||||||
counter += 1;
|
counter += 1;
|
||||||
}
|
}
|
||||||
@ -72,9 +78,13 @@ assert.sameValue(counter, 1);
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
iter = g();
|
var iter = g();
|
||||||
iter.next();
|
iter.next();
|
||||||
|
|
||||||
|
assert.sameValue(nextCount, 1);
|
||||||
|
assert.sameValue(returnCount, 0);
|
||||||
assert.throws(TypeError, function() {
|
assert.throws(TypeError, function() {
|
||||||
iter.return();
|
iter.return();
|
||||||
});
|
});
|
||||||
|
assert.sameValue(nextCount, 1);
|
||||||
|
assert.sameValue(returnCount, 1);
|
||||||
|
@ -46,12 +46,17 @@ info: |
|
|||||||
8. If innerResult.[[type]] is throw, return Completion(innerResult).
|
8. If innerResult.[[type]] is throw, return Completion(innerResult).
|
||||||
|
|
||||||
---*/
|
---*/
|
||||||
|
var nextCount = 0;
|
||||||
var returnCount = 0;
|
var returnCount = 0;
|
||||||
var unreachable = 0;
|
var unreachable = 0;
|
||||||
var thisValue = null;
|
var thisValue = null;
|
||||||
var args = null;
|
var args = null;
|
||||||
var iterable = {};
|
var iterable = {};
|
||||||
var iterator = {
|
var iterator = {
|
||||||
|
next: function() {
|
||||||
|
nextCount += 1;
|
||||||
|
return {done: false, value: undefined};
|
||||||
|
},
|
||||||
return: function() {
|
return: function() {
|
||||||
returnCount += 1;
|
returnCount += 1;
|
||||||
thisValue = this;
|
thisValue = this;
|
||||||
@ -69,7 +74,7 @@ function* g() {
|
|||||||
|
|
||||||
var counter = 0;
|
var counter = 0;
|
||||||
|
|
||||||
for ([ {}[yield] , ] of [iterable]) {
|
for ([ {} = yield , ] of [iterable]) {
|
||||||
unreachable += 1;
|
unreachable += 1;
|
||||||
counter += 1;
|
counter += 1;
|
||||||
}
|
}
|
||||||
@ -80,8 +85,13 @@ assert.sameValue(counter, 1);
|
|||||||
|
|
||||||
iter = g();
|
iter = g();
|
||||||
iter.next();
|
iter.next();
|
||||||
|
|
||||||
|
assert.sameValue(nextCount, 1);
|
||||||
|
assert.sameValue(returnCount, 0);
|
||||||
|
|
||||||
result = iter.return(888);
|
result = iter.return(888);
|
||||||
|
|
||||||
|
assert.sameValue(nextCount, 1);
|
||||||
assert.sameValue(returnCount, 1);
|
assert.sameValue(returnCount, 1);
|
||||||
assert.sameValue(unreachable, 0, 'Unreachable statement was not executed');
|
assert.sameValue(unreachable, 0, 'Unreachable statement was not executed');
|
||||||
assert.sameValue(result.value, 888);
|
assert.sameValue(result.value, 888);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user