Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Merged by Bors] - Fix string.prototype methods and add static string methods #1123

Closed
wants to merge 22 commits into from

Conversation

jevancc
Copy link
Contributor

@jevancc jevancc commented Feb 8, 2021

This Pull Request fixes existing string prototype methods in #13 and adds static methods.

It changes the following:

  • Fix bugs in existing string prototype methods and improve readability (e.g. rename variables to match the names in spec)
  • Add static methods String.raw, String.fromCharCode, String.fromCodePoint
  • Fix broken unit tests

@codecov
Copy link

codecov bot commented Feb 8, 2021

Codecov Report

Merging #1123 (b011da8) into main (53ef07b) will decrease coverage by 0.07%.
The diff coverage is 65.74%.

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #1123      +/-   ##
==========================================
- Coverage   55.75%   55.67%   -0.08%     
==========================================
  Files         201      201              
  Lines       17273    17375     +102     
==========================================
+ Hits         9631     9674      +43     
- Misses       7642     7701      +59     
Impacted Files Coverage Δ
boa/src/builtins/regexp/mod.rs 65.18% <ø> (ø)
boa/src/builtins/string/mod.rs 63.85% <65.58%> (-0.09%) ⬇️
boa/src/builtins/string/string_iterator.rs 89.65% <100.00%> (ø)
...syntax/parser/expression/assignment/conditional.rs 54.16% <0.00%> (-20.84%) ⬇️
...ax/ast/node/declaration/arrow_function_decl/mod.rs 56.52% <0.00%> (-10.15%) ⬇️
boa/src/syntax/parser/statement/variable/mod.rs 58.90% <0.00%> (-7.25%) ⬇️
...src/syntax/parser/statement/declaration/lexical.rs 50.00% <0.00%> (-3.85%) ⬇️
...parser/expression/primary/array_initializer/mod.rs 69.56% <0.00%> (-3.17%) ⬇️
boa/src/syntax/parser/statement/mod.rs 36.16% <0.00%> (-1.01%) ⬇️
...tax/parser/expression/assignment/arrow_function.rs 58.10% <0.00%> (-0.23%) ⬇️
... and 5 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 53ef07b...b011da8. Read the comment docs.

@RageKnify
Copy link
Member

Test262 conformance changes:

Test result master count PR count difference
Total 78,497 78,497 0
Passed 24,986 25,198 +212
Ignored 15,587 15,587 0
Failed 37,924 37,712 -212
Panics 16 16 0
Conformance 31.83 32.10 +0.27%

Numbers look pretty good.
There's still a lot of functions related to searching/matching/replacing that aren't spec-compliant, #116 and #117 exist, but there's probably a bit more work to be done.

@RageKnify RageKnify added this to the v0.12.0 milestone Feb 8, 2021
@RageKnify RageKnify added the builtins PRs and Issues related to builtins/intrinsics label Feb 8, 2021
Copy link
Member

@HalidOdat HalidOdat left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

I just have some small suggestions on how to improve it. :)

boa/src/builtins/string/mod.rs Outdated Show resolved Hide resolved
boa/src/builtins/string/mod.rs Outdated Show resolved Hide resolved
Copy link
Member

@Razican Razican left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me, just requires a re-base.

@Razican Razican modified the milestones: v0.12.0, v0.13.0 May 22, 2021
@RageKnify
Copy link
Member

Current numbers, I'll try to understand if I accidentaly introduced the 32 panics.

Test262 conformance changes:

Test result master count PR count difference
Total 78,897 78,897 0
Passed 26,719 26,957 +238
Ignored 15,628 15,628 0
Failed 36,550 36,312 -238
Panics 0 32 +32
Conformance 33.87% 34.17% +0.30%
Fixed tests:
test/language/expressions/property-accessors/S11.2.1_A4_T5.js [strict mode] (previously Failed)
test/language/expressions/property-accessors/S11.2.1_A4_T5.js (previously Failed)
test/language/literals/string/S7.8.4_A4.1_T1.js [strict mode] (previously Failed)
test/language/literals/string/S7.8.4_A4.1_T1.js (previously Failed)
test/language/literals/string/S7.8.4_A7.3_T1.js [strict mode] (previously Failed)
test/language/literals/string/S7.8.4_A7.3_T1.js (previously Failed)
test/language/literals/string/S7.8.4_A5.1_T1.js [strict mode] (previously Failed)
test/language/literals/string/S7.8.4_A5.1_T1.js (previously Failed)
test/language/literals/string/S7.8.4_A7.1_T1.js [strict mode] (previously Failed)
test/language/literals/string/S7.8.4_A7.1_T1.js (previously Failed)
test/language/literals/string/S7.8.4_A6.1_T1.js [strict mode] (previously Failed)
test/language/literals/string/S7.8.4_A6.1_T1.js (previously Failed)
test/language/literals/string/S7.8.4_A4.2_T5.js [strict mode] (previously Failed)
test/language/literals/string/S7.8.4_A4.2_T5.js (previously Failed)
test/language/literals/string/S7.8.4_A4.2_T7.js [strict mode] (previously Failed)
test/language/literals/string/S7.8.4_A4.2_T7.js (previously Failed)
test/language/literals/string/S7.8.4_A6.3_T1.js [strict mode] (previously Failed)
test/language/literals/string/S7.8.4_A6.3_T1.js (previously Failed)
test/language/literals/string/S7.8.4_A4.2_T3.js [strict mode] (previously Failed)
test/language/literals/string/S7.8.4_A4.2_T3.js (previously Failed)
test/language/literals/string/S7.8.4_A4.2_T1.js [strict mode] (previously Failed)
test/language/literals/string/S7.8.4_A4.2_T1.js (previously Failed)
test/language/literals/string/S7.8.4_A4.1_T2.js [strict mode] (previously Failed)
test/language/literals/string/S7.8.4_A4.1_T2.js (previously Failed)
test/annexB/built-ins/String/prototype/substr/length-undef.js [strict mode] (previously Failed)
test/annexB/built-ins/String/prototype/substr/length-undef.js (previously Failed)
test/annexB/built-ins/String/prototype/substr/this-non-obj-coerce.js [strict mode] (previously Failed)
test/annexB/built-ins/String/prototype/substr/this-non-obj-coerce.js (previously Failed)
test/annexB/built-ins/String/prototype/substr/surrogate-pairs.js [strict mode] (previously Failed)
test/annexB/built-ins/String/prototype/substr/surrogate-pairs.js (previously Failed)
test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-61.js [strict mode] (previously Failed)
test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-61.js (previously Failed)
test/built-ins/String/raw/returns-abrupt-from-next-key.js [strict mode] (previously Failed)
test/built-ins/String/raw/returns-abrupt-from-next-key.js (previously Failed)
test/built-ins/String/raw/template-substitutions-are-appended-on-same-index.js [strict mode] (previously Failed)
test/built-ins/String/raw/template-substitutions-are-appended-on-same-index.js (previously Failed)
test/built-ins/String/raw/return-empty-string-if-length-is-negative-infinity.js [strict mode] (previously Failed)
test/built-ins/String/raw/return-empty-string-if-length-is-negative-infinity.js (previously Failed)
test/built-ins/String/raw/return-empty-string-if-length-is-zero-or-less-number.js [strict mode] (previously Failed)
test/built-ins/String/raw/return-empty-string-if-length-is-zero-or-less-number.js (previously Failed)
test/built-ins/String/raw/template-length-throws.js [strict mode] (previously Failed)
test/built-ins/String/raw/template-length-throws.js (previously Failed)
test/built-ins/String/raw/raw.js [strict mode] (previously Failed)
test/built-ins/String/raw/raw.js (previously Failed)
test/built-ins/String/raw/substitutions-are-appended-on-same-index.js [strict mode] (previously Failed)
test/built-ins/String/raw/substitutions-are-appended-on-same-index.js (previously Failed)
test/built-ins/String/raw/zero-literal-segments.js [strict mode] (previously Failed)
test/built-ins/String/raw/zero-literal-segments.js (previously Failed)
test/built-ins/String/raw/return-empty-string-if-length-is-zero-null.js [strict mode] (previously Failed)
test/built-ins/String/raw/return-empty-string-if-length-is-zero-null.js (previously Failed)
test/built-ins/String/raw/template-raw-throws.js [strict mode] (previously Failed)
test/built-ins/String/raw/template-raw-throws.js (previously Failed)
test/built-ins/String/raw/return-empty-string-if-length-is-not-defined.js [strict mode] (previously Failed)
test/built-ins/String/raw/return-empty-string-if-length-is-not-defined.js (previously Failed)
test/built-ins/String/raw/return-the-string-value.js [strict mode] (previously Failed)
test/built-ins/String/raw/return-the-string-value.js (previously Failed)
test/built-ins/String/raw/return-empty-string-if-length-is-zero-or-less-string.js [strict mode] (previously Failed)
test/built-ins/String/raw/return-empty-string-if-length-is-zero-or-less-string.js (previously Failed)
test/built-ins/String/raw/name.js [strict mode] (previously Failed)
test/built-ins/String/raw/name.js (previously Failed)
test/built-ins/String/raw/length.js [strict mode] (previously Failed)
test/built-ins/String/raw/length.js (previously Failed)
test/built-ins/String/raw/return-empty-string-from-empty-array-length.js [strict mode] (previously Failed)
test/built-ins/String/raw/return-empty-string-from-empty-array-length.js (previously Failed)
test/built-ins/String/raw/return-empty-string-if-length-is-zero-boolean.js [strict mode] (previously Failed)
test/built-ins/String/raw/return-empty-string-if-length-is-zero-boolean.js (previously Failed)
test/built-ins/String/raw/return-empty-string-if-length-is-undefined.js [strict mode] (previously Failed)
test/built-ins/String/raw/return-empty-string-if-length-is-undefined.js (previously Failed)
test/built-ins/String/raw/return-the-string-value-from-template.js [strict mode] (previously Failed)
test/built-ins/String/raw/return-the-string-value-from-template.js (previously Failed)
test/built-ins/String/raw/return-empty-string-if-length-is-zero-NaN.js [strict mode] (previously Failed)
test/built-ins/String/raw/return-empty-string-if-length-is-zero-NaN.js (previously Failed)
test/built-ins/String/raw/returns-abrupt-from-next-key-toString.js [strict mode] (previously Failed)
test/built-ins/String/raw/returns-abrupt-from-next-key-toString.js (previously Failed)
test/built-ins/String/raw/substitutions-are-limited-to-template-raw-length.js [strict mode] (previously Failed)
test/built-ins/String/raw/substitutions-are-limited-to-template-raw-length.js (previously Failed)
test/built-ins/String/raw/returns-abrupt-from-substitution.js [strict mode] (previously Failed)
test/built-ins/String/raw/returns-abrupt-from-substitution.js (previously Failed)
test/built-ins/String/fromCharCode/S9.7_A3.1_T3.js [strict mode] (previously Failed)
test/built-ins/String/fromCharCode/S9.7_A3.1_T3.js (previously Failed)
test/built-ins/String/fromCharCode/S15.5.3.2_A3_T1.js [strict mode] (previously Failed)
test/built-ins/String/fromCharCode/S15.5.3.2_A3_T1.js (previously Failed)
test/built-ins/String/fromCharCode/S15.5.3.2_A3_T2.js [strict mode] (previously Failed)
test/built-ins/String/fromCharCode/S15.5.3.2_A3_T2.js (previously Failed)
test/built-ins/String/fromCharCode/S9.7_A3.1_T4.js [strict mode] (previously Failed)
test/built-ins/String/fromCharCode/S9.7_A3.1_T4.js (previously Failed)
test/built-ins/String/fromCharCode/S15.5.3.2_A1.js [strict mode] (previously Failed)
test/built-ins/String/fromCharCode/S15.5.3.2_A1.js (previously Failed)
test/built-ins/String/fromCharCode/S9.7_A2.2.js [strict mode] (previously Failed)
test/built-ins/String/fromCharCode/S9.7_A2.2.js (previously Failed)
test/built-ins/String/fromCharCode/S9.7_A3.1_T1.js [strict mode] (previously Failed)
test/built-ins/String/fromCharCode/S9.7_A3.1_T1.js (previously Failed)
test/built-ins/String/fromCharCode/name.js [strict mode] (previously Failed)
test/built-ins/String/fromCharCode/name.js (previously Failed)
test/built-ins/String/fromCharCode/S15.5.3.2_A2.js [strict mode] (previously Failed)
test/built-ins/String/fromCharCode/S15.5.3.2_A2.js (previously Failed)
test/built-ins/String/fromCharCode/S9.7_A3.2_T1.js [strict mode] (previously Failed)
test/built-ins/String/fromCharCode/S9.7_A3.2_T1.js (previously Failed)
test/built-ins/String/fromCharCode/S9.7_A2.1.js [strict mode] (previously Failed)
test/built-ins/String/fromCharCode/S9.7_A2.1.js (previously Failed)
test/built-ins/String/fromCharCode/S9.7_A3.1_T2.js [strict mode] (previously Failed)
test/built-ins/String/fromCharCode/S9.7_A3.1_T2.js (previously Failed)
test/built-ins/String/fromCharCode/S9.7_A1.js [strict mode] (previously Failed)
test/built-ins/String/fromCharCode/S9.7_A1.js (previously Failed)
test/built-ins/String/prototype/indexOf/position-tointeger.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/position-tointeger.js (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A5_T2.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A5_T2.js (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A5_T5.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A5_T5.js (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A1_T10.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A1_T10.js (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A5_T4.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A5_T4.js (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A4_T3.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A4_T3.js (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A5_T1.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A5_T1.js (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A5_T6.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A5_T6.js (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A5_T3.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A5_T3.js (previously Failed)
test/built-ins/String/prototype/includes/this-is-null-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/includes/this-is-null-throws.js (previously Failed)
test/built-ins/String/prototype/includes/this-is-undefined-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/includes/this-is-undefined-throws.js (previously Failed)
test/built-ins/String/prototype/toLowerCase/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/toLowerCase/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/substring/S15.5.4.15_A1_T8.js [strict mode] (previously Failed)
test/built-ins/String/prototype/substring/S15.5.4.15_A1_T8.js (previously Failed)
test/built-ins/String/prototype/substring/S15.5.4.15_A1_T7.js [strict mode] (previously Failed)
test/built-ins/String/prototype/substring/S15.5.4.15_A1_T7.js (previously Failed)
test/built-ins/String/prototype/substring/S15.5.4.15_A1_T9.js [strict mode] (previously Failed)
test/built-ins/String/prototype/substring/S15.5.4.15_A1_T9.js (previously Failed)
test/built-ins/String/prototype/substring/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/substring/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/padEnd/fill-string-omitted.js [strict mode] (previously Failed)
test/built-ins/String/prototype/padEnd/fill-string-omitted.js (previously Failed)
test/built-ins/String/prototype/padEnd/normal-operation.js [strict mode] (previously Failed)
test/built-ins/String/prototype/padEnd/normal-operation.js (previously Failed)
test/built-ins/String/prototype/padEnd/exception-not-object-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/padEnd/exception-not-object-coercible.js (previously Failed)
test/built-ins/String/prototype/startsWith/this-is-null-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/startsWith/this-is-null-throws.js (previously Failed)
test/built-ins/String/prototype/startsWith/this-is-undefined-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/startsWith/this-is-undefined-throws.js (previously Failed)
test/built-ins/String/prototype/matchAll/this-val-non-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/matchAll/this-val-non-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/match/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/match/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/charAt/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/charAt/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/endsWith/this-is-null-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/endsWith/this-is-null-throws.js (previously Failed)
test/built-ins/String/prototype/endsWith/this-is-undefined-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/endsWith/this-is-undefined-throws.js (previously Failed)
test/built-ins/String/prototype/padStart/fill-string-omitted.js [strict mode] (previously Failed)
test/built-ins/String/prototype/padStart/fill-string-omitted.js (previously Failed)
test/built-ins/String/prototype/padStart/normal-operation.js [strict mode] (previously Failed)
test/built-ins/String/prototype/padStart/normal-operation.js (previously Failed)
test/built-ins/String/prototype/padStart/exception-not-object-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/padStart/exception-not-object-coercible.js (previously Failed)
test/built-ins/String/prototype/codePointAt/this-is-null-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/codePointAt/this-is-null-throws.js (previously Failed)
test/built-ins/String/prototype/codePointAt/this-is-undefined-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/codePointAt/this-is-undefined-throws.js (previously Failed)
test/built-ins/String/prototype/replace/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/replace/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/charCodeAt/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/charCodeAt/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/slice/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/slice/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/slice/S15.5.4.13_A1_T7.js [strict mode] (previously Failed)
test/built-ins/String/prototype/slice/S15.5.4.13_A1_T7.js (previously Failed)
test/built-ins/String/prototype/slice/S15.5.4.13_A1_T8.js [strict mode] (previously Failed)
test/built-ins/String/prototype/slice/S15.5.4.13_A1_T8.js (previously Failed)
test/built-ins/String/prototype/trimStart/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/trimStart/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/toUpperCase/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/toUpperCase/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/fromCodePoint/argument-not-coercible.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/argument-not-coercible.js (previously Failed)
test/built-ins/String/fromCodePoint/return-string-value.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/return-string-value.js (previously Failed)
test/built-ins/String/fromCodePoint/to-number-conversions.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/to-number-conversions.js (previously Failed)
test/built-ins/String/fromCodePoint/fromCodePoint.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/fromCodePoint.js (previously Failed)
test/built-ins/String/fromCodePoint/number-is-out-of-range.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/number-is-out-of-range.js (previously Failed)
test/built-ins/String/fromCodePoint/name.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/name.js (previously Failed)
test/built-ins/String/fromCodePoint/argument-is-not-integer.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/argument-is-not-integer.js (previously Failed)
test/built-ins/String/fromCodePoint/length.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/length.js (previously Failed)
test/built-ins/String/fromCodePoint/arguments-is-empty.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/arguments-is-empty.js (previously Failed)
test/built-ins/RegExp/unicode_restricted_identity_escape.js [strict mode] (previously Failed)
test/built-ins/RegExp/unicode_restricted_identity_escape.js (previously Failed)
test/built-ins/RegExp/unicode_restricted_identity_escape_c.js [strict mode] (previously Failed)
test/built-ins/RegExp/unicode_restricted_identity_escape_c.js (previously Failed)
test/built-ins/RegExp/S15.10.2.10_A2.1_T2.js [strict mode] (previously Failed)
test/built-ins/RegExp/S15.10.2.10_A2.1_T2.js (previously Failed)
test/built-ins/RegExp/S15.10.2.10_A2.1_T1.js [strict mode] (previously Failed)
test/built-ins/RegExp/S15.10.2.10_A2.1_T1.js (previously Failed)
test/built-ins/RegExp/character-class-escape-non-whitespace-u180e.js [strict mode] (previously Failed)
test/built-ins/RegExp/character-class-escape-non-whitespace-u180e.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-plus-quantifier.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-plus-quantifier.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-plus-quantifier.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-plus-quantifier.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-plus-quantifier-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-plus-quantifier-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-plus-quantifier-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-plus-quantifier-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-plus-quantifier-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-plus-quantifier-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-plus-quantifier.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-plus-quantifier.js (previously Failed)
test/built-ins/Number/prototype/toString/a-z.js [strict mode] (previously Failed)
test/built-ins/Number/prototype/toString/a-z.js (previously Failed)
test/built-ins/parseInt/S15.1.2.2_A8.js [strict mode] (previously Failed)
test/built-ins/parseInt/S15.1.2.2_A8.js (previously Failed)
test/built-ins/parseFloat/S15.1.2.3_A6.js [strict mode] (previously Failed)
test/built-ins/parseFloat/S15.1.2.3_A6.js (previously Failed)
New panics:
test/built-ins/RegExp/property-escapes/generated/Assigned.js [strict mode] (previously Failed)
test/built-ins/RegExp/property-escapes/generated/Assigned.js (previously Failed)
test/built-ins/RegExp/property-escapes/generated/General_Category_-_Surrogate.js [strict mode] (previously Failed)
test/built-ins/RegExp/property-escapes/generated/General_Category_-_Surrogate.js (previously Failed)
test/built-ins/RegExp/property-escapes/generated/General_Category_-_Other.js [strict mode] (previously Failed)
test/built-ins/RegExp/property-escapes/generated/General_Category_-_Other.js (previously Failed)
test/built-ins/RegExp/property-escapes/generated/Any.js [strict mode] (previously Failed)
test/built-ins/RegExp/property-escapes/generated/Any.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-plus-quantifier.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-plus-quantifier.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-plus-quantifier-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-plus-quantifier-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-plus-quantifier.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-plus-quantifier.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-plus-quantifier-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-plus-quantifier-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-plus-quantifier.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-plus-quantifier.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-plus-quantifier-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-plus-quantifier-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape.js (previously Failed)

@RageKnify
Copy link
Member

RageKnify commented Jun 7, 2021

I'm not getting panics locally, I'll run test262 again.
Latest results, pretty confusing:

Test262 conformance changes:

Test result master count PR count difference
Total 78,897 78,897 0
Passed 26,801 26,957 +156
Ignored 15,628 15,628 0
Failed 36,468 36,312 -156
Panics 0 32 +32
Conformance 33.97% 34.17% +0.20%
Fixed tests:
test/language/expressions/property-accessors/S11.2.1_A4_T5.js [strict mode] (previously Failed)
test/language/expressions/property-accessors/S11.2.1_A4_T5.js (previously Failed)
test/language/literals/string/S7.8.4_A4.1_T1.js [strict mode] (previously Failed)
test/language/literals/string/S7.8.4_A4.1_T1.js (previously Failed)
test/language/literals/string/S7.8.4_A7.3_T1.js [strict mode] (previously Failed)
test/language/literals/string/S7.8.4_A7.3_T1.js (previously Failed)
test/language/literals/string/S7.8.4_A5.1_T1.js [strict mode] (previously Failed)
test/language/literals/string/S7.8.4_A5.1_T1.js (previously Failed)
test/language/literals/string/S7.8.4_A7.1_T1.js [strict mode] (previously Failed)
test/language/literals/string/S7.8.4_A7.1_T1.js (previously Failed)
test/language/literals/string/S7.8.4_A6.1_T1.js [strict mode] (previously Failed)
test/language/literals/string/S7.8.4_A6.1_T1.js (previously Failed)
test/language/literals/string/S7.8.4_A4.2_T5.js [strict mode] (previously Failed)
test/language/literals/string/S7.8.4_A4.2_T5.js (previously Failed)
test/language/literals/string/S7.8.4_A4.2_T7.js [strict mode] (previously Failed)
test/language/literals/string/S7.8.4_A4.2_T7.js (previously Failed)
test/language/literals/string/S7.8.4_A6.3_T1.js [strict mode] (previously Failed)
test/language/literals/string/S7.8.4_A6.3_T1.js (previously Failed)
test/language/literals/string/S7.8.4_A4.2_T3.js [strict mode] (previously Failed)
test/language/literals/string/S7.8.4_A4.2_T3.js (previously Failed)
test/language/literals/string/S7.8.4_A4.2_T1.js [strict mode] (previously Failed)
test/language/literals/string/S7.8.4_A4.2_T1.js (previously Failed)
test/language/literals/string/S7.8.4_A4.1_T2.js [strict mode] (previously Failed)
test/language/literals/string/S7.8.4_A4.1_T2.js (previously Failed)
test/annexB/built-ins/String/prototype/substr/length-undef.js [strict mode] (previously Failed)
test/annexB/built-ins/String/prototype/substr/length-undef.js (previously Failed)
test/annexB/built-ins/String/prototype/substr/this-non-obj-coerce.js [strict mode] (previously Failed)
test/annexB/built-ins/String/prototype/substr/this-non-obj-coerce.js (previously Failed)
test/annexB/built-ins/String/prototype/substr/surrogate-pairs.js [strict mode] (previously Failed)
test/annexB/built-ins/String/prototype/substr/surrogate-pairs.js (previously Failed)
test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-61.js [strict mode] (previously Failed)
test/built-ins/Object/getOwnPropertyDescriptor/15.2.3.3-4-61.js (previously Failed)
test/built-ins/String/raw/returns-abrupt-from-next-key.js [strict mode] (previously Failed)
test/built-ins/String/raw/returns-abrupt-from-next-key.js (previously Failed)
test/built-ins/String/raw/template-substitutions-are-appended-on-same-index.js [strict mode] (previously Failed)
test/built-ins/String/raw/template-substitutions-are-appended-on-same-index.js (previously Failed)
test/built-ins/String/raw/return-empty-string-if-length-is-negative-infinity.js [strict mode] (previously Failed)
test/built-ins/String/raw/return-empty-string-if-length-is-negative-infinity.js (previously Failed)
test/built-ins/String/raw/return-empty-string-if-length-is-zero-or-less-number.js [strict mode] (previously Failed)
test/built-ins/String/raw/return-empty-string-if-length-is-zero-or-less-number.js (previously Failed)
test/built-ins/String/raw/template-length-throws.js [strict mode] (previously Failed)
test/built-ins/String/raw/template-length-throws.js (previously Failed)
test/built-ins/String/raw/raw.js [strict mode] (previously Failed)
test/built-ins/String/raw/raw.js (previously Failed)
test/built-ins/String/raw/substitutions-are-appended-on-same-index.js [strict mode] (previously Failed)
test/built-ins/String/raw/substitutions-are-appended-on-same-index.js (previously Failed)
test/built-ins/String/raw/zero-literal-segments.js [strict mode] (previously Failed)
test/built-ins/String/raw/zero-literal-segments.js (previously Failed)
test/built-ins/String/raw/return-empty-string-if-length-is-zero-null.js [strict mode] (previously Failed)
test/built-ins/String/raw/return-empty-string-if-length-is-zero-null.js (previously Failed)
test/built-ins/String/raw/template-raw-throws.js [strict mode] (previously Failed)
test/built-ins/String/raw/template-raw-throws.js (previously Failed)
test/built-ins/String/raw/return-empty-string-if-length-is-not-defined.js [strict mode] (previously Failed)
test/built-ins/String/raw/return-empty-string-if-length-is-not-defined.js (previously Failed)
test/built-ins/String/raw/return-the-string-value.js [strict mode] (previously Failed)
test/built-ins/String/raw/return-the-string-value.js (previously Failed)
test/built-ins/String/raw/return-empty-string-if-length-is-zero-or-less-string.js [strict mode] (previously Failed)
test/built-ins/String/raw/return-empty-string-if-length-is-zero-or-less-string.js (previously Failed)
test/built-ins/String/raw/name.js [strict mode] (previously Failed)
test/built-ins/String/raw/name.js (previously Failed)
test/built-ins/String/raw/length.js [strict mode] (previously Failed)
test/built-ins/String/raw/length.js (previously Failed)
test/built-ins/String/raw/return-empty-string-from-empty-array-length.js [strict mode] (previously Failed)
test/built-ins/String/raw/return-empty-string-from-empty-array-length.js (previously Failed)
test/built-ins/String/raw/return-empty-string-if-length-is-zero-boolean.js [strict mode] (previously Failed)
test/built-ins/String/raw/return-empty-string-if-length-is-zero-boolean.js (previously Failed)
test/built-ins/String/raw/return-empty-string-if-length-is-undefined.js [strict mode] (previously Failed)
test/built-ins/String/raw/return-empty-string-if-length-is-undefined.js (previously Failed)
test/built-ins/String/raw/return-the-string-value-from-template.js [strict mode] (previously Failed)
test/built-ins/String/raw/return-the-string-value-from-template.js (previously Failed)
test/built-ins/String/raw/return-empty-string-if-length-is-zero-NaN.js [strict mode] (previously Failed)
test/built-ins/String/raw/return-empty-string-if-length-is-zero-NaN.js (previously Failed)
test/built-ins/String/raw/returns-abrupt-from-next-key-toString.js [strict mode] (previously Failed)
test/built-ins/String/raw/returns-abrupt-from-next-key-toString.js (previously Failed)
test/built-ins/String/raw/substitutions-are-limited-to-template-raw-length.js [strict mode] (previously Failed)
test/built-ins/String/raw/substitutions-are-limited-to-template-raw-length.js (previously Failed)
test/built-ins/String/raw/returns-abrupt-from-substitution.js [strict mode] (previously Failed)
test/built-ins/String/raw/returns-abrupt-from-substitution.js (previously Failed)
test/built-ins/String/fromCharCode/S9.7_A3.1_T3.js [strict mode] (previously Failed)
test/built-ins/String/fromCharCode/S9.7_A3.1_T3.js (previously Failed)
test/built-ins/String/fromCharCode/S15.5.3.2_A3_T1.js [strict mode] (previously Failed)
test/built-ins/String/fromCharCode/S15.5.3.2_A3_T1.js (previously Failed)
test/built-ins/String/fromCharCode/S15.5.3.2_A3_T2.js [strict mode] (previously Failed)
test/built-ins/String/fromCharCode/S15.5.3.2_A3_T2.js (previously Failed)
test/built-ins/String/fromCharCode/S9.7_A3.1_T4.js [strict mode] (previously Failed)
test/built-ins/String/fromCharCode/S9.7_A3.1_T4.js (previously Failed)
test/built-ins/String/fromCharCode/S15.5.3.2_A1.js [strict mode] (previously Failed)
test/built-ins/String/fromCharCode/S15.5.3.2_A1.js (previously Failed)
test/built-ins/String/fromCharCode/S9.7_A2.2.js [strict mode] (previously Failed)
test/built-ins/String/fromCharCode/S9.7_A2.2.js (previously Failed)
test/built-ins/String/fromCharCode/S9.7_A3.1_T1.js [strict mode] (previously Failed)
test/built-ins/String/fromCharCode/S9.7_A3.1_T1.js (previously Failed)
test/built-ins/String/fromCharCode/name.js [strict mode] (previously Failed)
test/built-ins/String/fromCharCode/name.js (previously Failed)
test/built-ins/String/fromCharCode/S15.5.3.2_A2.js [strict mode] (previously Failed)
test/built-ins/String/fromCharCode/S15.5.3.2_A2.js (previously Failed)
test/built-ins/String/fromCharCode/S9.7_A3.2_T1.js [strict mode] (previously Failed)
test/built-ins/String/fromCharCode/S9.7_A3.2_T1.js (previously Failed)
test/built-ins/String/fromCharCode/S9.7_A2.1.js [strict mode] (previously Failed)
test/built-ins/String/fromCharCode/S9.7_A2.1.js (previously Failed)
test/built-ins/String/fromCharCode/S9.7_A3.1_T2.js [strict mode] (previously Failed)
test/built-ins/String/fromCharCode/S9.7_A3.1_T2.js (previously Failed)
test/built-ins/String/fromCharCode/S9.7_A1.js [strict mode] (previously Failed)
test/built-ins/String/fromCharCode/S9.7_A1.js (previously Failed)
test/built-ins/String/prototype/indexOf/position-tointeger.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/position-tointeger.js (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A5_T2.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A5_T2.js (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A5_T5.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A5_T5.js (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A1_T10.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A1_T10.js (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A5_T4.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A5_T4.js (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A4_T3.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A4_T3.js (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A5_T1.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A5_T1.js (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A5_T6.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A5_T6.js (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A5_T3.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A5_T3.js (previously Failed)
test/built-ins/String/prototype/includes/this-is-null-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/includes/this-is-null-throws.js (previously Failed)
test/built-ins/String/prototype/includes/this-is-undefined-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/includes/this-is-undefined-throws.js (previously Failed)
test/built-ins/String/prototype/toLowerCase/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/toLowerCase/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/substring/S15.5.4.15_A1_T8.js [strict mode] (previously Failed)
test/built-ins/String/prototype/substring/S15.5.4.15_A1_T8.js (previously Failed)
test/built-ins/String/prototype/substring/S15.5.4.15_A1_T7.js [strict mode] (previously Failed)
test/built-ins/String/prototype/substring/S15.5.4.15_A1_T7.js (previously Failed)
test/built-ins/String/prototype/substring/S15.5.4.15_A1_T9.js [strict mode] (previously Failed)
test/built-ins/String/prototype/substring/S15.5.4.15_A1_T9.js (previously Failed)
test/built-ins/String/prototype/substring/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/substring/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/padEnd/fill-string-omitted.js [strict mode] (previously Failed)
test/built-ins/String/prototype/padEnd/fill-string-omitted.js (previously Failed)
test/built-ins/String/prototype/padEnd/normal-operation.js [strict mode] (previously Failed)
test/built-ins/String/prototype/padEnd/normal-operation.js (previously Failed)
test/built-ins/String/prototype/padEnd/exception-not-object-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/padEnd/exception-not-object-coercible.js (previously Failed)
test/built-ins/String/prototype/startsWith/this-is-null-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/startsWith/this-is-null-throws.js (previously Failed)
test/built-ins/String/prototype/startsWith/this-is-undefined-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/startsWith/this-is-undefined-throws.js (previously Failed)
test/built-ins/String/prototype/matchAll/this-val-non-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/matchAll/this-val-non-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/match/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/match/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/charAt/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/charAt/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/endsWith/this-is-null-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/endsWith/this-is-null-throws.js (previously Failed)
test/built-ins/String/prototype/endsWith/this-is-undefined-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/endsWith/this-is-undefined-throws.js (previously Failed)
test/built-ins/String/prototype/padStart/fill-string-omitted.js [strict mode] (previously Failed)
test/built-ins/String/prototype/padStart/fill-string-omitted.js (previously Failed)
test/built-ins/String/prototype/padStart/normal-operation.js [strict mode] (previously Failed)
test/built-ins/String/prototype/padStart/normal-operation.js (previously Failed)
test/built-ins/String/prototype/padStart/exception-not-object-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/padStart/exception-not-object-coercible.js (previously Failed)
test/built-ins/String/prototype/codePointAt/this-is-null-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/codePointAt/this-is-null-throws.js (previously Failed)
test/built-ins/String/prototype/codePointAt/this-is-undefined-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/codePointAt/this-is-undefined-throws.js (previously Failed)
test/built-ins/String/prototype/replace/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/replace/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/charCodeAt/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/charCodeAt/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/slice/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/slice/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/slice/S15.5.4.13_A1_T7.js [strict mode] (previously Failed)
test/built-ins/String/prototype/slice/S15.5.4.13_A1_T7.js (previously Failed)
test/built-ins/String/prototype/slice/S15.5.4.13_A1_T8.js [strict mode] (previously Failed)
test/built-ins/String/prototype/slice/S15.5.4.13_A1_T8.js (previously Failed)
test/built-ins/String/prototype/trimStart/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/trimStart/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/toUpperCase/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/toUpperCase/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/fromCodePoint/argument-not-coercible.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/argument-not-coercible.js (previously Failed)
test/built-ins/String/fromCodePoint/return-string-value.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/return-string-value.js (previously Failed)
test/built-ins/String/fromCodePoint/to-number-conversions.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/to-number-conversions.js (previously Failed)
test/built-ins/String/fromCodePoint/fromCodePoint.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/fromCodePoint.js (previously Failed)
test/built-ins/String/fromCodePoint/number-is-out-of-range.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/number-is-out-of-range.js (previously Failed)
test/built-ins/String/fromCodePoint/name.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/name.js (previously Failed)
test/built-ins/String/fromCodePoint/argument-is-not-integer.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/argument-is-not-integer.js (previously Failed)
test/built-ins/String/fromCodePoint/length.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/length.js (previously Failed)
test/built-ins/String/fromCodePoint/arguments-is-empty.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/arguments-is-empty.js (previously Failed)
test/built-ins/RegExp/unicode_restricted_identity_escape.js [strict mode] (previously Failed)
test/built-ins/RegExp/unicode_restricted_identity_escape.js (previously Failed)
test/built-ins/RegExp/unicode_restricted_identity_escape_c.js [strict mode] (previously Failed)
test/built-ins/RegExp/unicode_restricted_identity_escape_c.js (previously Failed)
test/built-ins/RegExp/S15.10.2.10_A2.1_T2.js [strict mode] (previously Failed)
test/built-ins/RegExp/S15.10.2.10_A2.1_T2.js (previously Failed)
test/built-ins/RegExp/S15.10.2.10_A2.1_T1.js [strict mode] (previously Failed)
test/built-ins/RegExp/S15.10.2.10_A2.1_T1.js (previously Failed)
test/built-ins/RegExp/character-class-escape-non-whitespace-u180e.js [strict mode] (previously Failed)
test/built-ins/RegExp/character-class-escape-non-whitespace-u180e.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-plus-quantifier.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-plus-quantifier.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-plus-quantifier.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-plus-quantifier.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-plus-quantifier-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-plus-quantifier-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-plus-quantifier-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-plus-quantifier-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-plus-quantifier-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-plus-quantifier-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-plus-quantifier.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-plus-quantifier.js (previously Failed)
test/built-ins/Number/prototype/toString/a-z.js [strict mode] (previously Failed)
test/built-ins/Number/prototype/toString/a-z.js (previously Failed)
test/built-ins/Array/of/return-abrupt-from-data-property.js [strict mode] (previously Failed)
test/built-ins/Array/of/return-abrupt-from-data-property.js (previously Failed)
test/built-ins/parseInt/S15.1.2.2_A8.js [strict mode] (previously Failed)
test/built-ins/parseInt/S15.1.2.2_A8.js (previously Failed)
test/built-ins/parseFloat/S15.1.2.3_A6.js [strict mode] (previously Failed)
test/built-ins/parseFloat/S15.1.2.3_A6.js (previously Failed)
Broken tests:
test/language/global-code/script-decl-func-dups.js [strict mode] (previously Passed)
test/language/global-code/script-decl-func-dups.js (previously Passed)
test/language/expressions/tagged-template/cache-realm.js [strict mode] (previously Passed)
test/language/expressions/tagged-template/cache-realm.js (previously Passed)
test/annexB/language/expressions/logical-assignment/emulates-undefined-or.js [strict mode] (previously Passed)
test/annexB/language/expressions/logical-assignment/emulates-undefined-or.js (previously Passed)
test/annexB/language/expressions/logical-assignment/emulates-undefined-and.js [strict mode] (previously Passed)
test/annexB/language/expressions/logical-assignment/emulates-undefined-and.js (previously Passed)
test/annexB/language/expressions/logical-not/emulates-undefined.js [strict mode] (previously Passed)
test/annexB/language/expressions/logical-not/emulates-undefined.js (previously Passed)
test/annexB/language/expressions/typeof/emulates-undefined.js [strict mode] (previously Passed)
test/annexB/language/expressions/typeof/emulates-undefined.js (previously Passed)
test/annexB/language/expressions/logical-or/emulates-undefined.js [strict mode] (previously Passed)
test/annexB/language/expressions/logical-or/emulates-undefined.js (previously Passed)
test/annexB/language/expressions/does-not-equals/emulates-undefined.js [strict mode] (previously Passed)
test/annexB/language/expressions/does-not-equals/emulates-undefined.js (previously Passed)
test/annexB/language/expressions/equals/emulates-undefined.js [strict mode] (previously Passed)
test/annexB/language/expressions/equals/emulates-undefined.js (previously Passed)
test/annexB/language/expressions/logical-and/emulates-undefined.js [strict mode] (previously Passed)
test/annexB/language/expressions/logical-and/emulates-undefined.js (previously Passed)
test/annexB/language/expressions/conditional/emulates-undefined.js [strict mode] (previously Passed)
test/annexB/language/expressions/conditional/emulates-undefined.js (previously Passed)
test/annexB/language/statements/if/emulated-undefined.js [strict mode] (previously Passed)
test/annexB/language/statements/if/emulated-undefined.js (previously Passed)
test/annexB/built-ins/Array/from/iterator-method-emulates-undefined.js [strict mode] (previously Passed)
test/annexB/built-ins/Array/from/iterator-method-emulates-undefined.js (previously Passed)
test/built-ins/BigInt/prototype/valueOf/cross-realm.js [strict mode] (previously Passed)
test/built-ins/BigInt/prototype/valueOf/cross-realm.js (previously Passed)
test/built-ins/Symbol/isConcatSpreadable/cross-realm.js [strict mode] (previously Passed)
test/built-ins/Symbol/isConcatSpreadable/cross-realm.js (previously Passed)
test/built-ins/Symbol/toPrimitive/cross-realm.js [strict mode] (previously Passed)
test/built-ins/Symbol/toPrimitive/cross-realm.js (previously Passed)
test/built-ins/Symbol/asyncIterator/cross-realm.js [strict mode] (previously Passed)
test/built-ins/Symbol/asyncIterator/cross-realm.js (previously Passed)
test/built-ins/Symbol/matchAll/cross-realm.js [strict mode] (previously Passed)
test/built-ins/Symbol/matchAll/cross-realm.js (previously Passed)
test/built-ins/Symbol/match/cross-realm.js [strict mode] (previously Passed)
test/built-ins/Symbol/match/cross-realm.js (previously Passed)
test/built-ins/Symbol/toStringTag/cross-realm.js [strict mode] (previously Passed)
test/built-ins/Symbol/toStringTag/cross-realm.js (previously Passed)
test/built-ins/Symbol/iterator/cross-realm.js [strict mode] (previously Passed)
test/built-ins/Symbol/iterator/cross-realm.js (previously Passed)
test/built-ins/Symbol/split/cross-realm.js [strict mode] (previously Passed)
test/built-ins/Symbol/split/cross-realm.js (previously Passed)
test/built-ins/Symbol/replace/cross-realm.js [strict mode] (previously Passed)
test/built-ins/Symbol/replace/cross-realm.js (previously Passed)
test/built-ins/Symbol/unscopables/cross-realm.js [strict mode] (previously Passed)
test/built-ins/Symbol/unscopables/cross-realm.js (previously Passed)
test/built-ins/Symbol/species/cross-realm.js [strict mode] (previously Passed)
test/built-ins/Symbol/species/cross-realm.js (previously Passed)
test/built-ins/Symbol/hasInstance/cross-realm.js [strict mode] (previously Passed)
test/built-ins/Symbol/hasInstance/cross-realm.js (previously Passed)
test/built-ins/Symbol/search/cross-realm.js [strict mode] (previously Passed)
test/built-ins/Symbol/search/cross-realm.js (previously Passed)
test/built-ins/Array/length/define-own-prop-length-overflow-realm.js [strict mode] (previously Passed)
test/built-ins/Array/length/define-own-prop-length-overflow-realm.js (previously Passed)
test/built-ins/Array/prototype/filter/create-proto-from-ctor-realm-non-array.js [strict mode] (previously Passed)
test/built-ins/Array/prototype/filter/create-proto-from-ctor-realm-non-array.js (previously Passed)
test/built-ins/Array/prototype/map/create-proto-from-ctor-realm-array.js [strict mode] (previously Passed)
test/built-ins/Array/prototype/map/create-proto-from-ctor-realm-array.js (previously Passed)
test/built-ins/Array/prototype/slice/create-proto-from-ctor-realm-array.js [strict mode] (previously Passed)
test/built-ins/Array/prototype/slice/create-proto-from-ctor-realm-array.js (previously Passed)
test/built-ins/Array/prototype/concat/create-proto-from-ctor-realm-array.js [strict mode] (previously Passed)
test/built-ins/Array/prototype/concat/create-proto-from-ctor-realm-array.js (previously Passed)
test/built-ins/Array/of/return-abrupt-from-setting-length.js [strict mode] (previously Passed)
test/built-ins/Array/of/return-abrupt-from-setting-length.js (previously Passed)
test/built-ins/Array/of/return-a-custom-instance.js [strict mode] (previously Passed)
test/built-ins/Array/of/return-a-custom-instance.js (previously Passed)
test/built-ins/Array/of/name.js [strict mode] (previously Passed)
test/built-ins/Array/of/name.js (previously Passed)
test/built-ins/Array/of/length.js [strict mode] (previously Passed)
test/built-ins/Array/of/length.js (previously Passed)
test/built-ins/Array/of/sets-length.js [strict mode] (previously Passed)
test/built-ins/Array/of/sets-length.js (previously Passed)
test/built-ins/Array/of/does-not-use-set-for-indices.js [strict mode] (previously Passed)
test/built-ins/Array/of/does-not-use-set-for-indices.js (previously Passed)
test/built-ins/Array/of/does-not-use-prototype-properties.js [strict mode] (previously Passed)
test/built-ins/Array/of/does-not-use-prototype-properties.js (previously Passed)
test/built-ins/Array/of/construct-this-with-the-number-of-arguments.js [strict mode] (previously Passed)
test/built-ins/Array/of/construct-this-with-the-number-of-arguments.js (previously Passed)
test/built-ins/Array/of/of.js [strict mode] (previously Passed)
test/built-ins/Array/of/of.js (previously Passed)
test/built-ins/Array/of/creates-a-new-array-from-arguments.js [strict mode] (previously Passed)
test/built-ins/Array/of/creates-a-new-array-from-arguments.js (previously Passed)
New panics:
test/built-ins/RegExp/property-escapes/generated/Assigned.js [strict mode] (previously Failed)
test/built-ins/RegExp/property-escapes/generated/Assigned.js (previously Failed)
test/built-ins/RegExp/property-escapes/generated/General_Category_-_Surrogate.js [strict mode] (previously Failed)
test/built-ins/RegExp/property-escapes/generated/General_Category_-_Surrogate.js (previously Failed)
test/built-ins/RegExp/property-escapes/generated/General_Category_-_Other.js [strict mode] (previously Failed)
test/built-ins/RegExp/property-escapes/generated/General_Category_-_Other.js (previously Failed)
test/built-ins/RegExp/property-escapes/generated/Any.js [strict mode] (previously Failed)
test/built-ins/RegExp/property-escapes/generated/Any.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-plus-quantifier.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-plus-quantifier.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-plus-quantifier-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-plus-quantifier-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-plus-quantifier.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-plus-quantifier.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-plus-quantifier-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-plus-quantifier-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-plus-quantifier.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-plus-quantifier.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-plus-quantifier-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-plus-quantifier-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape.js (previously Failed)

@Razican
Copy link
Member

Razican commented Jun 28, 2021

I'm able to reproduce the panics locally:

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CharTryFromError(())', boa/src/builtins/string/mod.rs:1413:55
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
last panic was on test "character-class-non-digit-class-escape-flags-u"
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CharTryFromError(())', boa/src/builtins/string/mod.rs:1413:55
last panic was on test "character-class-non-digit-class-escape-flags-u"
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CharTryFromError(())', boa/src/builtins/string/mod.rs:1413:55
last panic was on test "character-class-non-digit-class-escape-plus-quantifier-flags-u"
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CharTryFromError(())', boa/src/builtins/string/mod.rs:1413:55
last panic was on test "character-class-non-digit-class-escape-plus-quantifier-flags-u"
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CharTryFromError(())', boa/src/builtins/string/mod.rs:1413:55
last panic was on test "character-class-non-digit-class-escape-plus-quantifier"
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CharTryFromError(())', boa/src/builtins/string/mod.rs:1413:55
last panic was on test "character-class-non-digit-class-escape-plus-quantifier"
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CharTryFromError(())', boa/src/builtins/string/mod.rs:1413:55
last panic was on test "character-class-non-digit-class-escape"
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CharTryFromError(())', boa/src/builtins/string/mod.rs:1413:55
last panic was on test "character-class-non-digit-class-escape"
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CharTryFromError(())', boa/src/builtins/string/mod.rs:1413:55
last panic was on test "character-class-non-whitespace-class-escape-flags-u"
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CharTryFromError(())', boa/src/builtins/string/mod.rs:1413:55
last panic was on test "character-class-non-whitespace-class-escape-flags-u"
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CharTryFromError(())', boa/src/builtins/string/mod.rs:1413:55
last panic was on test "character-class-non-whitespace-class-escape-plus-quantifier-flags-u"
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CharTryFromError(())', boa/src/builtins/string/mod.rs:1413:55
last panic was on test "character-class-non-whitespace-class-escape-plus-quantifier-flags-u"
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CharTryFromError(())', boa/src/builtins/string/mod.rs:1413:55
last panic was on test "character-class-non-whitespace-class-escape-plus-quantifier"
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CharTryFromError(())', boa/src/builtins/string/mod.rs:1413:55
last panic was on test "character-class-non-whitespace-class-escape-plus-quantifier"
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CharTryFromError(())', boa/src/builtins/string/mod.rs:1413:55
last panic was on test "character-class-non-whitespace-class-escape"
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CharTryFromError(())', boa/src/builtins/string/mod.rs:1413:55
last panic was on test "character-class-non-whitespace-class-escape"
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CharTryFromError(())', boa/src/builtins/string/mod.rs:1413:55
last panic was on test "character-class-non-word-class-escape-flags-u"
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CharTryFromError(())', boa/src/builtins/string/mod.rs:1413:55
last panic was on test "character-class-non-word-class-escape-flags-u"
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CharTryFromError(())', boa/src/builtins/string/mod.rs:1413:55
last panic was on test "character-class-non-word-class-escape-plus-quantifier-flags-u"
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CharTryFromError(())', boa/src/builtins/string/mod.rs:1413:55
last panic was on test "character-class-non-word-class-escape-plus-quantifier-flags-u"
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CharTryFromError(())', boa/src/builtins/string/mod.rs:1413:55
last panic was on test "character-class-non-word-class-escape-plus-quantifier"
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CharTryFromError(())', boa/src/builtins/string/mod.rs:1413:55
last panic was on test "character-class-non-word-class-escape-plus-quantifier"
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CharTryFromError(())', boa/src/builtins/string/mod.rs:1413:55
last panic was on test "character-class-non-word-class-escape"
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CharTryFromError(())', boa/src/builtins/string/mod.rs:1413:55
last panic was on test "character-class-non-word-class-escape"
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CharTryFromError(())', boa/src/builtins/string/mod.rs:1413:55
last panic was on test "Any"
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CharTryFromError(())', boa/src/builtins/string/mod.rs:1413:55
last panic was on test "Any"
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CharTryFromError(())', boa/src/builtins/string/mod.rs:1413:55
last panic was on test "Assigned"
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CharTryFromError(())', boa/src/builtins/string/mod.rs:1413:55
last panic was on test "Assigned"
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CharTryFromError(())', boa/src/builtins/string/mod.rs:1413:55
last panic was on test "General_Category_-_Other"
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CharTryFromError(())', boa/src/builtins/string/mod.rs:1413:55
last panic was on test "General_Category_-_Other"
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CharTryFromError(())', boa/src/builtins/string/mod.rs:1413:55
last panic was on test "General_Category_-_Surrogate"
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: CharTryFromError(())', boa/src/builtins/string/mod.rs:1413:55
last panic was on test "General_Category_-_Surrogate"

@raskad raskad removed this from the v0.13.0 milestone Sep 25, 2021
@raskad raskad added this to the v0.14.0 milestone Sep 25, 2021
@Razican
Copy link
Member

Razican commented Feb 5, 2022

@jevancc It would be very nice to get this merged. Did you have the chance to review the panics & re-base it?

@jevancc
Copy link
Contributor Author

jevancc commented Feb 8, 2022

@jevancc It would be very nice to get this merged. Did you have the chance to review the panics & re-base it?

Sure, I will complete it soon this week.

@jevancc
Copy link
Contributor Author

jevancc commented Feb 13, 2022

@Razican This PR has been rebased to the latest main.

Update notes:

  • Rename some variables and coding styles to comply with changes since last year
  • String.raw and String.fromCharCode are added to the main after this PR, so the methods added in earlier commits of this PR are removed.
  • Others remain unchanged since the last commit.

Feel free to merge this PR if everything looks good to you or let me know if there are other changes required before merging.

@jedel1043
Copy link
Member

Test262 conformance changes

VM implementation

Test result main count PR count difference
Total 87,912 87,912 0
Passed 40,892 41,004 +112
Ignored 19,929 19,929 0
Failed 27,091 26,979 -112
Panics 0 32 +32
Conformance 46.51% 46.64% +0.13%
Fixed tests (114):
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-plus-quantifier.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-plus-quantifier.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-plus-quantifier.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-plus-quantifier.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-plus-quantifier-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-plus-quantifier-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-plus-quantifier-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-plus-quantifier-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-plus-quantifier-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-plus-quantifier-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-plus-quantifier.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-plus-quantifier.js (previously Failed)
test/built-ins/String/fromCodePoint/return-string-value.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/return-string-value.js (previously Failed)
test/built-ins/String/fromCodePoint/argument-not-coercible.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/argument-not-coercible.js (previously Failed)
test/built-ins/String/fromCodePoint/arguments-is-empty.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/arguments-is-empty.js (previously Failed)
test/built-ins/String/fromCodePoint/to-number-conversions.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/to-number-conversions.js (previously Failed)
test/built-ins/String/fromCodePoint/argument-is-not-integer.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/argument-is-not-integer.js (previously Failed)
test/built-ins/String/fromCodePoint/name.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/name.js (previously Failed)
test/built-ins/String/fromCodePoint/fromCodePoint.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/fromCodePoint.js (previously Failed)
test/built-ins/String/fromCodePoint/length.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/length.js (previously Failed)
test/built-ins/String/fromCodePoint/number-is-out-of-range.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/number-is-out-of-range.js (previously Failed)
test/built-ins/String/prototype/codePointAt/this-is-null-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/codePointAt/this-is-null-throws.js (previously Failed)
test/built-ins/String/prototype/codePointAt/this-is-undefined-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/codePointAt/this-is-undefined-throws.js (previously Failed)
test/built-ins/String/prototype/slice/S15.5.4.13_A1_T8.js [strict mode] (previously Failed)
test/built-ins/String/prototype/slice/S15.5.4.13_A1_T8.js (previously Failed)
test/built-ins/String/prototype/slice/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/slice/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/slice/S15.5.4.13_A1_T[7](https://github.com/boa-dev/boa/runs/5176848945?check_suite_focus=true#step:10:7).js [strict mode] (previously Failed)
test/built-ins/String/prototype/slice/S15.5.4.13_A1_T7.js (previously Failed)
test/built-ins/String/prototype/toLowerCase/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/toLowerCase/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A4_T3.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A4_T3.js (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A5_T6.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A5_T6.js (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A1_T10.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A1_T10.js (previously Failed)
test/built-ins/String/prototype/indexOf/position-tointeger-wrapped-values.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/position-tointeger-wrapped-values.js (previously Failed)
test/built-ins/String/prototype/indexOf/position-tointeger-toprimitive.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/position-tointeger-toprimitive.js (previously Failed)
test/built-ins/String/prototype/indexOf/position-tointeger.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/position-tointeger.js (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A5_T3.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A5_T3.js (previously Failed)
test/built-ins/String/prototype/charCodeAt/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/charCodeAt/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/startsWith/this-is-null-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/startsWith/this-is-null-throws.js (previously Failed)
test/built-ins/String/prototype/startsWith/this-is-undefined-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/startsWith/this-is-undefined-throws.js (previously Failed)
test/built-ins/String/prototype/trimStart/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/trimStart/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/substring/S15.5.4.15_A1_T9.js [strict mode] (previously Failed)
test/built-ins/String/prototype/substring/S15.5.4.15_A1_T9.js (previously Failed)
test/built-ins/String/prototype/substring/S15.5.4.15_A1_T7.js [strict mode] (previously Failed)
test/built-ins/String/prototype/substring/S15.5.4.15_A1_T7.js (previously Failed)
test/built-ins/String/prototype/substring/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/substring/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/substring/S15.5.4.15_A1_T[8](https://github.com/boa-dev/boa/runs/5176848945?check_suite_focus=true#step:10:8).js [strict mode] (previously Failed)
test/built-ins/String/prototype/substring/S[15](https://github.com/boa-dev/boa/runs/5176848945?check_suite_focus=true#step:10:15).5.4.15_A1_T8.js (previously Failed)
test/built-ins/String/prototype/endsWith/this-is-null-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/endsWith/this-is-null-throws.js (previously Failed)
test/built-ins/String/prototype/endsWith/this-is-undefined-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/endsWith/this-is-undefined-throws.js (previously Failed)
test/built-ins/String/prototype/toUpperCase/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/toUpperCase/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/includes/this-is-null-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/includes/this-is-null-throws.js (previously Failed)
test/built-ins/String/prototype/includes/this-is-undefined-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/includes/this-is-undefined-throws.js (previously Failed)
test/built-ins/String/prototype/padEnd/exception-not-object-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/padEnd/exception-not-object-coercible.js (previously Failed)
test/built-ins/String/prototype/padEnd/fill-string-omitted.js [strict mode] (previously Failed)
test/built-ins/String/prototype/padEnd/fill-string-omitted.js (previously Failed)
test/built-ins/String/prototype/padEnd/normal-operation.js [strict mode] (previously Failed)
test/built-ins/String/prototype/padEnd/normal-operation.js (previously Failed)
test/built-ins/String/prototype/charAt/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/charAt/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/padStart/exception-not-object-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/padStart/exception-not-object-coercible.js (previously Failed)
test/built-ins/String/prototype/padStart/fill-string-omitted.js [strict mode] (previously Failed)
test/built-ins/String/prototype/padStart/fill-string-omitted.js (previously Failed)
test/built-ins/String/prototype/padStart/normal-operation.js [strict mode] (previously Failed)
test/built-ins/String/prototype/padStart/normal-operation.js (previously Failed)
test/annexB/built-ins/String/prototype/substr/length-undef.js [strict mode] (previously Failed)
test/annexB/built-ins/String/prototype/substr/length-undef.js (previously Failed)
test/annexB/built-ins/String/prototype/substr/this-non-obj-coerce.js [strict mode] (previously Failed)
test/annexB/built-ins/String/prototype/substr/this-non-obj-coerce.js (previously Failed)
test/annexB/built-ins/String/prototype/substr/surrogate-pairs.js [strict mode] (previously Failed)
test/annexB/built-ins/String/prototype/substr/surrogate-pairs.js (previously Failed)
Broken tests (2):
test/built-ins/String/prototype/lastIndexOf/S15.5.4.8_A1_T2.js [strict mode] (previously Passed)
test/built-ins/String/prototype/lastIndexOf/S15.5.4.8_A1_T2.js (previously Passed)
New panics (32):
test/built-ins/RegExp/property-escapes/generated/Assigned.js [strict mode] (previously Failed)
test/built-ins/RegExp/property-escapes/generated/Assigned.js (previously Failed)
test/built-ins/RegExp/property-escapes/generated/General_Category_-_Surrogate.js [strict mode] (previously Failed)
test/built-ins/RegExp/property-escapes/generated/General_Category_-_Surrogate.js (previously Failed)
test/built-ins/RegExp/property-escapes/generated/Any.js [strict mode] (previously Failed)
test/built-ins/RegExp/property-escapes/generated/Any.js (previously Failed)
test/built-ins/RegExp/property-escapes/generated/General_Category_-_Other.js [strict mode] (previously Failed)
test/built-ins/RegExp/property-escapes/generated/General_Category_-_Other.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-plus-quantifier-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-plus-quantifier-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-plus-quantifier-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-plus-quantifier-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-plus-quantifier.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-plus-quantifier.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-plus-quantifier.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-plus-quantifier.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-plus-quantifier-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-plus-quantifier-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-plus-quantifier.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-plus-quantifier.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-flags-u.js (previously Failed)

@Razican
Copy link
Member

Razican commented Feb 14, 2022

Let's give this a look. It looks pretty good, but we must fix the panics before merging.

Copy link
Member

@Razican Razican left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the contribution!

I am missing some comments to explain where in the spec the logic is coming from. Also, those panics need further checks. I'll try to give a further look later this week.

boa/src/builtins/string/mod.rs Outdated Show resolved Hide resolved
boa/src/builtins/string/mod.rs Show resolved Hide resolved
@jedel1043
Copy link
Member

VM implementation

Test result main count PR count difference
Total 87,912 87,912 0
Passed 40,898 41,034 +136
Ignored 19,929 19,929 0
Failed 27,085 26,949 -136
Panics 0 0 0
Conformance 46.52% 46.68% +0.15%
Fixed tests (138):
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-plus-quantifier.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-plus-quantifier.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-plus-quantifier.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-plus-quantifier.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-plus-quantifier-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-plus-quantifier-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-plus-quantifier-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-plus-quantifier-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-plus-quantifier-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-plus-quantifier-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-plus-quantifier-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-plus-quantifier-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-plus-quantifier.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-plus-quantifier.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-plus-quantifier-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-plus-quantifier-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-plus-quantifier.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-plus-quantifier.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-plus-quantifier-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-plus-quantifier-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-plus-quantifier.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-plus-quantifier.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-plus-quantifier.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-plus-quantifier.js (previously Failed)
test/built-ins/String/fromCodePoint/return-string-value.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/return-string-value.js (previously Failed)
test/built-ins/String/fromCodePoint/argument-not-coercible.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/argument-not-coercible.js (previously Failed)
test/built-ins/String/fromCodePoint/arguments-is-empty.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/arguments-is-empty.js (previously Failed)
test/built-ins/String/fromCodePoint/to-number-conversions.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/to-number-conversions.js (previously Failed)
test/built-ins/String/fromCodePoint/argument-is-not-integer.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/argument-is-not-integer.js (previously Failed)
test/built-ins/String/fromCodePoint/name.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/name.js (previously Failed)
test/built-ins/String/fromCodePoint/fromCodePoint.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/fromCodePoint.js (previously Failed)
test/built-ins/String/fromCodePoint/length.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/length.js (previously Failed)
test/built-ins/String/fromCodePoint/number-is-out-of-range.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/number-is-out-of-range.js (previously Failed)
test/built-ins/String/prototype/codePointAt/this-is-null-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/codePointAt/this-is-null-throws.js (previously Failed)
test/built-ins/String/prototype/codePointAt/this-is-undefined-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/codePointAt/this-is-undefined-throws.js (previously Failed)
test/built-ins/String/prototype/slice/S15.5.4.13_A1_T8.js [strict mode] (previously Failed)
test/built-ins/String/prototype/slice/S15.5.4.13_A1_T8.js (previously Failed)
test/built-ins/String/prototype/slice/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/slice/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/slice/S15.5.4.13_A1_T7.js [strict mode] (previously Failed)
test/built-ins/String/prototype/slice/S15.5.4.13_A1_T7.js (previously Failed)
test/built-ins/String/prototype/toLowerCase/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/toLowerCase/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A4_T3.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A4_T3.js (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A5_T6.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A5_T6.js (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A1_T10.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A1_T10.js (previously Failed)
test/built-ins/String/prototype/indexOf/position-tointeger-wrapped-values.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/position-tointeger-wrapped-values.js (previously Failed)
test/built-ins/String/prototype/indexOf/position-tointeger-toprimitive.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/position-tointeger-toprimitive.js (previously Failed)
test/built-ins/String/prototype/indexOf/position-tointeger.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/position-tointeger.js (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A5_T3.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A5_T3.js (previously Failed)
test/built-ins/String/prototype/charCodeAt/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/charCodeAt/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/startsWith/this-is-null-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/startsWith/this-is-null-throws.js (previously Failed)
test/built-ins/String/prototype/startsWith/this-is-undefined-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/startsWith/this-is-undefined-throws.js (previously Failed)
test/built-ins/String/prototype/trimStart/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/trimStart/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/substring/S15.5.4.15_A1_T9.js [strict mode] (previously Failed)
test/built-ins/String/prototype/substring/S15.5.4.15_A1_T9.js (previously Failed)
test/built-ins/String/prototype/substring/S15.5.4.15_A1_T7.js [strict mode] (previously Failed)
test/built-ins/String/prototype/substring/S15.5.4.15_A1_T7.js (previously Failed)
test/built-ins/String/prototype/substring/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/substring/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/substring/S15.5.4.15_A1_T8.js [strict mode] (previously Failed)
test/built-ins/String/prototype/substring/S15.5.4.15_A1_T8.js (previously Failed)
test/built-ins/String/prototype/endsWith/this-is-null-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/endsWith/this-is-null-throws.js (previously Failed)
test/built-ins/String/prototype/endsWith/this-is-undefined-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/endsWith/this-is-undefined-throws.js (previously Failed)
test/built-ins/String/prototype/toUpperCase/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/toUpperCase/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/includes/this-is-null-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/includes/this-is-null-throws.js (previously Failed)
test/built-ins/String/prototype/includes/this-is-undefined-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/includes/this-is-undefined-throws.js (previously Failed)
test/built-ins/String/prototype/padEnd/exception-not-object-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/padEnd/exception-not-object-coercible.js (previously Failed)
test/built-ins/String/prototype/padEnd/fill-string-omitted.js [strict mode] (previously Failed)
test/built-ins/String/prototype/padEnd/fill-string-omitted.js (previously Failed)
test/built-ins/String/prototype/padEnd/normal-operation.js [strict mode] (previously Failed)
test/built-ins/String/prototype/padEnd/normal-operation.js (previously Failed)
test/built-ins/String/prototype/charAt/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/charAt/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/padStart/exception-not-object-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/padStart/exception-not-object-coercible.js (previously Failed)
test/built-ins/String/prototype/padStart/fill-string-omitted.js [strict mode] (previously Failed)
test/built-ins/String/prototype/padStart/fill-string-omitted.js (previously Failed)
test/built-ins/String/prototype/padStart/normal-operation.js [strict mode] (previously Failed)
test/built-ins/String/prototype/padStart/normal-operation.js (previously Failed)
test/annexB/built-ins/String/prototype/substr/length-undef.js [strict mode] (previously Failed)
test/annexB/built-ins/String/prototype/substr/length-undef.js (previously Failed)
test/annexB/built-ins/String/prototype/substr/this-non-obj-coerce.js [strict mode] (previously Failed)
test/annexB/built-ins/String/prototype/substr/this-non-obj-coerce.js (previously Failed)
test/annexB/built-ins/String/prototype/substr/surrogate-pairs.js [strict mode] (previously Failed)
test/annexB/built-ins/String/prototype/substr/surrogate-pairs.js (previously Failed)
Broken tests (2):
test/built-ins/String/prototype/lastIndexOf/S15.5.4.8_A1_T2.js [strict mode] (previously Passed)
test/built-ins/String/prototype/lastIndexOf/S15.5.4.8_A1_T2.js (previously Passed)

@jevancc
Copy link
Contributor Author

jevancc commented Feb 15, 2022

Test262 conformance changes

VM implementation

Test result main count PR count difference
Total 87,912 87,912 0
Passed 40,898 41,036 +138
Ignored 19,929 19,929 0
Failed 27,085 26,947 -138
Panics 0 0 0
Conformance 46.52% 46.68% +0.16%
Fixed tests (138):
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-plus-quantifier.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-plus-quantifier.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-plus-quantifier.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-plus-quantifier.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-plus-quantifier-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-plus-quantifier-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-plus-quantifier-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-plus-quantifier-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-plus-quantifier-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-plus-quantifier-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-plus-quantifier-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape-plus-quantifier-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-plus-quantifier.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-plus-quantifier.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-whitespace-class-escape.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-plus-quantifier-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-plus-quantifier-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-plus-quantifier.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-plus-quantifier.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-plus-quantifier-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-plus-quantifier-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-plus-quantifier.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-plus-quantifier.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-class-escape-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-flags-u.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-digit-class-escape-flags-u.js (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-plus-quantifier.js [strict mode] (previously Failed)
test/built-ins/RegExp/CharacterClassEscapes/character-class-word-class-escape-plus-quantifier.js (previously Failed)
test/built-ins/String/fromCodePoint/return-string-value.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/return-string-value.js (previously Failed)
test/built-ins/String/fromCodePoint/argument-not-coercible.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/argument-not-coercible.js (previously Failed)
test/built-ins/String/fromCodePoint/arguments-is-empty.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/arguments-is-empty.js (previously Failed)
test/built-ins/String/fromCodePoint/to-number-conversions.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/to-number-conversions.js (previously Failed)
test/built-ins/String/fromCodePoint/argument-is-not-integer.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/argument-is-not-integer.js (previously Failed)
test/built-ins/String/fromCodePoint/name.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/name.js (previously Failed)
test/built-ins/String/fromCodePoint/fromCodePoint.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/fromCodePoint.js (previously Failed)
test/built-ins/String/fromCodePoint/length.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/length.js (previously Failed)
test/built-ins/String/fromCodePoint/number-is-out-of-range.js [strict mode] (previously Failed)
test/built-ins/String/fromCodePoint/number-is-out-of-range.js (previously Failed)
test/built-ins/String/prototype/codePointAt/this-is-null-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/codePointAt/this-is-null-throws.js (previously Failed)
test/built-ins/String/prototype/codePointAt/this-is-undefined-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/codePointAt/this-is-undefined-throws.js (previously Failed)
test/built-ins/String/prototype/slice/S15.5.4.13_A1_T8.js [strict mode] (previously Failed)
test/built-ins/String/prototype/slice/S15.5.4.13_A1_T8.js (previously Failed)
test/built-ins/String/prototype/slice/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/slice/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/slice/S15.5.4.13_A1_T7.js [strict mode] (previously Failed)
test/built-ins/String/prototype/slice/S15.5.4.13_A1_T7.js (previously Failed)
test/built-ins/String/prototype/toLowerCase/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/toLowerCase/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A4_T3.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A4_T3.js (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A5_T6.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A5_T6.js (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A1_T10.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A1_T10.js (previously Failed)
test/built-ins/String/prototype/indexOf/position-tointeger-wrapped-values.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/position-tointeger-wrapped-values.js (previously Failed)
test/built-ins/String/prototype/indexOf/position-tointeger-toprimitive.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/position-tointeger-toprimitive.js (previously Failed)
test/built-ins/String/prototype/indexOf/position-tointeger.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/position-tointeger.js (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A5_T3.js [strict mode] (previously Failed)
test/built-ins/String/prototype/indexOf/S15.5.4.7_A5_T3.js (previously Failed)
test/built-ins/String/prototype/charCodeAt/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/charCodeAt/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/startsWith/this-is-null-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/startsWith/this-is-null-throws.js (previously Failed)
test/built-ins/String/prototype/startsWith/this-is-undefined-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/startsWith/this-is-undefined-throws.js (previously Failed)
test/built-ins/String/prototype/trimStart/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/trimStart/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/substring/S15.5.4.15_A1_T[9](https://github.com/boa-dev/boa/runs/5194866213?check_suite_focus=true#step:10:9).js [strict mode] (previously Failed)
test/built-ins/String/prototype/substring/S[15](https://github.com/boa-dev/boa/runs/5194866213?check_suite_focus=true#step:10:15).5.4.15_A1_T9.js (previously Failed)
test/built-ins/String/prototype/substring/S15.5.4.15_A1_T7.js [strict mode] (previously Failed)
test/built-ins/String/prototype/substring/S15.5.4.15_A1_T7.js (previously Failed)
test/built-ins/String/prototype/substring/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/substring/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/substring/S15.5.4.15_A1_T8.js [strict mode] (previously Failed)
test/built-ins/String/prototype/substring/S15.5.4.15_A1_T8.js (previously Failed)
test/built-ins/String/prototype/endsWith/this-is-null-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/endsWith/this-is-null-throws.js (previously Failed)
test/built-ins/String/prototype/endsWith/this-is-undefined-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/endsWith/this-is-undefined-throws.js (previously Failed)
test/built-ins/String/prototype/toUpperCase/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/toUpperCase/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/includes/this-is-null-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/includes/this-is-null-throws.js (previously Failed)
test/built-ins/String/prototype/includes/this-is-undefined-throws.js [strict mode] (previously Failed)
test/built-ins/String/prototype/includes/this-is-undefined-throws.js (previously Failed)
test/built-ins/String/prototype/padEnd/exception-not-object-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/padEnd/exception-not-object-coercible.js (previously Failed)
test/built-ins/String/prototype/padEnd/fill-string-omitted.js [strict mode] (previously Failed)
test/built-ins/String/prototype/padEnd/fill-string-omitted.js (previously Failed)
test/built-ins/String/prototype/padEnd/normal-operation.js [strict mode] (previously Failed)
test/built-ins/String/prototype/padEnd/normal-operation.js (previously Failed)
test/built-ins/String/prototype/charAt/this-value-not-obj-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/charAt/this-value-not-obj-coercible.js (previously Failed)
test/built-ins/String/prototype/padStart/exception-not-object-coercible.js [strict mode] (previously Failed)
test/built-ins/String/prototype/padStart/exception-not-object-coercible.js (previously Failed)
test/built-ins/String/prototype/padStart/fill-string-omitted.js [strict mode] (previously Failed)
test/built-ins/String/prototype/padStart/fill-string-omitted.js (previously Failed)
test/built-ins/String/prototype/padStart/normal-operation.js [strict mode] (previously Failed)
test/built-ins/String/prototype/padStart/normal-operation.js (previously Failed)
test/annexB/built-ins/String/prototype/substr/length-undef.js [strict mode] (previously Failed)
test/annexB/built-ins/String/prototype/substr/length-undef.js (previously Failed)
test/annexB/built-ins/String/prototype/substr/this-non-obj-coerce.js [strict mode] (previously Failed)
test/annexB/built-ins/String/prototype/substr/this-non-obj-coerce.js (previously Failed)
test/annexB/built-ins/String/prototype/substr/surrogate-pairs.js [strict mode] (previously Failed)
test/annexB/built-ins/String/prototype/substr/surrogate-pairs.js (previously Failed)

@jevancc
Copy link
Contributor Author

jevancc commented Feb 15, 2022

Let's give this a look. It looks pretty good, but we must fix the panics before merging.

The panic is triggered by surrogates as parameters to fromCodePoint. I fixed them by replacing these chars with a replacement character. This problem will not be solvable until we have the UTF-16 support.

@Razican
Copy link
Member

Razican commented Feb 15, 2022

LGTM!

Thank you for all the work :)

bors r+

bors bot pushed a commit that referenced this pull request Feb 15, 2022
<!---
Thank you for contributing to Boa! Please fill out the template below, and remove or add any
information as you feel neccesary.
--->

This Pull Request fixes existing string prototype methods in #13 and adds static methods.

It changes the following:

- Fix bugs in existing string prototype methods and improve readability (e.g. rename variables to match the names in spec)
- Add static methods `String.raw`, `String.fromCharCode`, `String.fromCodePoint`
- Fix broken unit tests


Co-authored-by: RageKnify <[email protected]>
@bors
Copy link

bors bot commented Feb 15, 2022

Pull request successfully merged into main.

Build succeeded:

@bors bors bot changed the title Fix string.prototype methods and add static string methods [Merged by Bors] - Fix string.prototype methods and add static string methods Feb 15, 2022
@bors bors bot closed this Feb 15, 2022
bors bot pushed a commit that referenced this pull request Feb 16, 2022
With the implementation of `String.fromCodePoint` in #1123 some `RegExp` tests are now running for a long time. These tests check every unicode codepoint for all regexp property escape/character classes.

This not only makes the developer experience significantly worse, but also wastes cpu resources for the benefit of "completeness". I think these tests are completely useless. Ironically the unicode tables in the tests are generated - from the same data, that the unicode tables in the regex engine are also generated.

262 suite runtime:
Before: ~03:30 https://github.com/boa-dev/boa/runs/5191567446?check_suite_focus=true
After: ~31:00 https://github.com/boa-dev/boa/runs/5196405437?check_suite_focus=true
@RageKnify RageKnify added the bug Something isn't working label Mar 7, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working builtins PRs and Issues related to builtins/intrinsics
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants