- needs to use async* to declare async generator methods.
- Needs to use yield* if delegating yield semantics are intended.
- Has assignment to private name method, which is not allowed and throws a TypeError at runtime.
- handle multiple $DONE calls
- fix calls to private methods
Additionally removed the `arrow-function` feature for
test/language/eval-code/direct/new.target-fn.js as it is not testing
arrow-functions, but they are mentioned in the preamble.
These tests are againt a proposed fix for
https://github.com/tc39/ecma262/issues/753
They seem to pass in V8, JSC and SpiderMonkey, though ChakraCore
hews slightly closer to the previous specification.
Early errors may result from parsing the source text of a test file, but
they may also result from parsing some other source text as referenced
through the ES2015 module syntax. The latter form of early error is not
necessarily detectable by ECMAScript parsers, however. Because of this,
the label "early" is not sufficiently precise for all Test262 consumers
to correctly interpret all tests.
Update the "phase" name of "early" to "parse" for all those negative
tests that describe errors resulting from parsing of the file's source
text directly. A forthcoming commit will update the remaining tests to
use a "phase" name that is more specific to module resolution.
Static fields were broken up from instance fields and demoted to
Stage 2 in the November 2017 TC39 meeting. This patch removes the
test262 tests which test static class fields.
- Add tests for multiple public fields of the same name
- Reorganize fields default templates
- Add more tests for redeclaration of fields
- Remove non used template
- Add tests for computed property names in class fields definitions
- Minor test fixes
Thanks @andresaraujo for helping with the early review
* Accessing `ta[0]` throws a TypeError.
* Fix array indices starting at 0 and property references
* Fix classfields templates for properly checking static propnames.
* Generate tests
* `assert.equal` is not defined
* Add missing includes
* Generate tests
* typo s/Avalue/42/
* fix whitespace
* Add missing var for strict mode
* Expand generated class fields tests for forbidden computed property name values
Ref https://github.com/tc39/test262/pull/1339#issuecomment-342830243
* derived classes have access to private names in base classes, if private names are in scope
Changes:
- Changed eval-err-contains-supercall-1.case to add a property access similar to eval-err-contains-supercall-2.case, without this property access eval-err-contains-supercall-1.case would be identical to eval-err-contains-supercall.case.
- Remove unnecessary "earlyerror" and "executionerror" template arguments when the value is already clear from the context.
- Fixed the description in eval-err-contains-supercall-2.case to refer to the correct early error rule.
- Fixed a copy-paste error in eval-err-contains-superproperty-1.case and eval-err-contains-superproperty-2.case.
- Split initializer-eval-super into initializer-eval-super-call and initializer-eval-super-property, because we actually need to test different behaviour for the super-call compared to the super-property case.
- Split initializer-eval into initializer-eval-arguments and initializer-eval-newtarget, because `arguments` and `new.target` are differently handled in class-fields.
- And fixed other copy-paste errors in the template files.
Fixes#1325
This change updates test cases to assume that the "next" method is only
loaded from a synchronous iterator once, and is re-used for each call to
Async-from-Sync Iterator.next(), based on https://github.com/tc39/ecma262/pull/988
Update behaviour based on changes from https://github.com/tc39/ecma262/pull/988.
The actual spec change PR for async iteration is not yet uploaded.
This does not include any changes to Async-from-Sync Iterator.
Incorrect $DONE handlers which led to calling $DONE twice
- async-generators/yield-promise-reject-next-yield-star-async-iterator.case
- dstr-assignment-for-await/array-elem-trlg-iter-rest-nrml-close-skip.case
$DONE handler not called at all:
- dstr-assignment-for-await/array-elem-put-const.case
- dstr-assignment-for-await/array-elem-trlg-iter-elision-iter-nrml-close-null.case
Incorrect assumed execution sequence in IteratorDestructuringAssignmentEvaluation:
- dstr-assignment-for-await/array-elem-iter-rtrn-close-null.case
- Correct property access in class fields template
- Remove assertions for properties which aren't present
- Correct expected assertion value for uninitialized class field
- Correct expected property descriptor attributes
- Fix property tests in class-fields/string-literal-names.case
- Pass restore option, otherwise it's not possible to call the method later
- Fix async iteration tests to test iteration result objects
The templates are being used for many tests reusing the same available function forms.
The format they are provided allow us to extend tests with cases for other tests relying
in the same formats.
- Insert a missing .next() call
- Avoid overlapping names used in test cases
Case files like `src/dstr-binding/ary-ptrn-elem-ary-elision-init.case` are already setting
bindings named `g`. Renaming them in the templates prevents overlapping names.
Tests doesn't use async functionality and don't call $DONE, so remove
"async" flag:
- src/params/error/async-gen-named-func-expr.template
- test/language/expressions/async-generator/params-named-dflt-abrupt.js
- test/language/expressions/async-generator/params-named-dflt-ref-later.js
- test/language/expressions/async-generator/params-named-dflt-ref-self.js
Intl.PluralRules.prototype is no longer a Intl.Prototype instance:
- test/intl402/PluralRules/prototype/prototype.js
Intl.PluralRules throws an error when called as a function:
- test/intl402/PluralRules/undefined-newtarget-throws.js
Module namespace objects call OrdinaryDelete for symbol properties:
- test/language/module-code/namespace/internals/delete-non-exported.js
Async generators no longer retrieves "done" property twice:
- src/async-generators/yield-star-async-next.case
- src/async-generators/yield-star-async-return.case
- src/async-generators/yield-star-async-throw.case
Minor units of CLF is 4, so we need to test with maximumFractionDigits=3
to get an error:
- test/intl402/NumberFormat/dft-currency-mnfd-range-check-mxfd.js
DateTimeFormat.prototype.formatToParts length property was changed from
0 to 1:
- test/intl402/DateTimeFormat/prototype/formatToParts/length.js
minimumSignificantDigits and maximumSignificantDigits properties are
only retrieved once:
- test/intl402/NumberFormat/11.1.1_32.js
* Re-generate tests
The test generation tool has been modified in the time since these tests
were first generated and committed to the project. Re-generate the tests
using the latest version of the tool.
* Add test cases for Annex B hoisting disqualifiers
The "variable-like" function hoisting semantics defined in Annex B
extension B.3.3 is only applied if "[...] replacing the
FunctionDeclaration f with a VariableStatement that has F as a
BindingIdentifier would not produce any Early Errors [...]". Test262
previously included tests for this condition when the disqualifying
early error originated from the ScriptBody and FunctionBody productions.
Add test cases to assert the behavior when it is disqualified by all
other relevant early errors: Block statements, `for` statements,
`for-of` statements, `for-in` statements, and Switch statements.
* Generate tests
* fixup! Add test cases for Annex B hoisting disqualifiers
* fixup! Add test cases for Annex B hoisting disqualifiers
Correct test case "info" meta-data.
* fixup! Add test cases for Annex B hoisting disqualifiers
Improve test bodies
* fixup! Generate tests
* Extend tests for class "name" inference
Ensure that when a class defines a static "name" method, that method
definition prevents the "name" inference behavior.
* Re-generate tests
* Improve test coverage for `super` keyword
Add tests for SuperCall and SuperProperty, organized together in the
`test/language/expressions/super/` directory. For SuperProperty, include
tests for usage from within Object initializers and class bodies because
a different set of semantics are observable from each context.
Utilize the test generation tool to increase coverage of destructuring
assignment semantics. Previously, only destructuring assignment in the
AssignmentExpression position was tested. With this change applied, the
same tests will assert expected behavior for destructuring assignment in
`for..of` statements, as well.
A limited number of tests are applied to the `for..in` statement as
well, but due to the iteration protocol observed by that statement, many
destructuring tests are not relevant, and others cannot be automatically
generated from this format.