Skip to content

Commit c73a435

Browse files
author
Fabrice Bellard
committed
Don't call well-known Symbol methods for RegExp on primitive values
1 parent 1dbba8a commit c73a435

File tree

3 files changed

+4
-52
lines changed

3 files changed

+4
-52
lines changed

‎TODO‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,4 +63,4 @@ Test262o: 0/11262 errors, 463 excluded
6363
Test262o commit: 7da91bceb9ce7613f87db47ddd1292a2dda58b42 (es5-tests branch)
6464

6565
Test262:
66-
Result: 66/83295 errors, 2590 excluded, 5767 skipped
66+
Result: 66/83341 errors, 2567 excluded, 5767 skipped

‎quickjs.c‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45142,7 +45142,7 @@ static JSValue js_string_match(JSContext *ctx, JSValueConst this_val,
4514245142
if (JS_IsUndefined(O) || JS_IsNull(O))
4514345143
return JS_ThrowTypeError(ctx, "cannot convert to object");
4514445144

45145-
if (!JS_IsUndefined(regexp) && !JS_IsNull(regexp)) {
45145+
if (JS_IsObject(regexp)) {
4514645146
matcher = JS_GetProperty(ctx, regexp, atom);
4514745147
if (JS_IsException(matcher))
4514845148
return JS_EXCEPTION;
@@ -45322,7 +45322,7 @@ static JSValue js_string_replace(JSContext *ctx, JSValueConst this_val,
4532245322
replaceValue_str = JS_UNDEFINED;
4532345323
repl_str = JS_UNDEFINED;
4532445324

45325-
if (!JS_IsUndefined(searchValue) && !JS_IsNull(searchValue)) {
45325+
if (JS_IsObject(searchValue)) {
4532645326
JSValue replacer;
4532745327
if (is_replaceAll) {
4532845328
if (check_regexp_g_flag(ctx, searchValue) < 0)
@@ -45433,7 +45433,7 @@ static JSValue js_string_split(JSContext *ctx, JSValueConst this_val,
4543345433
A = JS_UNDEFINED;
4543445434
R = JS_UNDEFINED;
4543545435

45436-
if (!JS_IsUndefined(separator) && !JS_IsNull(separator)) {
45436+
if (JS_IsObject(separator)) {
4543745437
JSValue splitter;
4543845438
splitter = JS_GetProperty(ctx, separator, JS_ATOM_Symbol_split);
4543945439
if (JS_IsException(splitter))

‎test262.conf‎

Lines changed: 0 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -255,54 +255,6 @@ test262/test/built-ins/ThrowTypeError/unique-per-realm-function-proto.js
255255
#test262/test/built-ins/RegExp/CharacterClassEscapes/
256256
#test262/test/built-ins/RegExp/property-escapes/
257257

258-
# not yet in official specification
259-
test262/test/built-ins/String/prototype/match/cstm-matcher-on-bigint-primitive.js
260-
test262/test/built-ins/String/prototype/match/cstm-matcher-on-bigint-primitive.js
261-
test262/test/built-ins/String/prototype/match/cstm-matcher-on-boolean-primitive.js
262-
test262/test/built-ins/String/prototype/match/cstm-matcher-on-boolean-primitive.js
263-
test262/test/built-ins/String/prototype/match/cstm-matcher-on-number-primitive.js
264-
test262/test/built-ins/String/prototype/match/cstm-matcher-on-number-primitive.js
265-
test262/test/built-ins/String/prototype/match/cstm-matcher-on-string-primitive.js
266-
test262/test/built-ins/String/prototype/match/cstm-matcher-on-string-primitive.js
267-
test262/test/built-ins/String/prototype/matchAll/cstm-matchall-on-bigint-primitive.js
268-
test262/test/built-ins/String/prototype/matchAll/cstm-matchall-on-bigint-primitive.js
269-
test262/test/built-ins/String/prototype/matchAll/cstm-matchall-on-number-primitive.js
270-
test262/test/built-ins/String/prototype/matchAll/cstm-matchall-on-number-primitive.js
271-
test262/test/built-ins/String/prototype/matchAll/cstm-matchall-on-string-primitive.js
272-
test262/test/built-ins/String/prototype/matchAll/cstm-matchall-on-string-primitive.js
273-
test262/test/built-ins/String/prototype/replace/cstm-replace-on-bigint-primitive.js
274-
test262/test/built-ins/String/prototype/replace/cstm-replace-on-bigint-primitive.js
275-
test262/test/built-ins/String/prototype/replace/cstm-replace-on-boolean-primitive.js
276-
test262/test/built-ins/String/prototype/replace/cstm-replace-on-boolean-primitive.js
277-
test262/test/built-ins/String/prototype/replace/cstm-replace-on-number-primitive.js
278-
test262/test/built-ins/String/prototype/replace/cstm-replace-on-number-primitive.js
279-
test262/test/built-ins/String/prototype/replace/cstm-replace-on-string-primitive.js
280-
test262/test/built-ins/String/prototype/replace/cstm-replace-on-string-primitive.js
281-
test262/test/built-ins/String/prototype/replaceAll/cstm-replaceall-on-bigint-primitive.js
282-
test262/test/built-ins/String/prototype/replaceAll/cstm-replaceall-on-bigint-primitive.js
283-
test262/test/built-ins/String/prototype/replaceAll/cstm-replaceall-on-boolean-primitive.js
284-
test262/test/built-ins/String/prototype/replaceAll/cstm-replaceall-on-boolean-primitive.js
285-
test262/test/built-ins/String/prototype/replaceAll/cstm-replaceall-on-number-primitive.js
286-
test262/test/built-ins/String/prototype/replaceAll/cstm-replaceall-on-number-primitive.js
287-
test262/test/built-ins/String/prototype/replaceAll/cstm-replaceall-on-string-primitive.js
288-
test262/test/built-ins/String/prototype/replaceAll/cstm-replaceall-on-string-primitive.js
289-
test262/test/built-ins/String/prototype/search/cstm-search-on-bigint-primitive.js
290-
test262/test/built-ins/String/prototype/search/cstm-search-on-bigint-primitive.js
291-
test262/test/built-ins/String/prototype/search/cstm-search-on-boolean-primitive.js
292-
test262/test/built-ins/String/prototype/search/cstm-search-on-boolean-primitive.js
293-
test262/test/built-ins/String/prototype/search/cstm-search-on-number-primitive.js
294-
test262/test/built-ins/String/prototype/search/cstm-search-on-number-primitive.js
295-
test262/test/built-ins/String/prototype/search/cstm-search-on-string-primitive.js
296-
test262/test/built-ins/String/prototype/search/cstm-search-on-string-primitive.js
297-
test262/test/built-ins/String/prototype/split/cstm-split-on-bigint-primitive.js
298-
test262/test/built-ins/String/prototype/split/cstm-split-on-bigint-primitive.js
299-
test262/test/built-ins/String/prototype/split/cstm-split-on-boolean-primitive.js
300-
test262/test/built-ins/String/prototype/split/cstm-split-on-boolean-primitive.js
301-
test262/test/built-ins/String/prototype/split/cstm-split-on-number-primitive.js
302-
test262/test/built-ins/String/prototype/split/cstm-split-on-number-primitive.js
303-
test262/test/built-ins/String/prototype/split/cstm-split-on-string-primitive.js
304-
test262/test/built-ins/String/prototype/split/cstm-split-on-string-primitive.js
305-
306258
####################################
307259
# staging tests
308260

0 commit comments

Comments
 (0)