Regenerate tests

This commit is contained in:
André Bargull 2017-09-16 17:00:55 +02:00
parent 86da171663
commit 58111fff7b
11 changed files with 146 additions and 45 deletions

View File

@ -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');

View File

@ -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);

View File

@ -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');

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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');

View File

@ -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);

View File

@ -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');

View File

@ -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);

View File

@ -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);