Correct test

As written, the test behavior and description do not match--the `throw`
invocation takes place while generator execution is paused *within* the
`try..catch` statement (not following it).

Ensure that the test exercises the described behavior (and remove
extraneous invocation of method under test).
This commit is contained in:
Mike Pennisi 2015-05-25 14:28:06 -04:00
parent 332c4dab05
commit ef5594b675
1 changed files with 9 additions and 2 deletions

View File

@ -8,10 +8,12 @@ description: >
location in the function body. location in the function body.
---*/ ---*/
var obj = {};
function* g() { function* g() {
yield 1; yield 1;
try { try {
yield 2; yield 2;
throw obj;
} catch (e) { } catch (e) {
yield e; yield e;
} }
@ -29,9 +31,14 @@ result = iter.next();
assert.sameValue(result.value, 2, 'Second result `value`'); assert.sameValue(result.value, 2, 'Second result `value`');
assert.sameValue(result.done, false, 'Second result `done` flag'); assert.sameValue(result.done, false, 'Second result `done` flag');
result = iter.throw(exception); result = iter.next();
assert.sameValue(result.value, exception, 'Third result `value`'); assert.sameValue(result.value, obj, 'Third result `value`');
assert.sameValue(result.done, false, 'Third result `done` flag'); assert.sameValue(result.done, false, 'Third result `done` flag');
result = iter.next();
assert.sameValue(result.value, 3, 'Fourth result `value`');
assert.sameValue(result.done, false, 'Fourth result `done` flag');
assert.throws(Test262Error, function() { iter.throw(new Test262Error()); }); assert.throws(Test262Error, function() { iter.throw(new Test262Error()); });
result = iter.next(); result = iter.next();