Commit Graph

356 Commits

Author SHA1 Message Date
Yusuke Suzuki e8cdf923ef Property clearing code of RegExp constructor is wrong
This code is setting values to $1 etc., which can be non-writable or accessors.
For example, https://github.com/tc39/proposal-regexp-legacy-features/ is specifying them as accessors, and they should throw an error when
it is done in strict code. We should execute `(/(?:)/).test("");` to clear them.
2020-09-02 15:32:18 -04:00
Alexey Shvayka 9e75c60028 Gracefully handle nullish arguments in harness/compareArray 2020-08-31 15:17:24 -04:00
Richard Gibson 24c6732806 Revert "Improve assert.throws output"
This reverts commit 2f9392f288.
2020-08-21 15:58:21 -04:00
Richard Gibson 6207a8058a Improve assert.throws output 2020-08-21 15:58:21 -04:00
Richard Gibson 93ff9b7262 Replace incorrect use of $DONOTEVALUATE 2020-08-21 15:58:21 -04:00
Richard Gibson 46e26a99a6 Add requirement distinguishing $DONOTEVALUATE from Test262Error 2020-08-21 15:58:21 -04:00
Gus Caplan 5f99d05c6a native function validator for your consideration 2020-08-04 19:44:31 -04:00
Gus Caplan 156186aee2 New NativeFunction tests 2020-08-04 19:44:31 -04:00
Leo Balter 5a01caed71 Add feature tag for cleanupSome
The WeakRefs proposal advanced to Stage 4 but cleanupSome moved back to a Stage 2 status.
The tests should remain in Test262 for now but this feature flag should help users to
filter tests out.
2020-07-21 16:57:50 -04:00
Leo Balter 2e127ec40e Rename usage of master to main
Ref #2699
2020-07-15 15:47:15 -04:00
Frank Tang 3c89cde3e0 Intl.DisplayNames make type required
Update the tests to the latest version after we make
the type option now required

Spec:
https://tc39.es/proposal-intl-displaynames/

Changes of spec:
https://github.com/tc39/proposal-intl-displaynames/pull/76
https://github.com/tc39/proposal-intl-displaynames/pull/83
2020-07-10 19:19:34 -07:00
Rick Waldron 529cff8ee6 Atomics: corrections 2020-06-24 12:26:41 -04:00
Rick Waldron 7e603ae236 Atomics: fix mispelled harness function name 2020-06-24 12:26:41 -04:00
Rick Waldron 11a1eabcc6 Atomics.load will operate on TA when TA.buffer is not a SharedArrayBuffer 2020-06-24 12:26:41 -04:00
André Bargull 649d0d2c9a Update list of non-algorithmic numbering systems
Per https://github.com/tc39/ecma402/pull/438
2020-06-24 12:11:36 -04:00
Alexey Shvayka fd90d58f05 Change `alphanum` to character class
Co-Authored-By: Ross Kirsling <rkirsling@gmail.com>
2020-04-29 17:22:05 -04:00
Alexey Shvayka d3b3e5e586 Make `alphanum` a non-capturing group 2020-04-29 17:22:05 -04:00
Alexey Shvayka 4371e3ae36 Remove unnecessary capture group 2020-04-29 17:22:05 -04:00
Alexey Shvayka af05e8e4f7 Revert "Simplify alphanum regex in testIntl.js"
This reverts commit d57bd9d4bd.
2020-04-29 17:22:05 -04:00
Ross Kirsling d57bd9d4bd Simplify alphanum regex in testIntl.js 2020-04-23 10:47:32 -04:00
Rick Waldron 127fa27720 Atomics: remove erroneous argument from getReport() in harness/atomicsHelper.js 2020-04-23 10:32:55 -04:00
Rick Waldron e9ee3dcd62 Atomics: add setTimeout, getReportAsync & safeBroadcastAsync to harness/atomicsHelper .js 2020-04-23 10:32:55 -04:00
André Bargull a52517464f Add Unicode and Transformed extension canonicalisation
Generated using the make_intl_data.py script.
2020-04-09 09:20:55 -04:00
André Bargull 1c93566e66 Update language tag mappings to CLDR 36.1
Generated using the make_intl_data.py script.
2020-04-09 09:20:55 -04:00
André Bargull 756ee6a171 Update list of numbering systems 2020-04-09 09:20:55 -04:00
André Bargull 7556d59fe7 Update list of Intl service constructors
Add RelativeTimeFormat, ListFormat, and DisplayNames to the list of Intl
service constructors.
2020-04-09 09:20:55 -04:00
Shu-yu Guo 966fc11862 Migrate FinalizationRegistry tests to per-item callback API 2020-04-01 16:45:40 -04:00
Alexey Shvayka 96cf75770e Harness: properly format negative zero 2020-03-25 12:03:05 -04:00
Alexey Shvayka ad046ceddd Avoid using Array.isArray directly 2020-03-25 11:59:43 -04:00
Alexey Shvayka 79146e5cf4 Bring back `verifyProp` param to `isWritable` 2020-03-23 18:19:01 -04:00
Alexey Shvayka 2abfc8cf9d Remove unused `verifyProp` paramter from `isWritable` 2020-03-23 14:49:12 -04:00
Alexey Shvayka 86b94099ad Increase unlikely array length 2020-03-23 14:49:12 -04:00
Alexey Shvayka 17fc10942e Fix isWritable throwing RangeError on Array "length" 2020-03-23 14:49:12 -04:00
Daniel Ehrenberg c6dd620ad3 Rename FinalizationGroup to FinalizationRegistry
Corresponds to https://github.com/tc39/proposal-weakrefs/pull/183

(Note, this is untested)
2020-02-20 12:13:29 -05:00
Leo Balter 6b66b82d88 Cleanup compareArray and deepEqual assertions, remove assert._formatValue
Fixes #2372
2019-10-09 17:57:10 -04:00
Leo Balter d49777de27 Whitespace cleanups. CRLF => LF 2019-10-08 20:44:09 -04:00
Mike Pennisi a9111d7144 lint: add rule to verify use of harness files
Verify that every test file which references a harness file using the
"includes" directive also contains at least one reference to a value
defined in the harness file.

To support this check, extend each harness file with a list of values
which it defines.
2019-09-25 14:00:50 -04:00
jugglinmike ce2dfd49d1 Correct bug in property helper (#2364)
Allow the property helper to be used to verify the configurability of
the global "Object" property.
2019-09-24 16:05:30 -04:00
Leo Balter a03455a080
Uncomment lines (#2360)
Ref #2353

This uncomment lines meant to be in the code for the graceful end of the async GC executions.
2019-09-23 13:49:32 -03:00
Leo Balter 3bfb341203 Fixes after test feedback 2019-09-23 12:26:02 -04:00
Leo Balter 08844700fe Update tests for GC hook, apply async
- Fix incorrect tests for WeakRefs

Ref #2239
Fixes #2260
Fixes #2256
2019-09-23 12:26:02 -04:00
Leo Balter 0fd3cf4d24
Some cleanup follow ups (#2351) 2019-09-18 14:15:53 -03:00
Ron Buckton 1056d8fde9 Add tests for regexp-match-indices (#2309)
* Add tests for regexp-match-indices

* Add tests for unicode matches based on presence of /u flag

* Added deepEqual helper, PR feedback
2019-09-18 13:39:12 -03:00
Alexey Shvayka 4edbad060e Gracefully handle errors from ToString in harness/assert (#2343)
* Introduce `assert._toString`

* Use `assert._toString` in `assert`

* Use `assert._toString` in `assert.sameValue`

* Use `assert._toString` in `assert.notSameValue`
2019-09-18 13:25:38 -03:00
Alexey Shvayka 127c896cf2 Format symbols 2019-08-24 13:35:51 +03:00
Alexey Shvayka c674362d1a Use SameValue 2019-08-24 13:24:33 +03:00
André Bargull c596d9674e Update `canonicalizeLanguageTag` helper to match UTS 35 canonicalisation 2019-07-22 02:12:20 -07:00
André Bargull 1edeb484b8 Include locales supported through fallback when testing fallbacks
This test started failing when updating to ICU 64, because ICU supports "zh"
and "zh-Hans-CN", but not explicitly also "zh-Hans", which is required for this
test to pass. The same kind of error is reproducible with ICU <64 when "Guru"
is added to the list of script codes in 'testIntl.js', because ICU supports
"pa-Guru-IN", but "pa-IN" isn't explicitly supported, too.

So, change this test to also check 'byFallback' to see if a locale is supported.

Drive-by change:
- Modernise the test to make it more readable how subtags are combined.
- Also add "419" to the list of region codes to cover the digit region syntax.
2019-07-22 02:12:05 -07:00
André Bargull f7e8dba39b Update tests to parse language tags as Unicode BCP 47 Locale Identifiers
harness/testIntl.js
- Add now invalid tags to getInvalidLanguageTags, these tags were previously used in test files changed in this commit.
- Update isCanonicalizedStructurallyValidLanguageTag regular expressions.

test/intl402/Intl/getCanonicalLocales/canonicalized-tags.js
- Moved five now invalid tags to getInvalidLanguageTags function in testIntl.js

test/intl402/Intl/getCanonicalLocales/preferred-grandfathered.js
- All irregular grandfathered tags are invalid now
- Regular grandfathered with extlang subtags are now also invalid
- Regular grandfathered with variant-like subtags are still valid

test/intl402/Intl/getCanonicalLocales/weird-cases.js
- Revert changes from last commit
- "x-u-foo" is now invalid and was moved to getInvalidLanguageTags function

test/intl402/ListFormat/constructor/constructor/locales-valid.js
test/intl402/RelativeTimeFormat/constructor/constructor/locales-valid.js
test/intl402/Segmenter/constructor/constructor/locales-valid.js
- Irregular grandfathered and privateuse only are no longer valid language tags

test/intl402/language-tags-canonicalized.js
- Same changes as in test/intl402/Intl/getCanonicalLocales/canonicalized-tags.js

test/intl402/language-tags-invalid.js
- Invalid tags list in this file was a subset of getInvalidLanguageTags, so replaced with getInvalidLanguageTags to get more coverage

test/intl402/language-tags-valid.js
- Same changes as in test/intl402/Intl/getCanonicalLocales/canonicalized-tags.js
2019-07-21 05:44:21 -07:00
Alexey Shvayka 57f0884396 Use SameValue in verifyProperty helper (#2185) 2019-06-12 14:14:14 -04:00
Leo Balter 7e7b9e103d
Port tests from Promise.all to Promise.allSettled (#2124) 2019-04-17 14:17:54 -04:00
Rick Waldron e4883091b9 Introduce $262.agent.safeBroadcast and migrate Atomics tests.
Migrating all tests to this API is necessary to prevent tests from hanging indefinitely when a SAB is sent to a worker but the code in the worker attempts to create a non-sharable TypedArray (something that is not Int32Array or BigInt64Array). When that scenario occurs, an exception is thrown and the agent worker can no longer communicate with any other threads that control the SAB. If the main thread happens to be spinning in the $262.agent.waitUntil() while loop, it will never meet its termination condition and the test will hang indefinitely.

Because we've defined $262.agent.broadcast(SAB) in https://github.com/tc39/test262/blob/master/INTERPRETING.md, there are host implementations that assume compatibility, which must be maintained.
2018-11-20 15:17:47 -05:00
Leo Balter dec4e5df74
Merge pull request #1801 from mathiasbynens/issue-1634
Move `throw "…"` for negative parsing errors to a helper function
2018-11-13 17:23:09 -05:00
Ms2ger 4986474fd1 Intl: Add an overlong language to getInvalidLocaleArguments(). 2018-10-26 16:48:40 -04:00
Rick Waldron ee3715ee56 Improve assertion handling when comparison causes failure via coercion 2018-10-23 17:25:58 -04:00
Rick Waldron f247a5fe09 Revert "Improve assertion handling when comparison causes failure via coercion"
This reverts commit c49c356744.
2018-10-23 17:21:17 -04:00
Rick Waldron c49c356744 Improve assertion handling when comparison causes failure via coercion 2018-10-23 17:00:47 -04:00
Mathias Bynens b9daa57dcb Rename to $DONOTEVALUATE per @leobalter's suggestion 2018-10-23 13:51:17 +02:00
Mathias Bynens e3feffb01e Move `throw "…"` for negative parsing errors to a helper function
Closes #1634.
2018-10-23 13:51:16 +02:00
André Bargull d7d154b3bc Remove requirement that ToNumber(value) completes in less than $262.agent.MAX_TIME_EPSILON
$262.agent.MAX_TIME_EPSILON was intended to be used for callers like `Atomics.wait(typedArray, indexNumber, valueNumber, timeoutNumber)` where all parameters with the `Number` suffix denote values which are already Number values. It should not be used for `Atomics.wait(typedArray, indexObject, valueObject, timeoutObject)` where all parameters with the `Object` suffix denote values which are Object values, because in that case we'd require that `ToNumber(objectValue)` (potentially invoked multiple times) completes in less than 100 milliseconds (the default value for MAX_TIME_EPSILON).

Also removes $262.agent.MAX_TIME_EPSILON because it is now no longer used.
2018-08-19 10:29:29 -04:00
André Bargull 8879820a8f Make RegExp/CharacterClassEscapes tests faster across all engines 2018-08-17 07:48:42 -07:00
Mathias Bynens 75e8a317a2 Remove assert.throws.early
Negative tests are the better approach for early error tests.

Closes #1622.
2018-08-07 14:35:13 +02:00
Rick Waldron 4314e2cab3 Make doneprinthandle.js accept the input and produce the output expected by test262-harness. (#1650)
This is not a breaking change, it simply adds explicit handling to the function
2018-07-25 17:06:52 -07:00
Leo Balter afe2647d19 Add harness files to the renaming party 2018-07-24 15:03:54 -04:00
André Bargull 8bc4e38a48 Make Atomics tests more resilient against intermittent failures (#1617)
Also fixes multiple issues and bugs in various Atomics tests.

CONTRIBUTING.md and INTERPRETING.md:
- Add missing description for `CanBlockIsFalse` flag and also introduce `CanBlockIsTrue` flag which is needed for some tests (see below).

harness/atomicsHelper.js:
- Updated `$262.agent.waitUntil` to clarify it can also be called with BigInt64Array objects.
- Added `$262.agent.timeouts` constants to unify the various, inconsistently used timeouts in the Atomics tests. Each timeout constant has a brief description and a usage example to clarify when it should or should not be used. The default values were tested in SpiderMonkey (locally and CI) under various system load levels and should hopefully also be valid for other engines. 
- Added `$262.agent.tryYield` to yield control from the main thread. The default implementation simply calls `$262.agent.sleep`, but test262 hosts could theoretically provide a different implementation.
- Added `$262.agent.trySleep` to replace direct calls to `$262.agent.sleep` from the main thread. Motivation for this function: Some test262 hosts (like browsers) may be able to pause and sleep on the main thread, so they could provide their implementation for `trySleep` which performs a busy-wait or something do nothing.

harness/testAtomics.js:
- Replace `let`, `arrow-functions`, and `for-of` loops to avoid creating extremely long `features` lists in tests using this helper. Removed `Map`, `WeakMap`, `Set`, and `WeakSet` (these weren't even listed in features.yaml) for the same reason and added the missing `Symbol` entry for this file to features.yaml.
- Updated all files including "harness/testAtomics.js" to match the new feature requirements.


test/built-ins/Atomics/store/good-views.js and test/built-ins/Atomics/store/bigint/good-views.js:
- Replace `arrow-functions` and `for-of` loops with ES5 alternatives.


test/built-ins/Atomics/wait/bigint/*.js and test/built-ins/Atomics/wake/bigint/*.js
- Some tests were using `BigInt64Array.BYTES_PER_ELEMENT * 8` for the SharedArrayBuffer length, but their non-BigInt counterparts are using `Int32Array.BYTES_PER_ELEMENT * 4`. For consistency and to make it easier to compare the BigInt against the non-BigInt versions, I've changed it to `BigInt64Array.BYTES_PER_ELEMENT * 4`.
- Also aligned formatting and statement placement when they differed between the non-BigInt and the BigInt version of a test file. (I've diffed some of the non-BigInt and BigInt files against each other and different formatting was a nuisance.)

Test files using `$262.agent.monotonicNow()`:
- Moved `$262.agent.report()` calls outside of the block of code measured `$262.agent.monotonicNow()` to avoid measuring how long it takes to execute `$262.agent.report()`. 
- Without this change some tests failed intermittently in certain test configurations in SpiderMonkey. For example with the flags `--ion-eager -- ion-offthread-compile=off` which forces early Ion compilation on the main thread. The `$262.agent.report()` implementation in the SpiderMonkey test262 host embedding uses a for-loop which was forcefully Ion compiled under these settings. And because Ion compilation can take some time, the test case ran longer than `$262.agent.MAX_TIME_EPSILON` which lead to intermittent failures.

Test files using `CanBlockIsFalse` / `CanBlockIsTrue`:
- Some of these tests actually expected that the main thread can wait and [[CanBlock]] is `true` for the agent record executing the test. Therefore I've added a new `CanBlockIsTrue` flag and replaced the flags where needed.

test/built-ins/Atomics/wait/**/*.js and test/built-ins/Atomics/wake/**/*.js:
- Use an atomic counter `RUNNING` in more tests to have better control when a worker agent was actually started.
- Replace the various `$262.agent.sleep(/* Sleep X ms to ensure worker actually sleeps */)` calls with the new `$262.agent.tryYield()` function. This `X` was sometimes as low as 10 milliseconds, which is definitely too short for CI systems under heavy load (observed by intermittent CI failures for SpiderMonkey) and sometimes as high as 500 milliseconds, which is probably much longer than needed even when the system is under heavy load. 
- Removed duplicate strings in assertion messages, presumably from copy-pasting the messages between different files.
- Removed extra empty lines at the end of multiple files.

test/built-ins/Atomics/wake/bad-range.js, test/built-ins/Atomics/wake/bigint/bad-range.js, and test/built-ins/Atomics/wait/bigint/non-bigint64-typedarray-throws.js:
- Removed unnecessary `features` and `includes` from this file.

test/built-ins/Atomics/wait/waiterlist-order-of-operations-is-fifo.js and test/built-ins/Atomics/wait/bigint/waiterlist-order-of-operations-is-fifo.js:
- The test was actually broken and didn't test what it said it does. This probably explains #1530.
- The test wants to ensure the waiterlist is implemented as a FIFO structure. This requires that the waiting agents all wait on the same index position, because the waiterlists are defined by each index. But if the agents wait on different indices, each agent is inserted into a different FIFO structure and therefore we can't observe any FIFO ordering between the agents when they're woken up.
- All this requires a bit of synchronization between the main agent and the waiting agent, I hope the added comments help to review these changes.

test/built-ins/Atomics/wait/good-views.js:
- The agent sends multiple reports to the main agent, but only the first one was read.
- This error was introduced during previous refactorings. I've changed it to back to use a while-loop as used in the first version of this file.

test/built-ins/Atomics/wait/no-spurious-wakeup-no-operation.js:
- Only the BigInt version of this test was present, copied it so we also get code coverage for the non-BigInt case.

test/built-ins/Atomics/wait/waiterlist-block-indexedposition-wake.js:
- Added extra while loops to avoid intermittent failures when the agent worker haven't started to wait.
- This should help to avoid some of the intermittent failures we saw for SpiderMonkey.

test/built-ins/Atomics/wake/wake-all-on-loc.js and test/built-ins/Atomics/wake/bigint/wake-all-on-loc.js:
- This test was also no longer after previous refactoring sessions.
- The "B" agent only waited for 10 milliseconds, which made it likely that it already timed out before the main agent was able to call `Atomics.wake`, which in turn rendered the test useless, because the test case wants to ensure that `Atomics.wake` cannot wake "B". But if "B" was already timed out, it can trivially not be woken by `Atomics.wake`.
- Added some safety measure to catch the case when "B" timed out before `Atomics.wake` was called and made it a test error if that happens.

test/built-ins/Atomics/wake/count-defaults-to-infinity-missing.js, test/built-ins/Atomics/wake/count-defaults-to-infinity-undefined.js, and test/built-ins/Atomics/wake/undefined-index-defaults-to-zero.js:
- Changed the `$262.agent.start()` calls to use a for-loop to avoid code duplication.
- (Forgot to undo the code formatting around `assert.sameValue`, still need to change it back.)
- Also more while-loops around `Atomics.wake`.
- These changes should fix #1529 and #1566.

test/built-ins/Atomics/wake/wake-all.js:
- Removed "B" worker agent.
- Without this removal the test case would be exactly equal to test/built-ins/Atomics/wake/wake-all-on-loc.js.

test/built-ins/Atomics/wake/wake-in-order-one-time.js:
- Add for-loops to avoid code duplication and make the test more readable.
- Make the `Atomics.wake` assertion messages unique by adding the current loop counter.
- Add `$262.agent.tryYield()` to give the worker agents enough time to actually start waiting.

test/built-ins/Atomics/wake/wake-in-order.js:
- Removed the outer loop `attempt < 10` because it uses `$262.agent` in a way currently not required to work. And which actually also doesn't work in SpiderMonkey's implementation of `$262.agent`.
- According to INTERPRETING.md `$262.agent.broadcast()` broadcasts its message to all agents ever started by `$262.agent.start()` and then blocks until all agents received the broadcast. It is not required that the agents started by the first `$262.agent.broadcast()` call will all be disabled/destroyed/whatever when the second `$262.agent.broadcast()` call occurs, which then means the second `$262.agent.broadcast()` call still tries to reach the agents started in the first loop iteration, but these may no longer accept broadcasts and therefore won't acknowledge they've received the broadcast. Which then means the second `$262.agent.broadcast()` call waits forever.
2018-07-03 12:34:54 -04:00
Leo Balter 56091a0c5f
Merge pull request #1533 from rwaldron/1527
Atomics: various corrections, nit-picking and BigInt variants
2018-06-27 13:49:18 -04:00
Rick Waldron c29ae8effb Atomics: refactor atomicsHelper.js to extend $262.agent.* 2018-06-27 11:13:23 -04:00
Rick Waldron be21156542 Atomics: simplify harness/atomicsHelper.js: waitUntil 2018-06-27 10:30:46 -04:00
Rick Waldron d9084b98e7 Atomics: fix documentation in atomicsHelper.js 2018-06-26 14:53:49 -04:00
Ms2ger b4efa8c938 Add tests for the shape of the Intl.RelativeTimeFormat API. (#1596)
* Add Intl.RelativeTimeFormat feature.

* Add tests for the shape of the Intl.RelativeTimeFormat API.

* fixup! Add tests for the shape of the Intl.RelativeTimeFormat API.
2018-06-26 14:02:29 -04:00
Rick Waldron 73be21272d Atomics: wake/wake-in-order.js, capture waiterlist order for wake comparison 2018-06-25 17:02:40 -04:00
jugglinmike 330733eaf3 Correct licensing (#1608)
In order to satisfy the project's formatting rules, license information
was inserted into a number of files where it had been mistakenly omitted
by the original contributors [1]. In many cases, the license information
did not accurately describe the contributor or the time of contribution.
Update the information according to the information provided by the
contributors at the time each file was authored:

- atomicsHelper.js - a72ee6d912
- detachArrayBuffer.js - 70c7375be8
- nans.js - b17ffc0298
- nativeFunctionMatcher.js - 6b7cbb5035
- proxyTrapsHelper.js d530c87b41
- regexpUtils.js - 44b40e083e
- tcoHelper.js - 4dc81d3788

[1] 4ea2931f16
2018-06-25 10:30:11 -04:00
Rick Waldron 84f448f060 Atomics: fix buffer sizes 2018-06-22 16:35:15 -04:00
Rick Waldron 7f3a1c1be9 Atomics: moves getReport and waitUntil into atomicsHelper.js; broad updates to all Atomics.wait tests 2018-06-22 15:14:11 -04:00
Rick Waldron 253bc87bc5
Merge pull request #1560 from tc39/intl-update-iana-subtags-2018-04-23
Intl: Update language subtag data to "IANA language subtag registry, file date 2018-04-23"
2018-06-04 16:22:01 -04:00
Ms2ger 501a9a674f Various additions to the Intl.Locale test coverage. 2018-06-04 14:08:28 +02:00
Mike Pennisi 51bbcf59be Formalize asynchronous failure conditions
Previously, the error message generated by failed asynchronous tests was
generic and underspecified. Improve the format and explicitly document
it in project's interpreting guidelines.
2018-05-20 15:24:55 -04:00
Rick Waldron 560d9e519c Intl: Update language subtag data to "IANA language subtag registry, file date 2018-04-23"
https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry
2018-05-18 11:54:44 -04:00
Ms2ger 190cf5c730 Extract list of structurally invalid tags from invalid-tags.js. 2018-05-03 14:20:39 -04:00
Rick Waldron c55d2ab7c3 Extensive Function toString updates for "Function.prototype.toString revision" proposal. (#1510)
Fixes gh-1453
2018-04-19 16:44:52 -04:00
Rick Waldron ac65ecab7c Atomics: updates to tests 2018-04-19 15:09:39 -04:00
peterwmwong f1e45d9e5e
Fleshed out tests for Symbol.matchAll, String.p.matchAll, RegExp.p[@@matchAll], and %RegExpStringIteratorPrototype%
Tests were updated and assuming https://github.com/tc39/proposal-string-matchall/pull/33 will be merged.
2018-03-17 22:48:31 -05:00
André Bargull ea6c18c5e2 Don't compute NaN values in functions (#1503)
`function nan() { return /* expression to compute NaN */ }` may not return the same implementation-distinguishable NaN value before and after JIT compilation.
2018-03-22 20:20:29 -04:00
André Bargull 500e48e6ce Fix various test bugs (#1502)
Fixes #1492
2018-03-22 16:36:57 -04:00
Rick Waldron 2975694f86 Weaken tests about NaN canonicalization.
Fixes gh-1476
Closes gh-1484
2018-03-13 12:53:39 -04:00
Leo Balter 222b86cac5
improve propertyHelper for failure messages (#1480)
Example:
Before: descriptor value should be 42 Expected SameValue(«1», «0») to be true
After: descriptor value should be 42
2018-03-08 12:12:15 -05:00
Michael Ficarra 83ffb4bbf2 allow any function to report its toString as a NativeFunction
related: https://github.com/tc39/Function-prototype-toString-revision/pull/26
2018-03-07 14:09:45 -05:00
Rick Waldron 4efdb83ae9 Updates a portion of the BigInt tests that need work. Ref gh-1461 (#1462) 2018-02-27 17:45:25 -05:00
Leo Balter 2712807027
Fix errors recently introduced. (#1448)
* Fix bad references on tests for BigInt TypedArrays

* Remove bad conversions for BigInt TypedArray

* Cleanup the BigInt TypedArray harness file

Remove non used code (testBigIntTypedArrayConversions)

Move the constructors list to inside the exposed function, this prevents early implementations to fail before the function is called.

* Fix bad references in TypedArrays.of (BigInt)

* Remove BigInt tests from typedarray harness test

* Use BigInt for BigInt typedArrays

* Apply last fixings on BigInt TypedArray tests

* Apply fixes to last revision from @anba
2018-02-27 14:58:56 -05:00
Leo Balter c6cd535940 Last cases of convertToBigInt 2018-02-15 16:45:10 -05:00
Leo Balter 098c69540e Remove N() 2018-02-15 16:45:08 -05:00
Leo Balter 3f3f2faa8e whitespace 2018-02-15 16:45:08 -05:00
Leo Balter c1bc43b1b1 Restore original tests for TypedArrays and optimize files
- optimize file names
- BigInt folder for TAs.from and of
- copy tests preparing for bigint
- copy ta prototype methods for bigint
- Use an exclusive harness for bigint typedarrays
- add features
- use proper harness
- use preper harness
- Restore original tests for TypedArrays
- final fixes
- fix includes
2018-02-15 16:45:06 -05:00
Robin Templeton 9232d65b30 BigInt TypedArray tests
- add @jakobkummerow's changes
- remove EOL whitespace
- use 'Array.isArray' instead of 'instanceof Array'
- check for BigInt type in toLocaleString tests
- specify TypedArray constructor list for non-BigInt tests
- update TypedArray harness test for BigInt
- add a missing type coercion
- disable more tests for Big(U)Int64Array
- check for BigInt before using BigInt TypedArray constructors
2018-02-15 16:45:05 -05:00
André Bargull 40a7bd2401 Add test cases for tc39/ecma402#194 2018-01-25 14:04:44 -05:00
André Bargull 266e0ffb66 Remove harness/testBuiltInObject.js file 2017-12-21 16:46:56 -05:00
André Bargull 60692bb6e0 Move remaining testBuiltInObject callers to use normal assert calls 2017-12-21 16:46:56 -05:00
André Bargull c81370348d No longer use testBuiltInObject for built-in objects 2017-12-21 16:46:56 -05:00
André Bargull ecf814bb4c No longer use testBuiltInObject for built-in constructors 2017-12-21 16:46:56 -05:00
André Bargull 4337b396bd Add separate test files for property attributes of Intl properties 2017-12-21 16:46:56 -05:00
André Bargull 513a3056fb Add separate test files to test the length property of Intl functions 2017-12-21 16:46:56 -05:00
André Bargull 72db5f1ec1 Replace mustHaveProperty with verifyProperty 2017-12-21 16:46:56 -05:00
André Bargull ce3c3d7dbd Replace mustNotHaveProperty with verifyProperty 2017-12-21 16:46:56 -05:00
André Bargull 20ea611db7 Replace mayHaveProperty with verifyProperty 2017-12-21 16:46:56 -05:00
André Bargull d249979bc9 Update language tag mapping data 2017-12-21 16:46:55 -05:00
André Bargull 2bf5a3ce26 Add numbering system digits for 'bali' and 'limb' 2017-12-21 16:46:55 -05:00
André Bargull 2efacfe368 Update list of numbering systems to match CLDR 32 2017-12-21 16:46:55 -05:00
André Bargull 56323fe2dd Also test Intl.PluralRules if available 2017-12-21 16:46:55 -05:00
André Bargull 48173672f2 Inline testValidDateTimeComponentValue into single test using this function 2017-12-21 16:46:55 -05:00
André Bargull 064ce66a5b Remove unused return value for testOption 2017-12-21 16:46:55 -05:00
André Bargull 52980ef496 Move test data for getLocaleSupportInfo into getLocaleSupportInfo 2017-12-21 16:46:55 -05:00
André Bargull 017fa6d55f Remove caching of getLocaleSupportInfo() return value 2017-12-21 16:46:55 -05:00
André Bargull 123259733b Replace testArraysAreSame with assert.compareArray 2017-12-21 16:46:55 -05:00
André Bargull e65c65c293 Remove unused return value from testWithIntlConstructors 2017-12-21 16:46:55 -05:00
André Bargull f87aeab893 Canada/East-Saskatchewan is no longer a valid time zone identifier (tzdata2017c) 2017-12-21 16:46:55 -05:00
Aakash Patel 4fdbb34914 Remove unnecessary uses of let in harness.
The use of `let` is unnecessary here, particularly in a
file that is needed to run any of the tests, even the ES5 tests.
Removing it allows older engines to run older tests.
2017-12-19 15:50:19 -05:00
Robin Templeton cca3876881 getBigInt64 2017-10-24 11:48:34 -04:00
Leo Balter 9737a5ff73 Improve tests for BigInt.prototype.valueOf (#1256)
* Improve tests for BigInt.prototype.valueOf

* fixup! Improve tests for BigInt.prototype.valueOf

* fixup! Improve tests for BigInt.prototype.valueOf

* fixup! Improve tests for BigInt.prototype.valueOf
2017-10-03 16:51:07 -04:00
Yusuke Suzuki ba891c753c Do not use BigInt literal without `features: [BigInt]` (#1253)
typeCoercion.js is included in several tests which are not marked as `features: [BigInt]`.
Since BigInt is new feature, we should not make the above unrelated tests failed due to
lack of BigInt syntax support.

Close #1252.
2017-10-03 14:22:03 -04:00
Robin Templeton 5f338a30a1 Add tests for BigInt.prototype.valueOf (#1234)
* BigInt valueOf tests

* add features from typeCoercion.js
2017-10-02 16:13:09 -04:00
Josh Wolfe dafde72971 BigInt.asUintN tests
* typeCoercion.js supports ToIndex
* typeCoercion.js supports ToBigInt
* updated BigInt.asIntN type coercion tests to use typeCoercion.js
2017-09-12 18:38:29 -07:00
Rick Waldron 8a2ec34200 harness/*: Eliminate unnecessary uses of features that would require "features: ..." tags 2017-09-08 12:25:44 -04:00
Rick Waldron 65424be3ef Lint: harness features flag enforcement via linter 2017-09-08 12:24:48 -04:00
Josh Wolfe f83adad4bd test for String.prototype.indexOf first parameter type coercion 2017-09-08 10:15:19 -04:00
Josh Wolfe 0d9ef34510 more separation of ToInteger from ToNumber 2017-09-08 10:15:19 -04:00
Josh Wolfe 0f3f22f6ab use informative stack traces instead of loops 2017-09-08 10:15:19 -04:00
Josh Wolfe 29938e9525 type coercion harness utilities 2017-09-08 10:15:19 -04:00
Leo Balter 74cfdfcca3 Remove arrow function syntax from harness/assert.js
After conversations in #1215, we need to catch up with the code that was previously
produced before we set the features flags requirements.
2017-09-08 10:13:23 -04:00
Rick Waldron c23ea89fe2 Fix indentation in harness/propertHelper.js 2017-08-31 14:05:46 -04:00
Doug Ilijev c0b520b8c9 Remove harness/simdUtilities.js because SIMD tests were removed and nothing references it. (#1162) 2017-08-03 17:46:14 -04:00
Rick Waldron 4ea2931f16 Update all harness files to pass linting. (#1153)
```
$ python tools/lint/lint.py --whitelist lint.whitelist harness/*.js
Linting 25 files.
Linting complete. 0 errors found.
```

- Renames detachArrayBuffer-$262.detachArrayBuffer.js -> detachArrayBuffer-host-detachArrayBuffer.js (previous naming prevents command-click from terminal)

Signed-off-by: Rick Waldron <waldron.rick@gmail.com>
2017-07-14 11:37:24 -04:00
Rick Waldron 30a4fb13a2 Fix typo in harness/arrayContains.js
Signed-off-by: Rick Waldron <waldron.rick@gmail.com>
2017-06-28 11:53:59 -04:00
Rick Waldron 27f3452b33 harness test: arrayContains.js
Signed-off-by: Rick Waldron <waldron.rick@gmail.com>
2017-06-28 11:53:59 -04:00
Rick Waldron c9f3ab5610 Temp renaming to get around case ignorance, part 2
Signed-off-by: Rick Waldron <waldron.rick@gmail.com>
2017-06-28 11:53:59 -04:00
Rick Waldron 86209d8fd9 Make all harness/* file names consistent; update occurrences in test
Signed-off-by: Rick Waldron <waldron.rick@gmail.com>
2017-06-28 11:53:58 -04:00
Rick Waldron 2086f66c55 Update verifyProperty to allow checking `value`
Signed-off-by: Rick Waldron <waldron.rick@gmail.com>
2017-06-23 11:58:16 -04:00
Leo Balter 666f0e920a
Add assert.throws.early 2017-05-01 12:29:52 -04:00
Daniel Ehrenberg abac4e0b19
Fix up compareArray 2017-04-27 19:33:41 -04:00
Daniel Ehrenberg 8cb7f59395
Create an assert.compareArray
This is a convenience function which tries to make tests easier
to read and write.
2017-04-27 19:33:40 -04:00
André Bargull 94f6003d11 Optimize decodeURI/encodeURI tests (#987)
* Move decimalToHexString into harness instead of duplicating it in multiple files

* Optimize decimalToHexString and support numbers greater than 65535

* Replace alternative decimalToHexString function with include for decimalToHexString.js

* Add decimalToHex2String to return the string representation of a two-digit hex-number

* Replace decimalToHex2String with decimalToPercentHexString to return the percent hex-encoded string of a two-digit hex-number

* Replace two String.fromCharCode calls with a single call

* Further reduce string concatentations in decodeURI[Component] tests

* Remove unnecessary Test262Error error handling in catch-clauses

* Remove try/catch wrappings in decodeURI/encodeURI tests
2017-04-18 16:31:31 -04:00
Leo Balter e43ce56105 Add Verify Property harness (#979) 2017-04-15 12:56:29 -04:00
André Bargull 1ba3a7c4a9 Remove unused functionality from harness (#975) 2017-04-14 12:22:27 -04:00
André Bargull d59e30c95e Remove execute bit from files (#976) 2017-04-13 16:24:07 -04:00
Mathias Bynens 44b40e083e Add exhaustive tests for RegExp Unicode property escapes (#971)
Proposal: https://github.com/tc39/proposal-regexp-unicode-property-escapes

These tests have been generated by the script at https://github.com/mathiasbynens/unicode-property-escapes-tests. They check all the properties and values that should be supported by implementations against the symbols they’re supposed to match. False positives are detected as well.

Ref. #950.
Ref. https://github.com/tc39/proposal-regexp-unicode-property-escapes/issues/4.
2017-04-13 11:22:49 -04:00
Mathias Bynens a621155bcd Unify indentation and add .editorconfig (#973) 2017-04-13 10:37:32 -04:00
Leo Balter 866d7f8d8e Improve isEnumerable check with a for-in loop for string names (#880)
Ref https://github.com/tc39/test262/pull/879#discussion_r104128520
2017-03-13 10:48:33 -07:00
Lars T Hansen abc4dfae42 Account for the use of ToIndex in Atomic operations (#870)
Ref tc39/ecma262#807
2017-03-02 13:21:14 -05:00
Rick Waldron fdd2fa9b1c Rename $ => $262. Fixes gh-802 (#823)
Signed-off-by: Rick Waldron <waldron.rick@gmail.com>
2017-03-01 16:34:15 -05:00
Shu-yu Guo a72ee6d912 SharedArrayBuffer and Atomics tests (#839) 2017-02-07 11:17:31 -05:00
Kevin Gibbons abf6489b29 use $.detachArrayBuffer API instead of throwing (#795) 2016-11-22 17:13:23 -05:00
Mike Pennisi ade6d2e384 Remove "NotEarlyError" object
Because expectations regarding error "phase" are now expressed via test
meta-data, the test runner may now enforce this requirement on negative
tests.

Remove the "NotEarlyError" from the project source. This reduces the
amount of domain knowledge required to author tests and lessens the
potential for inconsistencies between tests.
2016-10-19 15:24:22 -04:00
Leonardo Balter 813bb5166c
Remove precision-equivalency tests
Due to specs approximation values, some tests are invalid as the harness
helpers rely on another approximated values as Math.LN2.
2016-06-20 17:44:11 -04:00
Leonardo Balter bc42c6ab5c Add harness for byte conversion values
Update testTypedArrayConversions to require byteConversionValues
2016-05-25 10:10:50 -04:00
jugglinmike b17ffc0298 Add tests for NaN handling with Typed Arrays (#623)
Ensure that NaN values are canonicalized consistently by all invocations
of SetValueInBuffer. Also ensure that `%TypedArray%.prototype.set` and
`%TypedArray%.prototype.slice` preserve the bit-level encoding of the
source data.

Use a set of experimentally-derived expressions known to produce NaN
values with distinct bit patterns in various platforms.
2016-05-12 10:16:03 -04:00
Gorkem Yakin f6475d81bf Merge pull request #543 from bocoup/enumerable-helper
Fix verifyEnumerable helper to account for properties with Symbol values
2016-04-25 16:32:53 -07:00
jugglinmike ba3dacbe5a Correct tests for native functions' toString value (#580)
Modify the regular expression for native functions' toString value to
satisfy all test cases. Correct the test file's reference to the harness
file. Re-format the test file's assertions to aid debugging in the event
of failure.
2016-04-21 15:55:54 -04:00
jugglinmike cf68c3be91 Correct invalid tests for the Date constructor
The millisecond representation of a given Date instance is dependent on
the local system's time zone settings. In order to pass consistently
across contexts, tests for this value must take the system configuration
into account.

Introduce a test harness utility function to encapsulate these concerns.
Re-use this function across all test files that assert the exact
millisecond representation of Date instances.
2016-04-19 17:00:59 -04:00
Leonardo Balter 04a3c28f7d Add tests for conversion operations on TypedArrays 2016-04-19 12:18:52 -04:00
dtig 20d37a6f2f Add SIMD test suite and utility functions (#442) 2016-04-18 14:26:15 -04:00
Leonardo Balter e7f6cd7f86 assert.throws fails if second argument is not a function 2016-04-15 10:14:54 -04:00
Michael Ficarra 6b7cbb5035 add Function.prototype.toString tests, conforming to proposed revision
See the proposal at
https://tc39.github.io/Function-prototype-toString-revision/
2016-04-11 14:39:12 -04:00
Leonardo Balter 70c7375be8 Add harness/detachArrayBuffer.js 2016-03-22 17:00:01 -04:00
Leonardo Balter a93ef42b56 Fix verifyEnumerable helper to account for Symbol properties 2016-03-15 10:13:52 -04:00
Jordan Harband a6fad62d7c Last minute fixes 2016-02-19 11:27:31 -08:00
Jordan Harband 6f05b008dc Encapsulate helper function's helper function 2016-02-17 15:01:26 -08:00
Jordan Harband d530c87b41 Create `proxyTrapsHelper` to throw on all traps by default. 2016-02-13 15:56:47 -08:00
Gorkem Yakin dbcc8cadf3 Merge pull request #507 from bocoup/remove-unused-file
Remove unused harness file
2016-02-12 17:16:01 -08:00
Leonardo Balter 4388f2869c Allow call testWithTypedArrayConstructors with a constructors subset 2016-02-12 16:02:36 -08:00
Mike Pennisi 071b5f03c6 Remove unused harness file
The harness file `Test262Error.js` has not contained executable code since it
was introduced in this project [1]. The definition of the `Test262Error`
function has consistently been located in the `sta.js` harness file which test
runners are expected to inject into the test environment.

Remove the file and all references to it.

[1] See commit c33bf0e043
2016-02-12 13:44:18 -05:00
Mike Pennisi 4dc81d3788 Add tests for tail-call optimization
ECMAScript 2015 introduced tail call optimization for function calls
occuring in a number of positions in the grammar. Assert expected
behavior by triggering a large (but configurable) number of recursive
function calls in these positions. Compliant runtimes will execute such
programs without error; non-compliant runtimes are expected to fail
these tests by throwing an error or crashing when system resources are
exhausted.
2016-02-01 13:20:17 -05:00
André Bargull 42edfd6e89 Add missing tests for "length" and "name" properties of %TypedArray% built-in functions 2016-01-15 18:12:42 +01:00
André Bargull b62dccf1dc Add test cases for recent ES2016 fixes
- lastIndex in RegExp.prototype[Symbol.split]: tc39/ecma262@08b4756747
- Missing number conversion in DataView.prototype.setXXX: tc39/ecma262@4f875fe96d
- Negative zero byteoffset in TypedArray: tc39/ecma262@2d1ed20db7
- EvalDeclarationInstantiation throws TypeError: tc39/ecma262@2be6968715
- BindingRestElement allows BindingPattern: tc39/ecma262@d322357e6b
- Eval in parameters with computed property keys: tc39/ecma262@04e2e9b719
- Use strict with non-simple parameters: tc39/ecma262@15b0db41ed
- __proto__ in strict mode: tc39/ecma262@5c1984334d
2015-12-15 17:33:49 +01:00
André Bargull 9a3f810465 Remove harness/runTestCase.js 2015-08-13 18:13:45 +02:00
Leonardo Balter e1ec3c29b3 Fix missing variable declaration
Fixes #405
2015-08-05 20:04:02 -04:00
Brian Terlson 8870e7bf34 Merge pull request #394 from smikes/quoted-sameValue-strings
Use guillemets («») to quote string values - fixes #174
2015-08-05 11:20:18 -07:00
smikes 4a6f28f075 Use guillemets («») to quote string values - fixes #174
Expected/actual values should be delimited in a way that
isn't confusable with actual string quotes " '
2015-07-30 20:13:49 -06:00
Brian Terlson eea8807d40 Merge pull request #355 from anba/regexp-unicode
B.1.4 and Unicode RegExps
2015-07-30 15:31:16 -07:00
André Bargull a85f5039e0 Remove links to hg.ecmascript.org 2015-07-17 17:43:09 +02:00
André Bargull d5075819e9 Check resolved time zone is valid 2015-07-08 19:13:55 +02:00
André Bargull a4205bac61 B.1.4 extensions are not allowed for Unicode RegExps 2015-07-08 17:19:59 +02: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
Brian Terlson 9abed155e3 Merge pull request #338 from bocoup/move-web-scripts
Move web scripts
2015-06-26 10:58:59 -07:00
Brian Terlson 9dc49b72cc Merge pull request #336 from bocoup/remove-env
Remove empty "include" file
2015-06-26 10:57:59 -07:00
Mike Pennisi b974c13751 Move website scripts to a dedicated directory
Some JavaScript source files are only relevant in the context of the
Test262 website. They should not be explicitly included by individual
tests, so their presence in the `harness/` directory alongside "include"
files is misleading.

Move the scripts to a location within the `website/` directory to
better-reflect their intended use. Update the relevant HTML templates
with the new locations.
2015-06-26 13:29:07 -04:00
Mike Pennisi 86c7e272a6 Remove support for legacy `$INCLUDE` syntax
Although test files once expressed dependencies on external files using
a global `$INCLUDE` function, that pattern was removed in favor of
declarative meta-data [1].

Remove the associated logic from the Python runner and the browser.

[1] See commit d4354d14d5.
2015-06-26 13:29:07 -04: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 e57da7a8f1 Remove empty "include" file
The `environment.js` file has been empty since its initial introduction
to this project [1]. It has no effect on any of the contexts in which it
is currently referenced, so it may be safely removed.

[1] be82787a00
2015-06-26 12:19:51 -04:00
Brian Terlson e4a25da86a Merge pull request #305 from jugglinmike/browser-only-strict
Update browser runner to honor `onlyStrict` flag
2015-06-25 14:44:34 -07:00
Erik Arvidsson 96e5b67cd5 Fix issue with math_precision.js
It was missing vars which was causing issues with our test harness
since we run all the files in strict mode.
2015-06-25 16:43:10 -04:00
Mike Pennisi cb617493d7 Update browser runner to honor `onlyStrict` flag
Unlike the console runner, the browser runner does not modify the
strictness of tests prior to running them. Regardless of a given test's
metadata, it runs every test exactly once, and it never enables strict
mode. This means that tests intended to function in strict mode must
declare the "use strict"; directive prologue in addition to the
`onlyStrict` flag.

For any test that specifies the `onlyStrict` metadata flag, transform
the source code by injecting a "use strict" directive prologue prior to
running the test.
2015-06-18 17:38:33 -04:00
Mike Pennisi 73aa06275a Update browser runner to inject `assert.js`
Since the Python runner was updated to include `assert.js` in all tests
unconditionally, a number of tests have been written that implicitly
rely on its presence. The browser runner does not currently provide this
file's contents to these tests, so they fail unconditionally.

Update the browser runner to inject that file's contents into every test
context.

Note: the existing approach to file retrieval (namely loading via
synchronous XHR requests) is inefficient and deprecated in some
browsers. It is honored here for the sake of consistency and to minimize
the changeset necessary to fix the browser runner.
2015-06-18 13:53:09 -04:00
Mike Pennisi fe11a1ea1a Remove $PRINT helper function
The `$PRINT` helper function has no effect on test behavior. The
following tests use it to report assertion outcomes (and as a result
will fail silently):

- test/language/function-code/S10.2.1_A4_T2.js
- test/language/function-code/S10.2.1_A5.1_T1.js
- test/language/function-code/S10.2.1_A5.1_T2.js
- test/language/function-code/S10.2.1_A5.2_T1.js

Remove the function definition and all references within tests. Update
tests that use it as an error reporting mechanism to instead use an
appropriate `assert` helper function.
2015-06-16 13:43:23 -04: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
André Bargull 56036e4064 Enable strict mode for more built-in tests
- Remove no longer needed noStrict flags.
- Change tests to use propertyHelper.js for strict mode compatibility.
- Add tests for return value of `delete` operator, e.g. `delete Array.prototype === false`.
- Add non-writable tests for global NaN property.
- Split some tests to run in strict mode.
- Change tests with global `var length` declaration to use a different variable name for browser environments.
- Merge duplicated tests symbol-data-property-configurable-non-strict and symbol-data-property-configurable-strict.
- Merge duplicated tests symbol-data-property-writable-non-strict and symbol-data-property-writable-strict.
- (And a small change in propertyHelper to reduce code duplication in function call.)
2015-05-18 18:01:00 +02:00
Mike Pennisi 67e9e070ef Correct error messages
The `testBuiltInObject` function verifies the presence of the specified
properties for *all* object types (not just function objects). Update
the error messages to reflect this.
2015-04-21 17:58:10 -04:00
Mike Pennisi c27938a123 Fix bug in `isWritable` utility function
Only attempt to re-set the property value in cases where it was
successfully modified as part of the function's execution. This avoids
errors when the underlying value is not writable. Rename the internal
result-tracking variable to make this more clear.
2015-04-21 15:00:26 -04:00
Mike Pennisi c91267235c Extend assertion error messages
When invoked without a custom assertion message, `assert.sameValue` and
`assert.notSameValue` automatically create a message that describes the
actual and expected values.

Extend both assertion methods to also include this information in cases
where a custom message has been specified.
2015-04-21 13:25:02 -04:00
Brian Terlson fd6f206d69 Merge pull request #194 from arv/function-length-is-configurable
Function length property is configurable
2015-04-08 15:58:30 -07:00
Rick Waldron d797bb979e Import tests from Google V8 (Array.prototype.{fill, find, findIndex}, Array.{from, of})
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
2015-04-07 09:53:17 -04:00
Erik Arvidsson ad8af4be3a Function length property is configurable
In ES6 the function length property was changed to become
configurable.
2015-03-11 10:42:14 -04:00