676 Commits

Author SHA1 Message Date
Gorkem Yakin
c04984872d Merge pull request #370 from bocoup/symbol-has-instance
Add tests for well-known Symbol, @@hasInstance
2015-08-31 16:32:55 -07:00
Mike Pennisi
4e88365dc6 Add tests for well-known Symbol: @@toPrimitive 2015-08-16 18:37:22 -04:00
André Bargull
1b14708467 Replace runTestCase with assert helpers [test/built-ins] 2015-08-13 17:50:58 +02:00
André Bargull
bd603294cb Replace runTestCase with assert, try-finally 2015-08-13 17:43:11 +02:00
André Bargull
73d5292b77 Replace runTestCase with assert helpers [test/language/expressions] 2015-08-13 17:34:17 +02:00
André Bargull
3de484fe83 Replace runTestCase with assert.throws [test/language/expressions] 2015-08-11 17:42:41 +02:00
André Bargull
efabdf8474 Replace runTestCase with assert helpers [test/language/expressions/] 2015-08-06 18:32:15 +02:00
André Bargull
c7e160084c Replace runTestCase with assert helpers [test/language/expressions/object] 2015-08-06 18:31:44 +02:00
André Bargull
4eac0d909e Replace runTestCase with assert helpers [test/language/expressions/delete] 2015-08-06 18:31:06 +02:00
Mike Pennisi
652e35bd32 Add tests for well-known Symbol, @@hasInstance
Assert the behavior of the built-in method on the FunctionPrototype and
the usage of the Symbol by the `instanceof` operator.
2015-07-28 00:08:55 -04:00
Mike Pennisi
2fe074134a Add tests for function name attribute
This change set includes tests for most invocations of the
SetFunctionName abstract operation in the ES2015 specification.
Practical testing considerations preclude the introduction of tests for
certain invocations:

- The project is still vetting methods to sustainably test the semantics
  of the Destructuring Binding pattern across all valid productions.
  - 13.3.3.6 Runtime Semantics: IteratorBindingInitialization
  - 13.3.3.7 Runtime Semantics: KeyedBindingInitialization
- Without a loader, there is no way to access a function object declared
  in an ExportDeclaration, so `name` assignment cannot be tested in
  these cases
  - 14.1.19 Runtime Semantics: InstantiateFunctionObject
  - 14.4.12 Runtime Semantics: InstantiateFunctionObject
  - 14.5.15 Runtime Semantics: BindingClassDeclarationEvaluation
  - 15.2.3.11 Runtime Semantics: Evaluation
2015-07-21 20:05:34 -04:00
Brian Terlson
2284a46ebf Merge pull request #385 from anba/license
Change license headers to standard format
2015-07-17 11:03:07 -07:00
André Bargull
023c7aa69e - Remove inline license
- Remove duplicate word
- Add missing license
2015-07-17 19:55:00 +02:00
André Bargull
a85f5039e0 Remove links to hg.ecmascript.org 2015-07-17 17:43:09 +02:00
Brian Terlson
13ebbebfd6 Merge pull request #360 from bocoup/negative-reform
Negative reform
2015-07-16 15:31:22 -07:00
Thomas Wood
b10f06ada3 Fix 11.13.1-4-29gs.js incorrect comment explanation
SyntaxError => TypeError for writing to a non-writeable field.

Fixes #372
2015-07-15 20:32:47 +01:00
Mike Pennisi
10e0d977ec Prefer explicit error checking where possible
The `negative` frontmatter tag expresses an expectation for the behavior
of the test file as a whole. The `assert.throws` helper function offers
more fine-grained control over expectations because it may be applied to
specific statements and expressions. This makes it preferable in cases
where it may be used (i.e. when the test body does not describe a syntax
error or early error).

Re-implement assertions for errors to use the `assert.throws` helper
function wherever possible.
2015-07-10 14:12:57 -04:00
Mike Pennisi
6646d3e94f Re-organize class tests
The `test/language/class/` directory contains a small subset of
Test262's tests for ES2015 classes. The majority of tests for classes
are organized within `test/language/statements/class/`.

- Move the tests that rely on the ClassDeclaration syntactic form from
  `test/language/class/` to `test/language/statements/class/`.
- Move the test that relies on the ClassExpression syntactic form from
  `test/language/class/` to `test/language/expressions/class/`.
2015-07-10 10:36:05 -04:00
Mike Pennisi
e0d59b0ede Add tests for Unicode escape sequences
- Re-organize existing tests for identifiers
  Name files according to their content (not their ES5 ID). Move tests
  for IdentifierName and LabelIdentifier to more appropriate directories.
- Simplify and correct tests
  Instead of asserting successful runtime evaluation using `eval`, rely
  on the test runner's ability to detect syntax errors. Update the test
  bodies to test the grammar referenced by their ES5 ID and
  description--the IdentifierStart pattern.
- Use `negative` frontmatter to assert SyntaxErrors
- Remove redundant tests
- Use `assert.equal` helper function
- Add equivalent tests for literal unicode chars
- Add tests for variable-length unicode escape
2015-07-09 18:52:22 -04:00
Brian Terlson
6f22dad152 Merge pull request #316 from bocoup/template-more
Improve tests for templates
2015-07-06 17:30:34 -05:00
Mike Pennisi
64826c2ad3 Make tests more strict
In ECMAScript 5, assignment to a non-reference value throws a runtime
ReferenceError. ECMAscript 6 specifies an early ReferenceError in these
cases. Tests for this behavior have been authored to pass in both cases.
Simplify these tests to describe and assert the early error.
2015-06-29 12:25:01 -04:00
Brian Terlson
20d39432b9 Merge pull request #337 from bocoup/remove-fn-exists
Remove unnecessary "include" file
2015-06-26 11:02:45 -07:00
Mike Pennisi
f8e18ccd76 Remove unnecessary "include" file
The `fnExists` function defines a generic way to determine if any number
of values are function instances. Because it is only used by a single
test, the additional complexity required by the generalized code (and
the organizational drawbacks to maintaining another "include" file) are
not justified. Remove the file and update the test to assert the
function's existence directly.
2015-06-26 12:34:04 -04:00
Mike Pennisi
29ecced632 Update handling of directive prologues
Some tests specifically concern the application of the `use strict`
directive as it appears in JavaScript source code. These tests should
*not* be run with the `onlyStrict` flag because relying on the test
runner to enable strict mode makes the semantics of the source code
irrelevant. Update these tests to use the `noStrict` flag.

Other tests concern language semantics that are only valid in strict
mode, but the mechanism for enabling strictness is inconseqential.
Update these tests to use the `onlyStrict` flag and remove any redundant
`use strict` directive prologues contained within.

Still other tests are valid both within and outside of strict mode.
In keeping with the majority of other tests, do not specify any
restrictions on the environments in which these tests may be run.
2015-06-18 17:38:34 -04:00
Mike Pennisi
fabf5f3320 Correct typo in test descriptions 2015-06-18 17:38:33 -04:00
Brian Terlson
42d16da901 Merge pull request #286 from bocoup/obj-method-def
Add tests for MethodDefinition forms new to ES6
2015-06-17 19:56:29 -04:00
Mike Pennisi
6863328f88 fixup! Introduce additional tests for ES6 templates
Include tests using arrow functions
2015-06-16 16:08:03 -04:00
Mike Pennisi
e42f977122 fixup! Introduce additional tests for ES6 templates
Ensure test files assert the described behavior. Extend coverage to
strict and non-strict mode explicitly.
2015-06-16 15:10:09 -04:00
Mike Pennisi
ef7ddf9f7e Improve frontmatter usage
Define explanatory text using the `info` tag and include single-line
descriptions.
2015-06-12 15:36:20 -04:00
Mike Pennisi
80c67e56c1 Remove duplicative test
The assertions of this file are also made in another more complete test:
`tv-line-terminator-sequence.js`. Remove this file in favor of that one.
2015-06-12 12:02:33 -04:00
Mike Pennisi
5ca7a58e75 Introduce additional tests for ES6 templates 2015-06-12 12:02:01 -04:00
Mike Pennisi
bd3d160ba1 Reorganize existing tests 2015-06-12 11:30:44 -04:00
Brian Terlson
7eb27329b3 Merge pull request #307 from bocoup/remove-fail
Remove `$FAIL` function
2015-06-09 16:59:13 -07:00
Mike Pennisi
92890e6723 Remove $FAIL function
This function is equivalent to `$ERROR` (which is automatically included
in test environments). Remove the harness file that defines the
function, remove references to the file from test `includes` lists, and
update scripts to instead invoke the `$ERROR` function.
2015-06-09 19:44:25 -04:00
Pieter van Ginkel
632beef930 Improved description of 11.4.1-4.a-5.
The previous description of the 11.4.1-4.a-5 test case implied that an environment object could not be deleted while inside a with. However, the actual test was to test whether the variable declaration could be deleted. The description has been updated to better reflect this.
2015-06-09 11:29:54 +02:00
Pieter van Ginkel
943face280 Fixed testing deletion of an environment object.
Test 11.4.1-4.a-5 states that it verifies that an environment object cannot be deleted. However, this was giving a false positive. It was actually testing where a "var" declaration on an environment object cannot be deleted (there are other tests for this). This test case fails on Chrome 43, Firefox 38 and Internet Explorer 11.
2015-06-03 19:31:52 +02:00
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