108 Commits

Author SHA1 Message Date
littledan
184275fb25 Tests for RegExp capture substitution out of bounds (#925)
In https://github.com/tc39/ecma262/pull/853 , standard semantics
for this case are proposed. This patch tests the case.
2017-03-27 13:53:33 -04:00
André Bargull
6b09ad0459 Update YAML frontmatter of some tests to be compatible with monkeyYaml (#862) 2017-03-01 16:35:37 -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
littledan
f21ac5609b Fix call to assert.notSameValue (#859)
Thanks to @demurgos for spotting this bug at #858
2017-02-13 13:48:38 -08:00
littledan
91ba9a0a25 Update RegExp tests for the semantics change (#853)
Spec change at https://github.com/tc39/ecma262/pull/798
2017-02-09 12:51:02 -05:00
jugglinmike
71e573f7da Add tests for realm interactions (#688)
* Add tests for prototype realm inference

* Add tests for miscellaneous realm concerns

* Add tests for realm of spec-created Errors

In some cases, Error objects produced by the specification are
observable from ECMAScript code. Among these cases, some are further
differentiated in that they occur outside of any built-in function and
may be triggered through syntactic production directly. The current
realm record is commonly interpreted incorrectly under these
circumstances.

Add tests asserting that the expected realm record is used when
constructing such Error objects.

* Add tests for realm use in ArraySpeciesCreate

* Add tests for function realm retrieval

* Add tests for cross-realm behaviors of Symbols

* Add tests for GetValue and PutValue

* Add tests for realm of spec-created Arrays

In some cases, Arrays produced by CreateArrayFromList are observable
from ECMAScript code. Among these cases, two occur outside of any
built-in function and may be triggered through syntactic production
directly. The current realm record is commonly interpreted incorrectly
under these circumstances.

Add tests asserting that the expected realm record is used when
constructing arrays.

* Add test for spec-created object

* fixup! Add tests for realm of spec-created Errors

* fixup! Add tests for realm of spec-created Errors

* fixup! Add tests for prototype realm inference

* fixup! Add tests for miscellaneous realm concerns
2016-10-24 10:43:17 -07:00
Jakob Gruber
81f66a5a3a Tests for new lastIndex semantics (#760)
* Tests for new lastIndex semantics

Add and update tests for the lastIndex semantic change introduced in
https://github.com/tc39/ecma262/pull/627.

* Address comments
2016-09-29 10:41:37 -07:00
Tom Care
8a6d7a49ee Merge pull request #711 from bocoup/audit2016-section-21-regexp
Improve coverage for section 21: RegExp
2016-08-04 16:22:18 -07:00
Mathias Bynens
3a5a09eba2 Ensure U+180E is no longer considered whitespace
Ref. https://hashseed.blogspot.com/2014/08/in-ecma-262-5.html
Ref. https://github.com/tc39/ecma262/pull/300#issuecomment-181376767
Ref. 9b10d2a597

Fix and add @anba’s U+180E tests
2016-07-06 10:11:32 -04:00
Mike Pennisi
4e781091f8 Improve tests for RegExp lastIndex property
The prior version of this test asserted only the property's
configurability. It was also limited to the RegExp object as returned
from the RegExp constructor.

Extend the test to verify all values of the property descriptor.
Duplicate these assertions in a separate file dedicated to the RegExp
object as created from a RegExp literal.
2016-06-29 17:29:43 -04:00
Mike Pennisi
1d0dbc5726 Assert absense of internal slot on RegExpPrototype
The previous commit removed two invalid tests designed to ensure that
the RegExpPrototype object is not itself a RegExp object. Introduce a
new test to assert this detail in a way that accounts for the
possibility of host extensions.
2016-06-29 17:29:42 -04:00
Mike Pennisi
9c3bb8d69e Remove invalid tests for %RegExpPrototype%
From ECMA262, section 16:

>  Except as restricted in 16.2, an implementation may provide
>  additional types, values, objects, properties, and functions beyond
>  those described in this specification.

Section 16.2 makes no mention of the `lastIndex` property of the
%RegExpPrototype% intrinsic. It is therefor not a violation to define
%such an "own" property.

Remove the tests that assert otherwise.
2016-06-29 17:29:42 -04:00
Mike Pennisi
b9587262d4 Add tests for return value: 'get RegExp.p.source' 2016-06-29 17:29:42 -04:00
Mike Pennisi
e1cd1e7f85 Update and tests for %RegExpPrototype% methods
A recent web-compatability change to ECMA262 modified the semantics of
the accessor methods on the %RegExpPrototype% intrinsic--the "get"
accessors now include steps dedicated to the case where the "this" value
is the %RegExpPrototype% object itself.

Remove the tests that have been invalidated by this change, introduce
tests asserting the new behavior, and extend coverage for other possible
"this" values.
2016-06-29 17:07:46 -04:00
jugglinmike
d9d3f7cf4f Update RegExp tests (#614)
The RegExpBuiltinExec internal operation was modified in March of 2016
[1]: instead of referencing the `global` and `sticky` properties of the
"this" value, the algorithm now infers those values from the object's
[[OriginalFlags]] internal slot.

This change invalidated a number of tests. In cases where the change
resulted in an observable behavior, update the tests to assert the
latest specification text. In cases where the change removed a
previously-observable behavior, remove the files completely.

Specification text change set:

>        1. Assert: Type(_S_) is String.
>        1. Let _length_ be the number of code units in _S_.
>        1. Let _lastIndex_ be ? ToLength(? Get(_R_, `"lastIndex"`)).
>      - 1. Let _global_ be ToBoolean(? Get(_R_, `"global"`)).
>      - 1. Let _sticky_ be ToBoolean(? Get(_R_, `"sticky"`)).
>      + 1. Let _flags_ be the value of _R_'s [[OriginalFlags]] internal slot.
>      + 1. If _flags_ contains `"g"`, let _global_ be *true*, else let _global_ be *false*.
>      + 1. If _flags_ contains `"y"`, let _sticky_ be *true*, else let _sticky_ be *false*.
>        1. If _global_ is *false* and _sticky_ is *false*, let _lastIndex_ be 0.
>        1. Let _matcher_ be the value of _R_'s [[RegExpMatcher]] internal slot.
>      - 1. Let _flags_ be the value of _R_'s [[OriginalFlags]] internal slot.
>        1. If _flags_ contains `"u"`, let _fullUnicode_ be *true*, else let _fullUnicode_ be *false*.
>        1. Let _matchSucceeded_ be *false*.
>        1. Repeat, while _matchSucceeded_ is *false*

[1] https://github.com/tc39/ecma262/pull/494
2016-05-09 19:34:52 -04:00
Gorkem Yakin
85e6ab8e15 Merge branch 'bocoup/species-accessor-values' 2016-04-25 16:59:44 -07:00
Mike Pennisi
b8e40a6f3f Add tests for return value of @@species accessors 2016-04-25 16:59:23 -07:00
Mike Pennisi
eb644bb2da Reduce reliance on fnGlobalObject.js
This harness function is not necessary in the majority of cases in which
it is used. Remove its usage to simplify tests and decrease the amount
of domain-specific knowledge necessary to contribute to the test suite.

Persist the harness function itself for use by future tests for ES2015
modules (such a helper is necessary for tests that are interpreted as
module code).
2016-04-25 11:09:21 -07:00
Leonardo Balter
bf782c8421 s/id/esid
Fixes #477
2016-02-22 09:47:42 -05:00
Leonardo Balter
ebda746e6a Replace es7id tags with id 2016-02-12 16:22:56 -08:00
André Bargull
ca61d9b876 Add missing tests for "length" and "name" properties of built-in functions
Note: Already uses the updated DataView function lengths from tc39/ecma262#266 (ES2016 Draft 2015-12-20)
2016-01-15 18:12:05 +01:00
André Bargull
5e3eed63b9 Move Symbol.species and AnnexB tests to new subfolders 2016-01-15 18:11:03 +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
bd8c91e250 Updates for ES2016 Draft 2015-12-01
- RegExp.prototype[Symbol.split] calls ToUint32 (https://github.com/tc39/ecma262/issues/92)
- Species lookup removed from Promise.all and Promise.race (https://github.com/tc39/ecma262/issues/151)
- Generator functions are no longer constructors (https://github.com/tc39/ecma262/pull/171)

Fixes #444
2015-12-02 18:07:06 +01:00
Gorkem Yakin
df1d78d10f Merge pull request #399 from bocoup/symbol-match
Add tests for @@match
2015-09-14 14:29:28 -07:00
Mike Pennisi
62d5787b09 Add tests for @@match
Introduce tests for the well-known Symbol, `@@match`. This effects the
behavior of `String.prototype.match` and is also used by the IsRegExp
abstract operation.
2015-09-14 17:16:37 -04:00
Gorkem Yakin
32efa4a289 Merge pull request #407 from bocoup/symbol-split
Add tests for well-known Symbol: @@split
2015-09-10 16:57:00 -07:00
Mike Pennisi
8879cde471 Add tests for well-known Symbol: @@search 2015-09-08 19:15:19 -04:00
Rick Waldron
acf2d0cb11 Merge pull request #408 from anba/es2015_changes
Tests for changes introduced in ES2015 (Annex E)
2015-09-07 15:32:36 -04:00
André Bargull
ffec41b7af Improve compatibility for engines without support for Annex B 2015-09-07 20:40:09 +02:00
André Bargull
df9bf58204 Tests for changes introduced in ES2015 (Annex E)
- String case functions iterate over code points
- Has called before Get in Array.p.reverse
- Add test for web-compat Array.p.splice behaviour; Plus missing test for no arguments case
- ToObject no longer applied to this-value in Array.p.toLocaleString
- ToObject no longer applied to this-value in Object.p.toLocaleString
- Add tests for Object.p.propertyIsEnumerable and symbol property keys
- Add tests for Object.p.hasOwnProperty and symbol property keys
- Test property descriptor attributes of message property
- Tests for RegExp constructor checks
- Date constructor when called with date object
- TimeClip never returns negative zero
2015-09-07 17:25:55 +02:00
Rick Waldron
a2554d909b Merge branch 'remove-runTestCase-builtins-other' of https://github.com/anba/test262 into anba-remove-runTestCase-builtins-other
# By André Bargull
# Via André Bargull
* 'remove-runTestCase-builtins-other' of https://github.com/anba/test262:
  Replace runTestCase with assert helpers, rest [test/built-ins]
  Replace runTestCase with assert helpers [test/built-ins]

Conflicts:
	test/built-ins/Array/from/S22.1.2.1_T1.js
	test/built-ins/Array/from/S22.1.2.1_T2.js
	test/built-ins/Array/from/S22.1.2.1_T3.js
2015-09-04 13:25:41 -04:00
Rick Waldron
a2a92d0765 Merge pull request #402 from bocoup/symbol-replace
Add tests for well-known Symbol: @@replace
2015-09-02 17:20:17 -04:00
André Bargull
1b14708467 Replace runTestCase with assert helpers [test/built-ins] 2015-08-13 17:50:58 +02:00
André Bargull
589b638ab5 Replace runTestCase with assert.throws [test/built-ins] 2015-08-11 17:44:37 +02:00
André Bargull
50c29deb29 Replace runTestCase with assert helpers [test/built-ins/RegExp] 2015-08-06 18:26:59 +02:00
Mike Pennisi
4693197b0c Add tests for well-known Symbol: @@split 2015-08-06 09:52:51 -04:00
Mike Pennisi
bb0cbeb655 Add tests for well-known Symbol: @@replace 2015-08-05 09:39:00 -04: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
d1f718f806 Change test descriptions 2015-07-29 17:24:16 +02:00
André Bargull
99e32c6912 Add assertion messages 2015-07-29 17:23:48 +02:00
Brian Terlson
d54ff00df2 Merge pull request #369 from littledan/master
Reinforce test for the use of ToLength(lastIndex) in RegExp
2015-07-24 14:00:45 -07:00
Mike Pennisi
9068608ab7 Add tests for RegExp u flag 2015-07-24 14:43:20 -04:00
Mike Pennisi
946121ec66 Add tests for RegExp y flag 2015-07-21 20:02:07 -04:00
Dan Ehrenberg
9d2451eb72 Reinforce test for the use of ToLength(lastIndex) in RegExp
Previously, test262 had only a test that ensured that ToLength (for
example, rather than ToInteger) was used in test'ing a RegExp, not
in calls to exec. Although in the ES5 and ES2015 specs there is only
one code path, in some implementations, ToLength is called in from
separate code paths. This patch makes a new test for exec'ing a
RegExp and ensures that ToLength is called.
2015-07-21 14:26:32 -07:00
André Bargull
a85f5039e0 Remove links to hg.ecmascript.org 2015-07-17 17:43:09 +02:00
André Bargull
a57d2736e3 Add additional tests for valid and invalid identity escapes 2015-07-10 20:18:14 +02:00
Brian Terlson
1bc6441cae Merge pull request #356 from anba/regexp-cleanup
Clean-up test comments and remove invalid tests
2015-07-09 16:45:55 -07:00
André Bargull
ebab7cf055 Clean-up test comments and remove invalid tests
- 15.10.2.15-3-1 and 15.10.2.15-3-2 are both invalid (U+002F (SOLIDUS) instead of U+005C (REVERSE SOLIDUS) was used to start an escape sequence).
- 15.10.4.1-2 and 15.10.2.2-1 are identical tests, delete the latter.
- Update tests to avoid using runTestCase() function.
- Update multiple test infos to point to correct algorithm step (CharacterRange step 6 instead of step 1).
2015-07-08 19:01:22 +02:00
André Bargull
a4205bac61 B.1.4 extensions are not allowed for Unicode RegExps 2015-07-08 17:19:59 +02:00