Stage RegExp subclassing

This patch stages the first part of RegExp subclassing--defining
Symbol.{match,replace,search,split}, but keeping their original
definitions which are restricted to a RegExp receiver and do not
call out to the core 'exec' method. This is being staged separately
because the two sets of extension points are separate features with
separate functionality. The amount of behavior which is held behind
the flag is very small, just exposing the symbols as properties of
Symbol--the behavior that the String methods call out to these Symbol
properties has already been shipping unflagged.

R=yangguo@chromium.org
BUG=v8:4305,v8:4343,v8:4344,v8:4345
LOG=Y

Review URL: https://codereview.chromium.org/1637703003

Cr-Commit-Position: refs/heads/master@{#33534}
This commit is contained in:
littledan 2016-01-26 21:46:39 -08:00 committed by Commit bot
parent 639288e1ad
commit 8c663eea0c
2 changed files with 3 additions and 29 deletions

View File

@ -205,14 +205,14 @@ DEFINE_IMPLICATION(es_staging, move_object_start)
V(harmony_sharedarraybuffer, "harmony sharedarraybuffer") \
V(harmony_simd, "harmony simd") \
V(harmony_do_expressions, "harmony do-expressions") \
V(harmony_regexp_subclass, "harmony regexp subclassing") \
V(harmony_tailcalls, "harmony tail calls") \
V(harmony_species, "harmony Symbol.species") \
V(harmony_object_values_entries, "harmony Object.values / Object.entries")
// Features that are complete (but still behind --harmony/es-staging flag).
#define HARMONY_STAGED(V) \
V(harmony_regexp_lookbehind, "harmony regexp lookbehind")
#define HARMONY_STAGED(V) \
V(harmony_regexp_lookbehind, "harmony regexp lookbehind") \
V(harmony_regexp_subclass, "harmony regexp subclassing")
// Features that are shipping (turned on by default, but internal flag remains).
#define HARMONY_SHIPPING(V) \

View File

@ -106,15 +106,6 @@
'built-ins/WeakMap/iterator-items-are-not-object-close-iterator': [FAIL],
'built-ins/WeakSet/iterator-close-after-add-failure': [FAIL],
# https://code.google.com/p/v8/issues/detail?id=4119
'built-ins/RegExp/call_with_non_regexp_same_constructor': [FAIL],
'built-ins/RegExp/from-regexp-like-short-circuit': [FAIL],
'built-ins/RegExp/from-regexp-like': [FAIL],
'built-ins/RegExp/from-regexp-like-flag-override': [FAIL],
'built-ins/RegExp/from-regexp-like-get-source-err': [FAIL],
'built-ins/RegExp/from-regexp-like-get-flags-err': [FAIL],
'built-ins/RegExp/from-regexp-like-get-ctor-err': [FAIL],
# https://code.google.com/p/v8/issues/detail?id=4348
'built-ins/String/prototype/Symbol.iterator/this-val-non-obj-coercible': [FAIL],
@ -312,33 +303,19 @@
# happens to be thrown for some other reason (e.g,
# built-ins/RegExp/prototype/Symbol.match/builtin-failure-set-lastindex-err)
'built-ins/RegExp/prototype/Symbol.match/*': [SKIP],
'built-ins/Symbol/match/prop-desc': [FAIL],
'built-ins/String/prototype/endsWith/return-abrupt-from-searchstring-regexp-test': [FAIL],
'built-ins/String/prototype/includes/return-abrupt-from-searchstring-regexp-test': [FAIL],
'built-ins/String/prototype/startsWith/return-abrupt-from-searchstring-regexp-test': [FAIL],
'built-ins/String/prototype/match/cstm-matcher-get-err': [FAIL],
'built-ins/String/prototype/match/invoke-builtin-match': [FAIL],
'built-ins/String/prototype/match/cstm-matcher-invocation': [FAIL],
# https://code.google.com/p/v8/issues/detail?id=4343
'built-ins/RegExp/prototype/Symbol.replace/*': [SKIP],
'built-ins/Symbol/replace/prop-desc': [FAIL],
'built-ins/String/prototype/replace/cstm-replace-get-err': [FAIL],
'built-ins/String/prototype/replace/cstm-replace-invocation': [FAIL],
# https://code.google.com/p/v8/issues/detail?id=4344
'built-ins/RegExp/prototype/Symbol.search/*': [SKIP],
'built-ins/Symbol/search/prop-desc': [FAIL],
'built-ins/String/prototype/search/cstm-search-get-err': [FAIL],
'built-ins/String/prototype/search/invoke-builtin-search-searcher-undef': [FAIL],
'built-ins/String/prototype/search/cstm-search-invocation': [FAIL],
'built-ins/String/prototype/search/invoke-builtin-search': [FAIL],
# https://code.google.com/p/v8/issues/detail?id=4345
'built-ins/RegExp/prototype/Symbol.split/*': [SKIP],
'built-ins/Symbol/split/prop-desc': [FAIL],
'built-ins/String/prototype/split/cstm-split-invocation': [FAIL],
'built-ins/String/prototype/split/cstm-split-get-err': [FAIL],
# https://code.google.com/p/v8/issues/detail?id=4346
'built-ins/RegExp/prototype/flags/u': [FAIL],
@ -486,9 +463,6 @@
'built-ins/Array/prototype/indexOf/15.4.4.14-5-9': [FAIL],
'built-ins/Array/prototype/lastIndexOf/15.4.4.15-5-9': [FAIL],
# https://github.com/tc39/test262/issues/436
'built-ins/RegExp/call_with_regexp_match_falsy': [FAIL],
############################ SKIPPED TESTS #############################
# These tests take a looong time to run.