590 Commits

Author SHA1 Message Date
Mike Pennisi
69b89d85b3 Add tests for destructuring assignment 2015-06-03 10:46:51 -04:00
Brian Terlson
f41d108840 Merge pull request #275 from anba/increment-reference
Increment/Decrement with property accessor expression
2015-06-02 19:09:33 -05:00
Brian Terlson
b3e9752b30 Merge pull request #273 from anba/assignment-reference
Assignment with left-hand side property accessor
2015-06-02 19:09:28 -05:00
Mike Pennisi
b2a62444fc fixup! Add tests for MethodDefinition forms new to ES6
Update test according to latest change to ES6 spec:
https://twitter.com/awbjs/status/603251578070552576
2015-05-26 14:52:21 -04:00
Mike Pennisi
30a4a5da7d fixup! Add tests for MethodDefinition forms new to ES6
Avoid extending builtin prototype and consistently define a shadowing
property on the object instance to help recognize a possible
implementation bug.
2015-05-26 12:33:51 -04:00
Mike Pennisi
31bdf48bec Add tests for MethodDefinition forms new to ES6 2015-05-25 11:23:47 -04:00
Mike Pennisi
cde990b79c Rename tests 2015-05-25 11:23:46 -04:00
Mike Pennisi
202ed9ee1d Add tests for IdentifierReference as property
From the ES6 specification:

> ## PropertyDefinition : IdentifierReference
>
> 1. Let propName be StringValue of IdentifierReference.
> 2. Let exprValue be the result of evaluating IdentifierReference.
> 3. ReturnIfAbrupt(exprValue).
> 4. Let propValue be GetValue(exprValue).
> 5. ReturnIfAbrupt(propValue).
> 6. Assert: enumerable is true.
> 7. Return CreateDataPropertyOrThrow(object, propName, propValue).
2015-05-20 16:08:40 -04:00
André Bargull
c1e1c56dc0 Increment/Decrement with property accessor expression
The increment/decrement operator evaluates its operand expression once. When
the operand expression is a property accessor, RequireObjectCoercible
and ToPropertyKey are called on the property accessor in the correct order.
2015-05-19 17:46:34 +02:00
André Bargull
c5e18d561c Assignment with left-hand side property accessor
The assignment operator evaluates its operands from left to right. When
the left-hand side expression is a property accessor, RequireObjectCoercible
and ToPropertyKey are called on the property accessor before the right-hand
side expression is evaluated.
2015-05-18 18:12:25 +02:00
André Bargull
89a4bb5ae4 Fix strict mode errors in language
- Add missing "var" declarations and noStrict flags
- Add strict mode tests for:
 - arguments-object/10.6-6-3 -> arguments-object/10.6-6-3-s
 - arguments-object/10.6-6-4 -> arguments-object/10.6-6-4-s
- Remove try-finally clean-up code
- Add strict mode compatible tests for eval-code/S10.4.2_A1.1_T*
  - No strict mode compatible files added for eval-code/S10.4.2_A1.2_T*, because it doesn't really make sense in this context.
  - (S10.4.2_A1.1 and S10.4.2_A1.2 should probably be removed, because the tested behaviour is not required by the spec.)
- Split S8.5_A10, S8.5_A4 and S8.1_A3 into declaration (both modes) and assignment tests (non-strict only)

Part of issue #35.
2015-05-08 17:27:52 +02:00
Mike Pennisi
7b969ce65b Add analogous tests
Introduce additional tests to increase parity in coverage between
generator expressions and generator statements.
2015-05-07 19:11:47 -04:00
Mike Pennisi
779a59f30c Import tests from Google V8 (generators semantics)
These tests are derived from the following files within the Google V8
project:

    test/mjsunit/es6/generators-iteration.js
    test/mjsunit/es6/generators-objects.js
    test/mjsunit/es6/generators-runtime.js
    test/mjsunit/es6/generators-states.js
2015-05-07 19:11:47 -04:00
Brian Terlson
87fd4e5699 Merge pull request #240 from anba/es2015-compat-updates
Update remaining tests for ES2015 compatibility (rev38)
2015-04-27 12:55:26 -07:00
André Bargull
ef8f056a76 Update remaining tests for ES2015 compatibility (rev38)
- Duplicate properties are allowed in object literals: test/language/expressions/object/*.js
- RegExpBuiltinExec was changed to use ToLength(lastIndex): test/built-ins/RegExp/prototype/exec/S15.10.6.2_A5_T3.js
- Non-undefined flags arguments allowed in RegExp constructor call: test/built-ins/RegExp/*.js
- Array.prototype.push throws TypeError if new length exceeds Number.MAX_SAFE_INTEGER: test/built-ins/Array/prototype/push/S15.4.4.7_A2_T2.js
- .length property of bound functions is configurable: test/built-ins/Function/prototype/bind/15.3.4.5-15-2.js
- Array.prototype changed back to exotic Array object: test/built-ins/Array/prototype/*.js, test/built-ins/Array/isArray/15.4.3.2-0-5.js
2015-04-27 18:21:34 +02:00
André Bargull
e31ae1ad9f Invalid language tests
- in-statement-position-label-statement.js is an Annex-B test (B.3.2 Labelled Function Declarations), moved to annexB directory
- identifier-let-allowed-as-lefthandside-expression-strict.js needs to check for a SyntaxError (ES6, 12.1.1)
- Remove sort() calls in test/built-ins/Object/getOwnPropertyNames/*.js
- Remove sort() calls in test/language/block-scope/syntax/for-in/acquire-properties-from-*.js
- verifyConfigurable() needs to called last in test/built-ins/Object/is/length.js
- All productions within ClassBody are implicitly strict, update test/language/class/method-definition/yield-as-*.js accordingly
- Remove unnecessary noStrict flag in test/language/class/method-definition/yield-as-generator-method-binding-identifier.js
- Check own symbols are returned in property creation order from Object.getOwnPropertySymbols():
  - test/language/computed-property-names/basics/symbol.js
  - test/language/computed-property-names/class/method/symbol.js
  - test/language/computed-property-names/class/static/method-symbol.js
  - test/language/computed-property-names/object/method/symbol.js
- Fix copy-paste error in test/language/expressions/object/method-definition/yield-as-function-expression-binding-identifier.js
2015-04-27 16:56:19 +02:00
Brian Terlson
8980d3f929 Merge pull request #228 from bocoup/arrow-functions
14.2 Arrow Function Definitions
2015-04-21 09:48:07 -07:00
Rick Waldron
93e9da29a0 14.2 Arrow Function Definitions 2015-04-20 19:53:06 -04:00
Brian Terlson
b8711eb803 Merge pull request #229 from bocoup/restructure-generator-tests-2
Restructure generator tests 2
2015-04-18 15:50:23 -07:00
Brian Terlson
43a238bc0b Merge pull request #197 from bocoup/harmony-symbols
Import tests from Google V8 (Symbol)
2015-04-18 15:49:46 -07:00
Brian Terlson
a6ca558d46 Merge pull request #218 from bocoup/templates
Import tests from Google V8 (templates)
2015-04-18 15:46:34 -07:00
Mike Pennisi
909156c61f Add "features" metadata to existing tests 2015-04-15 18:47:34 -04:00
Mike Pennisi
5eb977a7c7 Move tests for generator method definitions
The project has recently changed the preferred location for generators
created via the MethodDefinition syntactic form.
2015-04-15 18:44:02 -04:00
Mike Pennisi
14cb6ca88e Extend tests for LineTerminatorSequence
Add assertions for the "Line Separtator" and "Paragraph Separator" line
terminator code points.
2015-04-15 10:50:44 -04:00
Mike Pennisi
1c3c0704fd fixup! Reorganize test files 2015-04-15 10:36:09 -04:00
Brian Terlson
b9e4a43f5e Merge pull request #204 from bocoup/generator-parsing-2
Import tests from Google V8 (generator syntax)
2015-04-14 13:31:53 -07:00
Mike Pennisi
95a78b36d5 Add tests for additional generator function forms 2015-04-14 16:23:16 -04:00
Brian Terlson
afa25f6cdc Merge pull request #221 from bocoup/typeof
Update tests for `typeof` operator
2015-04-11 16:28:37 -07:00
Mike Pennisi
c759cdb804 Re-structure generator tests 2015-04-08 11:08:48 -04:00
Mike Pennisi
29326da2a8 Normalize application of typeof operator
Consistently use the `typeof` operator without the grouping operator
(and include one explicit test to ensure the validity of this pattern
generally).
2015-04-07 17:37:45 -04:00
Mike Pennisi
3dce857e32 Update tests to use assertion library 2015-04-07 17:37:45 -04:00
Mike Pennisi
663f6776aa Add ES6 IDs 2015-04-07 17:37:45 -04:00
Mike Pennisi
9c42c10e48 Correct error in test descriptions 2015-04-07 17:37:45 -04:00
Mike Pennisi
5acd66e10a Rename test files
According to the new test organization scheme, specification
identification references should be encoded within the test file itself,
and the file should be named according to the semantics of the test.
2015-04-07 17:37:40 -04:00
Rick Waldron
59e2a7ac57 Import tests from Google V8 (Symbol)
These tests are derived from the following files within the Google V8 project:

	test/mjsunit/harmony/private.js
2015-04-07 16:53:18 -04:00
Rick Waldron
cda3ec74a1 ES6-specific tests: es5id=>es6id, new es6id entries. Closes gh-144 2015-02-12 16:36:13 -05:00
André Bargull
1a4793926f Fix strict mode errors in language/expressions
- Add missing noStrict flags when tests explicitly require non-strict semantics (e.g. unqualified delete, with statement)
- Change `throw new Exception(...)` to `$ERROR(...)` in call/*
- Replace dynamic strict mode check with noStrict flag in call/11.2.3-3_8
- Align assignment/11.13.1_A3.1 with 11.13.1_A3.2 to avoid creating implicit global variable
- Split test into multiple files when undeclared variable are under test
  - addition/S11.6.1_A2.4_T3
  - division/11.5.2_A2.4_T3
  - does-not-equals/11.9.2_A2.4_T3
  - equals/S11.9.1_A2.4_T3
  - greater-than/S11.8.2_A2.4_T3
  - greater-than-or-equal/S11.8.4_A2.4_T3
  - in/S11.8.7_A2.4_T3
  - instanceof/11.8.6_A2.4_T3
  - left-shift/S11.7.1_A2.4_T3
  - less-than/S11.8.1_A2.4_T3
  - less-than-or-equal/S11.8.3_A2.4_T3
  - modulus/S11.5.3_A2.4_T3
  - multiplication/11.5.1_A2.4_T3
  - right-shift/11.7.2_A2.4_T3
  - strict-does-not-equals/11.9.5_A2.4_T3
  - strict-equals/11.9.4_A2.4_T3
  - subtraction/11.6.2_A2.4_T3
  - unsigned-right-shift/11.7.3_A2.4_T3
- Add declaration when implicit global variable creation not part of the test
  - assignment/11.13.1_A4_T1
  - compound-assignment/S11.13.2_A3.1_T*
  - compound-assignment/S11.13.2_A3.2_T*
  - grouping/11.1.6_A3_T5
  - instanceof/S15.3.5.3_*
- Split test into multiple files when unqualified delete is used
  - delete/S11.4.1_A2.2_T1.js
  - delete/11.4.1_A3.2
  - grouping/S11.1.6_A2
  - grouping/S11.1.6_A3_T6
2014-12-11 19:07:04 +01:00
André Bargull
0dbafac5a6 Add 'var' declarations for strict mode
This change adds 'var' declarations for global variables to allow the tests to run in strict mode (see issue #35).
Extra care was taken to ensure the changes do not alter the test behavior, for example when implicit creation of global variables are part of the test.
Note: The change does not fix all strict mode errors due to missing 'var' declarations.
2014-12-10 16:37:05 -08:00
André Bargull
0ceb428ec9 Add test coverage for identifier resolution in dynamic scopes
Identifier resolution in dynamic scope context is missing test coverage, resolves https://bugs.ecmascript.org/show_bug.cgi?id=1751 .
2014-12-10 16:05:32 -08:00
Brian Terlson
2a74f0ec1b Reorganize ./test 2014-12-07 15:33:09 -08:00