Generate tests

Signed-off-by: Rick Waldron <waldron.rick@gmail.com>
This commit is contained in:
Rick Waldron 2017-06-28 15:49:02 -04:00
parent d05b7dfa35
commit 38150b3535
4 changed files with 105 additions and 2 deletions

View File

@ -0,0 +1,46 @@
// This file was procedurally generated from the following sources:
// - src/dstr-assignment/obj-rest-computed-property-no-strict.case
// - src/dstr-assignment/default/assignment-expr.template
/*---
description: Destructuring field can be a computed property, i.e it can be defined only at runtime. Rest operantion needs to skip these properties as well. (AssignmentExpression)
esid: sec-variable-statement-runtime-semantics-evaluation
es6id: 13.3.2.4
features: [object-rest, destructuring-binding]
flags: [generated, noStrict]
includes: [propertyHelper.js]
info: |
VariableDeclaration : BindingPattern Initializer
1. Let rhs be the result of evaluating Initializer.
2. Let rval be GetValue(rhs).
3. ReturnIfAbrupt(rval).
4. Return the result of performing BindingInitialization for
BindingPattern passing rval and undefined as arguments.
---*/
var a = "foo";
var result;
var vals = { foo: 1, bar: 2, baz: 3 };
result = {[a]:b, ...rest} = vals;
assert.sameValue(b, 1);
assert.sameValue(rest.bar, 2);
assert.sameValue(rest.baz, 3);
assert.sameValue(Object.getOwnPropertyDescriptor(rest, "foo"), undefined);
verifyProperty(rest, "bar", {
enumerable: true,
writable: true,
configurable: true
});
verifyProperty(rest, "baz", {
enumerable: true,
writable: true,
configurable: true
});
assert.sameValue(result, vals);

View File

@ -18,6 +18,7 @@ info: |
BindingPattern passing rval and undefined as arguments.
---*/
var a = "foo";
var b, rest;
var result;
var vals = { foo: 1, bar: 2, baz: 3 };

View File

@ -0,0 +1,55 @@
// This file was procedurally generated from the following sources:
// - src/dstr-assignment/obj-rest-computed-property-no-strict.case
// - src/dstr-assignment/default/for-of.template
/*---
description: Destructuring field can be a computed property, i.e it can be defined only at runtime. Rest operantion needs to skip these properties as well. (For..of statement)
esid: sec-for-in-and-for-of-statements-runtime-semantics-labelledevaluation
es6id: 13.7.5.11
features: [object-rest, destructuring-binding]
flags: [generated, noStrict]
includes: [propertyHelper.js]
info: |
IterationStatement :
for ( LeftHandSideExpression of AssignmentExpression ) Statement
1. Let keyResult be the result of performing ? ForIn/OfHeadEvaluation(« »,
AssignmentExpression, iterate).
2. Return ? ForIn/OfBodyEvaluation(LeftHandSideExpression, Statement,
keyResult, assignment, labelSet).
13.7.5.13 Runtime Semantics: ForIn/OfBodyEvaluation
[...]
4. If destructuring is true and if lhsKind is assignment, then
a. Assert: lhs is a LeftHandSideExpression.
b. Let assignmentPattern be the parse of the source text corresponding to
lhs using AssignmentPattern as the goal symbol.
[...]
---*/
var a = "foo";
var counter = 0;
for ({[a]:b, ...rest} of [{ foo: 1, bar: 2, baz: 3 }]) {
assert.sameValue(b, 1);
assert.sameValue(rest.bar, 2);
assert.sameValue(rest.baz, 3);
assert.sameValue(Object.getOwnPropertyDescriptor(rest, "foo"), undefined);
verifyProperty(rest, "bar", {
enumerable: true,
writable: true,
configurable: true
});
verifyProperty(rest, "baz", {
enumerable: true,
writable: true,
configurable: true
});
counter += 1;
}
assert.sameValue(counter, 1);

View File

@ -27,6 +27,7 @@ info: |
[...]
---*/
var a = "foo";
var b, rest;
var counter = 0;