- Add missing "var" declarations and noStrict flags
- Remove with-statements (minor change in behaviour - primitive vs wrapper lookup, but does not seem too important for these tests)
Part of issue #35.
- Add missing "var" declarations and noStrict flags
- Remove invalid noStrict flags
- ietestcenter tests need fixed, require updates to use propertyHelper.js
Part of issue #35.
- Add missing "var" declarations and noStrict flags
- Move code which requires non-strict semantics from Array.prototype.find_this-arg.js to Array.prototype.find_this-arg-receiver-primitive.js
- Remove duplicate code from Array.prototype.findIndex_this-arg.js, already present in Array.prototype.findIndex_this-arg-receiver-primitive.js
- Remove test code from Array.of_assignment-to-new-object-length.js, does not work in strict mode
Part of issue #35
- 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
- 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
- Expand ambiguous assertion messages and assert execution paths more
finely.
- Improve variable names in `for..of` tests
While the object created by a GeneratorFunction may be considered an
"iterable", it is being used as an iterator in these tests. Naming the
variable according to the way it is used improves the readability of
the test body.
- Add 'features' attribute to test frontmatter
- Move tests
- Introduce additional `for..of` control flow tests
These tests are derived from the following files within the Google V8
project:
test/mjsunit/es6/typed-array-iterator.js
test/mjsunit/es6/arguments-iterator.js
test/mjsunit/es6/string-iterator.js
test/mjsunit/es6/collection-iterator.js
These tests are derived from the following files within the Google V8 project:
test/mjsunit/es6/regress/regress-2506.js
test/mjsunit/es6/regress/regress-3426.js
test/mjsunit/es6/regress/regress-3683.js
Add missing variable declarations (issue #35)
Split S12.6.3_A10 and S12.6.3_A10.1 because both files seem to test implicit global variables (issue #35)
Changes (issue #35)
- Add missing noStrict flags.
- Change 13.2-15-1 and 13.2-18-1 to use assert.js and propertyHelper.js (simplifies writable and configurable checks while in strict mode).
- Add variable declarations for globals.
- Create copies of S13.2.1_A6_T1 and S13.2.1_A6_T2 instead of adding variable declarations, because both files seem to test implicit global variables.
- Split S13_A14 and S13_A16 to work in strict mode.
- Remove assignment to .name property.
Add missing noStrict flags (issue #35)
Add missing noStrict flags and variable declarations (issue #35)
Add missing noStrict flags (issue #35)
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.
These tests are derived from the following files within the Google V8 project:
test/mjsunit/harmony/array-fill.js
test/mjsunit/harmony/array-find.js
test/mjsunit/harmony/array-findindex.js
test/mjsunit/harmony/array-from.js
test/mjsunit/harmony/array-of.js
These tests are derived from the following files within the Google V8
project:
test/mjsunit/es6/templates.js
Some of these tests include non-printable characters, causing git to
infer that they are binary files. Introduce a `.gitattributes` file to
configure git to consistently display the source text of all JavaScript
files.
These tests are derived from the following files within the Google V8 project:
test/mjsunit/harmony/class-computed-property-names-super.js
test/mjsunit/harmony/class-property-name-eval-arguments.js
test/mjsunit/harmony/classes-experimental.js
test/mjsunit/harmony/classes-lazy-parsing.js
test/mjsunit/harmony/classes.js
These tests are derived from the following files within the Google V8 project:
test/mjsunit/harmony/method-name-eval-arguments.js
test/mjsunit/harmony/object-literals-method.js
test/mjsunit/harmony/object-literals-property-shorthand.js
test/mjsunit/harmony/object-literals-super.js
These tests are derived from the following files within the Google V8
project:
test/mjsunit/harmony/computed-property-names-classes.js
test/mjsunit/harmony/computed-property-names-object-literals-methods.js
test/mjsunit/harmony/computed-property-names-super.js
test/mjsunit/harmony/computed-property-names.js
These tests are derived from the following files within the Google V8 project:
test/mjsunit/harmony/block-conflicts.js
test/mjsunit/harmony/block-for.js
test/mjsunit/harmony/block-leave.js
test/mjsunit/harmony/block-let-declaration.js
test/mjsunit/harmony/block-let-semantics.js
test/mjsunit/harmony/block-scoping.js
- 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
The expected values were already changed in a previous commit (@49abae4f5e6b38931d86dc9b9d34ae30d9ced2ca),
only the test descriptions still needed to be updated. (Fixes#138)
- this change hits all files that use
dataPropertyAttributesAreCorrect or
acccessorPropertyAttributesAreCorrect
Major changes:
- remove include of runTestCase.js,
dataPropertyAttributesAreCorrect.js and
acccessorPropertyAttributesAreCorrect.js
- add include of propertyHelper.js
- remove function testCase() and call to
function runTestCase()
- instead of collecting test state into booleans,
which are eventually returned from runTestCase,
test conditions and throw errors immediately
- use negative: to check error types instead of
using `instanceof` in a catch() block
Selected commit logs follow:
manual conversion of accessorPropertyAttributesAreCorrect() test
- remove runTestCase
- remove wrapping testCase function
- unindent
- remove includes of runTestCase & accessor...
- add include of propertyHelper.js
- unpack final two args 'true, false' to explicit inline
tests of isEnumerable and isConfigurable
- unpack setter test into inline logic
- unpack getter test into inline logic
used script to replace includes: frontmatter
with propertyHelper.js ; manually added back
references to fnGlobalObject() where needed
additional helper functions
add helper functions for get and writable
duplicate runTestCase so can remove runTestCase.js from
includes of all tests in batch
use keyboard macros to simplify repetitive conversions
remove auto-save file accidentaly committed
minor changes, manually remove runTestCase from remaining files
lint etc. fixes
remove now-obsolete harness files
make strict/nonstrict variants
tests where behavior is different in strict/nonstrict
need two variants
- strict mode throws on assign to read-only element (no setter fn)
- strict mode separates named arguments from arguments[]
fix indentation
cleanup minor issues
reviewing 15.2.3.7-9 tests, found some minor issues
- indentation/spacing
- duplicate test (eg, direct test of value and dataProp...)
- remove needless try/finally
- use assert.. helpers in place of if(is..
- rename some assertions to 'e'
rename assertX to verifyX
new helper fn sameValue
test "set" as well as get
reverse order of checks
restore test of desc2
restore test of length
restore test of ownProperty
incorporate suggestions re order of ops, Object.prototype
add test of sameValue helper
restore return value in getter
restore second defineProperty call
restore check of explicit "false"
restore explicit test of TypeError
set noStrict flag on arguments changes
rename catch var to "e" b4ad0e6
remove dataPropertyAttributesAreCorrect from tests 0d83ff2
remove accessorPropertyAttributesAreCorrect from tests bb926f3
remove {data,accessor}Property... fns from harness
fix writable check on array.length
call $ERROR if expected exception not thrown
fix Epected => Expected typo
use assert._isSamevalue
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.
The with statement tests were novel, but the tests for
property accessors throwing errors for undefined & null
were duplicates with S11.2.1_A3_T4/5 respectively.
Sbp_A1_T1 to Sbp_A5_T2, Sbp_12, Sbp_7*: Functions are now valid in blocks, tests syntactically invalid anyway
Sbp_A10_T1 to Sbp_A10_T2: Tests are broken
add more tests of Promise.all
additional Promise test
add tests of Promise.prototype
add some tests for Promise.race
additional Promise tests
add Promise.reject and Promise.resolve tests
correct test description
rename badly-named files
use current license and minor style cleanup
correct understanding of undefined as thisArgument
incorporate line notes
Is this enough to make a constructor in ES6?
more accurate use of resolved,fulfilled etc.
remove some redundant tests
add new tests
remove "constant array" unclear language
better description
Update S25.4.2.1_A3.2_T1.js
address dangling ()
changes per @anba line notes
- if GetIterator is abrupt, the Promise.race / Promise.all should reject
- if Promise.race is called with nonconforming constructor as 'this',
TypeError should be thrown (cannot reject if exeption is thrown from
NewPromiseCapability; no promise exists yet...)
correct description of "this" testing in callbacks
fix whitespace, formatting
remove tab
add "next-turn" checking to sequencers