blob: 7ef1f9f086f1661b38653341eb5294419b6989a8 [file] [log] [blame]
2021-03-18 Mark Lam <mark.lam@apple.com>
JSTests/stress/heap-analyzer-taking-lock.js intermittently fails --verifyGC=true.
https://bugs.webkit.org/show_bug.cgi?id=222947
rdar://75454308
Reviewed by Michael Saboff.
The issue was already fixed in https://bugs.webkit.org/show_bug.cgi?id=223241.
Removing skipped test option.
* stress/heap-analyzer-taking-lock.js:
2021-03-18 Saam Barati <sbarati@apple.com>
JS->Wasm IC must save the tag registers if it uses them
https://bugs.webkit.org/show_bug.cgi?id=223491
<rdar://66445108>
Reviewed by Yusuke Suzuki.
* wasm/stress/save-tag-callee-saves-in-js-entrypoint-ic.js: Added.
(0x0b.WebAssembly.instantiate.wasm.then.e.const.mod.e.instance.exports.Test.prototype.get breakIt):
(0x0b.WebAssembly.instantiate.wasm.then.e.const.mod.e.instance.exports.Test):
(0x0b.WebAssembly.instantiate.wasm.then.e.const.obj.new.Test):
2021-03-17 Ross Kirsling <ross.kirsling@sony.com>
[JSC] Error#cause should apply to WebAssembly error constructors too
https://bugs.webkit.org/show_bug.cgi?id=223404
Reviewed by Yusuke Suzuki.
* stress/error-cause.js:
Run tests on WebAssembly errors too.
* wasm/js-api/test_basic_api.js:
Fix test. This behavior was inconsistent with all other error types (and divergent from all other engines).
2021-03-17 Mark Lam <mark.lam@apple.com>
Fix race condition in ConcurrentPtrHashSet.
https://bugs.webkit.org/show_bug.cgi?id=223241
rdar://74637896
Reviewed by Yusuke Suzuki.
* stress/race-to-add-opaque-roots-in-ConcurrentPtrHashSet.js: Added.
2021-03-16 Ross Kirsling <ross.kirsling@sony.com>
[JSC] Implement Error#cause
https://bugs.webkit.org/show_bug.cgi?id=223302
Reviewed by Yusuke Suzuki.
Add tests. test262 doesn't currently have any, but the spec is exceedingly simple anyway.
* stress/error-cause.js: Added.
2021-03-16 Saam Barati <sbarati@apple.com>
Object allocation sinking phase should prioritize materializations with no dependencies before materializations with no reverse dependencies
https://bugs.webkit.org/show_bug.cgi?id=221069
<rdar://problem/73686589>
Reviewed by Yusuke Suzuki.
* stress/allocation-sinking-scope-materialization-order.js: Added.
(var3.var2.x):
(var3):
2021-03-16 Commit Queue <commit-queue@webkit.org>
Unreviewed, reverting r274405.
https://bugs.webkit.org/show_bug.cgi?id=223187
Test is failing now
Reverted changeset:
"[JSC] Run one Mozilla test explicitly under PST since this
test does not work when we are moving from PST to PDT"
https://bugs.webkit.org/show_bug.cgi?id=223158
https://trac.webkit.org/changeset/274405
2021-03-14 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Run one Mozilla test explicitly under PST since this test does not work when we are moving from PST to PDT
https://bugs.webkit.org/show_bug.cgi?id=223158
Reviewed by Mark Lam.
This mozilla test is broken: it fails when we are close to the point moving from PST to PDT / from PDT to PST.
We should always run this test under PST to avoid this DST related flakiness.
We explicitly set TZ=PST for this test to ensure that this runs under PST (not PDT). TZ environment variable is
recognized by system frameworks and some libraries including tzdata and ICU.
* complex.yaml:
* complex/mozilla-ecma-Date-15.9.5.14.js: Renamed from JSTests/mozilla/ecma/Date/15.9.5.14.js.
(test):
* complex/mozilla-shell.js: Added.
(AddTestCase):
(TestCase):
(startTest):
(test):
(getTestCaseResult):
(writeTestCaseResult):
(writeFormattedResult):
(writeLineToLog):
(writeHeaderToLog):
(stopTest):
(getFailedCases):
(getTimeZoneDiff):
(adjustResultArray):
(Day):
(DaysInYear):
(TimeInYear):
(DayNumber):
(TimeWithinDay):
(YearNumber):
(TimeFromYear):
(DayFromYear):
(InLeapYear):
(YearFromTime):
(MonthFromTime):
(DayWithinYear):
(DateFromTime):
(WeekDay):
(UTC):
(DaylightSavingTA):
(GetFirstSundayInApril):
(GetLastSundayInOctober):
(GetSecondSundayInMarch):
(GetFirstSundayInNovember):
(LocalTime):
(MakeTime):
(MakeDay):
(TimeInMonth):
(TimeClip):
(ToInteger):
(Enumerate):
(GetContext):
(OptLevel):
* mozilla/mozilla-tests.yaml:
2021-03-14 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] wasm atomic wait offset is not index
https://bugs.webkit.org/show_bug.cgi?id=223159
Reviewed by Mark Lam.
* wasm.yaml:
* wasm/threads-spec-tests/resources/wait-large.wast: Added.
* wasm/threads-spec-tests/wait-large.wast.js: Added.
2021-03-11 Tadeu Zagallo <tzagallo@apple.com>
AI validator patchpoint should read heap top
https://bugs.webkit.org/show_bug.cgi?id=223052
<rdar://75087095>
Reviewed by Yusuke Suzuki.
* stress/private-methods-inheritance.js: Added.
(A):
(A.prototype.x):
(B.prototype.y):
(B):
2021-03-11 Alexey Shvayka <shvaikalesh@gmail.com>
Align JSGlobalObject::defineOwnProperty() with the spec and other runtimes
https://bugs.webkit.org/show_bug.cgi?id=203456
Reviewed by Robin Morisset.
* microbenchmarks/global-var-put-to-scope.js: Added.
* stress/eval-func-decl-in-frozen-global.js:
Object.freeze() redefines all global variables as ReadOnly, including hoisted `var error`.
Aligns with V8.
* stress/global-object-define-own-property-put-to-scope.js: Added.
* stress/global-object-define-own-property.js: Added.
* stress/to-this-before-arrow-function-closes-over-this-that-starts-as-lexical-environment.js:
Fix unwanted name conflict, which was an error in the original test, not an intended part of it.
Also, remove misleading comment on `defineProperty` and assert accessors are created on global object.
Aligns with V8.
2021-03-11 Commit Queue <commit-queue@webkit.org>
Unreviewed, reverting r274263.
https://bugs.webkit.org/show_bug.cgi?id=223064
Added few broken tests
Reverted changeset:
"AI validator patchpoint should read heap top"
https://bugs.webkit.org/show_bug.cgi?id=223052
https://trac.webkit.org/changeset/274263
2021-03-10 Tadeu Zagallo <tzagallo@apple.com>
AI validator patchpoint should read heap top
https://bugs.webkit.org/show_bug.cgi?id=223052
<rdar://75087095>
Reviewed by Saam Barati.
* stress/private-methods-inheritance.js: Added.
(A):
(A.prototype.x):
(B.prototype.y):
(B):
2021-03-09 Keith Miller <keith_miller@apple.com>
JSC Crash in makeString() while creating Error object.
https://bugs.webkit.org/show_bug.cgi?id=222452
Reviewed by Mark Lam.
* stress/large-string-should-not-crash-error-creation.js: Added.
2021-03-09 Mark Lam <mark.lam@apple.com>
Use --verifyGC=true on some JSC stress test configurations.
https://bugs.webkit.org/show_bug.cgi?id=222289
Reviewed by Filip Pizlo.
* stress/heap-analyzer-taking-lock.js:
2021-03-08 Saam Barati <sbarati@apple.com>
Using an undeclared private field inside eval shouldn't crash
https://bugs.webkit.org/show_bug.cgi?id=222834
<rdar://75035388>
Reviewed by Yusuke Suzuki.
* stress/declared-private-field-in-eval.js: Added.
* stress/undeclared-private-field-in-eval.js: Added.
2021-03-06 Alexey Shvayka <shvaikalesh@gmail.com>
BooleanConstructor should be inlined in DFG / FTL
https://bugs.webkit.org/show_bug.cgi?id=220322
Reviewed by Yusuke Suzuki.
Reorganize tests so the every UseKind / needsTypeCheck / invert combination is covered.
* microbenchmarks/array-filter-boolean-constructor.js: Added.
* stress/dfg-branch.js: Added.
* stress/dfg-to-boolean.js: Added.
* stress/logical-not-masquerades-as-undefined.js: Removed.
* stress/logical-not-masquerades.js: Removed.
* stress/logical-not.js: Removed.
* stress/value-to-boolean.js: Removed.
2021-03-05 Tadeu Zagallo <tzagallo@apple.com>
OpGetPrivateName needs to be listed in FOR_EACH_OPCODE_WITH_VALUE_PROFILE
https://bugs.webkit.org/show_bug.cgi?id=222775
<rdar://74982634>
Reviewed by Michael Saboff.
* stress/private-name-assignment-in-constructor.js: Added.
(Foo):
2021-03-05 Dmitry Bezhetskov <dbezhetskov@igalia.com>
[WASM-Function-References] Update ref.func to produce (ref $t)
https://bugs.webkit.org/show_bug.cgi?id=222779
Reviewed by Yusuke Suzuki.
Make ref.func to produce non nullable reference type which
incorporates signature index. Since in JSC signature index represents
type of the function from Type section we use it instead of type_idx
for representing type of function references.
* wasm/wasm.json:
2021-03-04 Saam Barati <sbarati@apple.com>
Don't trust parsing information to tell us if we've emitted op_call_eval
https://bugs.webkit.org/show_bug.cgi?id=222694
rdar://74778016
Reviewed by Yusuke Suzuki.
* stress/eval-liveness-should-not-come-from-parser.js: Added.
(foo):
2021-03-03 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Update test262
https://bugs.webkit.org/show_bug.cgi?id=222710
Reviewed by Ross Kirsling.
Update test262. New failure is due to the spec change, tracked in https://bugs.webkit.org/show_bug.cgi?id=222526.
* test262/expectations.yaml:
* test262/latest-changes-summary.txt:
* test262/test/built-ins/Array/prototype/sort/call-with-primitive.js: Added.
* test262/test/built-ins/Function/internals/Call/class-ctor-realm.js:
* test262/test/language/expressions/object/dstr/object-rest-proxy-get-not-called-on-dontenum-keys.js: Added.
(getOwnPropertyDescriptor):
(ownKeys):
* test262/test/language/expressions/object/dstr/object-rest-proxy-gopd-not-called-on-excluded-keys.js: Added.
(getOwnPropertyDescriptor):
(ownKeys):
* test262/test/language/expressions/object/object-spread-proxy-get-not-called-on-dontenum-keys.js: Added.
(getOwnPropertyDescriptor):
(ownKeys):
* test262/test/language/expressions/object/object-spread-proxy-no-excluded-keys.js: Copied from JSTests/test262/test/language/expressions/object/object-spread-proxy-ownkeys-returned-keys-order.js.
(getOwnPropertyDescriptor):
(ownKeys):
* test262/test/language/expressions/object/object-spread-proxy-ownkeys-returned-keys-order.js:
* test262/test/language/statements/class/constructor-inferred-observable-iteration.js: Removed.
* test262/test/language/statements/class/subclass/default-constructor-spread-override.js:
(Array.prototype.Symbol.iterator):
(Base):
* test262/test262-Revision.txt:
2021-03-03 Caio Lima <ticaiolima@gmail.com>
[ESNext] Private methods can't be named as '#constructor'
https://bugs.webkit.org/show_bug.cgi?id=222680
Reviewed by Yusuke Suzuki.
* stress/private-method-and-field-named-constructor.js: Added.
2021-03-03 Alexey Shvayka <shvaikalesh@gmail.com>
Add JSModuleNamespaceObject::deletePropertyByIndex() method
https://bugs.webkit.org/show_bug.cgi?id=222611
Reviewed by Yusuke Suzuki.
* modules/arbitrary-module-names-indexed.js: Added.
* modules/arbitrary-module-names/export-indexed.js: Added.
2021-03-02 Alexey Shvayka <shvaikalesh@gmail.com>
TypedArray's [[DefineOwnProperty]] should throw in case of failure
https://bugs.webkit.org/show_bug.cgi?id=220492
Reviewed by Darin Adler.
* stress/array-species-config-array-constructor.js:
* stress/put-direct-index-broken-2.js:
Update assertions, which are most certainly incorrect, partly aligning JSC with V8.
* stress/typedarray-access-monomorphic-neutered.js:
* stress/typedarray-access-neutered.js:
* stress/typedarray-defineOwnProperty-error.js: Added.
* test262/expectations.yaml:
Incorrect tests are being updated at https://github.com/tc39/test262/pull/2958.
2021-03-01 Yusuke Suzuki <ysuzuki@apple.com>
REGRESSION: Object.defineProperties triggering a setter
https://bugs.webkit.org/show_bug.cgi?id=222538
Reviewed by Keith Miller.
* stress/dfg-put-by-val-string-or-symbol-should-check-direct.js: Added.
(test1):
(test2):
2021-03-01 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Throw TypeError when getFunctionRealm hits revoked Proxy
https://bugs.webkit.org/show_bug.cgi?id=222523
Reviewed by Alexey Shvayka.
* test262/expectations.yaml:
2021-02-28 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Add gc and clearKeptObjects to $262
https://bugs.webkit.org/show_bug.cgi?id=222527
Reviewed by Ross Kirsling.
* test262/config.yaml:
2021-02-28 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Update test262 host environments
https://bugs.webkit.org/show_bug.cgi?id=222525
Reviewed by Ross Kirsling.
* test262/expectations.yaml:
2021-02-26 Michael Saboff <msaboff@apple.com>
Followup test fix to r273594
https://bugs.webkit.org/show_bug.cgi?id=222506
Reviewed by Yusuke Suzuki.
* stress/regexp-max-size.js:
(testTooBigBMPRegExp):
(testTooBigNonBMPRegExp):
(testAll):
2021-02-26 Saam Barati <sbarati@apple.com>
Remove bad assertion of AI ArrayMode state in various "by val" opcodes
https://bugs.webkit.org/show_bug.cgi?id=222494
<rdar://73613460>
Reviewed by Filip Pizlo.
* stress/dont-assert-ai-proved-array-mode.js: Added.
(bar):
(foo):
2021-02-26 Michael Saboff <msaboff@apple.com>
unexpected minimumInputSize in setupDisjunctionOffsets for regexp engine(yarr)
https://bugs.webkit.org/show_bug.cgi?id=220357
Reviewed by Saam Barati.
New tests to check the boundary conditions for overflowing a pattern in a RegExp.
* stress/regexp-max-size.js: Added.
(testMaxRegExp):
(testTooBigRegExp):
(testMaxBMPRegExp):
(testTooBigBMPRegExp):
(testMaxNonBMPRegExp):
(testTooBigNonBMPRegExp):
(testAll):
2021-02-25 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Fix typo in wasm error message
https://bugs.webkit.org/show_bug.cgi?id=222444
Reviewed by Saam Barati.
* wasm/stress/invalid-wasm-header.js: Added.
(assert.throws):
2021-02-25 Michael Saboff <msaboff@apple.com>
[test262] test/built-ins/RegExp/match-indices needs updating for 'd' flag
https://bugs.webkit.org/show_bug.cgi?id=222142
Reviewed by Yusuke Suzuki.
Updated WebKit's copy of Test262 to the latest. All of the changes are related to
the RegExp match indices stage 3 proposal (https://github.com/tc39/proposal-regexp-match-indices).
Removed the local copies of the built-ins/RegExp/match-indices/ tests now that they
have been merged.
Enabled the testing of the "regexp-match-indices" feature in config.yaml as we pass
all of the associated tests.
* stress/test262-indices-array-element.js: Removed.
* stress/test262-indices-array-matched.js: Removed.
* stress/test262-indices-array-non-unicode-match.js: Removed.
* stress/test262-indices-array-properties.js: Removed.
* stress/test262-indices-array-unicode-match.js: Removed.
* stress/test262-indices-array-unicode-property-names.js: Removed.
* stress/test262-indices-array-unmatched.js: Removed.
* stress/test262-indices-array.js: Removed.
* stress/test262-indices-groups-object-undefined.js: Removed.
* stress/test262-indices-groups-object-unmatched.js: Removed.
* stress/test262-indices-groups-object.js: Removed.
* stress/test262-indices-groups-properties.js: Removed.
* stress/test262-indices-property.js: Removed.
* test262/config.yaml:
* test262/test/built-ins/RegExp/duplicate-flags.js:
* test262/test/built-ins/RegExp/match-indices/indices-array-element.js:
* test262/test/built-ins/RegExp/match-indices/indices-array-matched.js:
* test262/test/built-ins/RegExp/match-indices/indices-array-non-unicode-match.js:
* test262/test/built-ins/RegExp/match-indices/indices-array-properties.js:
* test262/test/built-ins/RegExp/match-indices/indices-array-unicode-match.js:
* test262/test/built-ins/RegExp/match-indices/indices-array-unicode-property-names.js:
* test262/test/built-ins/RegExp/match-indices/indices-array-unmatched.js:
* test262/test/built-ins/RegExp/match-indices/indices-array.js:
* test262/test/built-ins/RegExp/match-indices/indices-groups-object-undefined.js:
* test262/test/built-ins/RegExp/match-indices/indices-groups-object-unmatched.js:
* test262/test/built-ins/RegExp/match-indices/indices-groups-object.js:
* test262/test/built-ins/RegExp/match-indices/indices-groups-properties.js:
* test262/test/built-ins/RegExp/match-indices/indices-property.js:
* test262/test/built-ins/RegExp/match-indices/no-indices-array.js: Added.
* test262/test/built-ins/RegExp/prototype/flags/coercion-hasIndices.js: Added.
(get Object):
(assert.sameValue.get call):
* test262/test/built-ins/RegExp/prototype/flags/get-order.js:
(re.get hasIndices):
* test262/test/built-ins/RegExp/prototype/flags/rethrow.js:
(get Object):
* test262/test/built-ins/RegExp/prototype/flags/return-order.js:
* test262/test/built-ins/RegExp/prototype/flags/this-val-regexp.js:
* test262/test/built-ins/RegExp/prototype/hasIndices: Added.
* test262/test/built-ins/RegExp/prototype/hasIndices/cross-realm.js: Added.
* test262/test/built-ins/RegExp/prototype/hasIndices/length.js: Added.
* test262/test/built-ins/RegExp/prototype/hasIndices/name.js: Added.
* test262/test/built-ins/RegExp/prototype/hasIndices/prop-desc.js: Added.
* test262/test/built-ins/RegExp/prototype/hasIndices/this-val-invalid-obj.js: Added.
* test262/test/built-ins/RegExp/prototype/hasIndices/this-val-non-obj.js: Added.
* test262/test/built-ins/RegExp/prototype/hasIndices/this-val-regexp-prototype.js: Added.
* test262/test/built-ins/RegExp/prototype/hasIndices/this-val-regexp.js: Added.
2021-02-23 Michael Saboff <msaboff@apple.com>
[YARR JIT] Crash on overflow when compiling /(a{1000000000}b{1000000000}|c{1000000000}|)d{1000000000}e{1000000000}/.test();
https://bugs.webkit.org/show_bug.cgi?id=220130
Reviewed by Yusuke Suzuki.
Modified the original fuzzer test to go 2^32-1.
* stress/regexp-backtrack-offset-overflow.js: Added.
2021-02-21 Keith Miller <keith_miller@apple.com>
Implement the Top-level await proposal
https://bugs.webkit.org/show_bug.cgi?id=202484
Reviewed by Yusuke Suzuki.
* test262/config.yaml:
2021-02-21 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Upgrade test262
https://bugs.webkit.org/show_bug.cgi?id=222243
Reviewed by Alexey Shvayka.
* test262/config.yaml:
* test262/expectations.yaml:
* test262/latest-changes-summary.txt:
* test262/test/built-ins/Object/assign/target-is-frozen-accessor-property-set-succeeds.js: Added.
(target1.set foo):
(target2.Object.freeze.set sym):
* test262/test/built-ins/Object/assign/target-is-frozen-data-property-set-throws.js: Added.
* test262/test/built-ins/Object/assign/target-is-non-extensible-existing-accessor-property.js: Added.
(target1.Object.preventExtensions.set foo):
(target2.set sym):
* test262/test/built-ins/Object/assign/target-is-non-extensible-existing-data-property.js: Added.
* test262/test/built-ins/Object/assign/target-is-non-extensible-property-creation-throws.js: Added.
(get bar):
* test262/test/built-ins/Object/assign/target-is-sealed-existing-accessor-property.js: Added.
(target1.Object.seal.set foo):
(target2.set sym):
* test262/test/built-ins/Object/assign/target-is-sealed-existing-data-property.js: Added.
* test262/test/built-ins/Object/assign/target-is-sealed-property-creation-throws.js: Added.
(get bar):
* test262/test/built-ins/Object/freeze/proxy-with-defineProperty-handler.js: Added.
(proxy.new.Proxy.get foo):
(proxy.new.Proxy.set foo):
(set foo.defineProperty):
(set foo):
* test262/test/built-ins/Object/seal/proxy-with-defineProperty-handler.js: Added.
(proxy.new.Proxy.get foo):
(proxy.new.Proxy.set foo):
(set foo.defineProperty):
(set foo):
* test262/test/built-ins/TypedArray/prototype/filter/BigInt/callbackfn-detachbuffer.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/findIndex/BigInt/predicate-may-detach-buffer.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/intl402/DateTimeFormat/constructor-no-instanceof.js: Added.
* test262/test/intl402/DateTimeFormat/prototype/format/no-instanceof.js: Added.
* test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/no-instanceof.js: Added.
* test262/test/intl402/NumberFormat/constructor-no-instanceof.js: Added.
* test262/test/intl402/NumberFormat/prototype/format/no-instanceof.js: Added.
* test262/test/intl402/NumberFormat/prototype/resolvedOptions/no-instanceof.js: Added.
* test262/test262-Revision.txt:
2021-02-19 Michael Saboff <msaboff@apple.com>
Minor fixes to RegExp match indices after r273086
https://bugs.webkit.org/show_bug.cgi?id=222157
Reviewed by Yusuke Suzuki.
Added a new test to verify that all flag RegExp flag combinations work round tripping
from flags to flag proerties and back.
Added standalone versions of the updated regexp-match-indices from the PR
https://github.com/tc39/test262/pull/2934 as JSTest/stress test.
Disabled the regexp-match-indices feature test in test262 until the pull request
with updated tests land and we update the WebKit version.
This is tracked in https://bugs.webkit.org/show_bug.cgi?id=222142.
* stress/regexp-all-flags.js: Added.
(flagsFromVariation):
(setPropertiesForVariation):
(missingPropertiesForVariation):
(test.let.flagsSet.get call):
(test):
* stress/test262-indices-array-element.js: Added.
(assertSameValue):
* stress/test262-indices-array-matched.js: Added.
(assertSameValue):
(assertCompareArray):
* stress/test262-indices-array-non-unicode-match.js: Added.
(assertSameValue):
(assertCompareArray):
(assertDeepEqual):
(verifyProperty):
* stress/test262-indices-array-properties.js: Added.
(verifyProperty):
* stress/test262-indices-array-unicode-match.js: Added.
(assertSameValue):
(assertCompareArray):
(assertDeepEqual):
(verifyProperty):
* stress/test262-indices-array-unicode-property-names.js: Added.
(assertCompareArray):
* stress/test262-indices-array-unmatched.js: Added.
(assertSameValue):
* stress/test262-indices-array.js: Added.
(assert):
(assertSameValue):
* stress/test262-indices-groups-object-undefined.js: Added.
(verifyProperty):
* stress/test262-indices-groups-object-unmatched.js: Added.
(assertSameValue):
(assertCompareArray):
* stress/test262-indices-groups-object.js: Added.
(assertSameValue):
(assertCompareArray):
(verifyProperty):
* stress/test262-indices-groups-properties.js: Added.
(assertCompareArray):
(verifyProperty):
* stress/test262-indices-property.js: Added.
(assertSameValue):
(verifyProperty):
* test262/config.yaml:
2021-02-19 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Do not use toObject for options in new Intl constructors
https://bugs.webkit.org/show_bug.cgi?id=222164
Reviewed by Alexey Shvayka.
* stress/intl-get-options-not-using-toobject.js: Added.
(shouldThrow):
2021-02-19 Caio Lima <ticaiolima@gmail.com>
[ESNext] Fix Test262 expectations for static private methods
https://bugs.webkit.org/show_bug.cgi?id=222170
Unreviewed, update test262/expectations.yaml
* test262/expectations.yaml:
2021-02-19 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Simplify excludedSet handling in object rest expression
https://bugs.webkit.org/show_bug.cgi?id=221668
Reviewed by Alexey Shvayka.
* microbenchmarks/object-rest-computed-destructuring.js: Added.
* stress/object-rest-computed-inlined-numbers.js: Added.
(inner):
(outer):
* stress/object-rest-computed-inlined.js: Added.
(inner):
(outer):
2021-02-18 Caio Lima <ticaiolima@gmail.com>
[JSC] Implement private static method
https://bugs.webkit.org/show_bug.cgi?id=219181
Reviewed by Yusuke Suzuki.
* stress/class-private-method-access.js: Added.
* stress/private-accessor-static-non-static.js: Added.
* stress/private-getter-inner-class.js:
* stress/static-private-methods-and-accessor-inner-class.js: Added.
* stress/static-private-methods-and-accessor-multiple-evaluation.js: Added.
* stress/static-private-methods-and-accessors-postfix-node.js: Added.
* stress/static-private-methods-and-accessors-prefix-node.js: Added.
* test262/config.yaml:
2021-02-18 Michael Saboff <msaboff@apple.com>
[JSC] Implement RegExp Match Indices proposal
https://bugs.webkit.org/show_bug.cgi?id=202475
Reviewed by Yusuke Suzuki.
Updated tests.
* es6/Proxy_internal_get_calls_RegExp.prototype.flags.js:
* stress/static-getter-in-names.js:
* test262/config.yaml:
2021-02-16 Yusuke Suzuki <ysuzuki@apple.com> and Sergey Rubanov <chi187@gmail.com>
WebAssembly: implement non-trapping float to int conversion
https://bugs.webkit.org/show_bug.cgi?id=173471
Reviewed by Tadeu Zagallo.
* wasm/spec-tests/binary-leb128.wast.js:
* wasm/spec-tests/conversions.wast.js:
* wasm/wasm.json:
2021-02-15 Caio Lima <ticaiolima@gmail.com>
[ESNext] Implement private accessors
https://bugs.webkit.org/show_bug.cgi?id=194435
Reviewed by Yusuke Suzuki.
* stress/private-accesor-duplicate-name-early-errors.js: Added.
* stress/private-getter-brand-check.js: Added.
* stress/private-getter-inner-class.js: Added.
* stress/private-members-get-and-set.js: Added.
* stress/private-methods-and-accessors-postfix-node.js: Added.
* stress/private-methods-and-accessors-prefix-node.js: Added.
* stress/private-names-available-on-direct-eval.js:
* stress/private-names-available-on-eval-during-field-initialization.js: Copied from JSTests/stress/private-names-available-on-direct-eval.js.
* stress/private-setter-brand-check.js: Added.
* stress/private-setter-inner-class.js: Added.
* test262/config.yaml:
* test262/expectations.yaml:
2021-02-14 Michael Catanzaro <mcatanzaro@gnome.org>
JSC stress test stress/copy-data-properties-fast-path.js.default fails on s390x and ppc64le
https://bugs.webkit.org/show_bug.cgi?id=221557
<rdar://problem/74311603>
Unreviewed, unskip this test since it seems Yusuke has already fixed it.
* stress/copy-data-properties-fast-path.js:
2021-02-13 Alexey Shvayka <shvaikalesh@gmail.com>
Proxy's [[GetOwnProperty]] should complete trap result descriptor before validation
https://bugs.webkit.org/show_bug.cgi?id=221772
Reviewed by Yusuke Suzuki.
* stress/proxy-get-own-property.js:
* stress/proxy-returning-incomplete-property-descriptor-error.js: Added.
2021-02-13 Michael Catanzaro <mcatanzaro@gnome.org>
JSC stress test stress/copy-data-properties-fast-path.js.default fails on s390x and ppc64le
https://bugs.webkit.org/show_bug.cgi?id=221557
Reviewed by Saam Barati.
Skip the test on these architectures. I don't know what else to do with it.
* stress/copy-data-properties-fast-path.js:
2021-02-13 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, fix stress/copy-data-properties-fast-path.js occasional failure
Wrap it with try-catch since stack-overflow RangeError in JS can happen.
* stress/copy-data-properties-fast-path.js:
2021-02-11 Alexey Shvayka <shvaikalesh@gmail.com>
SetIntegrityLevel should call [[DefineOwnProperty]] with partial descriptor
https://bugs.webkit.org/show_bug.cgi?id=221497
Reviewed by Yusuke Suzuki.
* stress/arguments-define-property-throws-out-of-memory.js: Added.
* stress/freeze-invokes-out-of-memory.js: Removed.
* stress/object-freeze-with-arguments-no-oom-error.js: Added.
* stress/object-freeze-with-proxy-defineProperty.js: Added.
2021-02-09 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] C++ iteration should support fast iterator protocol
https://bugs.webkit.org/show_bug.cgi?id=221526
Reviewed by Alexey Shvayka.
* microbenchmarks/map-constructor.js: Added.
(test):
* stress/map-constructor-hole-throw.js: Added.
(shouldBe):
(shouldThrow):
(values.__proto__.return):
(Map.prototype):
2021-02-09 Caio Lima <ticaiolima@gmail.com>
Fix warning introduced by r272580
https://bugs.webkit.org/show_bug.cgi?id=221612
Unreviewd, update test262/config.yaml
* test262/config.yaml:
Since `class-methods-private` also includes private accessors tests,
we should enable it only after https://bugs.webkit.org/show_bug.cgi?id=194435
gets closed.
2021-02-09 Caio Lima <ticaiolima@gmail.com>
[ESNext] Implement private methods
https://bugs.webkit.org/show_bug.cgi?id=194434
Reviewed by Filip Pizlo.
* stress/private-brand-installed-after-super-call-from-arrow-function.js: Added.
* stress/private-brand-installed-after-super-call-from-eval.js: Added.
* stress/private-method-brand-check.js: Added.
* stress/private-method-change-attribute-from-branded-structure.js: Added.
* stress/private-method-change-prototype-from-branded-structure.js: Added.
* stress/private-method-check-private-brand-ic.js: Added.
* stress/private-method-check-structure-miss.js: Added.
* stress/private-method-comparison.js: Added.
* stress/private-method-delete-property-from-branded-structure.js: Added.
* stress/private-method-extends-brand-check.js: Added.
* stress/private-method-get-and-call.js: Added.
* stress/private-method-invalid-multiple-brand-installation.js: Added.
* stress/private-method-invalidate-compiled-with-constant-symbol.js: Added.
* stress/private-method-nested-class.js: Added.
* stress/private-method-on-sealed-objects.js: Added.
* stress/private-method-on-uncacheable-dictionary.js: Added.
* stress/private-method-polymorphic-with-constant-symbol.js: Added.
* stress/private-method-set-brand-should-have-write-barrier.js: Added.
* stress/private-method-untyped-use.js: Added.
* stress/private-method-with-uncacheable-dictionary-transition.js: Added.
* stress/private-methods-inline-cache.js: Added.
* stress/private-methods-megamorphic-ic.js: Added.
* stress/private-methods-on-proxy.js: Added.
* stress/private-methods-poly-ic-multiple-classes.js: Added.
* stress/private-methods-poly-ic-single-class.js: Added.
* stress/private-names-available-on-direct-eval.js: Added.
* test262/config.yaml:
2021-02-06 Alexey Shvayka <shvaikalesh@gmail.com>
REGRESSION (r264574): Unchecked JS exception in validateAndApplyPropertyDescriptor()
https://bugs.webkit.org/show_bug.cgi?id=221494
Reviewed by Yusuke Suzuki.
* stress/redefine-property-same-value-exception-check.js: Added.
2021-02-05 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewd, update test262/config.yaml
Tests are failing only in OSS build since OSS build is building WebKit with very old ICU headers.
* test262/config.yaml:
2021-02-05 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] globalFuncCopyDataProperties should not perform GC-sensitive operation in the middle of Structure::forEachProperty
https://bugs.webkit.org/show_bug.cgi?id=221454
Reviewed by Mark Lam.
* stress/copy-data-properties-fast-path.js: Added.
(foo):
2021-02-05 Alexey Shvayka <shvaikalesh@gmail.com>
Object.assign should throw for property creation on non-extensible `target`
https://bugs.webkit.org/show_bug.cgi?id=220712
Reviewed by Ross Kirsling.
* stress/object-assign-fast-path.js:
2021-02-05 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] JSImmutableButterfly's toString cache should not happen for generic join
https://bugs.webkit.org/show_bug.cgi?id=221444
<rdar://problem/73972862>
Reviewed by Mark Lam.
* stress/immutable-butterfly-to-string-cache-should-not-happen-for-generic-join.js: Added.
(foo):
2021-02-05 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Atomics.store in DFG / FTL should return ToNumber(input) value
https://bugs.webkit.org/show_bug.cgi?id=221438
<rdar://problem/73973264>
Reviewed by Filip Pizlo.
* stress/atomic-store-result-type-in-ai.js: Added.
* stress/atomics-store-result-double-nan.js: Added.
(shouldBe):
(test):
* stress/atomics-store-result-double-negative-zero.js: Added.
(shouldBe):
(test):
* stress/atomics-store-result-double.js: Added.
(shouldBe):
(test):
* stress/atomics-store-result-int52.js: Added.
(shouldBe):
* stress/atomics-store-result.js: Added.
(shouldBe):
2021-02-03 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Update test262
https://bugs.webkit.org/show_bug.cgi?id=221367
Reviewed by Ross Kirsling.
This patch updates test262 results. And since test262 bot is upgraded to Big Sur,
we also clean up some of failures in config.yaml.
Still some of Intl tests are failing because test262 strongly assumes a certain
kind of format. We should fix it in test262 side since the spec does not require that.
* test262/config.yaml:
* test262/latest-changes-summary.txt:
* test262/test/built-ins/Function/property-order.js: Added.
* test262/test/built-ins/Function/prototype/property-order.js: Added.
* test262/test/built-ins/Object/property-order.js: Added.
* test262/test/built-ins/Promise/all/resolve-element-function-property-order.js: Added.
(thenable.then):
(NotPromise):
(NotPromise.resolve):
* test262/test/built-ins/Promise/allSettled/reject-element-function-property-order.js: Added.
(thenable.then):
(NotPromise):
(NotPromise.resolve):
* test262/test/built-ins/Promise/allSettled/resolve-element-function-property-order.js: Added.
(thenable.then):
(NotPromise):
(NotPromise.resolve):
* test262/test/built-ins/Promise/any/reject-element-function-property-order.js: Added.
(thenable.then):
(NotPromise):
(NotPromise.resolve):
* test262/test/built-ins/Promise/executor-function-property-order.js: Added.
(NotPromise):
* test262/test/built-ins/Promise/property-order.js: Added.
* test262/test/built-ins/Promise/reject-function-property-order.js: Added.
(new.Promise):
* test262/test/built-ins/Promise/resolve-function-property-order.js: Added.
(new.Promise):
* test262/test/built-ins/Proxy/property-order.js: Added.
* test262/test/built-ins/Proxy/revocable/revocation-function-property-order.js: Added.
* test262/test/built-ins/ThrowTypeError/property-order.js: Added.
(ThrowTypeError.Object.getOwnPropertyDescriptor):
* test262/test/intl402/Collator/prototype/compare/compare-function-property-order.js: Added.
* test262/test/intl402/DateTimeFormat/prototype/format/format-function-property-order.js: Added.
* test262/test/intl402/NumberFormat/prototype/format/format-function-property-order.js: Added.
* test262/test/language/export/escaped-as-export-specifier.js:
* test262/test/language/export/escaped-default.js:
* test262/test/language/export/escaped-from.js:
* test262/test/language/expressions/async-arrow-function/escaped-async-line-terminator.js:
* test262/test/language/expressions/async-arrow-function/escaped-async.js:
* test262/test/language/expressions/async-function/escaped-async.js:
* test262/test/language/expressions/async-generator/escaped-async.js:
* test262/test/language/expressions/dynamic-import/escape-sequence-import.js:
* test262/test/language/expressions/import.meta/syntax/escape-sequence-import.js:
* test262/test/language/expressions/import.meta/syntax/escape-sequence-meta.js:
* test262/test/language/expressions/new.target/escaped-new.js:
* test262/test/language/expressions/new.target/escaped-target.js:
* test262/test/language/expressions/object/method-definition/async-gen-meth-escaped-async.js:
* test262/test/language/expressions/object/method-definition/async-meth-escaped-async.js:
* test262/test/language/expressions/object/method-definition/escaped-get.js:
* test262/test/language/expressions/object/method-definition/escaped-set.js:
* test262/test/language/import/escaped-as-import-specifier.js:
* test262/test/language/import/escaped-as-namespace-import.js:
* test262/test/language/import/escaped-from.js:
* test262/test/language/statements/async-function/escaped-async.js:
* test262/test/language/statements/async-generator/escaped-async.js:
* test262/test/language/statements/class/async-gen-meth-escaped-async.js:
* test262/test/language/statements/class/async-meth-escaped-async.js:
* test262/test/language/statements/class/syntax/escaped-static.js:
* test262/test/language/statements/for-await-of/escaped-of.js:
* test262/test/language/statements/for-of/escaped-of.js:
* test262/test/language/statements/let/syntax/escaped-let.js:
* test262/test262-Revision.txt:
2021-02-01 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Atomics should support BigInt64Array / BigUint64Array
https://bugs.webkit.org/show_bug.cgi?id=221245
Reviewed by Keith Miller.
* stress/atomic-increment-bigint64.js: Added.
(shouldBe):
(i.agent.start.262.agent.receiveBroadcast):
* stress/bigint-atomics-fail.js: Added.
(shouldThrow):
* stress/bigint64-atomics.js: Added.
(shouldBe):
(test):
* stress/biguint64-atomics.js: Added.
(shouldBe):
(test):
* stress/isLockFree.js:
(foo6):
(foo7):
(foo8):
(foo9):
* stress/shared-array-buffer-bigint.js: Added.
(shouldFail):
(shouldSucceed):
(runAtomic):
* test262/config.yaml:
2021-02-02 Ross Kirsling <ross.kirsling@sony.com>
Completion value of a finally block should not be ignored if completion is abrupt
https://bugs.webkit.org/show_bug.cgi?id=221238
Reviewed by Yusuke Suzuki.
* stress/completion-value.js:
Correct tests to match spec.
* test262/expectations.yaml:
Mark two test cases as passing.
2021-02-01 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] TypedArray#fill should be implemented in C++
https://bugs.webkit.org/show_bug.cgi?id=221182
Reviewed by Ross Kirsling.
* stress/bigint-typed-array-fill.js: Added.
(shouldBe):
* stress/typed-array-fill.js: Added.
(shouldBe):
2021-01-31 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Implement BigInt64Array and BigUint64Array
https://bugs.webkit.org/show_bug.cgi?id=190800
Reviewed by Ross Kirsling.
Through this patch, we encounter two test262 failures and found that these tests have issues.
* stress/bigint-typed-array-array-modes-profile.js: Added.
(foo):
* stress/bigint-typed-array-byte-offset.js: Added.
(foo):
* stress/bigint-typed-array-canonical-numeric-index-string.js: Added.
(makeTest.assert):
(makeTest):
(const.testInvalidIndices.makeTest.set assert):
(const.testInvalidIndices.makeTest):
(const.testValidIndices.makeTest.set assert):
(const.testValidIndices.makeTest):
* stress/bigint-typed-array-constructor-undefined.js: Added.
* stress/bigint-typed-array-get-by-val-profiling.js: Added.
(testArray.testCode):
(testArray):
* stress/bigint-typed-array-lastIndexOf-exception-check.js: Added.
* stress/bigint-typed-array-put-by-val-profiling.js: Added.
(testArray.testCode):
(testArray):
* stress/bigint-typedarray-getownproperty.js: Added.
(assert):
(foo):
* stress/bigint64array-bytelength.js: Added.
(test1):
(test2):
(shouldBe):
* stress/bigint64array-get-by-val.js: Added.
(shouldBe):
(test1):
(test2):
* stress/bigint64array-put-by-val.js: Added.
(shouldBe):
(test11):
(test12):
(test21):
(test22):
* test262/config.yaml:
* test262/expectations.yaml:
2021-02-01 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Add @ in Error.stack if URL exists
https://bugs.webkit.org/show_bug.cgi?id=221184
Reviewed by Keith Miller.
* ChakraCore/test/Error/NativeErrors_v4.baseline-jsc:
* ChakraCore/test/Error/validate_line_column.baseline-jsc:
* ChakraCore/test/StackTrace/FunctionName.js.baseline-jsc:
* ChakraCore/test/fieldopts/fieldhoist6.baseline-jsc:
* ChakraCore/test/fieldopts/fieldhoist6b.baseline-jsc:
* ChakraCore/test/fieldopts/fieldhoist7.baseline-jsc:
* ChakraCore/test/fieldopts/fieldhoist_negzero.baseline-jsc:
* ChakraCore/test/fieldopts/fieldhoist_undefined_global.baseline-jsc:
* ChakraCore/test/fieldopts/fieldhoist_unreachable.baseline-jsc:
* stress/error-stack-at.js: Added.
(shouldBe):
(catch):
(try.eval):
2021-01-31 Yusuke Suzuki <ysuzuki@apple.com>
Date.parse returns non-integral time value
https://bugs.webkit.org/show_bug.cgi?id=220687
Reviewed by Ross Kirsling.
* complex.yaml:
* complex/date-parse-milliseconds.js: Added.
(shouldBe):
2021-01-29 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Adjust property order of host JSFunction
https://bugs.webkit.org/show_bug.cgi?id=221168
Reviewed by Darin Adler.
* stress/host-function-property-order.js: Added.
(shouldBe):
2021-01-29 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Fix WebAssembly.Global's error message and support "funcref"
https://bugs.webkit.org/show_bug.cgi?id=221157
Reviewed by Keith Miller.
* wasm/stress/global-wrong-type.js: Added.
(assert.throws):
2021-01-29 Dmitry Bezhetskov <dbezhetskov@igalia.com>
[JSC] WebAssembly.Global should support Funcref and Externref
https://bugs.webkit.org/show_bug.cgi?id=220914
Reviewed by Yusuke Suzuki.
Add tests for WebAssembly.Global ctors with
new reference types:
https://webassembly.github.io/reference-types/js-api/index.html#dom-global-global.
* wasm/references/globals.js: Added.
(Pelmen):
(testGlobalConstructorForExternref):
(async testGlobalConstructorForFuncref):
2021-01-28 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, recover removed tests
https://bugs.webkit.org/show_bug.cgi?id=220216
These tests are important since we need to ensure that we are not accidentally expose internal-only functions.
* stress/function-caller-async-arrow-function-body.js:
(shouldBe):
(thingy.foo.async try): Deleted.
(thingy): Deleted.
* stress/function-caller-async-function-body.js:
(shouldBe):
(thingy.async foo):
(thingy):
* stress/function-caller-async-generator-body.js:
(shouldBe):
(thingy.async foo):
(thingy):
* stress/function-caller-generator-body.js:
(shouldBe):
(thingy.foo):
(thingy):
* stress/function-caller-generator-method-body.js:
(shouldBe):
(thingy.C.prototype.foo):
(thingy.C):
(thingy):
2021-01-27 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Update test262
https://bugs.webkit.org/show_bug.cgi?id=221078
Reviewed by Alexey Shvayka.
Update test262 to the latest one.
* test262/latest-changes-summary.txt:
* test262/test/built-ins/Array/prototype/sort/precise-comparefn-throws.js: Added.
(set logs):
(set const):
* test262/test/built-ins/Array/prototype/sort/precise-getter-appends-elements.js: Added.
* test262/test/built-ins/Array/prototype/sort/precise-getter-decreases-length.js: Added.
* test262/test/built-ins/Array/prototype/sort/precise-getter-deletes-predecessor.js: Added.
* test262/test/built-ins/Array/prototype/sort/precise-getter-deletes-successor.js: Added.
* test262/test/built-ins/Array/prototype/sort/precise-getter-increases-length.js: Added.
* test262/test/built-ins/Array/prototype/sort/precise-getter-pops-elements.js: Added.
* test262/test/built-ins/Array/prototype/sort/precise-getter-sets-predecessor.js: Added.
* test262/test/built-ins/Array/prototype/sort/precise-getter-sets-successor.js: Added.
* test262/test/built-ins/Array/prototype/sort/precise-prototype-accessors.js: Added.
(set logs):
* test262/test/built-ins/Array/prototype/sort/precise-prototype-element.js: Added.
* test262/test/built-ins/Array/prototype/sort/precise-setter-appends-elements.js: Added.
* test262/test/built-ins/Array/prototype/sort/precise-setter-decreases-length.js: Added.
* test262/test/built-ins/Array/prototype/sort/precise-setter-deletes-predecessor.js: Added.
* test262/test/built-ins/Array/prototype/sort/precise-setter-deletes-successor.js: Added.
* test262/test/built-ins/Array/prototype/sort/precise-setter-increases-length.js: Added.
* test262/test/built-ins/Array/prototype/sort/precise-setter-pops-elements.js: Added.
* test262/test/built-ins/Array/prototype/sort/precise-setter-sets-predecessor.js: Added.
* test262/test/built-ins/Array/prototype/sort/precise-setter-sets-successor.js: Added.
* test262/test/built-ins/Object/seal/object-seal-configurable-attribute-of-own-data-property-of-o-is-set-from-true-to-false-and-other-attributes-of-the-property-are-unaltered.js: Renamed from JSTests/test262/test/built-ins/Object/seal/object-seal-the-configurable-attribute-of-own-data-property-of-o-is-set-from-true-to-false-and-other-attributes-of-the-property-are-unaltered.js.
* test262/test/intl402/DateTimeFormat/prototype/formatRange/date-same-returns-single-date.js:
(dtf.format):
* test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/date-same-returns-single-date.js:
(assert.sameValue):
* test262/test/language/expressions/class/elements/super-access-from-arrow-func-on-field.js: Added.
(C):
(C.staticFunc):
* test262/test/language/statements/class/elements/super-access-from-arrow-func-on-field.js: Added.
(C.prototype.func):
(C.staticFunc):
(C):
* test262/test/language/statements/for-of/head-lhs-async-dot.js: Added.
* test262/test/language/statements/for-of/head-lhs-async-invalid.js: Added.
* test262/test/language/statements/for/head-init-async-of.js: Added.
(async of):
* test262/test262-Revision.txt:
2021-01-27 Yusuke Suzuki <ysuzuki@apple.com>
WebAssembly: add support for stream APIs
https://bugs.webkit.org/show_bug.cgi?id=173105
Reviewed by Keith Miller.
* wasm/stress/resources/tsf.wasm: Added.
* wasm/stress/wasm-streaming-compiler-compile.js: Added.
(shouldBe):
(slice):
(async main):
(main.catch):
* wasm/stress/wasm-streaming-compiler-instantiate.js: Added.
(shouldBe):
(slice):
(async main.):
(async main):
(main.catch):
2021-01-27 Commit Queue <commit-queue@webkit.org>
Unreviewed, reverting r271186.
https://bugs.webkit.org/show_bug.cgi?id=221051
Breaks Facebook on arm64e devices
Reverted changeset:
"[JSC] DFG/FTL DirectCall need to respect Wasm IC"
https://bugs.webkit.org/show_bug.cgi?id=220339
https://trac.webkit.org/changeset/271186
2021-01-26 Dmitry Bezhetskov <dbezhetskov@igalia.com>
[WASM-References] Change default value for externref's tables from null to undefined
https://bugs.webkit.org/show_bug.cgi?id=220918
Reviewed by Yusuke Suzuki.
According to the reference types spec
https://webassembly.github.io/reference-types/js-api/#defaultvaluey
we should use undefined as a default value in Table ctor, set and grow
methods, so this patch replaces previous null default value for
externref's table to undefined.
* wasm/references/externref_table_import.js:
(string_appeared_here.fullGC.assert.eq.1.exports.get_tbl):
* wasm/references/table_js_api.js:
(testTableGrowForExternrefTables):
* wasm/references/table_misc.js:
2021-01-21 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] JSPromise should not propagate TerminatedExecutionError
https://bugs.webkit.org/show_bug.cgi?id=220820
<rdar://problem/72929399>
Reviewed by Mark Lam.
* stress/terminated-execution-error-in-promise.js: Added.
(let.x.get toString):
(import.x.then):
2021-01-18 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] FTL::prepareOSREntry can clear OSR entry CodeBlock if it is already invalidated
https://bugs.webkit.org/show_bug.cgi?id=220718
<rdar://problem/70527068>
Reviewed by Mark Lam.
* stress/ftl-osr-failure-clear-twice.js: Added.
(foo):
2021-01-18 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] earlyReturnFromInfiniteLoopsLimit should check all caller functions when emitting
https://bugs.webkit.org/show_bug.cgi?id=220700
<rdar://problem/71229150>
Reviewed by Mark Lam.
* stress/early-return-from-builtin.js: Added.
(let.o.get value):
(let.iter.Symbol.iterator):
* stress/early-return-from-builtin2.js: Added.
(foo):
2021-01-18 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Add another tests for r271571 part 2
https://bugs.webkit.org/show_bug.cgi?id=220702
<rdar://problem/71365255>
Reviewed by Mark Lam.
This patch adds yet another test for r271571.
* stress/ftl-osr-entry-order-reverse3.js: Added.
(foo.bar):
(foo):
2021-01-18 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Add another tests for r271571
https://bugs.webkit.org/show_bug.cgi?id=220701
<rdar://problem/72464341>
Reviewed by Mark Lam.
This patch adds another test for r271571 "[JSC] FTL OSR entry FlushFormat array is reversed".
* stress/ftl-osr-entry-order-reverse2.js: Added.
(foo):
2021-01-18 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Add another tests for r271571 part 3
https://bugs.webkit.org/show_bug.cgi?id=220703
<rdar://problem/71224976>
Reviewed by Mark Lam.
This patch adds yet another test for r271571.
* stress/ftl-osr-entry-order-reverse4.js: Added.
(foo):
2021-01-18 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] callerIsOMGCompiled should be robust
https://bugs.webkit.org/show_bug.cgi?id=220697
Reviewed by Mark Lam.
* stress/callerIsOMGCompiled-should-be-robust.js: Added.
2021-01-17 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] DFG/FTL Atomics should not accept Float32/Float64 typed arrays
https://bugs.webkit.org/show_bug.cgi?id=220692
<rdar://problem/73238369>
Reviewed by Mark Lam.
* stress/atomics-float-edge.js: Added.
(foo):
2021-01-17 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] FTL OSR entry FlushFormat array is reversed
https://bugs.webkit.org/show_bug.cgi?id=220695
<rdar://problem/72930932>
Reviewed by Mark Lam.
* stress/ftl-osr-entry-order-reverse.js: Added.
(shouldThrow):
(foo):
2021-01-17 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] GenericArguments<Type>::defineOwnProperty's assumption about error is not correct
https://bugs.webkit.org/show_bug.cgi?id=220693
<rdar://problem/72929171>
Reviewed by Mark Lam.
* stress/freeze-invokes-out-of-memory.js: Added.
(shouldThrow):
2021-01-17 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Add some more exception checks in globalFuncCopyDataProperties
https://bugs.webkit.org/show_bug.cgi?id=220691
Reviewed by Mark Lam.
* stress/spread-object-check.js: Added.
* stress/spread-object-check2.js: Added.
2021-01-14 Ross Kirsling <ross.kirsling@sony.com>
Unreviewed. Add skips for Big Sur-dependent test262 tests.
* test262/config.yaml:
2021-01-14 Ross Kirsling <ross.kirsling@sony.com>
[JSC] Correctly handle escaped keyword identifiers
https://bugs.webkit.org/show_bug.cgi?id=220634
Reviewed by Yusuke Suzuki.
* stress/escaped-keyword-identifiers.js: Added.
* test262/expectations.yaml: Mark 16 test cases as passing.
2021-01-12 Ross Kirsling <ross.kirsling@sony.com>
[JSC] Class name 'await' is valid in sync context
https://bugs.webkit.org/show_bug.cgi?id=220575
Reviewed by Yusuke Suzuki.
* test262/expectations.yaml:
Mark four test cases as passing.
2021-01-12 Ross Kirsling <ross.kirsling@sony.com>
[JSC] Class names must be lexed as strict mode code
https://bugs.webkit.org/show_bug.cgi?id=220567
Reviewed by Yusuke Suzuki.
* test262/expectations.yaml:
Mark four test cases as passing.
2021-01-12 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Bypass OperationPtrTagging for JITCage verification for CallDOMGetter
https://bugs.webkit.org/show_bug.cgi?id=220564
Reviewed by Saam Barati.
* stress/domjit-getter2.js: Added.
(shouldBe):
(access):
2021-01-12 Caio Lima <ticaiolima@gmail.com>
[ESNext] super accesses broken on arrow functions defined as class field
https://bugs.webkit.org/show_bug.cgi?id=220558
Reviewed by Darin Adler.
* stress/class-field-arrow-function-using-super.js: Added.
2021-01-08 Alexey Shvayka <shvaikalesh@gmail.com>
Implement @copyDataProperties in C++ to optimize object rest / spread
https://bugs.webkit.org/show_bug.cgi?id=193618
Reviewed by Yusuke Suzuki.
* microbenchmarks/object-rest-destructuring.js: Added.
* microbenchmarks/object-spread.js: Added.
* stress/object-rest-deconstruct.js:
* stress/object-spread.js:
2021-01-08 Alexey Shvayka <shvaikalesh@gmail.com>
for/in over a Proxy should not call [[GetOwnProperty]] trap twice per property
https://bugs.webkit.org/show_bug.cgi?id=189034
Reviewed by Yusuke Suzuki.
* microbenchmarks/for-in-proxy.js: Added.
* stress/for-in-redefine-enumerable.js:
* stress/proxy-for-in.js: Added.
2021-01-08 Dmitry Bezhetskov <dbezhetskov@igalia.com>
[WASM-References] Add optional default value parameter for Table.constructor, Table.grow and Table.set
https://bugs.webkit.org/show_bug.cgi?id=220323
Reviewed by Yusuke Suzuki.
Add tests for Table.grow, Table.set and Table ctor with optional initializing parameter.
Spec: https://webassembly.github.io/reference-types/js-api/index.html#tables.
* wasm/references/table_js_api.js: Added.
(Pelmen):
(testTableGrowForExternrefTables):
(async testTableGrowForFuncrefTables):
(testTableConstructorForExternrefTables):
(async testTableConstructorForFuncrefTables):
(async testTableSetForFuncrefTables):
2021-01-08 Dmitry Bezhetskov <dbezhetskov@igalia.com>
[WASM-References] Add linking tests
https://bugs.webkit.org/show_bug.cgi?id=220314
Reviewed by Yusuke Suzuki.
Added linking tests for the ref-types spec.
Disabled a few failed minor cases and created apropriate bugs.
* wasm.yaml:
* wasm/references-spec-tests/linking.wast.js: Added.
2021-01-08 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] AtomicsIsLockFree's AI result is wrong
https://bugs.webkit.org/show_bug.cgi?id=220452
<rdar://problem/71228690>
Reviewed by Mark Lam.
* stress/atomics-is-lock-free-and-zero.js: Added.
2021-01-07 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] DFG/FTL Atomics should assume non-typed-array input with storage-edge
https://bugs.webkit.org/show_bug.cgi?id=220451
<rdar://problem/71237065>
Reviewed by Mark Lam.
* stress/atomics-and-multiple-typed-arrays.js: Added.
(foo):
* stress/atomics-and-string.js: Added.
(foo):
2021-01-07 Alexey Shvayka <shvaikalesh@gmail.com>
[JSC] Simplify get*PropertyNames() methods and EnumerationMode
https://bugs.webkit.org/show_bug.cgi?id=212954
Reviewed by Yusuke Suzuki.
* ChakraCore.yaml:
* ChakraCore/test/Basics/enum.baseline-jsc: Removed.
* microbenchmarks/for-in-on-object-with-lazily-materialized-properties.js:
Removed because ErrorInstance no longer materializes properties during for/in enumeration.
* microbenchmarks/object-keys-cloned-arguments.js: Added.
* microbenchmarks/object-keys-error-object.js: Added.
* stress/arguments-properties-order.js: Added.
* stress/for-in-tests.js:
* stress/for-in-typed-array.js:
2021-01-07 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] New expression and value function call should reserve function register if arguments include assignments
https://bugs.webkit.org/show_bug.cgi?id=220429
<rdar://problem/70598359>
Reviewed by Alexey Shvayka.
* stress/comma-value-func-call-resolve.js: Added.
(shouldBe):
(fn.x):
(fn):
* stress/construct-overwritten-variable.js:
(shouldThrow):
(new.x.x): Deleted.
* stress/construct-spread-overwritten-variable-2.js:
(shouldThrow):
(new.x.x): Deleted.
* stress/construct-spread-overwritten-variable.js:
(shouldThrow):
(new.x.x): Deleted.
* stress/destructuring-func-call-resolve.js: Added.
(shouldBe):
(fn.x):
(fn):
(fn2.x):
(fn2):
* stress/resolve-func-call-resolve.js: Added.
(shouldBe):
(fn.x):
(fn):
* stress/tagged-template-call-resolve.js: Added.
(shouldBe):
(fn.x):
(fn):
* test262/expectations.yaml:
2021-01-07 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, check ICU header version instead of ICU version
https://bugs.webkit.org/show_bug.cgi?id=220419
Since open-source WebKit is built against old ICU header, we sometimes disable features based on ICU header version.
So, need to check features based on ICU header version instead of ICU version.
* stress/intl-datetimeformat-format-range-should-check-practically-equal.js:
(vm.icuHeaderVersion):
(vm.icuVersion): Deleted.
* stress/intl-datetimeformat-format-range-to-parts-should-check-practically-equal.js:
(vm.icuHeaderVersion):
(vm.icuVersion): Deleted.
2021-01-07 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, adjust test262 result
https://bugs.webkit.org/show_bug.cgi?id=220420
test262 bot is using Catalina's ICU.
* test262/config.yaml:
2021-01-06 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Update test262
https://bugs.webkit.org/show_bug.cgi?id=220398
Reviewed by Mark Lam.
* test262/expectations.yaml:
* test262/harness/testIntl.js:
* test262/latest-changes-summary.txt:
* test262/test/built-ins/TypedArray/prototype/includes/BigInt/detached-buffer-during-fromIndex-returns-false-for-zero.js: Added.
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/includes/BigInt/detached-buffer-during-fromIndex-returns-true-for-undefined.js: Added.
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/includes/detached-buffer-during-fromIndex-returns-false-for-zero.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/includes/detached-buffer-during-fromIndex-returns-true-for-undefined.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/includes/detached-buffer-tointeger.js: Removed.
* test262/test/built-ins/TypedArray/prototype/indexOf/BigInt/detached-buffer-during-fromIndex-returns-minus-one-for-undefined.js: Added.
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/indexOf/BigInt/detached-buffer-during-fromIndex-returns-minus-one-for-zero.js: Added.
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/indexOf/detached-buffer-during-fromIndex-returns-minus-one-for-undefined.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/indexOf/detached-buffer-during-fromIndex-returns-minus-one-for-zero.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/join/BigInt/detached-buffer-during-fromIndex-returns-single-comma.js: Added.
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/join/BigInt/detached-buffer.js:
(let.obj.toString):
(testWithBigIntTypedArrayConstructors):
(obj.toString): Deleted.
* test262/test/built-ins/TypedArray/prototype/join/detached-buffer-during-fromIndex-returns-single-comma.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/join/detached-buffer.js:
(let.obj.toString):
(testWithTypedArrayConstructors):
(obj.toString): Deleted.
* test262/test/built-ins/TypedArray/prototype/lastIndexOf/BigInt/detached-buffer-during-fromIndex-returns-minus-one-for-undefined.js: Added.
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/lastIndexOf/BigInt/detached-buffer-during-fromIndex-returns-minus-one-for-zero.js: Added.
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/lastIndexOf/detached-buffer-during-fromIndex-returns-minus-one-for-undefined.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/lastIndexOf/detached-buffer-during-fromIndex-returns-minus-one-for-zero.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/GetOwnProperty/BigInt/index-prop-desc.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/Set/detached-buffer.js:
(testWithTypedArrayConstructors):
* test262/test/intl402/DateTimeFormat/prototype/formatRange/date-same-returns-single-date.js: Added.
* test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/date-same-returns-single-date.js: Added.
(zip):
(compare):
* test262/test/intl402/Intl/getCanonicalLocales/canonicalized-tags.js:
* test262/test/intl402/Intl/getCanonicalLocales/preferred-grandfathered.js:
* test262/test/intl402/Intl/getCanonicalLocales/preferred-variant.js:
* test262/test/intl402/Locale/extensions-grandfathered.js:
* test262/test/intl402/Locale/likely-subtags-grandfathered.js:
(of.regularGrandfathered.const.extra.of.extras.i.test):
* test262/test262-Revision.txt:
2021-01-06 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] DateTimeFormat#formatRange should generate the same output to DateTimeFormat#format if startDate and endDate are "practically-equal"
https://bugs.webkit.org/show_bug.cgi?id=220395
Reviewed by Ross Kirsling.
Imported some test262 tests. Updated, fixed some issues (`formatToParts` test was using `format`, we should upstream it to test262), and added more tests.
* stress/intl-datetimeformat-format-range-should-check-practically-equal.js: Added.
(shouldBe):
(vm.icuVersion):
* stress/intl-datetimeformat-format-range-to-parts-should-check-practically-equal.js: Added.
(shouldBe):
(zip):
(compare):
(vm.icuVersion):
2021-01-05 Yusuke Suzuki <ysuzuki@apple.com>
[WASM] [BigInt] Add I64 to BigInt conversion
https://bugs.webkit.org/show_bug.cgi?id=213528
Reviewed by Michael Saboff.
* wasm/function-tests/function-import-return-value.js:
(assert.truthy):
(assert.throws):
(assert.eq):
* wasm/function-tests/i64-conversion.js: Renamed from JSTests/wasm/function-tests/i64-from-js-exceptions.js.
(assert.eq.instance.exports.foo.valueOf):
* wasm/js-api/global-error.js:
* wasm/stress/i64-call.js: Added.
(async test):
* wasm/stress/i64-extract.js: Added.
(testI64):
* wasm/stress/immutable-globals.js:
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.i.assert.eq):
* wasm/stress/multi-value-i64.js: Added.
(async test):
* wasm/stress/mutable-globals.js:
2021-01-05 Alexey Shvayka <shvaikalesh@gmail.com>
We should have a DFG intrinsic for the construct case of the Object constructor
https://bugs.webkit.org/show_bug.cgi?id=155591
Reviewed by Yusuke Suzuki.
* microbenchmarks/new-object-no-expected-function.js: Added.
* stress/call-object-constructor-with-new.js: Added.
* stress/dfg-builtin-constructor-cross-realm.js: Added.
2021-01-05 Dmitry Bezhetskov <dbezhetskov@igalia.com>
[WASM-References] Added few unreached-invalid tests
https://bugs.webkit.org/show_bug.cgi?id=220311
Reviewed by Yusuke Suzuki.
Added unreached-invalid tests and fix error messages in existing tests.
* wasm.yaml:
* wasm/js-api/global-error.js:
* wasm/references-spec-tests/unreached-invalid.wast.js: Added.
2021-01-04 Dmitry Bezhetskov <dbezhetskov@igalia.com>
[WASM-References] Fix data section parsing and add more tests from ref-types
https://bugs.webkit.org/show_bug.cgi?id=220235
Reviewed by Yusuke Suzuki.
Add more tests from ref-types spec.
* wasm.yaml:
* wasm/references-spec-tests/binary-leb128.wast.js: Added.
* wasm/references-spec-tests/binary.wast.js: Added.
* wasm/references-spec-tests/br_table.wast.js: Added.
* wasm/references-spec-tests/call_indirect.wast.js: Added.
* wasm/references-spec-tests/custom.wast.js: Added.
* wasm/references-spec-tests/data.wast.js: Added.
* wasm/references-spec-tests/exports.wast.js: Added.
* wasm/references-spec-tests/global.wast.js: Added.
* wasm/references-spec-tests/imports.wast.js: Added.
* wasm/references-spec-tests/memory_grow.wast.js: Added.
* wasm/references-spec-tests/table.wast.js: Added.
2021-01-01 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Remove unnecessary mov bytecodes when performing simple object pattern destructuring to variables
https://bugs.webkit.org/show_bug.cgi?id=220219
Reviewed by Alexey Shvayka.
* stress/object-pattern-simple-fast-path.js: Added.
(shouldBe):
(shouldThrow):
(test1):
2021-01-02 Alexey Shvayka <shvaikalesh@gmail.com>
Improve error message for uninitialized |this| in derived constructor
https://bugs.webkit.org/show_bug.cgi?id=220221
Reviewed by Yusuke Suzuki.
* stress/async-arrow-functions-lexical-binding-in-class.js:
* stress/async-arrow-functions-lexical-super-binding.js:
* stress/class-derived-from-null.js:
* stress/generator-eval-this.js:
* stress/super-property-access-tdz.js:
2021-01-02 Alexey Shvayka <shvaikalesh@gmail.com>
Don't throw if `function.caller` is a non-strict / generator / async function
https://bugs.webkit.org/show_bug.cgi?id=220216
Reviewed by Yusuke Suzuki.
* stress/function-caller-async-arrow-function-body.js: Removed.
* stress/function-caller-async-function-body.js: Removed.
* stress/function-caller-async-generator-body.js: Removed.
* stress/function-caller-generator-body.js: Removed.
* stress/function-caller-generator-method-body.js: Removed.
* stress/function-hidden-as-caller.js: Added.
* stress/polymorphic-access-exception-handler-should-not-clobber-used-register.js:
* stress/tail-call-recognize.js:
* test262/expectations.yaml: Mark 45 test cases as passing.
2020-12-31 Alexey Shvayka <shvaikalesh@gmail.com>
JSFunction::deleteProperty() fails to delete a non-existent "prototype" property
https://bugs.webkit.org/show_bug.cgi?id=220211
Reviewed by Yusuke Suzuki.
* stress/function-delete-prototype.js: Added.
2020-12-30 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, fix iteration count check
https://bugs.webkit.org/show_bug.cgi?id=220206
* wasm/stress/multivalue-iteration-count.js: Added.
(async let):
2020-12-29 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Update WebAssembly instance's exports object
https://bugs.webkit.org/show_bug.cgi?id=220189
Reviewed by Alexey Shvayka.
* stress/sampling-profiler-wasm-name-section.js:
(platformSupportsSamplingProfiler.vm.isWasmSupported):
* stress/sampling-profiler-wasm.js:
(platformSupportsSamplingProfiler.vm.isWasmSupported):
* wasm/js-api/test_basic_api.js:
(const.c.in.constructorProperties.switch):
* wasm/stress/exports-object.js: Added.
(async try):
(catch):
2020-12-27 Dmitry Bezhetskov <dbezhetskov@igalia.com>
[WASM-References] Fix table.init and table.grow to satisfy the spec
https://bugs.webkit.org/show_bug.cgi?id=220181
Reviewed by Yusuke Suzuki.
Fix behaviour of the previous tests and added ref-types
spec tests for bulk operations and table.grow.
* wasm.yaml:
* wasm/references-spec-tests/bulk.wast.js: Added.
* wasm/references-spec-tests/table_grow.wast.js: Added.
* wasm/references/table_misc.js:
(TableSize.0.End.End.WebAssembly):
2020-12-27 Dmitry Bezhetskov <dbezhetskov@igalia.com>
[WASM-References] Adjust table.fill to satisfy the spec
https://bugs.webkit.org/show_bug.cgi?id=220161
Reviewed by Yusuke Suzuki.
Added table.fill spec tests and adjusted existing tests.
* wasm.yaml:
* wasm/references-spec-tests/table_fill.wast.js: Added.
* wasm/references/table_misc.js:
(GetLocal.0.GetLocal.1.TableGrow.0.End.End.WebAssembly):
2020-12-27 Dmitry Bezhetskov <dbezhetskov@igalia.com>
[WASM-References] Add declared function indexes set to check from what functions we can create refs
https://bugs.webkit.org/show_bug.cgi?id=220009
Reviewed by Yusuke Suzuki.
Now we satisfy ref_func spec test so I've added it.
* wasm.yaml:
* wasm/references-spec-tests/ref_func.wast.js: Added.
2020-12-25 Mark Lam <mark.lam@apple.com>
VMInspector::dumpRegisters() should not dump beyond the start of the next frame.
https://bugs.webkit.org/show_bug.cgi?id=220136
rdar://64404201
Reviewed by Yusuke Suzuki.
* stress/dumpRegisters-should-stop-before-next-frame.js: Added.
2020-12-21 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Update elem.wast.js test
https://bugs.webkit.org/show_bug.cgi?id=220011
Reviewed by Ross Kirsling.
Now all tests pass. Remove FIXME.
* wasm/spec-tests/elem.wast.js:
2020-12-18 Dmitry Bezhetskov <dbezhetskov@igalia.com>
[WASM-References] Add reference spec tests for table instructions
https://bugs.webkit.org/show_bug.cgi?id=220005
Reviewed by Yusuke Suzuki.
These are reference types spec tests that we've already supported.
It help us prevent future inconsistencies with the proposal:
https://github.com/WebAssembly/reference-types/tree/master/test/core
* wasm.yaml:
* wasm/references-spec-tests/table-sub.wast.js: Added.
* wasm/references-spec-tests/table_get.wast.js: Added.
* wasm/references-spec-tests/table_set.wast.js: Added.
* wasm/references-spec-tests/table_size.wast.js: Added.
2020-12-17 Dmitry Bezhetskov <dbezhetskov@igalia.com>
[WASM-References] Add support for memory.copy, memory.init and data.drop
https://bugs.webkit.org/show_bug.cgi?id=219943
Reviewed by Yusuke Suzuki.
Added ref-types spec tests for memory.copy, memory.init and data.drop:
https://github.com/WebAssembly/reference-types/tree/master/test/core.
Renamed table_instructions_parse_unreachable test into just
parse_unreachable to prevent confusion.
* wasm.yaml:
* wasm/references-spec-tests/memory_copy.wast.js: Added.
* wasm/references-spec-tests/memory_init.wast.js: Added.
* wasm/references/memory_copy.js: Added.
(async test):
* wasm/references/memory_copy_shared.js: Added.
(async test):
* wasm/references/parse_unreachable.js: Renamed from JSTests/wasm/references/table_instructions_parse_unreachable.js.
(invalidMemoryCopyUnreachable):
(invalidMemoryInitUnreachable):
(invalidDataDropUnreachable):
* wasm/wasm.json:
2020-12-15 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Accept arbitrary module namespace identifier names
https://bugs.webkit.org/show_bug.cgi?id=217576
<rdar://problem/70416104>
Reviewed by Darin Adler.
* modules/arbitrary-module-names.js: Added.
* modules/arbitrary-module-names/export.js: Added.
* modules/arbitrary-module-names/export2.js: Added.
* stress/modules-syntax-error.js:
* test262/config.yaml:
2020-12-15 Alexey Shvayka <shvaikalesh@gmail.com>
Non-enumerable property fails to shadow inherited enumerable property from for-in
https://bugs.webkit.org/show_bug.cgi?id=38970
Reviewed by Keith Miller.
* stress/arguments-bizarre-behaviour-disable-enumerability.js:
* stress/for-in-redefine-enumerable.js: Added.
* stress/for-in-shadow-non-enumerable.js: Added.
* test262/expectations.yaml: Mark 4 test cases as passing.
2020-12-15 Yusuke Suzuki <ysuzuki@apple.com>
Suppress noise from JSTests/stress/lars-sab-workers.js
https://bugs.webkit.org/show_bug.cgi?id=219922
Reviewed by Saam Barati.
Mark it as noisy tests.
* stress/lars-sab-workers.js:
2020-12-15 Commit Queue <commit-queue@webkit.org>
Unreviewed, reverting r270860.
https://bugs.webkit.org/show_bug.cgi?id=219918
We workaround it differently, so this revert is not necessary
Reverted changeset:
"Unreviewed, reverting r269320, r269341, r269502, and
r269576."
https://bugs.webkit.org/show_bug.cgi?id=219915
https://trac.webkit.org/changeset/270860
2020-12-15 Commit Queue <commit-queue@webkit.org>
Unreviewed, reverting r269320, r269341, r269502, and r269576.
https://bugs.webkit.org/show_bug.cgi?id=219915
ICU C++ internal API causes trouble
Reverted changesets:
"REGRESSION (r254038): Simple.com money transfer UI is very
laggy (multiple seconds per keypress)"
https://bugs.webkit.org/show_bug.cgi?id=218348
https://trac.webkit.org/changeset/269320
"[JSC] Obtain default timezone ID from cached icu::TimeZone"
https://bugs.webkit.org/show_bug.cgi?id=218531
https://trac.webkit.org/changeset/269341
"toLocaleDateString() resolves incorrect date for some old
dates"
https://bugs.webkit.org/show_bug.cgi?id=161623
https://trac.webkit.org/changeset/269502
"[JSC] Add TimeZone range cache over ICU TimeZone API"
https://bugs.webkit.org/show_bug.cgi?id=218681
https://trac.webkit.org/changeset/269576
2020-12-15 Dmitry Bezhetskov <dbezhetskov@igalia.com>
[WASM-References] Add support for memory.fill
https://bugs.webkit.org/show_bug.cgi?id=219848
Reviewed by Yusuke Suzuki.
Added spec tests and unreachable tests for memory.fill.
* wasm.yaml:
* wasm/references-spec-tests/memory_fill.wast.js: Added.
* wasm/references/memory_fill_shared.js: Added.
(async test):
* wasm/references/table_instructions_parse_unreachable.js:
(invalidMemoryFillUnreachable):
* wasm/wasm.json:
2020-12-15 Dmitry Bezhetskov <dbezhetskov@igalia.com>
[WASM-References] Add support for type annotated select
https://bugs.webkit.org/show_bug.cgi?id=219595
Reviewed by Yusuke Suzuki.
Added new harness for testing ref-types proposal because it has
different API with core/spec. However, a few files are actually the
same I decided to repeat them to have an independent copy.
Added ref-types spec's tests for the new type annotated select
instruction:
https://github.com/WebAssembly/reference-types/blob/master/test/core/select.wast.
* wasm.yaml:
* wasm/ref-spec-harness.js: Added.
(import.string_appeared_here.then):
(test):
(promise_test):
(let.assert_unreached):
(let.console.log):
* wasm/ref-spec-harness/async_index.js: Added.
(let.testNum):
(uniqueTest):
(assertThrows):
(externref):
(is_externref):
(is_funcref):
(eq_externref):
(eq_funcref):
(binary):
(module):
(assert_invalid):
(instance):
(exports):
(then.):
(reinitializeRegistry.get promise_test):
(reinitializeRegistry):
(catch):
(assert_exhaustion):
(get const):
* wasm/ref-spec-harness/sync_index.js: Added.
(let.testNum):
(assertThrows):
(_assert):
(ValueResult):
(ErrorResult):
(Result.prototype.isError):
(externref):
(is_externref):
(is_funcref):
(eq_externref):
(eq_funcref):
(reinitializeRegistry.let.handler.get return):
(binary):
(module):
* wasm/ref-spec-harness/wasm-constants.js: Added.
(hostref):
(bytes):
(bytesWithHeader):
(makeSig):
(makeSig_v_x):
(makeSig_v_xx):
(makeSig_r_v):
(makeSig_r_x):
(makeSig_r_xx):
(assertTraps):
(assertWasmThrows):
* wasm/ref-spec-harness/wasm-module-builder.js: Added.
(Binary.prototype.emit_u8):
(Binary.prototype.emit_u16):
(Binary.prototype.emit_u32):
(Binary.prototype.emit_u32v):
(Binary.prototype.emit_bytes):
(Binary.prototype.emit_string):
(Binary.prototype.emit_header):
(Binary.prototype.emit_section):
(Binary):
(WasmFunctionBuilder):
(WasmFunctionBuilder.prototype.exportAs):
(WasmFunctionBuilder.prototype.exportFunc):
(WasmFunctionBuilder.prototype.addBody):
(WasmFunctionBuilder.prototype.addLocals):
(WasmFunctionBuilder.prototype.end):
(WasmGlobalBuilder):
(WasmGlobalBuilder.prototype.exportAs):
(WasmModuleBuilder):
(WasmModuleBuilder.prototype.addStart):
(WasmModuleBuilder.prototype.addMemory):
(WasmModuleBuilder.prototype.addExplicitSection):
(WasmModuleBuilder.prototype.stringToBytes):
(WasmModuleBuilder.prototype.addCustomSection):
(WasmModuleBuilder.prototype.addType):
(WasmModuleBuilder.prototype.addGlobal):
(WasmModuleBuilder.prototype.addFunction):
(WasmModuleBuilder.prototype.addImport):
(WasmModuleBuilder.prototype.addImportedGlobal):
(WasmModuleBuilder.prototype.addImportedMemory):
(WasmModuleBuilder.prototype.addImportedTable):
(WasmModuleBuilder.prototype.addExport):
(WasmModuleBuilder.prototype.addExportOfKind):
(WasmModuleBuilder.prototype.addDataSegment):
(WasmModuleBuilder.prototype.exportMemoryAs):
(WasmModuleBuilder.prototype.addFunctionTableInit):
(WasmModuleBuilder.prototype.appendToTable):
(WasmModuleBuilder.prototype.setFunctionTableLength):
(WasmModuleBuilder.prototype.toArray):
(WasmModuleBuilder.prototype.toBuffer):
(WasmModuleBuilder.prototype.instantiate):
* wasm/ref-spec-harness/wast.js: Added.
(normalize):
(require.else._registry.name):
(require):
(add_hex_char):
(add_char):
(string_with):
(list_of_opt):
(break_bytes.f):
(break_bytes):
(f):
(decls):
(func_type):
(limits):
(global_type):
(testop):
(relop):
(unop):
(binop):
(cvtop):
(oper):
(mem_size):
(extension):
(memop):
(storeop):
(var):
(constop):
(instr.else.switch.case.0.f):
(instr.else.switch.case.1.f.1):
(instr.else.switch.case.2.f.2):
(instr):
(func_with_name):
(func):
(start):
(table):
(memory):
(segment):
(elems):
(data):
(typedef):
(import_kind):
(import):
(export_kind):
(export):
(var_opt):
(is_func_import):
(is_table_import):
(is_memory_import):
(is_global_import):
(f.1):
(f.2):
(f.3):
(module_with_var_opt):
(module_):
(literal):
(definition):
(access):
(action):
(script):
(_registry.string_appeared_here):
(init):
(make_matrix):
(copy):
(append):
(sub):
(fill):
(blit):
(iter):
(map):
(iteri):
(mapi):
(to_list):
(list_length):
(of_list):
(fold_left):
(fold_right):
(maxson):
(trickle):
(bubble):
(trickleup):
(sort):
(merge):
(isortto):
(sortto):
(stable_sort):
(import_type):
(export_type):
(dims.n):
(dims.d.i):
(dims):
(map_file):
(create):
(of_array):
(slice_left):
(slice_right):
(slice_left_1):
(slice_right_1):
(slice_left_2):
(slice_right_2):
(array1_of_genarray):
(array2_of_genarray):
(array3_of_genarray):
(reshape_1):
(reshape_2):
(reshape_3):
(reshape):
(__):
(contents):
(to_bytes):
(nth):
(length):
(clear):
(reset):
(resize):
(add_substring):
(add_subbytes):
(add_string):
(add_bytes):
(add_buffer):
(add_channel):
(output_buffer):
(closing):
(advance_to_closing):
(advance_to_non_alpha):
(find_ident):
(add_substitute):
(make):
(to_string):
(of_string):
(sub_string):
(extend):
(blit_string):
(concat):
(cat):
(is_space):
(trim):
(escaped):
(uppercase):
(lowercase):
(apply1):
(capitalize):
(uncapitalize):
(index_rec):
(index):
(index_from):
(rindex_rec):
(rindex):
(rindex_from):
(contains_from):
(contains):
(rcontains_from):
(caml_array_sub):
(len):
(caml_array_concat):
(caml_make_vect):
(caml_array_blit):
(get if):
(caml_set_oo_id):
(get_id):
(caml_int32_float_of_bits):
(caml_int32_bits_of_float):
(caml_classify_float):
(caml_modf_float):
(caml_ldexp_float):
(caml_frexp_float):
(caml_copysign_float):
(caml_expm1_float):
(caml_hypot_float):
(caml_log10_float):
(caml_failwith):
(parse_digit):
(int_of_string_base):
(parse_sign_and_base):
(caml_int_of_string.aux):
(caml_int_of_string):
(caml_int64_of_string.aux):
(caml_int64_of_string):
(int_of_base):
(parse_format):
(finish_formatting):
(caml_format_int):
(caml_int64_format):
(caml_format_float):
(float_of_string):
(div):
(mod_):
(caml_bswap16):
(caml_int32_bswap):
(imul):
(neg_signed):
(not):
(eq):
(neg):
(lsl_):
(lsr_):
(asr_):
(is_zero):
(mul):
(swap):
(xor):
(or_):
(and_):
(ge):
(lt):
(gt):
(le):
(to_float):
(of_float):
(div_mod):
(compare):
(of_int32):
(to_int32):
(to_hex.aux):
(to_hex):
(discard_sign):
(float_of_bits):
(bits_of_float.to_nat):
(bits_of_float):
(get64):
(erase_rel):
(concat_fmtty):
(concat_fmt):
(create_char_set):
(add_in_char_set):
(rev_char_set):
(is_in_char_set):
(prec_of_prec_opt):
(param_format_of_ignored_format):
(buffer_check_size):
(buffer_add_char):
(buffer_add_string):
(buffer_contents):
(char_of_iconv):
(char_of_fconv):
(char_of_counter):
(print_char):
(set while.set var):
(set while.set else):
(set var):
(set else):
(set print_char):
(set if):
(bprint_padty):
(bprint_ignored_flag):
(bprint_pad_opt):
(bprint_padding):
(bprint_precision):
(bprint_iconv_flag):
(bprint_int_fmt):
(bprint_altint_fmt):
(bprint_fconv_flag):
(bprint_float_fmt):
(string_of_formatting_lit):
(string_of_formatting_gen):
(bprint_char_literal):
(bprint_string_literal):
(bprint_fmtty):
(int_of_custom_arity):
(bprint_fmt):
(string_of_fmt):
(symm):
(fmtty_rel_det):
(trans):
(fmtty_of_formatting_gen):
(fmtty_of_fmt):
(fmtty_of_custom):
(fmtty_of_padding_fmtty):
(fmtty_of_precision_fmtty):
(type_padding):
(type_padprec):
(type_ignored_param_one):
(type_format_gen):
(type_ignored_format_substitution):
(type_format):
(recast):
(fix_padding):
(fix_int_precision):
(string_to_caml_string):
(format_of_iconv):
(format_of_aconv):
(format_of_fconv):
(convert_int):
(convert_int32):
(convert_nativeint):
(convert_int64):
(else.is_valid):
(convert_float):
(format_caml_char):
(string_of_fmtty):
(else.switch.):
(else.switch.k.prime):
(else.switch.else.):
(else.switch.else.k.prime.1):
(make_printf):
(make_from_fmtty):
(make_invalid_arg):
(make_string_padding):
(make_int_padding_precision):
(make_custom):
(output_acc):
(bufput_acc):
(strput_acc):
(failwith_message.k):
(failwith_message):
(open_box_of_string.else.invalid_box):
(open_box_of_string.else.parse_spaces):
(open_box_of_string.else.parse_lword):
(open_box_of_string.else.parse_int):
(open_box_of_string):
(make_padding_fmt_ebb):
(make_precision_fmt_ebb):
(make_padprec_fmt_ebb):
(invalid_format_message):
(invalid_format_without):
(expected_character):
(compute_int_conv):
(incompatible_flag):
(parse_positive):
(parse_conv):
(parse_after_precision):
(else.parse_literal):
(parse_after_padding):
(parse_literal):
(parse_after_at):
(add_literal):
(parse_spaces):
(parse_integer):
(compute_float_conv):
(search_subformat_end):
(check_no_0):
(opt_of_pad):
(get_prec_opt):
(else.switch.case.99.char_format):
(else.switch.scan_format):
(parse_conversion):
(set_flag):
(parse_flags):
(is_int_base):
(counter_of_char):
(add_range):
(fail_single_percent):
(parse_char_set_after_char):
(parse_char_set_content):
(parse_char_set_start):
(parse_char_set):
(check_open_box):
(parse_tag):
(fmt_ebb_of_string):
(format_of_string_fmtty):
(format_of_string_format):
(caret):
(caml_ml_open_descriptor_in):
(caml_ml_open_descriptor_out):
(caml_ml_flush):
(node_std_output):
(caml_ml_output_char):
(caml_ml_input):
(caml_ml_input_char):
(caml_ml_out_channels_list):
(fail):
(caml_lex_array):
(caml_lex_engine):
(caml_lex_run_mem):
(caml_lex_run_tag):
(caml_new_lex_engine):
(caml_obj_dup):
(caml_obj_truncate):
(caml_lazy_make_forward):
(caml_update_dummy):
(caml_int_compare):
(caml_compare):
(caml_equal):
(caml_notequal):
(caml_greaterequal):
(caml_lessequal):
(else.aux):
(caml_get_public_method):
(caml_parse_engine):
(caml_set_parser_trace):
(js_string_of_char):
(caml_string_get):
(caml_create_string):
(caml_string_compare):
(caml_fill_string):
(caml_blit_string):
(caml_blit_bytes):
(bytes_of_string):
(bytes_to_string):
(caml_string_of_char_array):
(caml_is_printable):
(caml_string_get16):
(caml_string_get32):
(repeat):
(chr):
(app):
(js):
(curry_1):
(_1):
(js1):
(__1):
(curry_2):
(_2):
(js2):
(__2):
(curry_3):
(_3):
(js3):
(__3):
(curry_4):
(_4):
(js4):
(__4):
(curry_5):
(_5):
(js5):
(__5):
(curry_6):
(_6):
(js6):
(__6):
(curry_7):
(_7):
(js7):
(__7):
(curry_8):
(_8):
(js8):
(__8):
(stream):
(eos):
(skip):
(read):
(peek):
(string_of_byte):
(position):
(region):
(error):
(guard):
(get 1):
(get expect):
(get illegal):
(at):
(u32):
(u64):
(get require):
(vuN):
(get var):
(vsN):
(vu32):
(vs32):
(vs64):
(f32):
(f64):
(len32):
(string):
(opt):
(vec):
(sized):
(value_type):
(elem_type):
(stack_type):
(table_type):
(memory_type):
(mutability.get if):
(mutability):
(instr.get if):
(instr_block):
(const):
(id):
(section):
(type_section):
(import_kind.get if):
(import_section):
(func_section):
(table_section):
(memory_section):
(global):
(global_section):
(export_kind.get if):
(export_section):
(start_section):
(local):
(code):
(code_section):
(table_segment):
(elem_section):
(memory_segment):
(data_section):
(partial_arg.1):
(custom):
(custom_section):
(iterate):
(decode):
(patch):
(encode.u8):
(encode.u16):
(encode.u32):
(encode.vu64):
(encode.vs64):
(encode.vu32):
(encode.len):
(encode.bool):
(encode.string):
(encode.vec):
(encode.gap32):
(encode.patch_gap32):
(encode.value_type):
(encode.stack_type):
(encode.func_type):
(encode.limits):
(encode.table_type):
(encode.memory_type):
(encode.global_type):
(encode.memop):
(encode):
(encode.instr):
(encode.const):
(encode.section):
(encode.type_section):
(encode.import):
(encode.import_section):
(encode.func):
(encode.func_section):
(encode.table):
(encode.table_section):
(encode.memory):
(encode.memory_section):
(encode.global):
(encode.global_section):
(encode.export_kind):
(encode.export):
(encode.export_section):
(encode.start_section):
(encode.combine):
(encode.compress):
(encode.local):
(encode.code):
(encode.code_section):
(encode.segment):
(encode.table_segment):
(encode.elem_section):
(encode.memory_segment):
(encode.module_):
(Make.warn):
(Make.error):
(Make):
(print_nan_significand_digits):
(Make.of_bits):
(Make.to_bits):
(Make.is_nan):
(Make.canonicalize_nan):
(Make.determine_binary_nan):
(Make.determine_unary_nan):
(Make.binary):
(Make.unary):
(Make.add):
(Make.sub):
(Make.mul):
(Make.div):
(Make.sqrt):
(Make.ceil):
(Make.floor):
(Make.trunc):
(Make.nearest):
(Make.min):
(Make.max):
(Make.abs):
(Make.neg):
(Make.copysign):
(Make.eq):
(Make.ne):
(Make.lt):
(Make.gt):
(Make.le):
(Make.ge):
(Make.of_signless_string):
(Make.of_string):
(Make.to_string):
(add_queue):
(peek_queue):
(take_queue):
(pp_enqueue):
(pp_clear_queue):
(pp_output_string):
(break_new_line):
(break_same_line):
(pp_force_break_line):
(switch.add_tab):
(else.switch.find):
(format_pp_token):
(advance_left):
(enqueue_advance):
(enqueue_string_as):
(set_size):
(scan_push):
(pp_open_box_gen):
(pp_close_box):
(pp_open_tag):
(pp_close_tag):
(pp_set_print_tags):
(pp_set_mark_tags):
(pp_get_print_tags):
(pp_get_mark_tags):
(pp_set_tags):
(pp_get_formatter_tag_functions):
(pp_set_formatter_tag_functions):
(pp_rinit):
(pp_flush_queue):
(pp_print_as_size):
(pp_print_string):
(pp_print_int):
(pp_print_float):
(pp_print_bool):
(pp_open_hbox):
(pp_open_vbox):
(pp_open_hvbox):
(pp_open_hovbox):
(pp_open_box):
(pp_print_newline):
(pp_print_flush):
(pp_force_newline):
(pp_print_if_newline):
(pp_print_break):
(pp_print_space):
(pp_print_cut):
(pp_open_tbox):
(pp_close_tbox):
(pp_print_tbreak):
(pp_print_tab):
(pp_set_tab):
(pp_print_list):
(flush):
(pp_print_text):
(pp_set_max_boxes):
(pp_get_max_boxes):
(pp_over_max_boxes):
(pp_get_ellipsis_text):
(pp_limit):
(pp_set_max_indent):
(pp_get_max_indent):
(pp_set_margin):
(pp_get_margin):
(pp_set_formatter_out_functions):
(pp_get_formatter_out_functions):
(pp_set_formatter_output_functions):
(pp_get_formatter_output_functions):
(pp_set_all_formatter_output_functions):
(pp_get_all_formatter_output_functions):
(display_newline):
(display_blanks):
(state.16):
(state.17):
(state.18):
(state.19):
(pp_set_formatter_out_channel):
(default_pp_mark_open_tag):
(default_pp_mark_close_tag):
(default_pp_print_open_tag):
(default_pp_print_close_tag):
(pp_make_formatter):
(ppf.18):
(ppf.19):
(make_formatter):
(formatter_of_out_channel):
(formatter_of_buffer):
(flush_str_formatter):
(flush_buf_formatter):
(open_hbox):
(open_vbox):
(open_hvbox):
(open_hovbox):
(open_box):
(close_box):
(open_tag):
(close_tag):
(print_as):
(print_string):
(print_int):
(print_float):
(print_bool):
(print_cut):
(print_space):
(force_newline):
(print_flush):
(print_newline):
(print_if_newline):
(open_tbox):
(close_tbox):
(print_tbreak):
(set_tab):
(print_tab):
(set_margin):
(get_margin):
(set_max_indent):
(get_max_indent):
(set_max_boxes):
(get_max_boxes):
(over_max_boxes):
(set_ellipsis_text):
(get_ellipsis_text):
(set_formatter_out_channel):
(set_formatter_out_functions):
(get_formatter_out_functions):
(set_formatter_output_functions):
(get_formatter_output_functions):
(set_all_formatter_output_functions):
(get_all_formatter_output_functions):
(set_formatter_tag_functions):
(get_formatter_tag_functions):
(set_print_tags):
(get_print_tags):
(set_mark_tags):
(get_mark_tags):
(set_tags):
(compute_tag):
(output_formatting_lit):
(kfprintf):
(ikfprintf):
(fprintf):
(ifprintf):
(printf):
(eprintf):
(k.prime):
(ksprintf):
(sprintf):
(asprintf.k.prime):
(asprintf):
(k):
(bprintf):
(succ):
(pred):
(abs):
(lognot):
(Make.cmp_u):
(Make.divrem_u):
(Make.div_s):
(Make.div_u):
(Make.rem_s):
(Make.rem_u):
(Make.shift):
(Make.shl):
(Make.shr_s):
(Make.shr_u):
(Make.clamp_rotate_count):
(Make.rotl):
(Make.rotr):
(Make.loop):
(Make.clz):
(Make.ctz):
(Make.popcnt):
(Make.eqz):
(Make.lt_u):
(Make.le_u):
(Make.gt_u):
(Make.ge_u):
(Make.of_int_u):
(Make.to_string_u):
(Make.require):
(Make.dec_digit):
(Make.hex_digit):
(Make.parse_int):
(Make.of_string_s):
(Make.of_string_u):
(convert_pos):
(error_nest):
(text):
(intop):
(floatop):
(numop):
(memsz):
(ext):
(token.else.switch):
(token.else.switch.):
(token):
(__ocaml_lex_comment_rec):
(engine):
(new_engine):
(from_function):
(from_channel):
(from_string):
(lexeme):
(sub_lexeme):
(sub_lexeme_opt):
(sub_lexeme_char):
(sub_lexeme_char_opt):
(lexeme_char):
(lexeme_start):
(lexeme_end):
(lexeme_start_p):
(lexeme_end_p):
(new_line):
(flush_input):
(take):
(drop):
(last):
(split_last):
(index_of):
(index_of_int32):
(dim):
(set 1):
(get 2):
(log2):
(is_power_of_two):
(loop):
(breakup):
(hd):
(tl):
(rev_append):
(rev):
(flatten):
(rev_map):
(map2):
(rev_map2):
(iter2):
(fold_left2):
(fold_right2):
(for_all):
(exists):
(for_all2):
(exists2):
(mem):
(memq):
(assoc):
(assq):
(mem_assoc):
(mem_assq):
(remove_assoc):
(remove_assq):
(find):
(find_all):
(partition):
(split):
(combine):
(chop):
(rev_sort):
(sort_uniq):
(Make.height):
(Make.create):
(Make.singleton):
(Make.bal):
(Make.is_empty):
(Make.find):
(Make.mem):
(Make.min_binding):
(Make.max_binding):
(Make.remove_min_binding):
(Make.remove):
(Make.iter):
(Make.map):
(Make.mapi):
(Make.fold):
(Make.for_all):
(Make.exists):
(Make.add_min_binding):
(Make.add_max_binding):
(Make.join):
(Make.concat):
(Make.concat_or_join):
(Make.split):
(Make.merge):
(Make.filter):
(Make.partition):
(Make.cons_enum):
(Make.compare):
(Make.equal):
(Make.cardinal):
(Make.bindings_aux):
(Make.bindings):
(double_field):
(set_double_field):
(marshal):
(unmarshal):
(extension_slot):
(extension_name):
(extension_id):
(i32_const):
(i64_const):
(f32_const):
(f64_const):
(block):
(br):
(br_if):
(br_table):
(if_):
(call):
(call_indirect):
(get_local):
(set_local):
(tee_local):
(get_global):
(set_global):
(i32_load):
(i64_load):
(f32_load):
(f64_load):
(i32_load8_s):
(i32_load8_u):
(i32_load16_s):
(i32_load16_u):
(i64_load8_s):
(i64_load8_u):
(i64_load16_s):
(i64_load16_u):
(i64_load32_s):
(i64_load32_u):
(i32_store):
(i64_store):
(f32_store):
(f64_store):
(i32_store8):
(i32_store16):
(i64_store8):
(i64_store16):
(i64_store32):
(parse):
(string_to):
(string_to_script):
(string_to_module):
(parse_error):
(position_to_pos):
(positions_to_region):
(ati):
(nat):
(nat32):
(empty_context):
(enter_func):
(type_):
(lookup):
(label):
(anon_type):
(bind):
(bind_func):
(bind_local):
(bind_global):
(bind_table):
(bind_memory):
(anon):
(anon_func):
(anon_locals):
(anon_global):
(anon_table):
(anon_memory):
(anon_label):
(explicit_sig):
(inline_type):
(yyact):
(script1):
(module1):
(grow_stacks):
(clear_parser):
(current_lookahead_fun):
(catch.else.current_lookahead_fun.0):
(yyparse):
(peek_val):
(symbol_start_pos):
(symbol_end_pos):
(rhs_start_pos):
(rhs_end_pos):
(symbol_start):
(symbol_end):
(rhs_start):
(rhs_end):
(is_current_lookahead):
(failwith):
(invalid_arg):
(min):
(max):
(lnot):
(char_of_int):
(string_of_bool):
(bool_of_string):
(string_of_int):
(valid_float_lexem):
(string_of_float):
(open_out_gen):
(open_out):
(open_out_bin):
(flush_all):
(output_bytes):
(output_string):
(output):
(output_substring):
(output_value):
(close_out):
(close_out_noerr):
(open_in_gen):
(open_in):
(open_in_bin):
(input):
(else.r):
(unsafe_really_input):
(really_input):
(really_input_string):
(input_line.build_result):
(input_line.n):
(input_line.scan):
(input_line):
(close_in_noerr):
(print_bytes):
(print_endline):
(prerr_char):
(prerr_string):
(prerr_bytes):
(prerr_int):
(prerr_float):
(prerr_endline):
(prerr_newline):
(read_line):
(read_int):
(read_float):
(string_of_format):
(at_exit.exit_function.0):
(at_exit):
(do_at_exit):
(exit):
(output_binary_int):
(seek_out):
(pos_out):
(out_channel_length):
(set_binary_mode_out):
(input_binary_int):
(input_value):
(seek_in):
(pos_in):
(in_channel_length):
(close_in):
(set_binary_mode_in):
(LargeFile_000):
(LargeFile_001):
(LargeFile_002):
(LargeFile_003):
(LargeFile_004):
(LargeFile_005):
(kbprintf):
(plus):
(pp):
(print):
(string_of_pos):
(string_of_region):
(escaped.needs_escape):
(set_signal):
(catch_break):
(size):
(string_of_value_type):
(string_of_value_types):
(string_of_elem_type):
(string_of_limits):
(string_of_table_type):
(string_of_global_type):
(string_of_stack_type):
(string_of_func_type):
(type_of):
(default_value):
(value_of_bool):
(string_of_values):
(to_value):
(of_value):
(g):
(binary):
(bytes):
* wasm/references-spec-tests/select.wast.js: Added.
* wasm/references/table_instructions_parse_unreachable.js:
(invalidAnnotatedSelectUnreachable):
* wasm/wasm.json:
2020-12-11 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Update test262
https://bugs.webkit.org/show_bug.cgi?id=219794
Reviewed by Mark Lam.
* test262/expectations.yaml:
* test262/latest-changes-summary.txt:
* test262/test/built-ins/Array/prototype/reverse/array-has-one-entry.js: Added.
* test262/test/built-ins/Array/prototype/sort/bug_596_1.js:
* test262/test/built-ins/Math/max/Math.max_each-element-coerced.js: Added.
(const.n.valueOf):
* test262/test/built-ins/Math/min/Math.min_each-element-coerced.js: Added.
(const.n.valueOf):
* test262/test/built-ins/String/prototype/at/prop-desc.js:
* test262/test/built-ins/TypedArray/prototype/at/prop-desc.js:
* test262/test/built-ins/TypedArray/prototype/fill/BigInt/fill-values-non-numeric-throw.js:
* test262/test/built-ins/TypedArray/prototype/fill/BigInt/fill-values-non-numeric.js:
* test262/test/built-ins/TypedArray/prototype/fill/BigInt/fill-values-symbol-throws.js:
* test262/test/built-ins/TypedArray/prototype/fill/BigInt/return-abrupt-from-set-value.js:
* test262/test/built-ins/TypedArray/prototype/fill/fill-values-non-numeric.js:
* test262/test/built-ins/TypedArray/prototype/fill/fill-values-symbol-throws.js:
* test262/test/built-ins/TypedArray/prototype/fill/return-abrupt-from-set-value.js:
* test262/test/built-ins/TypedArray/prototype/includes/detached-buffer-tointeger.js:
(testWithTypedArrayConstructors.valueOf):
(testWithTypedArrayConstructors):
(testWithTypedArrayConstructors.detachAndReturnIndex): Deleted.
* test262/test/built-ins/TypedArray/prototype/map/return-new-typedarray-conversion-operation-consistent-nan.js:
* test262/test/built-ins/TypedArray/prototype/map/return-new-typedarray-conversion-operation.js:
* test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/bigint-tobigint64.js:
* test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/bigint-tobiguint64.js:
* test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/boolean-tobigint.js:
* test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/null-tobigint.js:
* test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/number-tobigint.js:
* test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/string-nan-tobigint.js:
* test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/string-tobigint.js:
* test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/symbol-tobigint.js:
* test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/throws-setting-obj-to-primitive-typeerror.js:
* test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/throws-setting-obj-to-primitive.js:
* test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/throws-setting-obj-tostring.js:
* test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/throws-setting-obj-valueof-typeerror.js:
* test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/throws-setting-obj-valueof.js:
* test262/test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/undefined-tobigint.js:
* test262/test/built-ins/TypedArrayConstructors/ctors/object-arg/conversion-operation-consistent-nan.js:
* test262/test/built-ins/TypedArrayConstructors/ctors/object-arg/conversion-operation.js:
* test262/test/built-ins/TypedArrayConstructors/ctors/object-arg/throws-setting-obj-to-primitive-typeerror.js:
* test262/test/built-ins/TypedArrayConstructors/ctors/object-arg/throws-setting-obj-to-primitive.js:
* test262/test/built-ins/TypedArrayConstructors/ctors/object-arg/throws-setting-obj-tostring.js:
* test262/test/built-ins/TypedArrayConstructors/ctors/object-arg/throws-setting-obj-valueof-typeerror.js:
* test262/test/built-ins/TypedArrayConstructors/ctors/object-arg/throws-setting-obj-valueof.js:
* test262/test/built-ins/TypedArrayConstructors/from/BigInt/source-value-is-symbol-throws.js:
* test262/test/built-ins/TypedArrayConstructors/from/nan-conversion.js:
* test262/test/built-ins/TypedArrayConstructors/from/source-value-is-symbol-throws.js:
* test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/desc-value-throws.js:
* test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/detached-buffer-realm.js:
* test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/detached-buffer.js:
* test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/set-value.js:
* test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/tonumber-value-detached-buffer.js:
* test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/conversion-operation.js:
* test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/desc-value-throws.js:
* test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/detached-buffer-realm.js:
* test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/detached-buffer.js:
* test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/set-value.js:
* test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/tonumber-value-detached-buffer.js:
* test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/detached-buffer-realm.js:
* test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/indexed-value.js:
* test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/key-is-minus-zero.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/key-is-not-integer.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/key-is-out-of-bounds.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/tonumber-value-detached-buffer.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/tonumber-value-throws.js:
* test262/test/built-ins/TypedArrayConstructors/internals/Set/conversion-operation-consistent-nan.js:
* test262/test/built-ins/TypedArrayConstructors/internals/Set/conversion-operation.js:
* test262/test/built-ins/TypedArrayConstructors/internals/Set/detached-buffer-realm.js:
* test262/test/built-ins/TypedArrayConstructors/internals/Set/indexed-value.js:
* test262/test/built-ins/TypedArrayConstructors/internals/Set/key-is-minus-zero.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/Set/key-is-not-integer.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/Set/key-is-out-of-bounds.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/Set/tonumber-value-detached-buffer.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/Set/tonumber-value-throws.js:
* test262/test/built-ins/TypedArrayConstructors/of/BigInt/argument-is-symbol-throws.js:
* test262/test/built-ins/TypedArrayConstructors/of/BigInt/new-instance.js:
* test262/test/built-ins/TypedArrayConstructors/of/argument-is-symbol-throws.js:
* test262/test/built-ins/TypedArrayConstructors/of/nan-conversion.js:
* test262/test/built-ins/TypedArrayConstructors/of/new-instance.js:
* test262/test/built-ins/parseInt/S15.1.2.2_A2_T2.js:
* test262/test/intl402/DateTimeFormat/prototype/formatRange/date-x-greater-than-y-throws.js:
* test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/date-x-greater-than-y-throws.js:
* test262/test/language/arguments-object/mapped/enumerable-configurable-accessor-descriptor.js: Added.
(set _v):
* test262/test/language/arguments-object/mapped/nonconfigurable-descriptors-define-failure.js: Added.
(get 3):
* test262/test/language/arguments-object/mapped/writable-enumerable-configurable-descriptor.js: Added.
* test262/test/language/destructuring/binding/syntax/destructuring-array-parameters-function-arguments-length.js: Added.
(assert.sameValue):
(assert.sameValue.async a):
* test262/test/language/destructuring/binding/syntax/destructuring-object-parameters-function-arguments-length.js: Added.
(assert.sameValue):
* test262/test/language/expressions/async-function/named-reassign-fn-name-in-body-in-arrow.js: Added.
(let.ref.async BindingIdentifier):
(let.ref):
* test262/test/language/expressions/async-function/named-reassign-fn-name-in-body-in-eval.js: Added.
(let.ref.async BindingIdentifier):
(let.ref):
* test262/test/language/expressions/async-function/named-reassign-fn-name-in-body.js: Added.
(let.ref.async BindingIdentifier):
(let.ref):
* test262/test/language/expressions/async-function/named-strict-error-reassign-fn-name-in-body-in-arrow.js: Added.
(let.ref.async BindingIdentifier):
(let.ref):
* test262/test/language/expressions/async-function/named-strict-error-reassign-fn-name-in-body-in-eval.js: Added.
(let.ref.async BindingIdentifier):
(let.ref):
* test262/test/language/expressions/async-function/named-strict-error-reassign-fn-name-in-body.js: Added.
(let.ref.async BindingIdentifier):
(let.ref):
* test262/test/language/expressions/async-generator/named-no-strict-reassign-fn-name-in-body-in-arrow.js: Added.
(let.ref.async BindingIdentifier):
(let.ref):
* test262/test/language/expressions/async-generator/named-no-strict-reassign-fn-name-in-body-in-eval.js: Added.
(let.ref.async BindingIdentifier):
(let.ref):
* test262/test/language/expressions/async-generator/named-no-strict-reassign-fn-name-in-body.js: Added.
(let.ref.async BindingIdentifier):
(let.ref):
* test262/test/language/expressions/async-generator/named-strict-error-reassign-fn-name-in-body-in-arrow.js: Added.
(let.ref.async BindingIdentifier):
(let.ref):
* test262/test/language/expressions/async-generator/named-strict-error-reassign-fn-name-in-body-in-eval.js: Added.
(let.ref.async BindingIdentifier):
(let.ref):
* test262/test/language/expressions/async-generator/named-strict-error-reassign-fn-name-in-body.js: Added.
(let.ref.async BindingIdentifier):
(let.ref):
* test262/test/language/expressions/function/named-no-strict-reassign-fn-name-in-body-in-arrow.js: Added.
(let.ref):
* test262/test/language/expressions/function/named-no-strict-reassign-fn-name-in-body-in-eval.js: Added.
(let.ref):
* test262/test/language/expressions/function/named-no-strict-reassign-fn-name-in-body.js: Added.
(let.ref):
* test262/test/language/expressions/function/named-strict-error-reassign-fn-name-in-body-in-arrow.js: Added.
(let.ref):
* test262/test/language/expressions/function/named-strict-error-reassign-fn-name-in-body-in-eval.js: Added.
(let.ref):
* test262/test/language/expressions/function/named-strict-error-reassign-fn-name-in-body.js: Added.
(let.ref):
* test262/test/language/expressions/generators/named-no-strict-reassign-fn-name-in-body-in-arrow.js: Added.
(let.ref):
* test262/test/language/expressions/generators/named-no-strict-reassign-fn-name-in-body-in-eval.js: Added.
(let.ref):
* test262/test/language/expressions/generators/named-no-strict-reassign-fn-name-in-body.js: Added.
(let.ref):
* test262/test/language/expressions/generators/named-strict-error-reassign-fn-name-in-body-in-arrow.js: Added.
(let.ref):
* test262/test/language/expressions/generators/named-strict-error-reassign-fn-name-in-body-in-eval.js: Added.
(let.ref):
* test262/test/language/expressions/generators/named-strict-error-reassign-fn-name-in-body.js: Added.
(let.ref):
* test262/test262-Revision.txt:
2020-12-11 Dmitry Bezhetskov <dbezhetskov@igalia.com>
[WASM-References] Add table.init
https://bugs.webkit.org/show_bug.cgi?id=219297
Reviewed by Yusuke Suzuki.
Added reference types spec tests for element section, table.init
and elem.drop:
https://github.com/WebAssembly/reference-types/blob/master/test/core/elem.wast,
https://github.com/WebAssembly/reference-types/blob/master/test/core/table_init.wast.
Added tests for checking table instructions immediates when they are unreachable.
* wasm.yaml:
* wasm/references-spec-tests/elem.wast.js: Added.
* wasm/references-spec-tests/ref_is_null.js: Removed.
* wasm/references-spec-tests/ref_is_null.wast.js: Added.
* wasm/references-spec-tests/ref_null.js: Removed.
* wasm/references-spec-tests/ref_null.wast.js: Added.
* wasm/references-spec-tests/table_copy.wast.js: Renamed from JSTests/wasm/references-spec-tests/table_copy.js.
* wasm/references-spec-tests/table_init.wast.js: Added.
* wasm/spec-harness/wasm-constants.js:
(hostref):
* wasm/wasm.json:
2020-12-10 Alexey Shvayka <shvaikalesh@gmail.com>
Align [[DefineOwnProperty]] method of mapped arguments object with the spec
https://bugs.webkit.org/show_bug.cgi?id=219750
Reviewed by Yusuke Suzuki.
* test262/expectations.yaml: Mark 5 test cases as passing.
2020-12-09 Michael Catanzaro <mcatanzaro@gnome.org>
stress/intl-datetimeformat-formatrange.js and stress/intl-datetimeformat-formatrange-relevant-extensions.js fail with ICU 65.1
https://bugs.webkit.org/show_bug.cgi?id=218763
<rdar://problem/71257288>
Reviewed by Yusuke Suzuki.
There are strange differences between the output of similar ICU versions on macOS compared
to Linux, for reasons unknown. Make these tests more robust to different output by stripping
all "thin space" characters from the actual results and replacing them with regular spaces.
The thin space characters are only used by older versions of ICU, but it seems that the
versions in which it is used either differ between macOS and Linux, or else change within a
particular major version, so it's hard to use ICU version checks for this.
* stress/intl-datetimeformat-formatrange-relevant-extensions-ja.js:
(shouldBe):
* stress/intl-datetimeformat-formatrange-relevant-extensions.js:
(shouldBe):
* stress/intl-datetimeformat-formatrange-should-not-handle-gregorian-change-date.js:
* stress/intl-datetimeformat-formatrange.js:
(shouldBe):
(test):
* stress/intl-datetimeformat-formatrangetoparts-relevant-extensions-ja.js:
(shouldBe):
* stress/intl-datetimeformat-formatrangetoparts-relevant-extensions.js:
(shouldBe):
* stress/intl-datetimeformat-formatrangetoparts-should-not-handle-gregorian-change-date.js:
* stress/intl-datetimeformat-formatrangetoparts.js:
(shouldBe):
2020-12-08 Ross Kirsling <ross.kirsling@sony.com>
Align %TypedArray% constructor behavior with spec
https://bugs.webkit.org/show_bug.cgi?id=219527
Reviewed by Yusuke Suzuki.
* test262/expectations.yaml:
Mark 40 test cases as passing.
* wasm/fuzz/memory.js:
* wasm/js-api/test_Data.js:
Fix non-conforming typed array usage.
2020-12-07 Dmitry Bezhetskov <dbezhetskov@igalia.com>
[WASM-References] Add support for table.copy
https://bugs.webkit.org/show_bug.cgi?id=219427
Reviewed by Yusuke Suzuki.
Add support for table.copy from reference types proposal:
https://webassembly.github.io/reference-types/core/syntax/instructions.html#table-instructions.
Add the tests from above spec.
* wasm/references-spec-tests/table_copy.js: Added.
(hostref):
(is_hostref):
(is_funcref):
(eq_ref):
(let.handler.get target):
(register):
(module):
(instance):
(call):
(get instance):
(exports):
(run):
(assert_malformed):
(assert_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(try.f):
(catch):
(assert_exhaustion):
(assert_return):
(assert_return_canonical_nan):
(assert_return_arithmetic_nan):
(assert_return_ref):
(assert_return_func):
* wasm/references/element_parsing.js:
* wasm/wasm.json:
2020-12-06 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] get / set for object literal and class should not be escaped
https://bugs.webkit.org/show_bug.cgi?id=219576
Reviewed by Alexey Shvayka.
* stress/escaped-getter-setter-in-class.js: Added.
(testSyntaxError):
(testSyntaxError.String.raw.A.prototype.u0067.u0065.u0074.m):
(testSyntaxError.String.raw.A):
(testSyntaxError.String.raw.A.prototype.u0073.u0065.u0074.m):
* stress/escaped-getter-setter-in-object.js: Added.
(testSyntaxError):
(testSyntaxError.String.raw.u0067.u0065.u0074.m):
(testSyntaxError.String.raw.u0073.u0065.u0074.m):
* test262/expectations.yaml:
2020-12-05 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Accept escaped keywords for class and object property names
https://bugs.webkit.org/show_bug.cgi?id=219575
Reviewed by Alexey Shvayka.
* stress/syntax-error-if-escaped-keyword-used-as-target-object-pattern.js: Added.
(testSyntaxError):
* test262/expectations.yaml:
2020-12-02 Ross Kirsling <ross.kirsling@sony.com>
%TypedArray%#slice shouldn't care about source buffer detachment if there's nothing to copy
https://bugs.webkit.org/show_bug.cgi?id=219451
Reviewed by Yusuke Suzuki.
* test262/expectations.yaml:
Mark four test cases as passing.
2020-12-02 Dmitry Bezhetskov <dbezhetskov@igalia.com>
[WASM-References] Add support for active mods in element section
https://bugs.webkit.org/show_bug.cgi?id=219192
Reviewed by Yusuke Suzuki.
Fix builder dsl to produce the right element section.
It produces correct wasm code for the previous spec and for the ref-types spec because the core spec is binary compatible with the ref-types.
https://webassembly.github.io/reference-types/core/binary/modules.html#element-section.
Added basic tests for the element section.
* wasm/Builder.js:
(export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):
* wasm/Builder_WebAssemblyBinary.js:
(const.emitters.Element):
* wasm/references-spec-tests/ref_null.js:
(module):
* wasm/references/element_active_mod.js: Added.
(module):
(basicTest):
(refNullExternInElemsSection):
* wasm/references/element_parsing.js:
* wasm/references/multitable.js:
2020-11-30 Sergey Rubanov <chi187@gmail.com>
Add support for the Wasm i64 sign-extension-ops proposal
https://bugs.webkit.org/show_bug.cgi?id=218990
Reviewed by Yusuke Suzuki.
* wasm/spec-tests/i64.wast.js:
* wasm/wasm.json:
2020-11-28 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewd, annotate stress/bounds-checking-in-cold-loop.js with memoryLimited
* stress/bounds-checking-in-cold-loop.js:
2020-11-27 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Use ARM atomic ops in wasm
https://bugs.webkit.org/show_bug.cgi?id=219281
Reviewed by Filip Pizlo.
* wasm/threads-spec-tests/atomic-signed.wast.js:
* wasm/threads-spec-tests/resources/atomic-signed.wast:
2020-11-26 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Add wasm atomics instructions
https://bugs.webkit.org/show_bug.cgi?id=218954
Reviewed by Filip Pizlo.
* wasm.yaml:
* wasm/Builder.js:
(const._importMemoryContinuation):
(export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):
* wasm/Builder_WebAssemblyBinary.js:
(const.putResizableLimits):
(const.emitters.Import):
(const.emitters.Memory):
* wasm/function-tests/trap-load-shared.js:
* wasm/function-tests/trap-store-shared.js:
* wasm/stress/atomic-decrement.js: Added.
(i.agent.start.import.string_appeared_here.then):
(i.async error):
* wasm/stress/atomic-increment.js: Added.
(i.agent.start.import.string_appeared_here.then):
(i.async error):
* wasm/stress/memory-fence.js: Added.
(async try):
(catch):
* wasm/threads-spec-tests/atomic-signed.wast.js: Added.
* wasm/threads-spec-tests/atomic.wast.js: Added.
* wasm/threads-spec-tests/memory.wast.js: Added.
* wasm/threads-spec-tests/resources/atomic-signed.wast: Added.
* wasm/wasm.json:
2020-11-19 Xan López <xan@igalia.com>
[JSC] Add support for static private class fields
https://bugs.webkit.org/show_bug.cgi?id=214297
Reviewed by Yusuke Suzuki.
Copy V8 tests for static private fields and add the test262
flag. Also add a couple more of our own tests for the sake of
completeness.
* stress/class-fields-static-private-harmony.js: Added, with a couple additional tests.
* stress/resources/harmony-support.js:
(assertDoesNotThrow): added.
* test262/config.yaml:
2020-11-18 Dmitry Bezhetskov <dbezhetskov@igalia.com>
[WASM-References] Remove subtyping rule for externref and funcref
https://bugs.webkit.org/show_bug.cgi?id=218885
Reviewed by Yusuke Suzuki.
Make funcref is not a subtype of externref.
The spec: https://webassembly.github.io/reference-types/core/
The PR for removing subtype from the spec:
https://github.com/WebAssembly/reference-types/pull/87.
* wasm/references/func_ref.js:
(assert.eq.instance.exports.fix.fun):
(assert.eq.instance.exports.fix):
* wasm/references/validation.js:
2020-11-18 Ross Kirsling <ross.kirsling@sony.com>
[JSC] Reinstate String#at
https://bugs.webkit.org/show_bug.cgi?id=219124
Reviewed by Yusuke Suzuki.
* stress/at-method.js: Re-add tests.
* test262/config.yaml: Re-enable feature.
* test262/expectations.yaml:
"at/prop-desc.js" failures are due to a typo; will be fixed in https://github.com/tc39/test262/pull/2908.
2020-11-17 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Improve Wasm binary test coverage
https://bugs.webkit.org/show_bug.cgi?id=204843
Reviewed by Darin Adler.
* wasm/function-tests/grow-memory.js:
(binaryShouldNotParse):
* wasm/spec-tests/binary-leb128.wast.js:
* wasm/spec-tests/binary.wast.js:
* wasm/wasm.json:
2020-11-18 Ross Kirsling <ross.kirsling@sony.com>
Update test262 (2020.11.18)
https://bugs.webkit.org/show_bug.cgi?id=219109
Reviewed by Yusuke Suzuki.
* test262/config.yaml:
* test262/expectations.yaml:
* test262/latest-changes-summary.txt:
* test262/test/:
* test262/test262-Revision.txt:
2020-11-18 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, relanding r269940
https://bugs.webkit.org/show_bug.cgi?id=219076
* wasm/function-tests/trap-load-shared.js: Added.
(wasmFrameCountFromError):
* wasm/function-tests/trap-store-shared.js: Added.
* wasm/js-api/test_memory.js:
(binaryShouldNotParse):
* wasm/stress/shared-memory-errors.js: Added.
(assert.throws):
* wasm/stress/shared-wasm-memory-buffer.js: Added.
2020-11-18 Xan Lopez <xan@igalia.com>
[JSC] Import V8 private instance fields tests
https://bugs.webkit.org/show_bug.cgi?id=219075
Reviewed by Yusuke Suzuki.
* stress/class-fields-private-harmony.js: Added.
2020-11-18 Commit Queue <commit-queue@webkit.org>
Unreviewed, reverting r269940.
https://bugs.webkit.org/show_bug.cgi?id=219076
caused seemingly-infinite build time regression
Reverted changeset:
"[JSC] Implement WebAssembly.Memory with shared"
https://bugs.webkit.org/show_bug.cgi?id=218693
https://trac.webkit.org/changeset/269940
2020-11-16 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Implement WebAssembly.Memory with shared
https://bugs.webkit.org/show_bug.cgi?id=218693
Reviewed by Saam Barati.
* wasm/function-tests/trap-load-shared.js: Added.
(wasmFrameCountFromError):
* wasm/function-tests/trap-store-shared.js: Added.
* wasm/js-api/test_memory.js:
(binaryShouldNotParse):
* wasm/stress/shared-memory-errors.js: Added.
(assert.throws):
* wasm/stress/shared-wasm-memory-buffer.js: Added.
2020-11-17 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Enable static public class fields
https://bugs.webkit.org/show_bug.cgi?id=219058
Reviewed by Saam Barati.
* stress/big-int-as-property-name.js:
* stress/class-fields-bytecode-cache.js:
* stress/class-fields-computed-to-property-key.js:
* stress/class-fields-function-name.js:
* stress/class-fields-harmony.js:
* stress/class-fields-private-use-eval.js:
* stress/class-fields-proxy-define-property.js:
* stress/class-fields-stress-instance.js:
* stress/class-fields-to-property-key-const-string-ftl.js:
* stress/class-fields-to-property-key-const-symbol-ftl.js:
* stress/class-fields-to-property-key-slow-object-tostring-ftl.js:
* stress/class-fields-to-property-key-slow-object-valueof-ftl.js:
* stress/class-fields-to-property-key-string-object-ftl.js:
* stress/class-fields-to-property-key-string-or-string-object-ftl.js:
* stress/class-fields-with-special-names.js:
* stress/generator-syntax.js:
* stress/method-name.js:
* stress/private-name-access-in-computed-property.js:
* test262/config.yaml:
2020-11-17 Sergey Rubanov <chi187@gmail.com>
Add support for the Wasm i32 sign-extension-ops proposal
https://bugs.webkit.org/show_bug.cgi?id=210302
Reviewed by Yusuke Suzuki.
* wasm/spec-tests/i32.wast.js:
* wasm/spec-tests/i64.wast.js:
* wasm/wasm.json:
2020-11-17 Xan López <xan@igalia.com>
[JSC] Add support for static public class fields
https://bugs.webkit.org/show_bug.cgi?id=194095
Reviewed by Yusuke Suzuki.
Enable static public fields, and import new stress tests from the
V8 project. Also split the support code into a separate file
(harmony-support.js) to avoid duplication.
* test262/config.yaml: enable static public fields.
* stress/class-fields-harmony.js: use the new support file.
* stress/class-fields-static-harmony.js: Added.
* stress/resources/harmony-support.js: Added.
2020-11-15 Sergey Rubanov <chi187@gmail.com>
[JSC] Update wasm spec tests
https://bugs.webkit.org/show_bug.cgi?id=218940
Reviewed by Yusuke Suzuki.
Spec test commit revision number: 5475b7015684a07ba69762f8438e3bcff2647686
* wasm.yaml:
* wasm/spec-tests/address.wast.js:
* wasm/spec-tests/binary-leb128.wast.js:
* wasm/spec-tests/binary.wast.js:
* wasm/spec-tests/block.wast.js:
* wasm/spec-tests/br.wast.js:
* wasm/spec-tests/break-drop.wast.js: Removed.
* wasm/spec-tests/call.wast.js:
* wasm/spec-tests/call_indirect.wast.js:
* wasm/spec-tests/const.wast.js:
* wasm/spec-tests/conversions.wast.js:
* wasm/spec-tests/custom_section.wast.js: Removed.
* wasm/spec-tests/data.wast.js:
* wasm/spec-tests/f32.wast.js:
* wasm/spec-tests/f64.wast.js:
* wasm/spec-tests/fac.wast.js:
* wasm/spec-tests/float_exprs.wast.js:
* wasm/spec-tests/float_misc.wast.js:
* wasm/spec-tests/func.wast.js:
* wasm/spec-tests/get_local.wast.js: Removed.
* wasm/spec-tests/global.wast.js: Renamed from JSTests/wasm/spec-tests/globals.wast.js.
* wasm/spec-tests/harness/async_index.js: Added.
(let.testNum):
(uniqueTest):
(assertThrows):
(binary):
(module):
(assert_invalid):
(instance):
(exports):
(reinitializeRegistry.get promise_test):
(reinitializeRegistry):
(catch):
(assert_exhaustion):
(get const):
* wasm/spec-tests/harness/sync_index.js: Added.
(let.testNum):
(assertThrows):
(_assert):
(ValueResult):
(ErrorResult):
(Result.prototype.isError):
(reinitializeRegistry.let.handler.get return):
(binary):
(module):
* wasm/spec-tests/i32.wast.js:
* wasm/spec-tests/i64.wast.js:
* wasm/spec-tests/if.wast.js:
* wasm/spec-tests/imports.wast.js:
* wasm/spec-tests/jsapi.js: Removed.
* wasm/spec-tests/loop.wast.js:
* wasm/spec-tests/memory.wast.js:
* wasm/spec-tests/resizing.wast.js: Removed.
* wasm/spec-tests/set_local.wast.js: Removed.
* wasm/spec-tests/stack.wast.js:
* wasm/spec-tests/store_retval.wast.js: Removed.
* wasm/spec-tests/table.wast.js: Added.
* wasm/spec-tests/tee_local.wast.js: Removed.
* wasm/spec-tests/type.wast.js:
* wasm/spec-tests/typecheck.wast.js: Removed.
2020-11-13 Xan López <xan@igalia.com>
[JSC] Use symbols as identifiers for class fields computed names storage
https://bugs.webkit.org/show_bug.cgi?id=216172
Reviewed by Yusuke Suzuki.
Use private symbols for the property keys of the class fields with
computed names. This is cleaner than using raw numeric identifiers and
will be less cumbersome when we add static fields. It also prevents
potential collisions if other features want to store data in the class
scope.
* stress/class-fields-harmony.js: new test, make sure
setFunctionName works properly with computed fields.
2020-11-13 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, skip new ICU related tests in MIPS and ARMv7 and adjust it for ICU 65
https://bugs.webkit.org/show_bug.cgi?id=213822
* stress/intl-datetimeformat-formatrange-relevant-extensions.js:
* stress/intl-datetimeformat-formatrange-should-not-handle-gregorian-change-date.js:
* stress/intl-datetimeformat-formatrange.js:
(test):
* stress/intl-datetimeformat-formatrangetoparts-relevant-extensions-ja.js:
* stress/intl-datetimeformat-formatrangetoparts-relevant-extensions.js:
* stress/intl-datetimeformat-formatrangetoparts-should-not-handle-gregorian-change-date.js:
* stress/intl-datetimeformat-formatrangetoparts.js:
2020-11-13 Sergey Rubanov <chi187@gmail.com>
WebAssembly: opcodes for table.grow and table.size are mixed up
https://bugs.webkit.org/show_bug.cgi?id=218644
Reviewed by Yusuke Suzuki.
* wasm/stress/table-grow-table-size.js: Added.
(async test):
* wasm/wasm.json:
2020-11-13 Sergey Rubanov <chi187@gmail.com>
WebAssembly: update wabt.js
https://bugs.webkit.org/show_bug.cgi?id=218876
Reviewed by Yusuke Suzuki.
* wasm/libwabt.js:
(WabtModule): Deleted.
* wasm/regress/llint-callee-saves-with-fast-memory.js:
(async test):
* wasm/regress/llint-callee-saves-without-fast-memory.js:
(async test):
* wasm/regress/regression-with-loop.js:
(async test):
* wasm/regress/stack-consistency.js:
(async test):
* wasm/stress/js-wasm-call-many-return-types-on-stack-no-args.js:
(async buildWat):
(async test):
(buildWat): Deleted.
* wasm/stress/js-wasm-js-varying-arities.js:
(async paramForwarder):
(async test):
(paramForwarder): Deleted.
* wasm/stress/local-ref.js:
(async test):
* wasm/stress/loop-more-args-than-results.js:
(async test):
* wasm/stress/set-local-enclosed-stack.js:
(async test):
(assert.eq.instance.exports.foo): Deleted.
(assert.eq): Deleted.
* wasm/stress/top-most-enclosing-stack.js:
(async test):
* wasm/stress/trunc-int-min-minus-one.js:
(async test):
* wasm/stress/wasm-js-call-many-return-types-on-stack-no-args.js:
(async buildWat):
(async test):
(buildWat): Deleted.
* wasm/stress/wasm-js-multi-value-exception-in-iterator.js:
(async buildWat):
(async test):
(buildWat.throwError): Deleted.
(buildWat.throwErrorInIterator): Deleted.
(buildWat.tooManyValues): Deleted.
(buildWat.tooFewValues): Deleted.
(buildWat): Deleted.
* wasm/stress/wasm-wasm-call-indirect-many-return-types-on-stack.js:
(async buildWat):
(async test):
(buildWat): Deleted.
* wasm/stress/wasm-wasm-call-many-return-types-on-stack-no-args.js:
(async buildWat):
(async test):
(buildWat): Deleted.
* wasm/wabt-wrapper.js:
(export.async compile):
(export.compile): Deleted.
2020-11-12 Caio Lima <ticaiolima@gmail.com>
[Intl][ARMv7][MIPS] Skip stress/intl-datetimeformat-formatrange.js
https://bugs.webkit.org/show_bug.cgi?id=218867
Unreviewed test gardening.
* stress/intl-datetimeformat-formatrange.js:
2020-11-12 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Upgrade test262
https://bugs.webkit.org/show_bug.cgi?id=218845
Reviewed by Alexey Shvayka.
One failing test is test262 bug and tracked in https://github.com/tc39/test262/pull/2898.
* test262/expectations.yaml:
* test262/harness/atomicsHelper.js:
* test262/latest-changes-summary.txt:
* test262/test/built-ins/Atomics/waitAsync/bigint/true-for-timeout.js:
* test262/test/built-ins/Atomics/waitAsync/returns-result-object-value-is-promise-resolves-to-timed-out.js:
* test262/test/built-ins/Atomics/waitAsync/true-for-timeout.js:
* test262/test/built-ins/Object/seal/configurable-attribute-all-own-properties-set-from-true-to-false-property-are-unaltered.js: Renamed from JSTests/test262/test/built-ins/Object/seal/object-seal-the-configurable-attribute-of-all-own-properties-of-o-are-set-from-true-to-false-and-other-attributes-of-the-property-are-unaltered.js.
* test262/test/built-ins/Object/seal/configurable-attribute-own-accessor-property-set-from-true-to-false-property-are-unaltered.js: Renamed from JSTests/test262/test/built-ins/Object/seal/object-seal-the-configurable-attribute-of-own-accessor-property-of-o-is-set-from-true-to-false-and-other-attributes-of-the-property-are-unaltered.js.
* test262/test/built-ins/Object/seal/seal-finalizationregistry.js:
* test262/test/built-ins/Object/seal/seal-weakref.js:
* test262/test/built-ins/String/prototype/split/arguments-are-objects-and-instance-is-string-first-object-have-overrided-to-string-function-and-value-of-function-that-throw-exception-second-object-have-overrided-value-of-function-that-throw-exception.js: Removed.
* test262/test/built-ins/String/prototype/split/separator-override-tostring-limit-override-valueof-throws.js: Renamed from JSTests/test262/test/built-ins/String/prototype/split/arguments-are-objects-and-instance-is-string-first-object-have-overrided-to-string-function-second-object-have-overrided-value-of-function-that-throw-exception.js.
* test262/test/built-ins/String/prototype/split/separator-override-tostring-limit-override-valueof-tostring-throws.js: Renamed from JSTests/test262/test/built-ins/String/prototype/split/arguments-are-objects-and-instance-is-string-first-object-have-overrided-to-string-function-second-object-have-overrided-value-of-function-and-to-string-function-that-throw-exception.js.
* test262/test/built-ins/String/prototype/split/separator-override-tostring-limit-override-valueof-tostring.js: Renamed from JSTests/test262/test/built-ins/String/prototype/split/arguments-are-objects-and-instance-is-string-first-object-have-overrided-to-string-function-second-object-have-overrided-value-of-and-to-string-functions.js.
* test262/test/built-ins/String/prototype/split/separator-override-tostring-limit-override-valueof.js: Renamed from JSTests/test262/test/built-ins/String/prototype/split/arguments-are-objects-and-instance-is-string-first-object-have-overrided-to-string-function-second-object-have-overrided-value-of-function.js.
* test262/test/built-ins/String/prototype/split/separator-override-tostring-throws-limit-override-valueof-throws.js: Renamed from JSTests/test262/test/built-ins/String/prototype/split/arguments-are-objects-and-instance-is-string-first-object-have-overrided-to-string-function-that-throw-exception-second-object-have-overrided-value-of-function-that-throw-exception.js.
* test262/test/built-ins/String/prototype/split/separator-override-valueof.js: Renamed from JSTests/test262/test/built-ins/String/prototype/split/argument-is-function-and-instance-is-string-object-object-have-overrided-to-string-and-value-of-functions.js.
* test262/test/built-ins/String/prototype/split/transferred-to-custom.js: Added.
(Splittable.this.toString):
(Splittable.this.valueOf):
(Splittable):
* test262/test/built-ins/String/prototype/split/transferred-to-number-separator-override-tostring-returns-regexp.js: Renamed from JSTests/test262/test/built-ins/String/prototype/split/argument-is-object-and-instance-is-number-object-have-overrided-to-string-function-that-return-regexp.js.
* test262/test/built-ins/String/prototype/split/valueOf-is-called-for-limit-argument.js: Added.
(let.limit.toString):
(let.limit.valueOf):
* test262/test/built-ins/TypedArray/prototype/every/BigInt/callbackfn-detachbuffer.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/every/callbackfn-detachbuffer.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/filter/BigInt/callbackfn-detachbuffer.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/filter/callbackfn-detachbuffer.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/find/BigInt/predicate-may-detach-buffer.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/find/predicate-may-detach-buffer.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/findIndex/predicate-may-detach-buffer.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/forEach/BigInt/callbackfn-detachbuffer.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/forEach/callbackfn-detachbuffer.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/map/BigInt/callbackfn-detachbuffer.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/map/callbackfn-detachbuffer.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/reduce/BigInt/callbackfn-detachbuffer.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/reduce/callbackfn-detachbuffer.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/reduceRight/BigInt/callbackfn-detachbuffer.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/reduceRight/callbackfn-detachbuffer.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/slice/BigInt/detached-buffer-custom-ctor-other-targettype.js:
(testWithBigIntTypedArrayConstructors.get sample): Deleted.
* test262/test/built-ins/TypedArray/prototype/slice/detached-buffer-custom-ctor-other-targettype.js:
(testWithTypedArrayConstructors.get sample): Deleted.
* test262/test/built-ins/TypedArray/prototype/some/BigInt/callbackfn-detachbuffer.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/some/callbackfn-detachbuffer.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/detached-buffer-realm.js:
* test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/key-is-numericindex-desc-configurable.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/key-is-numericindex.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-numericindex-desc-configurable.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-numericindex.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/GetOwnProperty/BigInt/index-prop-desc.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/GetOwnProperty/index-prop-desc.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/detached-buffer-realm.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/detached-buffer.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/tonumber-value-detached-buffer.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/Set/detached-buffer-realm.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/Set/detached-buffer.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/Set/tonumber-value-detached-buffer.js:
(testWithTypedArrayConstructors):
* test262/test/intl402/DateTimeFormat/intl-legacy-constructed-symbol-on-unwrap.js: Added.
(try.get target):
(catch):
* test262/test/intl402/DateTimeFormat/intl-legacy-constructed-symbol.js: Added.
* test262/test/intl402/NumberFormat/intl-legacy-constructed-symbol-on-unwrap.js: Added.
(try.get target):
(catch):
* test262/test/intl402/NumberFormat/intl-legacy-constructed-symbol.js: Added.
* test262/test/language/eval-code/direct/arrow-fn-body-cntns-arguments-fn-decl-params-cntns-dflt-assignment-arrow-func-declare-arguments-assign-incl-def-param-arrow-arguments.js: Removed.
* test262/test/language/eval-code/direct/arrow-fn-body-cntns-arguments-fn-decl-params-cntns-dflt-assignment-arrow-func-declare-arguments-assign.js: Removed.
* test262/test/language/literals/string/legacy-non-octal-escape-sequence-1-strict-explicit-pragma.js: Added.
(invalid):
* test262/test/language/literals/string/legacy-non-octal-escape-sequence-2-strict-explicit-pragma.js: Added.
(invalid):
* test262/test/language/literals/string/legacy-non-octal-escape-sequence-3-strict-explicit-pragma.js: Added.
(invalid):
* test262/test/language/literals/string/legacy-non-octal-escape-sequence-4-strict-explicit-pragma.js: Added.
(invalid):
* test262/test/language/literals/string/legacy-non-octal-escape-sequence-5-strict-explicit-pragma.js: Added.
(invalid):
* test262/test/language/literals/string/legacy-non-octal-escape-sequence-6-strict-explicit-pragma.js: Added.
(invalid):
* test262/test/language/literals/string/legacy-non-octal-escape-sequence-7-strict-explicit-pragma.js: Added.
(invalid):
* test262/test/language/literals/string/legacy-non-octal-escape-sequence-8-strict-explicit-pragma.js: Added.
(invalid):
* test262/test/language/literals/string/legacy-non-octal-escape-sequence-9-strict-explicit-pragma.js: Added.
(invalid):
* test262/test/language/module-code/export-expname-binding-string.js:
* test262/test/language/module-code/export-expname-from-as-unpaired-surrogate.js: Added.
* test262/test/language/module-code/export-expname-from-star-unpaired-surrogate.js: Added.
* test262/test/language/module-code/export-expname-from-unpaired-surrogate.js: Added.
* test262/test/language/module-code/export-expname-import-unpaired-surrogate.js: Added.
* test262/test/language/module-code/export-expname-string-binding.js: Added.
(foo):
* test262/test/language/module-code/export-expname-unpaired-surrogate.js: Added.
(Foo):
* test262/test/language/module-code/export-expname_FIXTURE.js:
* test262/test262-Revision.txt:
2020-11-12 Dmitry Bezhetskov <dbezhetskov@igalia.com>
[WASM-References] Support imm for ref.null
https://bugs.webkit.org/show_bug.cgi?id=218744
Reviewed by Yusuke Suzuki.
Updated the Builder DSL and spec tests for ref.null extern/funcref.
Spec is here - https://webassembly.github.io/reference-types/core/.
* wasm/Builder.js:
(export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):
* wasm/Builder_WebAssemblyBinary.js:
(const.putInitExpr):
* wasm/LowLevelBinary.js:
(export.default.LowLevelBinary.prototype.ref_type):
* wasm/WASM.js:
* wasm/references-spec-tests/ref_is_null.js:
* wasm/references-spec-tests/ref_null.js:
* wasm/references/externref_globals.js:
* wasm/references/externref_modules.js:
* wasm/references/externref_table.js:
* wasm/references/externref_table_import.js:
(makeImport):
(string_appeared_here.fullGC.assert.eq.1.exports.get_tbl.makeImport):
(string_appeared_here.fullGC.assert.eq.1.exports.get_tbl):
* wasm/references/func_ref.js:
(assert.eq.instance.exports.fix):
* wasm/references/is_null.js:
(checkRefNullWithI32ImmType):
* wasm/references/multitable.js:
* wasm/wasm.json:
2020-11-12 Angelos Oikonomopoulos <angelos@igalia.com>
[JSC] Skip stress/lars-sab-workers.js on arm32
https://bugs.webkit.org/show_bug.cgi?id=218797
Reviewed by Žan Doberšek.
The test is currently flaky on arm32 when run in bytecode-cache mode.
Skip pending further investigation.
* stress/lars-sab-workers.js:
2020-11-12 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, rebaseline test262's config.yaml part 2
test262 bot is using Catalina, it should use Big Sur. filed in [1].
[1]: https://bugs.webkit.org/show_bug.cgi?id=218844
* test262/config.yaml:
2020-11-11 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, rebaseline test262's config.yaml
test262 bot is using Catalina, it should use Big Sur. filed in [1].
[1]: https://bugs.webkit.org/show_bug.cgi?id=218844
* test262/config.yaml:
* test262/expectations.yaml:
2020-11-11 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, fix wrong tests at the final clean up
https://bugs.webkit.org/show_bug.cgi?id=213822
* stress/intl-datetimeformat-formatrange.js:
* stress/intl-datetimeformat-formatrangetoparts-relevant-extensions-ja.js:
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt1.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt2.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt3.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt4.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt5.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.formatRangeToParts.vm.icuVersion): Deleted.
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt6.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt7.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt8.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt9.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt10.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt11.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt12.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt13.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt14.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt15.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt16.formatRangeToParts): Deleted.
* stress/intl-datetimeformat-formatrangetoparts-relevant-extensions.js:
* stress/intl-datetimeformat-formatrangetoparts.js:
2020-11-11 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Implement Intl.DateTimeFormat.formatRangeToParts
https://bugs.webkit.org/show_bug.cgi?id=213822
<rdar://problem/69328711>
Reviewed by Ross Kirsling.
* stress/intl-datetimeformat-formatrange-relevant-extensions.js:
* stress/intl-datetimeformat-formatrange-should-not-handle-gregorian-change-date.js: Added.
(shouldBe):
(vm.icuHeaderVersion):
* stress/intl-datetimeformat-formatrange.js:
(shouldThrow):
(test):
* stress/intl-datetimeformat-formatrangetoparts-relevant-extensions-ja.js: Added.
(shouldBe):
(compareParts):
(shouldThrow):
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt1.formatRangeToParts):
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt2.formatRangeToParts):
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt3.formatRangeToParts):
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt4.formatRangeToParts):
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt5.formatRangeToParts):
(Intl.DateTimeFormat.formatRangeToParts.vm.icuVersion):
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt6.formatRangeToParts):
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt7.formatRangeToParts):
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt8.formatRangeToParts):
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt9.formatRangeToParts):
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt10.formatRangeToParts):
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt11.formatRangeToParts):
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt12.formatRangeToParts):
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt13.formatRangeToParts):
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt14.formatRangeToParts):
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt15.formatRangeToParts):
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt16.formatRangeToParts):
* stress/intl-datetimeformat-formatrangetoparts-relevant-extensions.js: Added.
(shouldBe):
(compareParts):
(shouldThrow):
* stress/intl-datetimeformat-formatrangetoparts-should-not-handle-gregorian-change-date.js: Added.
(shouldBe):
(compareParts):
(vm.icuHeaderVersion):
* stress/intl-datetimeformat-formatrangetoparts.js: Added.
(shouldBe):
(compareParts):
(shouldThrow):
* test262/config.yaml:
* test262/expectations.yaml: This failure is because of CLDR data inside ICU. ICU 67 will fix them.
2020-11-10 Ross Kirsling <ross.kirsling@sony.com>
Align %TypedArray% behavior with recent spec adjustments
https://bugs.webkit.org/show_bug.cgi?id=218776
Reviewed by Yusuke Suzuki.
* stress/reflect-set.js:
* stress/typedarray-functions-with-neutered.js:
* stress/typedarray-includes.js:
* stress/typedarray-indexOf.js:
* stress/typedarray-join.js: Added.
* stress/typedarray-lastIndexOf.js:
Update tests.
* test262/expectations.yaml:
Mark a handful of test cases as temporarily failing.
These will disappear in a future test262 update.
2020-11-10 Michael Catanzaro <mcatanzaro@gnome.org>
stress/intl-datetimeformat-formatrange.js and stress/intl-datetimeformat-formatrange-relevant-extensions.js fail with ICU 65.1
https://bugs.webkit.org/show_bug.cgi?id=218763
Reviewed by Yusuke Suzuki.
Yesterday Red Hat upgraded its internal CI to Fedora 32 (ICU 65.1), causing
stress/intl-datetimeformat-formatrange-relevant-extensions.js and
stress/intl-datetimeformat-formatrange.js to begin failing. The problem is that the space
characters used in the range format changed at some point. The current version of the test
expects normal ASCII space characters for ICU 67 and newer, and special spaces for older
versions of ICU.
The test passes for me locally on Fedora 33 (ICU 67.1), so perhaps we just need to use the
new codepath for ICU 65 and 66 as well.
* stress/intl-datetimeformat-formatrange-relevant-extensions.js:
* stress/intl-datetimeformat-formatrange.js:
(test):
2020-11-09 Keith Miller <keith_miller@apple.com>
Add microbenchmark for FinalizationRegistry basic usage
https://bugs.webkit.org/show_bug.cgi?id=218667
Reviewed by Yusuke Suzuki.
The no unregister token benchmark runs in ~40ms and the unregister
token in ~25ms on my Mac Pro. Interestingly, it also shows that
using an unregister token make FinalizationRegistry ~4x slower
(total time is longer because the number of objects is 10x bigger
in the test). This is because we have to store all the data in a
HashMap<UnregisterToken, JSObject> rather than a Vector<JSObject>.
* microbenchmarks/finalizationRegistryCleanup.js: Added.
(async callback):
* microbenchmarks/finalizationRegistryCleanupWithUnregisterToken.js: Added.
(async callback):
2020-11-08 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Add TimeZone range cache over ICU TimeZone API
https://bugs.webkit.org/show_bug.cgi?id=218681
Reviewed by Ross Kirsling.
* complex.yaml:
* complex/timezone-range-cache-with-dst.js: Added.
(shouldBe):
(throw.new.Error):
2020-11-08 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Support @@species in ArrayBuffer / SharedArrayBuffer slice
https://bugs.webkit.org/show_bug.cgi?id=218697
Reviewed by Ross Kirsling.
* test262/expectations.yaml:
2020-11-06 Dmitry Bezhetskov <dbezhetskov@igalia.com>
[WASM-References] Rename anyref to externref
https://bugs.webkit.org/show_bug.cgi?id=218331
Reviewed by Keith Miller.
* wasm/Builder.js:
(const._isValidValue):
* wasm/references/externref_globals.js: Renamed from JSTests/wasm/references/anyref_globals.js.
* wasm/references/externref_modules.js: Renamed from JSTests/wasm/references/anyref_modules.js.
* wasm/references/externref_table.js: Renamed from JSTests/wasm/references/anyref_table.js.
* wasm/references/externref_table_import.js: Renamed from JSTests/wasm/references/anyref_table_import.js.
(makeImport):
(string_appeared_here.fullGC.assert.eq.1.exports.get_tbl.makeImport):
(string_appeared_here.fullGC.assert.eq.1.exports.get_tbl):
(fullGC.assert.eq):
(doSet):
(assert.throws):
* wasm/references/func_ref.js:
* wasm/references/is_null.js:
* wasm/references/multitable.js:
(assert.throws.1.exports.set_tbl0):
(assert.throws):
(string_appeared_here.vm.isMemoryLimited.tableInsanity):
* wasm/references/table_misc.js:
(TableSize.0.End.End.WebAssembly):
(GetLocal.0.GetLocal.1.TableGrow.0.End.End.WebAssembly):
* wasm/references/validation.js:
(assert.throws):
* wasm/stress/immutable-globals.js:
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.i.assert.eq):
* wasm/stress/mutable-globals.js:
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.i.instance.exports.setI32AsI64):
* wasm/wasm.json:
2020-11-06 Yusuke Suzuki <ysuzuki@apple.com>
Re-enable SharedArrayBuffer for JSC shell and Testers
https://bugs.webkit.org/show_bug.cgi?id=212069
Reviewed by Keith Miller.
Update tests to align to the latest spec.
* stress/SharedArrayBuffer-opt.js:
(shouldSucceed):
(idx.of.string_appeared_here.a.of.arrays.m.of.atomics):
(string_appeared_here.a.of.arrays.m.of.atomics): Deleted.
* stress/SharedArrayBuffer.js:
(shouldSucceed):
(Symbol):
* stress/array-buffer-byte-length.js:
(shouldThrow):
(Symbol):
* stress/atomics-add-uint32.js:
* stress/atomics-known-int-use.js:
* stress/atomics-neg-zero.js:
* stress/atomics-store-return.js:
* stress/lars-sab-workers.js:
(resources):
(notify):
(wake): Deleted.
* stress/regress-170473.js:
* stress/regress-189317.js:
* stress/shared-array-buffer-sort-while-different-thread-is-modifying.js: Added.
(262.agent.waitUntil):
(262.agent.start.262.agent.receiveBroadcast):
* test262/config.yaml:
* test262/expectations.yaml:
2020-11-05 Yusuke Suzuki <ysuzuki@apple.com>
toLocaleDateString() resolves incorrect date for some old dates
https://bugs.webkit.org/show_bug.cgi?id=161623
Reviewed by Ryosuke Niwa.
The issue is that timezone offset in old Warsaw date was broken because `localtime_r`'s tzdata is broken.
The issue itself was fixed in r218348. This patch adds another test case to ensure this is fixed.
* complex.yaml:
* complex/timezone-offset-and-dst-in-warsaw.js: Added.
(shouldBe):
2020-11-03 Saam Barati <sbarati@apple.com>
Add back the removed assertion from r269338 and add a test
https://bugs.webkit.org/show_bug.cgi?id=218543
Reviewed by Filip Pizlo.
* stress/bad-osr-exit-checkpoint-state-assertion-during-js-lock-destruction.js: Added.
(foo):
(let.a.get length):
2020-11-03 Yusuke Suzuki <ysuzuki@apple.com>
REGRESSION (r254038): Simple.com money transfer UI is very laggy (multiple seconds per keypress)
https://bugs.webkit.org/show_bug.cgi?id=218348
Reviewed by Darin Adler.
* ChakraCore.yaml:
* ChakraCore/test/Date/DateCtr.baseline-jsc: Added. The time before America/Los_Angeles timezone is effective should be handled as UTC-0752.
* complex.yaml:
* complex/timezone-offset-before-america-los-angeles-is-defined.js: Added for UTC-0752.
(shouldBe):
* microbenchmarks/local-date-constructor.js: Added for microbenchmarking.
(test):
* mozilla/ecma/Date/15.9.5.16.js:
* mozilla/ecma/Date/15.9.5.18.js:
* mozilla/ecma/Date/15.9.5.22-1.js:
* mozilla/ecma/Date/15.9.5.22-2.js:
* mozilla/ecma/Date/15.9.5.35-1.js:
When year is 0, America/Los_Angeles timezone is not effective, and mozilla test harness does not handle this timezone difference correctly.
2020-10-28 Saam Barati <sbarati@apple.com>
Better cache our serialization of the outer TDZ environment when creating FunctionExecutables during bytecode generation
https://bugs.webkit.org/show_bug.cgi?id=199866
<rdar://problem/53333108>
Reviewed by Tadeu Zagallo.
* microbenchmarks/let-const-tdz-environment-parsing-and-hash-consing-speed.js: Added.
2020-10-28 Robin Morisset <rmorisset@apple.com>
DFGIntegerRangeOptimization is wrong for Upsilon (as 'shadow' nodes are not in SSA form)
https://bugs.webkit.org/show_bug.cgi?id=218073
Reviewed by Saam Barati.
The only testcase I managed to get for this bug loops forever when not crashing.
So I use a 1s timeout through --watchdog=1000.
* stress/bounds-checking-in-cold-loop.js: Added.
(true.vm.ftlTrue):
2020-10-24 Yusuke Suzuki <ysuzuki@apple.com>
[ECMA-402] Implement Intl.ListFormat
https://bugs.webkit.org/show_bug.cgi?id=209775
Reviewed by Ross Kirsling.
* stress/intl-listformat.js: Added.
(shouldBe):
(shouldNotThrow):
(shouldThrow):
(test.DerivedListFormat):
(test.get shouldThrow):
(test):
2020-10-24 Caio Lima <ticaiolima@gmail.com>
[EWS][ARMv7] Flaky test stress/json-stringify-stack-overflow.js
https://bugs.webkit.org/show_bug.cgi?id=218129
Unreviewed test gardening.
* stress/json-stringify-stack-overflow.js:
2020-10-21 Caitlin Potter <caitp@igalia.com>
[JSC] support op_get_private_name in DFG and FTL
https://bugs.webkit.org/show_bug.cgi?id=214861
Reviewed by Filip Pizlo.
* microbenchmarks/class-fields-private/monomorphic-get-private-field.js: Added.
* microbenchmarks/class-fields-private/polymorphic-get-private-field.js: Added.
* stress/dfg-get-private-name-by-id-generic.js: Added.
* stress/dfg-get-private-name-by-id-osr-bad-identifier.js: Added.
* stress/dfg-get-private-name-by-id.js: Added.
* stress/dfg-get-private-name-by-offset-osr-bad-identifier.js: Added.
* stress/dfg-get-private-name-by-offset-osr-bad-structure.js: Added.
* stress/dfg-get-private-name-by-offset.js: Added.
* stress/dfg-get-private-name-by-val-generic.js: Added.
* stress/ftl-get-private-name-by-id.js: Added.
* stress/ftl-get-private-name-by-offset-multi.js: Added.
* stress/get-private-name-with-constant-ident.js: Added.
* stress/get-private-name-with-constant-symbol.js: Added.
* stress/get-private-name-with-different-symbol.js: Added.
2020-10-20 Saam Barati <sbarati@apple.com>
Don't OSR exit to bc#0 for FTL argument type checks during loop OSR entry
https://bugs.webkit.org/show_bug.cgi?id=217925
<rdar://problem/70369407>
Reviewed by Michael Saboff and Tadeu Zagallo.
* stress/ftl-osr-entry-should-not-exit-to-bc-zero.js: Added.
2020-10-20 Michael Saboff <msaboff@apple.com>
[JSC] Update RegExp UCD to version 13.0
https://bugs.webkit.org/show_bug.cgi?id=217975
Reviewed by Yusuke Suzuki.
Updated test expectations for tests that now pass based on the updating to UCD 13.0.
* test262/expectations.yaml:
2020-10-20 Ross Kirsling <ross.kirsling@sony.com>
[JSC] Rename item() to at() and move it behind a flag
https://bugs.webkit.org/show_bug.cgi?id=217942
Reviewed by Yusuke Suzuki.
* stress/at-method.js: Renamed from JSTests/stress/item-method.js.
* test262/config.yaml: Add skips until the feature is renamed.
2020-10-19 Alexey Shvayka <shvaikalesh@gmail.com>
[WebIDL] %Interface%.prototype.constructor should be defined on [[Set]] receiver
https://bugs.webkit.org/show_bug.cgi?id=216533
Reviewed by Darin Adler.
* stress/custom-get-set-proto-chain-put.js: Added.
2020-10-19 Mark Cohen <m@mpc.sh>
test262: test/language/expressions/conditional/in-branch-1.js
https://bugs.webkit.org/show_bug.cgi?id=217879
Reviewed by Darin Adler.
I fixed this test262 failure - see the JSC ChangeLog for more details.
All I've done in this directory is remove the expected failure from
test262/expectations.yaml.
* test262/expectations.yaml:
2020-10-18 Caio Lima <ticaiolima@gmail.com>
[ESNext][JIT] Add support for UntypedUse on PutPrivateName's base operand
https://bugs.webkit.org/show_bug.cgi?id=217373
Reviewed by Yusuke Suzuki.
* stress/get-private-name-with-primitive.js: Added.
* stress/put-private-name-untyped-use.js: Added.
* stress/put-private-name-with-primitive.js: Added.
2020-10-17 Ross Kirsling <ross.kirsling@sony.com>
Ensure %TypedArray% essential internal methods adhere to spec
https://bugs.webkit.org/show_bug.cgi?id=217854
Reviewed by Yusuke Suzuki.
* stress/array-prototype-splice-making-typed-array.js:
* stress/array-species-config-array-constructor.js:
* stress/delete-property-dfg-inline.js:
* stress/float32array-out-of-bounds.js:
* stress/put-direct-index-broken-2.js:
* stress/typedarray-access-monomorphic-neutered.js:
* stress/typedarray-access-neutered.js:
* stress/typedarray-configure-index.js:
* stress/typedarray-functions-with-neutered.js:
* stress/typedarray-getownproperty.js: Renamed from JSTests/stress/typedarray-getownproperty-not-configurable.js.
* stress/typed-array-canonical-numeric-index-string.js:
Adjust tests.
* test262/expectations.yaml:
Address all test failures under built-ins/TypedArrayConstructors/internals.
Note that there are a slew of corrections needed for these test cases,
which were discovered in the course of working on this patch:
https://github.com/tc39/test262/pull/2833#issuecomment-709635850
Accordingly, these remaining lines should all disappear in the future.
2020-10-16 Saam Barati <sbarati@apple.com>
Don't emit OpSpread with a constant as the destination
https://bugs.webkit.org/show_bug.cgi?id=217800
<rdar://problem/69492311>
Reviewed by Yusuke Suzuki.
* stress/spread-should-not-have-a-constant-as-dst.js: Added.
(foo):
(bar):
2020-10-15 Saam Barati <sbarati@apple.com>
Don't assign a bogus register to Load/ForwardVarargs in AvailabilityAnalysis before stack layout
https://bugs.webkit.org/show_bug.cgi?id=217789
<rdar://problem/69285703>
Reviewed by Keith Miller.
* stress/dont-assign-bogus-virtual-register-in-availability-analysis-before-stack-layout-runs.js: Added.
(bar):
(foo):
2020-10-15 Alexey Shvayka <shvaikalesh@gmail.com>
REGRESSION (r268489): test/built-ins/Object/entries/order-after-define-property.js failing on test262 bots
https://bugs.webkit.org/show_bug.cgi?id=217738
Reviewed by Yusuke Suzuki.
* stress/object-entries.js:
2020-10-14 Ross Kirsling <ross.kirsling@sony.com>
Update test262 (2020.10.14)
https://bugs.webkit.org/show_bug.cgi?id=217736
Reviewed by Yusuke Suzuki.
* test262/config.yaml:
* test262/expectations.yaml:
* test262/harness/:
* test262/latest-changes-summary.txt:
* test262/test/:
* test262/test262-Revision.txt:
2020-10-14 Alexey Shvayka <shvaikalesh@gmail.com>
Use @putByValDirect instead of Array.prototype.@push in built-ins
https://bugs.webkit.org/show_bug.cgi?id=175432
Reviewed by Yusuke Suzuki.
* stress/array-push-intrinsic.js: Added.
* test262/expectations.yaml: Mark 2 test cases as passing.
2020-10-13 Saam Barati <sbarati@apple.com>
JSObject::getPropertyNames should have a stack overflow check
https://bugs.webkit.org/show_bug.cgi?id=217677
<rdar://problem/69286436>
Reviewed by Tadeu Zagallo.
* stress/get-property-names-stack-overflow.js: Added.
2020-10-12 Saam Barati <sbarati@apple.com>
Array.prototype.sort's sortBucketSort accesses an array in an invalid way that can lead to incorrect results with indexed properties on the prototype chain
https://bugs.webkit.org/show_bug.cgi?id=217634
<rdar://problem/69489404>
Reviewed by Yusuke Suzuki.
* stress/sort-should-not-look-up-prototype-properties.js: Added.
(assert):
2020-10-11 Yusuke Suzuki <ysuzuki@apple.com>
OpToPropertyKey only accepts temporary for destination
https://bugs.webkit.org/show_bug.cgi?id=217471
Reviewed by Saam Barati.
* stress/spread-to-property-key-constant.js: Added.
2020-10-11 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] arguments.callee should become ThrowTypeError if function has non simple parameter list
https://bugs.webkit.org/show_bug.cgi?id=217574
Reviewed by Darin Adler.
* stress/arguments-and-non-simple-parameters.js: Added.
(shouldBe):
(ThrowTypeError.Object.getOwnPropertyDescriptor):
(testUnmappedArguments):
(testMappedArguments):
(argumentGenerator2.inner):
(argumentGenerator2):
(argumentGenerator3.inner):
(argumentGenerator3):
(argumentGenerator4):
(argumentGenerator5.inner.inner2):
(argumentGenerator5.inner):
(argumentGenerator5):
(argumentGenerator6):
(argumentGenerator7.inner):
(argumentGenerator7):
(argumentGenerator8.inner):
(argumentGenerator8):
(argumentGenerator9.inner):
(argumentGenerator9):
(argumentGenerator10.inner.inner2):
(argumentGenerator10.inner):
(argumentGenerator10):
* test262/expectations.yaml:
2020-10-11 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] BigInt constructor should be constructible while it always throws an error
https://bugs.webkit.org/show_bug.cgi?id=217575
Reviewed by Darin Adler.
* stress/is-constructor.js:
* stress/non-constructable-constructors.js: Added.
(shouldThrow):
2020-10-11 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] LowerCase when LanguageTag checks duplicate variants
https://bugs.webkit.org/show_bug.cgi?id=217571
Reviewed by Ross Kirsling.
* stress/intl-language-tag.js:
2020-10-07 Ross Kirsling <ross.kirsling@sony.com>
[JSC] Revert String.prototype.item
https://bugs.webkit.org/show_bug.cgi?id=217449
Reviewed by Yusuke Suzuki.
* stress/item-method.js:
* test262/config.yaml:
2020-10-07 Caio Lima <ticaiolima@gmail.com>
[MIPS] Flaky test stress/array-species-create-should-handle-masquerader.js
https://bugs.webkit.org/show_bug.cgi?id=217433
Unreviewed test gardening.
* stress/array-species-create-should-handle-masquerader.js:
2020-10-05 Ross Kirsling <ross.kirsling@sony.com>
%TypedArray%.from must do mapping and putting in lockstep
https://bugs.webkit.org/show_bug.cgi?id=217349
Reviewed by Yusuke Suzuki.
* test262/expectations.yaml:
Mark two test cases as passing.
2020-10-02 Ross Kirsling <ross.kirsling@sony.com>
[JSC] Add Array#item to @@unscopables
https://bugs.webkit.org/show_bug.cgi?id=217243
Reviewed by Yusuke Suzuki.
* stress/unscopables.js:
Update test.
2020-09-30 Ross Kirsling <ross.kirsling@sony.com>
[JSC] Implement item method proposal
https://bugs.webkit.org/show_bug.cgi?id=217115
Reviewed by Yusuke Suzuki.
* stress/item-method.js: Added.
* test262/config.yaml: Unskip tests.
2020-09-29 Ross Kirsling <ross.kirsling@sony.com>
Update test262 (2020.09.29)
https://bugs.webkit.org/show_bug.cgi?id=217102
Reviewed by Darin Adler.
* .gitattributes:
* test262/config.yaml:
* test262/expectations.yaml:
* test262/latest-changes-summary.txt:
* test262/test/:
* test262/test262-Revision.txt:
2020-09-25 Ross Kirsling <ross.kirsling@sony.com>
%TypedArray%.{from, of} no longer perform AllocateTypedArray
https://bugs.webkit.org/show_bug.cgi?id=216991
Reviewed by Yusuke Suzuki.
* stress/typedarray-of.js:
Fix test.
* test262/expectations.yaml:
Mark twelve test cases as passing.
2020-09-25 Alexey Shvayka <shvaikalesh@gmail.com>
DataView instances should not have own "byteLength" and "byteOffset" properties
https://bugs.webkit.org/show_bug.cgi?id=149906
Reviewed by Ross Kirsling.
* stress/dataview-no-own-properties.js: Added.
2020-09-25 Alexey Shvayka <shvaikalesh@gmail.com>
REGRESSION (r267514): mozilla-tests.yaml/js1_5/Array/regress-157652.js.mozilla* timing out
https://bugs.webkit.org/show_bug.cgi?id=216955
Unreviewed test gardening: skip mozilla/regress-157652.js in --debug.
r267514 removed special handling of sparse arrays, causing the timeout.
* mozilla/mozilla-tests.yaml:
2020-09-24 Ross Kirsling <ross.kirsling@sony.com>
%TypedArray%.prototype.toLocaleString must make conscious use of @toString
https://bugs.webkit.org/show_bug.cgi?id=216956
Reviewed by Yusuke Suzuki.
* test262/expectations.yaml:
Mark four test cases as passing.
2020-09-24 Ross Kirsling <ross.kirsling@sony.com>
%TypedArray%.prototype.sort must throw if comparator is defined and uncallable
https://bugs.webkit.org/show_bug.cgi?id=216952
Reviewed by Yusuke Suzuki.
* stress/typedarray-sort.js:
Fix test.
* test262/expectations.yaml:
Mark two test cases as passing.
2020-09-24 Ross Kirsling <ross.kirsling@sony.com>
%TypedArray%.prototype.{map, filter} should perform TypedArraySpeciesCreate correctly
https://bugs.webkit.org/show_bug.cgi?id=216938
Reviewed by Yusuke Suzuki.
* stress/typedarray-slice.js:
Fix test.
* test262/expectations.yaml:
Mark ten test cases as passing.
2020-09-24 Ross Kirsling <ross.kirsling@sony.com>
%TypedArray%.prototype.fill must only evaluate its argument once
https://bugs.webkit.org/show_bug.cgi?id=216912
Reviewed by Yusuke Suzuki.
* stress/typedarray-fill.js:
Fix test.
* test262/expectations.yaml:
Mark two test cases as passing.
2020-09-23 Ross Kirsling <ross.kirsling@sony.com>
%ArrayIteratorPrototype%.next must check for detached buffers
https://bugs.webkit.org/show_bug.cgi?id=216904
Reviewed by Yusuke Suzuki.
* stress/detach-buffer-during-iteration.js: Added.
* test262/expectations.yaml:
Mark two test cases as passing.
2020-09-23 Alexey Shvayka <shvaikalesh@gmail.com>
Update Array.prototype.sort to be consistent with tightened spec
https://bugs.webkit.org/show_bug.cgi?id=202582
Reviewed by Yusuke Suzuki and Keith Miller.
Provided microbenchmarks test receivers that are half-sorted: 50% of their
items and item pairs (to accomodate merge sort) are at the right place.
Arrays of multiple sizes (8/24/64 items) are tested with both userland
and default comparator (to cover bucket sort).
* ChakraCore/test/Array/array_sort.baseline-jsc: Fix typo in error message.
* microbenchmarks/array-prototype-sort-large-array-comparator.js: Added.
* microbenchmarks/array-prototype-sort-large-array.js: Added.
* microbenchmarks/array-prototype-sort-medium-array-comparator.js: Added.
* microbenchmarks/array-prototype-sort-medium-array.js: Added.
* microbenchmarks/array-prototype-sort-small-array-comparator.js: Added.
* microbenchmarks/array-prototype-sort-small-array.js: Added.
* mozilla/js1_5/Array/regress-157652.js: Skip sorting sparse array of UINT_MAX size.
* stress/regress-188577.js: Replace sort() with unshift() and refactor.
2020-09-23 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Intl spec update: handle awkward rounding behavior
https://bugs.webkit.org/show_bug.cgi?id=216760
Reviewed by Ross Kirsling.
* stress/intl-numberformat.js:
* test262/expectations.yaml:
2020-09-23 Caio Lima <ticaiolima@gmail.com>
[JSC][ESNext] Create a new opcode to handle private fields store/define
https://bugs.webkit.org/show_bug.cgi?id=213372
Reviewed by Yusuke Suzuki.
Adjusting tests that emit `get_private_name` to avoid execution in
FTL/DFG.
* microbenchmarks/class-fields-private/polymorphic-put-private-field.js: Added.
* microbenchmarks/class-fields-private/put-private-field.js: Added.
* microbenchmarks/polymorphic-put-public-field.js: Added.
* microbenchmarks/put-public-field.js: Added.
* stress/dfg-put-private-name-check-barrier-insertion.js: Added.
* stress/dfg-put-private-name-compiled-as-put-by-id-direct.js: Added.
* stress/dfg-put-private-name-compiled-as-put-private-name-by-id.js: Added.
* stress/put-private-name-by-id-set-do-not-add-structure-trasition.js: Added.
* stress/put-private-name-check-structure-miss.js: Added.
* stress/put-private-name-constant-folding-to-mult-put-by-offset.js: Added.
* stress/put-private-name-constant-folding-to-put-by-offset.js: Added.
* stress/put-private-name-generic.js: Added.
* stress/put-private-name-invalid-define.js: Added.
* stress/put-private-name-invalid-store.js: Added.
* stress/put-private-name-invalidate-compiled-with-constant-symbol.js: Added.
* stress/put-private-name-polymorphic-with-constant-symbol.js: Added.
* stress/put-private-name-with-constant-symbol.js: Added.
* stress/put-private-name-with-different-identifier.js: Added.
2020-09-22 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Enable Intl.DateTimeFormat dayPeriod
https://bugs.webkit.org/show_bug.cgi?id=216845
Reviewed by Mark Lam.
* stress/intl-datetimeformat.js:
2020-09-22 HyeockJin Kim <kherootz@gmail.com>
Coerce computed property before adding to |excludedList|
https://bugs.webkit.org/show_bug.cgi?id=216437
Reviewed by Yusuke Suzuki.
* stress/object-rest-deconstruct.js:
(get 3):
2020-09-21 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] BigInt should work with Map / Set
https://bugs.webkit.org/show_bug.cgi?id=216667
<rdar://problem/69107221>
Reviewed by Robin Morisset.
* stress/bigint-and-map-set.js: Added.
(shouldBe):
(opaque1n):
(testMap):
(let.set new):
* stress/bigint-string-map-set.js: Added.
(shouldBe):
(testMap):
* stress/bigint32-map-set.js: Added.
(shouldBe):
(testMap):
2020-09-21 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Proxy should be trapped if base value is primitive
https://bugs.webkit.org/show_bug.cgi?id=216764
Reviewed by Darin Adler.
* stress/proxy-trap-in-primitive.js: Added.
(shouldBe):
* test262/expectations.yaml:
2020-09-20 Yusuke Suzuki <ysuzuki@apple.com>
Test262 update
https://bugs.webkit.org/show_bug.cgi?id=216753
Reviewed by Darin Adler.
2020-09-20 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Drop Options::useBigInt
https://bugs.webkit.org/show_bug.cgi?id=216743
Reviewed by Darin Adler.
* bigIntTests.yaml: Removed.
* stress/big-int-add-wrapped-value.js:
* stress/big-int-addition-basic.js:
* stress/big-int-addition-jit.js:
* stress/big-int-addition-memory-stress.js:
* stress/big-int-addition-string-coercion.js:
* stress/big-int-addition-to-primitive-precedence.js:
* stress/big-int-addition-to-primitive.js:
* stress/big-int-addition-type-error.js:
* stress/big-int-arithmetic-return-big-int.js:
* stress/big-int-as-key.js:
* stress/big-int-as-property-name.js:
* stress/big-int-bit-not-general.js:
* stress/big-int-bitwise-and-general.js:
* stress/big-int-bitwise-and-jit.js:
* stress/big-int-bitwise-and-memory-stress.js:
* stress/big-int-bitwise-and-to-primitive-precedence.js:
* stress/big-int-bitwise-and-type-error.js:
* stress/big-int-bitwise-and-wrapped-value.js:
* stress/big-int-bitwise-not-jit.js:
* stress/big-int-bitwise-not-wrapped-value.js:
* stress/big-int-bitwise-or-general.js:
* stress/big-int-bitwise-or-jit-untyped.js:
* stress/big-int-bitwise-or-jit.js:
* stress/big-int-bitwise-or-memory-stress.js:
* stress/big-int-bitwise-or-to-primitive-precedence.js:
* stress/big-int-bitwise-or-type-error.js:
* stress/big-int-bitwise-or-wrapped-value.js:
* stress/big-int-bitwise-xor-general.js:
* stress/big-int-bitwise-xor-jit.js:
* stress/big-int-bitwise-xor-memory-stress.js:
* stress/big-int-bitwise-xor-to-primitive-precedence.js:
* stress/big-int-bitwise-xor-type-error.js:
* stress/big-int-bitwise-xor-untyped.js:
* stress/big-int-bitwise-xor-wrapped-value.js:
* stress/big-int-boolean-proven-type.js:
* stress/big-int-branch-usage.js:
* stress/big-int-constructor-gc.js:
* stress/big-int-constructor-oom.js:
* stress/big-int-constructor-properties.js:
* stress/big-int-constructor-prototype-prop-descriptor.js:
* stress/big-int-constructor-prototype.js:
* stress/big-int-constructor.js:
* stress/big-int-div-jit-osr.js:
* stress/big-int-div-jit-untyped.js:
* stress/big-int-div-jit.js:
* stress/big-int-div-memory-stress.js:
* stress/big-int-div-to-primitive.js:
* stress/big-int-div-type-error.js:
* stress/big-int-div-wrapped-value.js:
* stress/big-int-division.js:
* stress/big-int-equals-basic.js:
* stress/big-int-equals-to-primitive-precedence.js:
* stress/big-int-equals-wrapped-value.js:
* stress/big-int-exp-basic.js:
* stress/big-int-exp-jit-osr.js:
* stress/big-int-exp-jit-untyped.js:
* stress/big-int-exp-jit.js:
* stress/big-int-exp-negative-exponent.js:
* stress/big-int-exp-to-primitive.js:
* stress/big-int-exp-type-error.js:
* stress/big-int-exp-wrapped-value.js:
* stress/big-int-function-apply.js:
* stress/big-int-greater-than-general.js:
* stress/big-int-greater-than-jit.js:
* stress/big-int-greater-than-or-equal-jit.js:
* stress/big-int-greater-than-or-equal-order-of-evaluation.js:
* stress/big-int-greater-than-or-equal-wrapped-values.js:
* stress/big-int-greater-than-or-equal.js:
* stress/big-int-greater-than-order-of-evaluation.js:
* stress/big-int-greater-than-wrapped-values.js:
* stress/big-int-json-stringify-to-json.js:
* stress/big-int-json-stringify.js:
* stress/big-int-left-shift-general.js:
* stress/big-int-left-shift-range-error.js:
* stress/big-int-left-shift-type-error.js:
* stress/big-int-left-shift-untyped.js:
* stress/big-int-left-shift-wrapped-value.js:
* stress/big-int-length.js:
* stress/big-int-less-than-general.js:
* stress/big-int-less-than-jit.js:
* stress/big-int-less-than-or-equal-general.js:
* stress/big-int-less-than-or-equal-jit.js:
* stress/big-int-less-than-or-equal-order-of-evaluation.js:
* stress/big-int-less-than-or-equal-wrapped-values.js:
* stress/big-int-less-than-order-of-evaluation.js:
* stress/big-int-less-than-wrapped-values.js:
* stress/big-int-literal-inside-literal-object.js:
* stress/big-int-literal-line-terminator.js:
* stress/big-int-literals.js:
* stress/big-int-logical-and.js:
* stress/big-int-logical-not.js:
* stress/big-int-logical-or.js:
* stress/big-int-mod-jit.js:
* stress/big-int-mod-memory-stress.js:
* stress/big-int-mod-osr.js:
* stress/big-int-mod-to-primitive-precedence.js:
* stress/big-int-mod-to-primitive.js:
* stress/big-int-mod-type-error.js:
* stress/big-int-mod-wrapped-value.js:
* stress/big-int-mod.js:
* stress/big-int-mul-jit-osr.js:
* stress/big-int-mul-jit-untyped.js:
* stress/big-int-mul-jit.js:
* stress/big-int-mul-to-primitive-precedence.js:
* stress/big-int-mul-to-primitive.js:
* stress/big-int-mul-type-error.js:
* stress/big-int-mul-wrapped-value.js:
* stress/big-int-multiplication.js:
* stress/big-int-multiply-memory-stress.js:
* stress/big-int-negate-basic.js:
* stress/big-int-no-conversion-to-number.js:
* stress/big-int-operations-error.js:
* stress/big-int-out-of-memory-tests.js:
* stress/big-int-prop-descriptor.js:
* stress/big-int-proto-constructor.js:
* stress/big-int-proto-name.js:
* stress/big-int-prototype-properties.js:
* stress/big-int-prototype-proto.js:
* stress/big-int-prototype-symbol-to-string-tag.js:
* stress/big-int-prototype-to-string-apply.js:
* stress/big-int-prototype-to-string-cast-overflow.js:
* stress/big-int-prototype-to-string-exception.js:
* stress/big-int-prototype-to-string-wrong-values.js:
* stress/big-int-prototype-value-of.js:
* stress/big-int-right-shift-general.js:
* stress/big-int-right-shift-jit-osr.js:
* stress/big-int-right-shift-jit-untyped.js:
* stress/big-int-right-shift-jit.js:
* stress/big-int-right-shift-type-error.js:
* stress/big-int-right-shift-wrapped-value.js:
* stress/big-int-spec-to-primitive.js:
* stress/big-int-spec-to-this.js:
* stress/big-int-strict-equals-jit.js:
* stress/big-int-strict-spec-to-this.js:
* stress/big-int-sub-wrapped-value.js:
* stress/big-int-subtraction-basic.js:
* stress/big-int-subtraction-jit.js:
* stress/big-int-subtraction-type-error.js:
* stress/big-int-to-object.js:
* stress/big-int-to-string.js:
* stress/big-int-type-of-proven-type-non-constant-including-symbol.js:
* stress/big-int-type-of-proven-type-non-constant.js:
* stress/big-int-type-of-proven-type.js:
* stress/big-int-type-of.js:
* stress/big-int-unary-plus.js:
* stress/big-int-value-op-update-gc-rules.js:
* stress/big-int-white-space-trailing-leading.js:
* stress/bigint-toLocaleString.js:
* stress/bitwise-not-fixup-rules.js:
* stress/delete-property-inline-cache.js:
* stress/inc-osr-exit-from-big-int.js:
* stress/inc-osr-exit-to-big-int.js:
* stress/left-shift-to-primitive-precedence.js:
* stress/numeric-literal-separators.js:
* stress/object-create-non-object-properties-parameter.js:
* stress/proxy-call-apply-handler-to-this.js:
* stress/right-shift-to-primitive-precedence.js:
* stress/value-add-big-int-and-string.js:
* stress/value-add-big-int-prediction-propagation.js:
* stress/value-add-big-int-untyped.js:
* stress/value-bit-and-ai-rule.js:
* stress/value-bit-lshift-ai-rule.js:
* stress/value-bit-not-ai-rule.js:
* stress/value-bit-or-ai-rule.js:
* stress/value-bit-xor-ai-rule.js:
* stress/value-div-fixup-int32-big-int.js:
* stress/value-mul-fixup-int32-big-int.js:
* stress/value-sub-big-int-prediction-propagation.js:
* stress/value-sub-big-int-untyped.js:
* test262/config.yaml:
2020-09-18 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Generator declaration should not be allowed in single statement context
https://bugs.webkit.org/show_bug.cgi?id=216720
Reviewed by Ross Kirsling.
* stress/generator-syntax.js:
(testSyntaxError.gen):
* test262/expectations.yaml:
2020-09-18 Caio Lima <ticaiolima@gmail.com>
[ARMv7][MIPS] Test gaderning September version
https://bugs.webkit.org/show_bug.cgi?id=216699
Unreviewed test gardening.
* stress/array-species-create-should-handle-masquerader.js:
* stress/compare-eq-should-use-known-other-use.js:
* stress/ftl-reflect-get-prototype-of.js:
* stress/typedarray-access-neutered.js:
2020-09-18 Keith Miller <keith_miller@apple.com>
DFG should ensure there are PhantomLocals for the taken block of op_jneq_ptr
https://bugs.webkit.org/show_bug.cgi?id=216669
Reviewed by Saam Barati.
* stress/jneq-ptr-opcode-variable-only-live-on-taken-branch.js: Added.
(bar):
(foo):
2020-09-17 Tadeu Zagallo <tzagallo@apple.com>
Inconsistent loop exit assertion in B3ReduceLoopStrength
https://bugs.webkit.org/show_bug.cgi?id=216274
<rdar://problem/68513573>
Reviewed by Keith Miller.
* stress/reduce-loop-strength-multiple-exits.js: Added.
(build_array):
(main):
2020-09-17 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Async generator default-export is not handled
https://bugs.webkit.org/show_bug.cgi?id=216643
Reviewed by Ross Kirsling.
* modules/async-generator-default.js: Added.
(from.string_appeared_here.import.test.from.string_appeared_here.async test2):
* modules/async-generator-default/module.js: Added.
(export.default.async test):
* test262/expectations.yaml:
2020-09-17 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Update JSModuleNamespaceObject::defineOwnProperty
https://bugs.webkit.org/show_bug.cgi?id=216640
Reviewed by Ross Kirsling.
* modules/module-namespace-object-define-own-property.js: Added.
(from.string_appeared_here.import.as.ns.from.string_appeared_here.shouldThrow):
(shouldThrow):
(shouldThrow.):
(get TypeError):
* modules/module-namespace-object-define-own-property/module.js: Added.
* test262/expectations.yaml:
2020-09-17 Yusuke Suzuki <ysuzuki@apple.com>
Support export namespace `export * as ns`
https://bugs.webkit.org/show_bug.cgi?id=214379
Reviewed by Ross Kirsling.
* stress/modules-syntax-error.js:
* stress/modules-syntax.js:
* test262/expectations.yaml:
2020-09-16 Saam Barati <sbarati@apple.com>
Don't IC a null custom accessor/value setter
https://bugs.webkit.org/show_bug.cgi?id=216620
<rdar://problem/68976066>
Reviewed by Mark Lam.
* stress/dont-ic-null-custom-setter.js: Added.
2020-09-15 Saam Barati <sbarati@apple.com>
JSImmutableButterfly::get needs to return jsDoubleNumber for double arrays
https://bugs.webkit.org/show_bug.cgi?id=216589
<rdar://problem/68061245>
Reviewed by Yusuke Suzuki.
* stress/jsimmutablebutterfly-get-must-return-double-boxed-value.js: Added.
2020-09-15 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Cache UDateTimePatternGenerator
https://bugs.webkit.org/show_bug.cgi?id=213454
Reviewed by Ross Kirsling.
* microbenchmarks/date-to-locale-date-string.js: Added.
* microbenchmarks/date-to-locale-string.js: Added.
* microbenchmarks/date-to-locale-time-string.js: Added.
2020-09-15 HyeockJin Kim <kherootz@gmail.com>
Check whether the iterator is callable in spread
https://bugs.webkit.org/show_bug.cgi?id=215974
Reviewed by Darin Adler.
* stress/spread-array-iterator.js: Added.
(shouldThrowTypeError):
(shouldThrowExactly):
(f):
(C):
2020-09-15 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, skip construct-return-early-from-infinite-loop-for-fuzzer.js when JIT is disabled
https://bugs.webkit.org/show_bug.cgi?id=216406
We are not supporting returnEarlyFromInfiniteLoopsForFuzzing option for CLoop.
* stress/construct-return-early-from-infinite-loop-for-fuzzer.js:
(vm.useJIT):
2020-09-15 Tadeu Zagallo <tzagallo@apple.com>
Object allocation sinking forgets escaped nodes when structure changes
https://bugs.webkit.org/show_bug.cgi?id=216214
<rdar://problem/68518460>
Reviewed by Saam Barati.
* stress/allocation-sinking-changing-structures.js: Added.
(main.v4.get v4):
(main):
2020-09-15 Saam Barati <sbarati@apple.com>
CustomFunctionEquivalence PropertyCondition needs to check if the structure has the property
https://bugs.webkit.org/show_bug.cgi?id=216575
<rdar://problem/68286930>
Reviewed by Yusuke Suzuki.
* stress/has-static-property-property-condition-needs-to-check-if-structure-has-property.js: Added.
(foo):
2020-09-15 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Apply Intl.DateTimeFormat hour-cycle correctly when timeStyle is used
https://bugs.webkit.org/show_bug.cgi?id=216521
Reviewed by Ross Kirsling.
JSTests/stress/intl-date-time-format-date-time-style-hour-cycle.js result is now matching against V8 and SpiderMonkey,
and this new behavior is more reasonable.
* stress/intl-date-time-format-date-time-style-hour-cycle.js:
(shouldBe.o.format):
(shouldBe):
* stress/intl-datetimeformat-hour-cycle.js: Added.
(shouldBe):
(throw.new.Error):
* test262/expectations.yaml:
2020-09-14 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Intl.Collator should take collation option
https://bugs.webkit.org/show_bug.cgi?id=216529
Reviewed by Ross Kirsling.
* stress/intl-collator-co-extension.js:
(shouldThrow):
2020-09-14 Keith Miller <keith_miller@apple.com>
BytecodeParser should GetLocal op_ret's value even if it's unused by the caller
https://bugs.webkit.org/show_bug.cgi?id=216506
Reviewed by Mark Lam.
* stress/osr-availability-should-see-unused-return-as-available.js: Added.
(foo):
(set isFinite):
2020-09-14 Alexey Shvayka <shvaikalesh@gmail.com>
Proxy's "ownKeys" trap result should not be sorted
https://bugs.webkit.org/show_bug.cgi?id=216227
Reviewed by Yusuke Suzuki.
* microbenchmarks/object-get-own-property-symbols-on-large-array.js:
* microbenchmarks/object-get-own-property-symbols.js:
* microbenchmarks/reflect-own-keys.js: Added.
* stress/proxy-own-keys.js: Fix incorrect assert.
* test262/expectations.yaml: Mark 20 test cases as passing.
2020-09-14 Alexey Shvayka <shvaikalesh@gmail.com>
ArraySetLength should coerce [[Value]] before descriptor validation
https://bugs.webkit.org/show_bug.cgi?id=158791
Reviewed by Darin Adler.
* test262/expectations.yaml: Mark 4 test cases as passing.
2020-09-14 Saam Barati <sbarati@apple.com>
Remove bogus asserts in FTLLower that assume programs are compiled with sensible speculations
https://bugs.webkit.org/show_bug.cgi?id=216485
<rdar://problem/68562804>
Reviewed by Keith Miller.
* stress/ftl-should-not-assume-speculations-are-sensible.js: Added.
(foo):
2020-09-14 Alexey Shvayka <shvaikalesh@gmail.com>
Make a few built-in methods throw if called as top-level functions
https://bugs.webkit.org/show_bug.cgi?id=216467
Reviewed by Darin Adler.
* test262/expectations.yaml: Mark 10 test cases as passing.
2020-09-14 Saam Barati <sbarati@apple.com>
Don't assume byte code operands are uint32 JSValues
https://bugs.webkit.org/show_bug.cgi?id=216386
Reviewed by Yusuke Suzuki.
* stress/dont-assume-bytecode-operand-is-uint32.js: Added.
(async foo):
2020-09-11 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Canonicalize "true" unicode extension type value to ""
https://bugs.webkit.org/show_bug.cgi?id=216224
Reviewed by Ross Kirsling.
* stress/intl-collator-co-extension.js:
(explicitTrueBeforeICU67): Deleted.
* stress/intl-collator.js:
(shouldBe.testCollator.Intl.Collator):
(explicitTrueBeforeICU67): Deleted.
* stress/intl-datetimeformat.js:
* stress/intl-locale.js:
* stress/intl-numberformat.js:
* stress/intl-object.js:
* stress/intl-pluralrules.js:
* stress/intl-relativetimeformat.js:
* test262/expectations.yaml:
2020-09-11 Yusuke Suzuki <yusukesuzuki@slowstart.org>
[JSC] attribute-change transition should not pin Structure
https://bugs.webkit.org/show_bug.cgi?id=215528
Reviewed by Saam Barati.
* stress/change-attribute-structure-transition.js: Added.
(shouldBe):
(sd.let.data.vm.getStructureTransitionList.let.result.return.result.kind):
(sd):
(shouldBe.JSON.stringify.sd):
(lastStructureID):
(shouldBe.JSON.stringify.Object.getOwnPropertyDescriptor):
2020-09-11 Alexey Shvayka <shvaikalesh@gmail.com>
Update test262 to commit 323905b70e64
https://bugs.webkit.org/show_bug.cgi?id=216379
Unreviewed test gardening.
* test262/expectations.yaml: Reset expectations for --debug.
2020-09-10 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] agent start function should move isolated copy of source
https://bugs.webkit.org/show_bug.cgi?id=216383
<rdar://problem/66371008>
Reviewed by Saam Barati.
* stress/stress-agent.js: Added.
2020-09-10 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] unshift / shift should take structure lock
https://bugs.webkit.org/show_bug.cgi?id=216378
<rdar://problem/68496096>
Reviewed by Mark Lam.
* stress/unshift-and-concurrent-access.js: Added.
2020-09-10 Alexey Shvayka <shvaikalesh@gmail.com>
Promise.prototype.finally should perform PromiseResolve
https://bugs.webkit.org/show_bug.cgi?id=176006
Reviewed by Yusuke Suzuki.
* test262/expectations.yaml: Mark 4 test cases as passing.
2020-09-10 Alexey Shvayka <shvaikalesh@gmail.com>
Update test262 to commit 323905b70e64
https://bugs.webkit.org/show_bug.cgi?id=216379
Reviewed by Yusuke Suzuki.
* test262/config.yaml: Skip "legacy-regexp" feature and unskip 2 passing tests.
* test262/expectations.yaml:
* test262/latest-changes-summary.txt:
* test262/test/*: Updated.
* test262/test262-Revision.txt:
2020-09-09 Saam Barati <sbarati@apple.com>
OutOfBoundsSaneChain operations should use their own heap locations
https://bugs.webkit.org/show_bug.cgi?id=216328
<rdar://problem/68568039>
Reviewed by Keith Miller.
* stress/out-of-bounds-sane-chain-need-their-own-heap-location.js: Added.
(foo):
2020-09-09 Alexey Shvayka <shvaikalesh@gmail.com>
Don't emitDirectBinding() if there is a [...rest] element binding
https://bugs.webkit.org/show_bug.cgi?id=216228
Reviewed by Darin Adler.
* test262/expectations.yaml: Mark 12 test cases as passing.
2020-09-08 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] returnEarlyFromInfiniteLoopsForFuzzing should return object
https://bugs.webkit.org/show_bug.cgi?id=216289
<rdar://problem/68496533>
Reviewed by Saam Barati.
* stress/construct-return-early-from-infinite-loop-for-fuzzer.js: Added.
(foo):
2020-09-08 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Special property caching should check Structure's cacheability
https://bugs.webkit.org/show_bug.cgi?id=216222
Reviewed by Saam Barati.
* stress/module-namespace-object-caching.js: Added.
(shouldBe):
(async fn):
* stress/not-cache-over-uncacheable-dictionary.js: Added.
(shouldBe):
* stress/resources/to-string-module.js: Added.
(export.toString):
* stress/resources/value-of-module.js: Added.
(export.valueOf):
2020-09-04 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Align legacy Intl constructor behavior to spec
https://bugs.webkit.org/show_bug.cgi?id=216193
Reviewed by Darin Adler.
* stress/intl-datetimeformat.js:
* stress/intl-legacy-constructors.js: Added.
(shouldBe):
(shouldThrow):
(testLegacyConstructor):
* stress/intl-numberformat.js:
2020-09-04 Alexey Shvayka <shvaikalesh@gmail.com>
Array.prototype.push should always perform [[Set]] in strict mode
https://bugs.webkit.org/show_bug.cgi?id=216121
Reviewed by Darin Adler.
* test262/expectations.yaml: Mark 2 test cases as passing.
2020-09-02 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Cache toString / valueOf / @@toPrimitive for major cases
https://bugs.webkit.org/show_bug.cgi?id=216061
Reviewed by Saam Barati.
* stress/delete-cached-to-primitive-property.js: Added.
(shouldBe):
(object.__proto__.Symbol.toPrimitive):
* stress/delete-cached-to-string-property.js: Added.
(shouldBe):
(object.__proto__.toString):
* stress/delete-cached-value-of-property.js: Added.
(shouldBe):
(shouldThrow):
(object.__proto__.valueOf):
* stress/hide-cached-to-primitive-property.js: Added.
(shouldBe):
(object.__proto__.Symbol.toPrimitive):
* stress/hide-cached-to-string-property.js: Added.
(shouldBe):
(object.__proto__.toString):
* stress/hide-cached-value-of-property.js: Added.
(shouldBe):
(object.__proto__.valueOf):
* stress/replace-cached-to-primitive-property.js: Added.
(shouldBe):
(object.__proto__.Symbol.toPrimitive):
* stress/replace-cached-to-string-property.js: Added.
(shouldBe):
(object.__proto__.toString):
* stress/replace-cached-value-of-property.js: Added.
(shouldBe):
(object.__proto__.valueOf):
2020-09-03 Ross Kirsling <ross.kirsling@sony.com>
[JSC] Add missing detached buffer errors for DataView
https://bugs.webkit.org/show_bug.cgi?id=216062
Reviewed by Yusuke Suzuki.
* stress/detached-buffer-typeerror.js:
Add new test.
* stress/dataview-jit-neuter.js:
* stress/native-constructors-length.js:
Update existing tests.
* test262/expectations.yaml:
Mark 74 test cases as passing.
2020-09-02 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Update test262
https://bugs.webkit.org/show_bug.cgi?id=216116
Reviewed by Ross Kirsling.
Rebaseline test262.
* test262/expectations.yaml:
* test262/harness/compareArray.js:
(assert.compareArray):
* test262/harness/testIntl.js:
(regExpPropertiesDefaultValues):
* test262/latest-changes-summary.txt:
* test262/test/annexB/language/expressions/object/__proto__-poisoned-object-prototype.js: Added.
* test262/test/built-ins/Array/prototype/push/length-near-integer-limit-set-failure.js: Added.
* test262/test/built-ins/Object/defineProperty/redefine-length-with-various-values-and-configurable-true.js: Added.
* test262/test/harness/compare-array-falsy-arguments.js: Added.
(assertThrows):
* test262/test/intl402/DateTimeFormat/constructor-options-order-fractionalSecondDigits.js:
* test262/test/language/expressions/object/__proto__-permitted-dup-shorthand.js: Copied from JSTests/test262/test/language/expressions/object/__proto__-permitted-dup.js.
* test262/test/language/expressions/object/__proto__-permitted-dup.js:
(obj.__proto__):
(obj.async __proto__):
* test262/test262-Revision.txt:
2020-09-02 Michael Saboff <msaboff@apple.com>
ASSERTION FAILED: value.isCell() && value.asCell()->type() == CustomGetterSetterType ./bytecode/ObjectPropertyConditionSet.cpp
https://bugs.webkit.org/show_bug.cgi?id=216103
Reviewed by Saam Barati.
New teset.
* stress/custom-get-set-override.js: Added.
(overrideFunction.o.customFunction):
(overrideFunction):
2020-09-02 Caio Lima <ticaiolima@gmail.com>
[ARMv7] Skip stress/intl-segmenter.js
https://bugs.webkit.org/show_bug.cgi?id=216074
Unreviewed Gardening.
Skipping this test for ARMv7, since some boards we have are using ICU
60 and causes issues for this test.
* stress/intl-segmenter.js:
2020-08-30 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] @defaultPromiseThen fast path should check species constructor
https://bugs.webkit.org/show_bug.cgi?id=215996
Reviewed by Ross Kirsling.
* test262/expectations.yaml:
2020-08-30 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Use -2 for grouping options in IntlRelativeTimeFormat
https://bugs.webkit.org/show_bug.cgi?id=215984
Reviewed by Ross Kirsling.
* stress/intl-relativetimeformat.js:
2020-08-30 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] async function cannot appear in single-statement context
https://bugs.webkit.org/show_bug.cgi?id=215993
Reviewed by Darin Adler.
* stress/async-function-lookahead.js: Added.
(testSyntax):
(testSyntaxError):
(testSyntax.false.async t):
(testSyntaxError.false.async t):
* test262/expectations.yaml:
2020-08-29 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] `let [` sequence cannot appear in ExpressionStatement context
https://bugs.webkit.org/show_bug.cgi?id=215977
Reviewed by Ross Kirsling.
* stress/let-and-open-bracket.js: Added.
(testSyntax):
(testSyntaxError):
* test262/expectations.yaml:
2020-08-29 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] for-of uses AssignmentExpression while for-in uses Expression
https://bugs.webkit.org/show_bug.cgi?id=215975
Reviewed by Ross Kirsling.
* test262/expectations.yaml:
2020-08-28 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] for-of / for-in left-hand-side target should be simple-assignment-target
https://bugs.webkit.org/show_bug.cgi?id=215969
Reviewed by Ross Kirsling.
* stress/for-of-in-non-reference.js: Added.
(testSyntax):
(testSyntaxError):
(testSyntaxError.t):
(testSyntaxError.async t):
(testSyntax.async t):
* test262/expectations.yaml:
2020-08-28 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Implement Intl.DateTimeFormat dayPeriod
https://bugs.webkit.org/show_bug.cgi?id=215839
Reviewed by Ross Kirsling.
* stress/intl-datetimeformat-day-period.js: Added.
(shouldBe):
(throw.new.Error):
* test262/config.yaml:
2020-08-28 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] super property with new should be accepted
https://bugs.webkit.org/show_bug.cgi?id=215966
Reviewed by Ross Kirsling.
* stress/super-and-new.js: Added.
(testSyntaxError):
(shouldBe):
(test.A):
(test.A.prototype.get hey):
(test.A.prototype.get hey2):
(test.A.prototype.super):
(test.B.get super):
2020-08-28 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] `new import.meta()` is acceptable
https://bugs.webkit.org/show_bug.cgi?id=215915
Reviewed by Ross Kirsling.
* stress/modules-syntax-error.js:
* stress/modules-syntax.js:
* test262/expectations.yaml:
2020-08-27 Alexey Shvayka <shvaikalesh@gmail.com>
__proto__ in object literal should perform [[SetPrototypeOf]] directly
https://bugs.webkit.org/show_bug.cgi?id=215769
Reviewed by Ross Kirsling.
* microbenchmarks/object-literal-underscore-proto-setter.js: Added.
* stress/syntax-checker-duplicate-underscore-proto.js:
Rewrite the test to ensure each eval() call throws a SyntaxError.
2020-08-27 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] setLength in Array#push could get very large length
https://bugs.webkit.org/show_bug.cgi?id=215897
<rdar://problem/67859149>
Reviewed by Keith Miller.
* stress/array-push-more-than-max-size.js: Added.
(shouldBe):
(shouldThrow):
2020-08-27 Saam Barati <sbarati@apple.com>
GetByVal constant folding over a Double OutOfBoundsSaneChain array with no BytecodeUsesAsOther should constant fold to PNaN, not undefined
https://bugs.webkit.org/show_bug.cgi?id=215894
<rdar://problem/67669696>
Reviewed by Michael Saboff and Keith Miller.
* stress/oob-sane-chain-double-constant-fold-to-PNaN.js: Added.
2020-08-26 Alexey Shvayka <shvaikalesh@gmail.com>
Merge putLength() into setLength()
https://bugs.webkit.org/show_bug.cgi?id=211279
Reviewed by Darin Adler and Saam Barati.
* microbenchmarks/array-shift-unshift-empty.js: Added.
* stress/array-setLength-on-proxy-error.js: Added.
2020-08-26 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Enable Intl.Segmenter
https://bugs.webkit.org/show_bug.cgi?id=215854
Reviewed by Ross Kirsling.
* stress/intl-segmenter.js:
* test262/config.yaml:
2020-08-26 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Add ASCII comparison fast path for IntlCollator
https://bugs.webkit.org/show_bug.cgi?id=215798
Reviewed by Darin Adler, Ross Kirsling, and Saam Barati.
* stress/string-locale-compare-uca-ducet.js: Added.
(shouldBe):
* stress/string-localeCompare.js:
(data.sort):
2020-08-26 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Implement Intl.DateTimeFormat fractionalSecondDigits
https://bugs.webkit.org/show_bug.cgi?id=215840
Reviewed by Ross Kirsling.
Test262 is showing wrong ordering of option property accesses compared to the latest PR.
Later, we should update Test262.
* stress/intl-datetimeformat.js:
(const.options.get second):
(const.options.get fractionalSecondDigits):
(const.options.get localeMatcher):
(const.options.get timeZoneName):
(const.options.get formatMatcher):
* test262/config.yaml:
* test262/expectations.yaml:
2020-08-26 Paulo Matos <pmatos@igalia.com>
Skip stress/array-species-create-should-handle-masquerader.js on MIPS
Unreviewed Gardening.
* stress/array-species-create-should-handle-masquerader.js:
2020-08-25 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] FTL should use m_origin instead of m_node->origin since m_node can be nullptr
https://bugs.webkit.org/show_bug.cgi?id=215833
Reviewed by Mark Lam.
* stress/ftl-entry-osr-exit-has-nullptr-node.js: Added.
(foo):
2020-08-25 Alexey Shvayka <shvaikalesh@gmail.com>
Invalid early error for object literal method named "__proto__"
https://bugs.webkit.org/show_bug.cgi?id=215760
Reviewed by Ross Kirsling.
* test262/expectations.yaml: Mark 2 test cases as passing.
2020-08-25 Paulo Matos <pmatos@igalia.com>
Skip failing tests on MIPS for later investigation
Unreviewed Gardening.
* stress/intl-segmenter.js:
* stress/typedarray-functions-with-neutered.js:
2020-08-25 Alexey Shvayka <shvaikalesh@gmail.com>
Implementation of the class "extends" clause incorrectly uses __proto__ for setting prototypes
https://bugs.webkit.org/show_bug.cgi?id=205848
Reviewed by Keith Miller.
* microbenchmarks/class-derived-creation.js: Added.
* test262/expectations.yaml: Mark 4 test cases as passing.
2020-08-24 Keith Miller <keith_miller@apple.com>
Update test262 (mid Aug 2020 edition)
https://bugs.webkit.org/show_bug.cgi?id=215784
Rubber-stamped by Saam Barati and Yusuke Suzuki.
* test262/expectations.yaml:
* test262/latest-changes-summary.txt:
* test262/test/built-ins/String/prototype/split/limit-touint32-error.js: Added.
(ExpectedError):
(ExpectedError.prototype.toString):
(nonStringableSeparator.Symbol.toPrimitive):
(nonStringableSeparator.toString):
(nonStringableSeparator.valueOf):
(nonNumberableLimit.Symbol.toPrimitive):
* test262/test/built-ins/String/prototype/split/separator-tostring-error.js: Added.
(ExpectedError):
(ExpectedError.prototype.toString):
(nonStringableSeparator.toString):
* test262/test/built-ins/String/prototype/split/separator-undef-limit-zero.js:
* test262/test/built-ins/String/prototype/split/this-value-tostring-error.js: Added.
(ExpectedError):
(ExpectedError.prototype.toString):
(nonStringableReceiver.toString):
(splitter.Symbol.split):
(catch):
(nonStringableSeparator.Symbol.toPrimitive):
(nonStringableSeparator.toString):
(nonStringableSeparator.valueOf):
* test262/test/language/module-code/export-default-asyncfunction-declaration-binding-exists.js: Added.
(A):
(export.default.async A):
* test262/test/language/module-code/export-default-asyncfunction-declaration-binding.js: Added.
(export.default.async A):
* test262/test/language/module-code/export-default-asyncgenerator-declaration-binding-exists.js: Added.
(AG):
(export.default.async AG):
* test262/test/language/module-code/export-default-asyncgenerator-declaration-binding.js: Added.
(export.default.async AG):
* test262/test/language/module-code/export-default-function-declaration-binding-exists.js: Added.
(F):
(export.default.F):
* test262/test/language/module-code/export-default-function-declaration-binding.js: Added.
(export.default.F):
* test262/test/language/module-code/export-default-generator-declaration-binding-exists.js: Added.
(G):
(export.default.G):
* test262/test/language/module-code/export-default-generator-declaration-binding.js: Added.
(export.default.G):
* test262/test262-Revision.txt:
2020-08-24 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, ignore RangeErrors when ICU is too old
Since ICU version is different (very sad), some of tests can throw an error.
* stress/intl-language-tag.js:
(let.shouldThrow):
(let.shouldNotThrow):
(suppressErrors):
(vm.icuVersion):
(shouldThrow): Deleted.
(shouldNotThrow): Deleted.
2020-08-22 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Implement Intl Language Tag Parser
https://bugs.webkit.org/show_bug.cgi?id=215058
Reviewed by Ross Kirsling and Darin Adler.
* stress/intl-collator.js:
* stress/intl-datetimeformat.js:
* stress/intl-language-tag.js: Added.
(shouldThrow):
(shouldNotThrow):
* stress/intl-locale.js:
* stress/intl-numberformat.js:
* stress/intl-object.js:
* stress/intl-pluralrules.js:
* stress/intl-relativetimeformat.js:
* stress/string-toLocaleLowerCase.js:
* stress/string-toLocaleUpperCase.js:
* test262/expectations.yaml:
2020-08-22 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, workaround for old ICU headers in macOS Catalina bots
https://bugs.webkit.org/show_bug.cgi?id=209774
EWS and Catalina bots are inconsistent in terms of ICU header versions.
This patch adds a workaround which checks ICU header version too at runtime.
* stress/intl-numberformat-unified-ja.js:
(vm.icuVersion.64.vm.icuHeaderVersion):
(vm.icuVersion): Deleted.
* stress/intl-numberformat-unified.js:
(vm.icuVersion.64.vm.icuHeaderVersion):
(vm.icuVersion): Deleted.
2020-08-22 Alexey Shvayka <shvaikalesh@gmail.com>
The [[ThrowTypeError]] function object must not be extensible
https://bugs.webkit.org/show_bug.cgi?id=108873
Reviewed by Yusuke Suzuki.
* test262/expectations.yaml: Mark 8 test cases as passing.
2020-08-22 Yusuke Suzuki <ysuzuki@apple.com>
[ECMA-402] Intl.DateTimeFormat dateStyle/timeStyle missing in WebKit
https://bugs.webkit.org/show_bug.cgi?id=209776
Reviewed by Darin Adler and Ross Kirsling.
* stress/intl-date-time-format-date-time-style-basic.js: Added.
(shouldBe):
(shouldBe.o.format):
* stress/intl-date-time-format-date-time-style-hour-cycle.js: Added.
(shouldBe):
(shouldBe.o.format):
* stress/intl-date-time-style-option-consistency.js: Added.
(shouldThrow):
(value.of.Object.entries):
* test262/config.yaml:
* test262/expectations.yaml:
2020-08-22 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, Catalina test262 bot is using older SDK than actual Catalina's one
We should update the bot. For now, skipping these tests.
* test262/config.yaml:
2020-08-22 Yusuke Suzuki <ysuzuki@apple.com>
[ECMA-402] Implement Intl.DateTimeFormat.prototype.formatRange
https://bugs.webkit.org/show_bug.cgi?id=209778
Reviewed by Ross Kirsling.
test262 failures are due to either of
1. formatRangeToParts is missing
2. ICU version difference
* stress/intl-datetimeformat-formatrange-relevant-extensions-ja.js: Added.
(shouldBe):
(shouldThrow):
(vm.icuVersion):
* stress/intl-datetimeformat-formatrange-relevant-extensions.js: Added.
(shouldBe):
(shouldThrow):
* stress/intl-datetimeformat-formatrange.js: Added.
(shouldBe):
(shouldThrow):
(test):
* test262/config.yaml:
* test262/expectations.yaml:
2020-08-22 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Add Intl.Segmenter
https://bugs.webkit.org/show_bug.cgi?id=213638
Reviewed by Ross Kirsling.
* stress/intl-segmenter.js: Added.
(shouldBe):
(shouldNotThrow):
(func):
* test262/config.yaml:
* test262/expectations.yaml:
2020-08-22 Yusuke Suzuki <ysuzuki@apple.com>
[ECMA-402] Implement unified Intl.NumberFormat
https://bugs.webkit.org/show_bug.cgi?id=209774
Reviewed by Ross Kirsling and Darin Adler.
All test262 failures are due to old ICU version. Once ICU is updated, they will go away.
* stress/intl-numberformat-unified-ja.js: Added.
(shouldBe):
(vm.icuVersion):
* stress/intl-numberformat-unified.js: Added.
(shouldBe):
(vm.icuVersion):
* stress/intl-numberformat.js:
(testNumberFormat):
(shouldBe.testNumberFormat.Intl.NumberFormat):
* test262/config.yaml:
* test262/expectations.yaml:
2020-08-22 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Enable Intl.DisplayNames
https://bugs.webkit.org/show_bug.cgi?id=215749
Reviewed by Ross Kirsling.
* stress/intl-displaynames.js:
* stress/intl-parse-unicode-subtags.js:
* stress/intl-suppored-locales-of.js:
* test262/config.yaml:
2020-08-21 Alexey Shvayka <shvaikalesh@gmail.com>
Align "length" properties of function prototypes with the spec
https://bugs.webkit.org/show_bug.cgi?id=215716
Reviewed by Ross Kirsling.
* test262/expectations.yaml: Mark 8 test cases as passing.
2020-08-21 Alexey Shvayka <shvaikalesh@gmail.com>
Define Intl[Symbol.toStringTag]
https://bugs.webkit.org/show_bug.cgi?id=215715
Reviewed by Ross Kirsling.
* stress/intl-object.js:
* test262/expectations.yaml: Mark 4 test cases as passing.
2020-08-21 Alexey Shvayka <shvaikalesh@gmail.com>
Function.prototype.bind should not clamp "length" to int32
https://bugs.webkit.org/show_bug.cgi?id=215733
Reviewed by Darin Adler.
* microbenchmarks/function-bind-creation.js: Added.
* test262/expectations.yaml: Mark 4 test cases as passing.
2020-08-20 Alexey Shvayka <shvaikalesh@gmail.com>
Invalid early errors for class methods named "constructor" and "prototype"
https://bugs.webkit.org/show_bug.cgi?id=215413
Reviewed by Darin Adler.
* test262/expectations.yaml: Mark 24 test cases as passing.
2020-08-20 Alexey Shvayka <shvaikalesh@gmail.com>
Update test262 to commit e0a65ee75ef8
https://bugs.webkit.org/show_bug.cgi?id=215708
Reviewed by Yusuke Suzuki.
* test262/expectations.yaml:
* test262/harness/*: Updated.
* test262/latest-changes-summary.txt:
* test262/test/*: Updated.
* test262/test262-Revision.txt:
2020-08-19 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Add Object.getOwnPropertyNames caching as it is done for Object.keys, and accelerate Object.getOwnPropertyDescriptor
https://bugs.webkit.org/show_bug.cgi?id=215666
Reviewed by Saam Barati.
* microbenchmarks/get-own-property-descriptor.js: Added.
(object.get test):
(object.set test):
* stress/get-own-property-names-bad-time.js: Added.
(shouldBe):
(test):
* stress/get-own-property-names-dfg.js: Added.
(shouldBe):
(test):
* stress/keys-bad-time.js: Added.
(shouldBe):
(test):
* stress/keys-dfg.js: Added.
(shouldBe):
(test):
* stress/object-get-own-property-names-cached-zero.js: Added.
(shouldBe):
(test):
* stress/object-get-own-property-names-changed-attribute.js: Added.
(shouldBe):
(test):
* stress/object-get-own-property-names-changed-index.js: Added.
(shouldBe):
(test):
* stress/object-get-own-property-names-changed.js: Added.
(shouldBe):
(test):
* stress/object-get-own-property-names-indexed-non-cache.js: Added.
(shouldBe):
(test):
* stress/object-get-own-property-names-overrides-get-property-names.js: Added.
(shouldBe):
(test):
(noInline):
* stress/object-keys-cache.js: Added.
(shouldBe):
(symbol):
2020-08-19 Alexey Shvayka <shvaikalesh@gmail.com>
Introduce OpIsCallable bytecode and intrinsic
https://bugs.webkit.org/show_bug.cgi?id=215572
Reviewed by Ross Kirsling and Saam Barati.
* stress/type-of-functions-and-objects.js:
* test262/expectations.yaml: Mark 2 test cases as passing.
2020-08-17 Saam Barati <sbarati@apple.com>
Have an OOB+SaneChain Array::Speculation
https://bugs.webkit.org/show_bug.cgi?id=215487
Reviewed by Yusuke Suzuki.
* microbenchmarks/oob-sane-chain-contiguous.js: Added.
* microbenchmarks/oob-sane-chain-double-read-undefined.js: Added.
* microbenchmarks/oob-sane-chain-double.js: Added.
* microbenchmarks/oob-sane-chain-int32.js: Added.
* stress/oob-sane-chain-negative-index.js: Added.
2020-08-16 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, reduce iteration count more for non-JIT environments
If JSC does not have JIT, many iterations do not matter.
* stress/memcpy-typed-loops.js:
2020-08-12 Keith Miller <keith_miller@apple.com>
OSRAvailabilityAnalysis shouldn't mark GetStack nodes directly as valid places for recovery
https://bugs.webkit.org/show_bug.cgi?id=215434
Reviewed by Saam Barati.
* stress/for-of-post-sinking-osr-availability.js: Added.
(foo):
2020-08-13 Alexey Shvayka <shvaikalesh@gmail.com>
Cache Structure::attributeChangeTransition()
https://bugs.webkit.org/show_bug.cgi?id=214890
Reviewed by Yusuke Suzuki.
* microbenchmarks/redefine-property-previous-attributes.js: Added.
2020-08-12 Saam Barati <sbarati@apple.com>
Inline cache Replace and Setters on PureForwardingProxy
https://bugs.webkit.org/show_bug.cgi?id=215250
Reviewed by Yusuke Suzuki.
* microbenchmarks/property-replace-and-setter-on-js-proxy.js: Added.
(assert):
(foo):
2020-08-07 Michael Saboff <msaboff@apple.com>
RegExp sticky not matching alternates correctly, ignoring lastIndex requirement
https://bugs.webkit.org/show_bug.cgi?id=214181
Reviewed by Yusuke Suzuki.
New test.
* stress/regexp-sticky-tests.js: Added.
(assert):
2020-08-07 Paulo Matos <pmatos@igalia.com>
Skip test on ARM32 - test is flaky in mini-mode
Unreviewed Gardening.
* stress/put-direct-index-broken-2.js:
2020-08-05 Saam Barati <sbarati@apple.com>
Fix returnEarlyFromInfiniteLoopsForFuzzing in DFG and validateDoesGC
https://bugs.webkit.org/show_bug.cgi?id=215194
<rdar://problem/66158641>
Reviewed by Mark Lam.
* stress/validate-does-gc-with-return-early-from-infinite-loop-2.js: Added.
(vm.useJIT):
2020-08-05 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, skip private field test
Private field has a bug and this test is failing. We skip it since private field is not enabled.
* stress/put-by-val-direct-putprivate.js:
2020-08-04 Keith Miller <keith_miller@apple.com>
CheckpointSideState shoud play nicely with StackOverflowException unwinding.
https://bugs.webkit.org/show_bug.cgi?id=215114
Reviewed by Saam Barati.
* stress/stack-overflow-into-frame-with-pending-checkpoint.js: Added.
(foo.catch.async bar):
(foo.catch):
(foo):
2020-08-03 Caio Lima <ticaiolima@gmail.com>
[JSC][MIPS] Test gardening July 31st edition
https://bugs.webkit.org/show_bug.cgi?id=215023
Unreviewed Gardening.
* stress/typedarray-access-neutered.js:
2020-07-30 Saam Barati <sbarati@apple.com>
Skip stress/operand-should-fit-in-abstract-heap-encoded-payload-format.js
https://bugs.webkit.org/show_bug.cgi?id=215001
Reviewed by Darin Adler.
The test takes > 4 minutes when run on an idle machine. That's too long.
* stress/operand-should-fit-in-abstract-heap-encoded-payload-format.js:
2020-07-30 Caio Lima <ticaiolima@gmail.com>
[JSC][32-bits] interator_next should check for EmptyValue instead of undefined to execute LLInt fast path
https://bugs.webkit.org/show_bug.cgi?id=214963
Reviewed by Yusuke Suzuki.
* stress/invalidate-array-iterator-prototype-next.js: Added.
2020-07-30 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, fix bottom-tuple.js test
https://bugs.webkit.org/show_bug.cgi?id=214956
Only thing we would like to check in this test is whether this does not crash.
* wasm/stress/bottom-tuple.js:
(catch): Deleted.
2020-07-29 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, use requireOptions
https://bugs.webkit.org/show_bug.cgi?id=214956
* wasm/stress/bottom-tuple.js:
2020-07-29 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Add B3::BottomTupleValue node
https://bugs.webkit.org/show_bug.cgi?id=214956
<rdar://problem/65192877>
Reviewed by Keith Miller.
* wasm/stress/bottom-tuple.js: Added.
(try.main):
(catch):
2020-07-29 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Upgrade test262
https://bugs.webkit.org/show_bug.cgi?id=214949
Reviewed by Ross Kirsling.
related-year-zh.js tests are updated and passing.
* test262/config.yaml:
* test262/latest-changes-summary.txt:
* test262/test/intl402/DateTimeFormat/prototype/format/related-year-zh.js:
* test262/test/intl402/DateTimeFormat/prototype/formatToParts/related-year-zh.js:
(actual.forEach):
(verifyFormatParts): Deleted.
(verifyFormatParts.df.formatToParts): Deleted.
* test262/test/intl402/Segmenter/prototype/segment/segment-grapheme-iterable.js:
(const.v.of.seg.segment):
* test262/test/intl402/Segmenter/prototype/segment/segment-grapheme.js: Removed.
* test262/test/intl402/Segmenter/prototype/segment/segment-sentence-iterable.js:
(const.v.of.seg.segment):
* test262/test/intl402/Segmenter/prototype/segment/segment-sentence.js: Removed.
* test262/test/intl402/Segmenter/prototype/segment/segment-tostring.js:
* test262/test/intl402/Segmenter/prototype/segment/segment-word-iterable.js:
(const.v.of.seg.segment):
* test262/test/intl402/Segmenter/prototype/segment/segment-word.js: Removed.
* test262/test262-Revision.txt:
2020-07-29 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Skip too heavy tests for Debug build
https://bugs.webkit.org/show_bug.cgi?id=214939
Reviewed by Mark Lam.
They are taking too much time in Debug build and cause timeout. We should skip them.
* ChakraCore.yaml:
* stress/codeblock-destructor-access-unlinkedcodeblock.js:
* stress/dfg-to-string-on-string-object-does-not-gc.js:
* stress/rest-parameter-many-arguments.js:
2020-07-29 Tadeu Zagallo <tzagallo@apple.com>
WebAssembly validation for call_indirect is incorrect
https://bugs.webkit.org/show_bug.cgi?id=214901
<rdar://problem/65189677>
Reviewed by Saam Barati.
* wasm/stress/validate-call_indirect.js: Added.
(try.main):
(catch):
2020-07-29 Paulo Matos <pmatos@igalia.com>
for..of intrinsics implementation for 32bits
https://bugs.webkit.org/show_bug.cgi?id=214737
Reviewed by Yusuke Suzuki.
Joint work with Caio Lima <ticaiolima@gmail.com>.
Unskip tests previously skipped due to missing for..of intrinsics.
* stress/for-of-array-different-globals.js:
* stress/for-of-iterator-open-osr-at-inlined-return-non-object.js:
* stress/for-of-iterator-open-osr-at-iterator-set-local.js:
* stress/for-of-iterator-open-return-non-object.js:
2020-07-29 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Reflect object should have toStringTag with "Reflect"
https://bugs.webkit.org/show_bug.cgi?id=214909
Reviewed by Mark Lam.
* stress/reflect.js:
* test262/expectations.yaml:
2020-07-28 Caitlin Potter <caitp@igalia.com>
[JSC] add IC support for op_get_private_name
https://bugs.webkit.org/show_bug.cgi?id=213545
Reviewed by Saam Barati.
Add a crashtest for a crash in an earlier edition of the GPN IC patch.
* stress/get-private-name-cache-failure.js: Added.
2020-07-27 Yusuke Suzuki <ysuzuki@apple.com>
[JSC][wasm] Truncating slightly less than INT32_MIN is incorrect
https://bugs.webkit.org/show_bug.cgi?id=214834
Reviewed by Darin Adler.
* wasm/spec-tests/conversions.wast.js:
* wasm/stress/trunc-int-min-minus-one.js: Added.
2020-07-28 Mark Lam <mark.lam@apple.com>
ASSERTION FAILED: isSymbol() in Source/JavaScriptCore/runtime/JSCell.cpp(188)
https://bugs.webkit.org/show_bug.cgi?id=214837
Reviewed by Darin Adler.
* stress/jsc-shell-test-properties-should-not-be-enumerable.js: Added.
2020-07-28 Caio Lima <ticaiolima@gmail.com>
[32-bits] Skipping some failing tests on ARMv7 and MIPS
https://bugs.webkit.org/show_bug.cgi?id=214872
Unreviewed Gardening.
* stress/ftl-reflect-get-prototype-of.js:
* stress/intl-suppored-locales-of.js:
2020-07-25 Yusuke Suzuki <ysuzuki@apple.com>
Update test262
https://bugs.webkit.org/show_bug.cgi?id=214791
Reviewed by Ross Kirsling.
* test262/config.yaml:
* test262/expectations.yaml:
* test262/harness/async-gc.js:
* test262/latest-changes-summary.txt:
* test262/test/annexB/language/expressions/typeof/emulates-undefined.js: Added.
* test262/test/built-ins/FinalizationRegistry/gc-has-one-chance-to-call-cleanupCallback.js:
* test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/callback-not-callable-throws.js:
* test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/cleanup-prevented-with-reference.js:
* test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/cleanup-prevented-with-unregister.js:
* test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/custom-this.js:
* test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/holdings-multiple-values.js:
* test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/length.js:
* test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/name.js:
* test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/prop-desc.js:
* test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/reentrancy.js:
* test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/return-undefined-with-gc.js:
* test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/return-undefined.js:
* test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/this-does-not-have-internal-cells-throws.js:
* test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/this-not-object-throws.js:
* test262/test/built-ins/FinalizationRegistry/prototype/unregister/unregister-cleaned-up-cell.js:
* test262/test/built-ins/WeakRef/prototype/deref/gc-cleanup-not-prevented-with-wr-deref.js:
* test262/test/intl402/DisplayNames/length.js:
* test262/test262-Revision.txt:
2020-07-24 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Skip unrelated / too-compute-heavy tests in Apple Watch Series 3
https://bugs.webkit.org/show_bug.cgi?id=214768
Reviewed by Mark Lam.
We skip following tests in Apple Watch Series 3.
1. Tests take very long time to reproduce crash.
2. Tests for FTL, which are unrelated to Apple Watch Series 3.
3. Tests for fast for-of semantics update, which is not supported in 32bit architectures.
4. Tests for denormalized numbers where ceil / floor works differently in ARMv7k as expected.
* ChakraCore.yaml:
* stress/for-of-iterator-open-osr-at-inlined-return-non-object.js:
* stress/for-of-iterator-open-osr-at-iterator-set-local.js:
* stress/for-of-iterator-open-return-non-object.js:
* stress/op_bitand.js:
* stress/op_bitor.js:
* stress/op_bitxor.js:
* stress/op_lshift-ConstVar.js:
* stress/op_lshift-VarConst.js:
* stress/op_lshift-VarVar.js:
* stress/op_mul-ConstVar.js:
* stress/op_mul-VarConst.js:
* stress/op_mul-VarVar.js:
* stress/op_rshift-ConstVar.js:
* stress/op_rshift-VarConst.js:
* stress/op_rshift-VarVar.js:
* stress/op_sub-ConstVar.js:
* stress/op_sub-VarConst.js:
* stress/op_sub-VarVar.js:
* stress/op_urshift-ConstVar.js:
* stress/op_urshift-VarConst.js:
* stress/op_urshift-VarVar.js:
* stress/spread-forward-call-varargs-stack-overflow.js:
* stress/toctou-having-a-bad-time-new-array.js:
2020-07-24 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] DFG::AbstractValue::filterByValue should re-filter configured m_value via m_type
https://bugs.webkit.org/show_bug.cgi?id=214721
<rdar://problem/65882837>
Reviewed by Mark Lam.
* stress/speculation-from-structure-and-classinfo-should-agree.js: Added.
(bar):
(foo):
2020-07-24 Alexey Shvayka <shvaikalesh@gmail.com>
JSON.parse should not modify non-configurable properties.
https://bugs.webkit.org/show_bug.cgi?id=163446
Reviewed by Darin Adler.
* test262/expectations.yaml: Mark 2 test cases as passing.
2020-07-24 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Do not use hardened Array for Intl supportedLocalesOf
https://bugs.webkit.org/show_bug.cgi?id=214676
Reviewed by Mark Lam.
* stress/intl-suppored-locales-of.js: Added.
(shouldBe):
2020-07-24 Angelos Oikonomopoulos <angelos@igalia.com>
Skip crashing test on mips
https://bugs.webkit.org/show_bug.cgi?id=214729
Reviewed by Noam Rosenthal.
* stress/compare-eq-should-use-known-other-use.js:
2020-07-24 Michael Catanzaro <mcatanzaro@gnome.org>
REGRESSION(r264639): Intl.DisplayNames tests failing on all architectures
https://bugs.webkit.org/show_bug.cgi?id=214589
Reviewed by Darin Adler.
Massage the tests for compatibility with ICU 63.1. I don't understand how exactly ICU's
behavior has changed between releases, and some of the conditions need to be added in
somewhat strange places, but this at least makes the tests pass.
* stress/intl-displaynames.js:
(vm.icuVersion):
* stress/intl-parse-unicode-subtags.js:
(vm.icuVersion):
2020-07-23 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Arrow function |this| resolution should not be trapped by with-scope
https://bugs.webkit.org/show_bug.cgi?id=214716
<rdar://problem/65980639>
Reviewed by Darin Adler.
* stress/proxy-trap-this.js: Added.
(shouldNotThrow):
(const.handler.has):
(test):
2020-07-23 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] BigInt can be `false` in boolean context in DFG AI
https://bugs.webkit.org/show_bug.cgi?id=214678
<rdar://problem/65894751>
Reviewed by Mark Lam.
* stress/bigint-can-be-false-in-boolean-context.js: Added.
(foo.bar):
(foo):
2020-07-23 Angelos Oikonomopoulos <angelos@igalia.com>
Fix logic error in r264703
https://bugs.webkit.org/show_bug.cgi?id=214674
Unreviewed Gardening.
* stress/intl-displaynames.js:
* stress/intl-parse-unicode-subtags.js:
2020-07-23 Alexey Shvayka <shvaikalesh@gmail.com>
Remove ArrayNode::m_optional
https://bugs.webkit.org/show_bug.cgi?id=214294
Reviewed by Darin Adler.
* microbenchmarks/destructuring-array-literal.js: Added.
* microbenchmarks/function-dot-apply-array-literal.js: Added.
* stress/apply-second-argument-must-be-array-like.js:
* stress/destructuring-assignment-syntax.js:
2020-07-22 Angelos Oikonomopoulos <angelos@igalia.com>
Skip failing intl tests on ARM
https://bugs.webkit.org/show_bug.cgi?id=214638
Unreviewed Gardening.
* stress/intl-displaynames.js:
* stress/intl-parse-unicode-subtags.js:
2020-07-21 Michael Catanzaro <mcatanzaro@gnome.org>
REGRESSION(r264330): infinite loop in JSC stress tests using cloop
https://bugs.webkit.org/show_bug.cgi?id=214491
Reviewed by Saam Barati.
Run the test only if JIT is enabled.
* stress/validate-does-gc-with-return-early-from-infinite-loop.js:
(vm.useJIT):
2020-07-20 Yusuke Suzuki <ysuzuki@apple.com>
[ECMA-402] Implement Intl.DisplayNames
https://bugs.webkit.org/show_bug.cgi?id=209779
Reviewed by Ross Kirsling.
* stress/intl-displaynames.js: Added.
(shouldBe):
(shouldThrow):
(vm.icuVersion):
* stress/intl-parse-unicode-subtags.js: Added.
(shouldBe):
(shouldThrow):
(vm.icuVersion):
* test262/config.yaml:
2020-07-20 Ross Kirsling <ross.kirsling@sony.com>
[JSC] eval?.() should be indirect eval
https://bugs.webkit.org/show_bug.cgi?id=214568
Reviewed by Keith Miller.
* test262/expectations.yaml:
Mark two test cases as passing.
2020-07-20 Keith Miller <keith_miller@apple.com>
Turn on FinalizationRegistry test262 tests
https://bugs.webkit.org/show_bug.cgi?id=214576
Reviewed by Ross Kirsling.
* test262/config.yaml:
2020-07-20 Keith Miller <keith_miller@apple.com>
[JSC] update test262 (July 2020 edition)
https://bugs.webkit.org/show_bug.cgi?id=214575
Reviewed by Ross Kirsling.
* test262/expectations.yaml:
* test262/harness/atomicsHelper.js:
* test262/harness/testIntl.js:
(testWithIntlConstructors):
* test262/latest-changes-summary.txt:
* test262/test/built-ins/Array/prototype/concat/S15.4.4.4_A3_T2.js:
* test262/test/built-ins/Array/prototype/concat/S15.4.4.4_A3_T3.js:
* test262/test/built-ins/Atomics/exchange/nonshared-int-views.js:
(testWithTypedArrayConstructors): Deleted.
* test262/test/built-ins/Atomics/waitAsync/bigint/negative-index-throws.js:
* test262/test/built-ins/Atomics/waitAsync/bigint/out-of-range-index-throws.js:
* test262/test/built-ins/Atomics/waitAsync/bigint/poisoned-object-for-timeout-throws-agent.js:
(262.agent.receiveBroadcast):
(1n.then.async agentCount):
* test262/test/built-ins/Atomics/waitAsync/bigint/poisoned-object-for-timeout-throws.js:
* test262/test/built-ins/Atomics/waitAsync/bigint/symbol-for-timeout-throws-agent.js:
(1n.then.async agentCount):
* test262/test/built-ins/Atomics/waitAsync/negative-index-throws.js:
* test262/test/built-ins/Atomics/waitAsync/null-for-timeout.js:
* test262/test/built-ins/Atomics/waitAsync/out-of-range-index-throws.js:
* test262/test/built-ins/Atomics/waitAsync/poisoned-object-for-timeout-throws-agent.js:
(262.agent.receiveBroadcast):
(1.then.async agentCount):
* test262/test/built-ins/Atomics/waitAsync/poisoned-object-for-timeout-throws.js:
* test262/test/built-ins/Atomics/waitAsync/returns-result-object-value-is-promise-resolves-to-ok.js:
* test262/test/built-ins/Atomics/waitAsync/returns-result-object-value-is-promise-resolves-to-timed-out.js:
* test262/test/built-ins/Atomics/waitAsync/returns-result-object-value-is-string-not-equal.js:
* test262/test/built-ins/Atomics/waitAsync/returns-result-object-value-is-string-timed-out.js:
* test262/test/built-ins/Atomics/waitAsync/symbol-for-index-throws.js:
* test262/test/built-ins/Atomics/waitAsync/symbol-for-timeout-throws-agent.js:
(1.then.async agentCount):
* test262/test/built-ins/Atomics/waitAsync/validate-arraytype-before-index-coercion.js:
* test262/test/built-ins/Atomics/waitAsync/validate-arraytype-before-timeout-coercion.js:
* test262/test/built-ins/Atomics/waitAsync/validate-arraytype-before-value-coercion.js:
* test262/test/built-ins/JSON/stringify/replacer-array-proxy.js:
* test262/test/built-ins/Promise/allSettled/resolve-from-same-thenable.js:
* test262/test/built-ins/Promise/any/iter-returns-true-reject.js:
* test262/test/built-ins/Promise/any/iter-returns-undefined-reject.js:
* test262/test/built-ins/Promise/prototype/finally/resolved-observable-then-calls.js:
(then):
* test262/test/built-ins/Promise/prototype/finally/species-constructor.js:
(then):
* test262/test/built-ins/Promise/prototype/finally/species-symbol.js: Removed.
* test262/test/built-ins/Promise/prototype/finally/subclass-reject-count.js:
(FooPromise.reject.finally):
(then.ERROR.catch): Deleted.
* test262/test/built-ins/Promise/prototype/finally/subclass-resolve-count.js:
(then):
* test262/test/intl402/DateTimeFormat/constructor-options-fractionalSecondDigits-valid.js:
(toString):
(valueOf): Deleted.
* test262/test/intl402/DateTimeFormat/prototype/format/fractionalSecondDigits.js:
* test262/test/intl402/DateTimeFormat/prototype/formatRange/date-undefined-throws.js:
* test262/test/intl402/DateTimeFormat/prototype/formatRange/fractionalSecondDigits.js:
* test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/date-undefined-throws.js:
* test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/fractionalSecondDigits.js:
* test262/test/intl402/DateTimeFormat/prototype/formatToParts/fractionalSecondDigits.js:
* test262/test/intl402/DisplayNames/ctor-custom-prototype.js:
* test262/test/intl402/DisplayNames/ctor-default-prototype.js:
* test262/test/intl402/DisplayNames/instance-extensible.js:
* test262/test/intl402/DisplayNames/locales-symbol-length.js:
* test262/test/intl402/DisplayNames/options-fallback-abrupt-throws.js:
* test262/test/intl402/DisplayNames/options-fallback-invalid-throws.js:
* test262/test/intl402/DisplayNames/options-fallback-toString-abrupt-throws.js:
(fallback.toString):
(fallback.valueOf):
(fallback.Symbol.toPrimitive):
(options.fallback.toString): Deleted.
(options.fallback.valueOf): Deleted.
(options.fallback.Symbol.toPrimitive): Deleted.
* test262/test/intl402/DisplayNames/options-fallback-valid.js:
* test262/test/intl402/DisplayNames/options-localeMatcher-valid.js:
* test262/test/intl402/DisplayNames/options-random-properties-unchecked.js:
* test262/test/intl402/DisplayNames/options-style-valid.js:
* test262/test/intl402/DisplayNames/options-type-invalid-throws.js:
* test262/test/intl402/DisplayNames/options-type-valid.js:
* test262/test/intl402/DisplayNames/proto-from-ctor-realm.js:
* test262/test/intl402/DisplayNames/prototype/resolvedOptions/default-option-values.js:
* test262/test/intl402/DisplayNames/prototype/resolvedOptions/option-fallback.js:
* test262/test/intl402/DisplayNames/prototype/resolvedOptions/option-style.js:
* test262/test/intl402/DisplayNames/prototype/resolvedOptions/return-object.js:
* test262/test/language/computed-property-names/class/static/method-number.js:
* test262/test/language/computed-property-names/class/static/method-string.js:
* test262/test/language/computed-property-names/class/static/method-symbol.js:
* test262/test/language/expressions/optional-chaining/early-errors-tail-position-template-string-esi.js: Removed.
* test262/test/language/expressions/optional-chaining/early-errors-tail-position-template-string.js: Removed.
* test262/test/language/expressions/optional-chaining/eval-optional-call.js:
(fn):
* test262/test262-Revision.txt:
2020-07-20 Keith Miller <keith_miller@apple.com>
Add support for FinalizationRegistries
https://bugs.webkit.org/show_bug.cgi?id=199888
Reviewed by Yusuke Suzuki.
Shamelessly copy v8's tests and refactor them to work with conservative GC.
* stress/resources/v8-mjsunit.js: Added.
(MjsUnitAssertionError):
(MjsUnitAssertionError.prototype.toString):
(catch):
(classOf):
(ValueOf):
(prettyPrinted):
(prettyPrintedArrayElement):
(failWithMessage):
(formatFailureText):
(fail):
(deepObjectEquals):
(deepEquals):
(assertSame):
(assertNotSame):
(assertEquals):
(assertNotEquals):
(assertEqualsDelta):
(assertArrayEquals):
(assertPropertiesEqual):
(assertToStringEquals):
(assertTrue):
(assertFalse):
(assertNull):
(assertNotNull):
(executeCode):
(checkException):
(assertThrows):
(assertThrowsEquals):
(assertThrowsAsync):
(assertInstanceof):
(assertDoesNotThrow):
(assertUnreachable):
(assertContains):
(assertMatches):
(concatenateErrors):
(assertPromiseResult):
(OptimizationStatus):
(assertUnoptimized):
(assertOptimized):
(isNeverOptimizeLiteMode):
(isNeverOptimize):
(isAlwaysOptimize):
(isInterpreted):
(isOptimized):
(isTurboFanned):
(MjsUnitAssertionError.prepareStackTrace):
* stress/v8-cleanup-from-different-realm.js: Added.
(let.timeout_func):
* stress/v8-cleanup-proxy-from-different-realm.js: Added.
(let.timeout_func):
* stress/v8-finalization-registry-basics.js: Added.
(TestConstructFinalizationRegistry):
(TestFinalizationRegistryConstructorCallAsFunction):
(TestConstructFinalizationRegistryCleanupNotCallable):
(TestConstructFinalizationRegistryWithNonCallableProxyAsCleanup):
(TestRegisterTargetAndHoldingsSameValue):
(TestRegisterWithoutFinalizationRegistry):
(TestUnregisterWithNonExistentKey):
(TestUnregisterWithNonFinalizationRegistry):
(TestWeakRefConstructorWithNonObject):
(TestWeakRefWithProxy):
* stress/v8-finalizationregistry-and-weakref.js: Added.
(let.cleanup):
(setTimeout):
* stress/v8-finalizationregistry-keeps-holdings-alive.js: Added.
(let.cleanup):
(let.timeout_func):
* stress/v8-finalizationregistry-scheduled-for-cleanup-multiple-times.js: Added.
(let.cleanup0):
(let.cleanup1):
(let.timeout_func):
* stress/v8-multiple-dirty-finalization-registries.js: Added.
(let.cleanup):
(let.timeout_func):
* stress/v8-reentrant-gc-from-cleanup.js: Added.
(let.reentrant_gc):
(setTimeout):
* stress/v8-stress-finalizationregistry-dirty-enqueue.js: Added.
(i.registries.push.new.FinalizationRegistry):
(registries.forEach):
* stress/v8-undefined-holdings.js: Added.
(let.cleanup):
(let.timeout_func):
* stress/v8-unregister-after-cleanup.js: Added.
(let.cleanup):
(let.timeout_func):
* stress/v8-unregister-before-cleanup.js: Added.
(let.cleanup):
(let.timeout_func):
* stress/v8-unregister-called-twice.js: Added.
(let.cleanup):
(let.timeout_func):
* stress/v8-unregister-inside-cleanup2.js: Added.
(let.cleanup):
(let.timeout_func):
* stress/v8-unregister-inside-cleanup3.js: Added.
(let.cleanup):
(let.timeout_func):
* stress/v8-unregister-many.js: Added.
(let.cleanup):
(let.timeout_func):
* stress/v8-weak-unregistertoken.js: Added.
(FR.new.FinalizationRegistry):
(tryAgain):
2020-07-18 Mark Lam <mark.lam@apple.com>
Fixed regression due to r264507: Math.{min|max} inequality test should use DoubleNotEqualOrUnordered instead DoubleNotEqualAndOrdered.
https://bugs.webkit.org/show_bug.cgi?id=214526
<rdar://problem/65778061>
Reviewed by Yusuke Suzuki.
* stress/math-max-min.js: Added.
(isNegativeZero):
(numberAsString):
(testMax):
(testMin):
(assertEq):
2020-07-18 Alexey Shvayka <shvaikalesh@gmail.com>
Redefining a property should not change its insertion index (Object.keys order)
https://bugs.webkit.org/show_bug.cgi?id=142933
Reviewed by Saam Barati.
* ChakraCore.yaml:
* ChakraCore/test/es5/EnumeratingWithES5.baseline-jsc: Removed.
* microbenchmarks/redefine-property-accessor-dictionary.js: Added.
* microbenchmarks/redefine-property-accessor.js: Added.
* microbenchmarks/redefine-property-data-dictionary.js: Added.
* microbenchmarks/redefine-property-data.js: Added.
* stress/define-own-indexed-property-fast-path.js:
* stress/redefine-property-enumerable.js: Added.
* stress/redefine-property-get.js: Added.
* stress/redefine-property-set.js: Added.
* stress/redefine-property-value.js: Added.
* stress/redefine-property-writable.js: Added.
* test262/expectations.yaml: Mark 12 test cases as passing.
2020-07-17 Xan Lopez <xan@igalia.com>
Math.max() can yield the wrong result for max(0, -0).
https://bugs.webkit.org/show_bug.cgi?id=204457
Reviewed by Mark Lam.
Add a test to make sure we follow the spec in Math.{max,min} and
-0.0 < 0.0.
* stress/math-max-min-negative-zero.js: Added.
(assert):
(test):
2020-07-17 Alexey Shvayka <shvaikalesh@gmail.com>
emitIsUndefined() should not special-case [[IsHTMLDDA]] objects
https://bugs.webkit.org/show_bug.cgi?id=214443
Reviewed by Yusuke Suzuki.
* microbenchmarks/default-value-destructuring-array.js: Added.
* microbenchmarks/default-value-destructuring-object.js: Added.
* microbenchmarks/default-value-function-parameters.js: Added.
* stress/default-value-masquerader.js: Added.
* test262/expectations.yaml: Mark 10 test cases as passing.
2020-07-16 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Use unvalidatedGet instead of get to access UnlinkedCodeBlock from CodeBlock destructor
https://bugs.webkit.org/show_bug.cgi?id=214403
<rdar://problem/65527229>
Reviewed by Mark Lam.
* stress/codeblock-destructor-access-unlinkedcodeblock.js: Added.
(foo):
2020-07-15 Alexey Shvayka <shvaikalesh@gmail.com>
Emit HasOwnPropertyFunctionCallDotNode for "Reflect" identifiers
https://bugs.webkit.org/show_bug.cgi?id=214325
Reviewed by Darin Adler and Saam Barati.
* microbenchmarks/has-own-property-for-in-loop-reflect-name.js: Added.
* stress/reflect-has.js:
* stress/reflect.js:
2020-07-14 Saam Barati <sbarati@apple.com>
We must hold the CodeBlock lock when calling StructureStubInfo::reset
https://bugs.webkit.org/show_bug.cgi?id=214332
<rdar://problem/64940787>
Reviewed by Yusuke Suzuki.
* stress/hold-lock-when-resetting-structure-stub-info.js: Added.
(foo.bar.C):
(foo.bar):
(foo):
2020-07-14 Mark Lam <mark.lam@apple.com>
Handle out of memory error while creating an error message in the literal parser.
https://bugs.webkit.org/show_bug.cgi?id=214313
<rdar://problem/65031745>
Reviewed by Saam Barati.
* stress/out-of-memory-making-error-string-in-literal-parser.js: Added.
2020-07-14 Angelos Oikonomopoulos <angelos@igalia.com>
Skip intermittently failing type-check-hoisting-phase-hoist-check-structure-on-tdz-this-value on mips
https://bugs.webkit.org/show_bug.cgi?id=214254
Reviewed by Carlos Alberto Lopez Perez.
* stress/type-check-hoisting-phase-hoist-check-structure-on-tdz-this-value.js:
2020-07-13 Saam Barati <sbarati@apple.com>
returnEarlyFromInfiniteLoopsForFuzzing and validateDoesGC may fail when used together in the FTL
https://bugs.webkit.org/show_bug.cgi?id=214289
<rdar://problem/65272138>
Reviewed by Keith Miller.
* stress/validate-does-gc-with-return-early-from-infinite-loop.js: Added.
2020-07-13 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] IntlLocale::initializeLocale should have scope.release
https://bugs.webkit.org/show_bug.cgi?id=214271
<rdar://problem/65467314>
Reviewed by Darin Adler.
* stress/intl-locale.js:
2020-07-13 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] FTL isCellOrMisc should be isCellOrMiscOrBigInt32
https://bugs.webkit.org/show_bug.cgi?id=214269
<rdar://problem/65475129>
Reviewed by Mark Lam.
* stress/ftl-bigint32-and-cell-or-misc.js: Added.
(foo):
2020-07-13 Keith Miller <keith_miller@apple.com>
Clean up SourceProvider and add caller relative load script to jsc.cpp
https://bugs.webkit.org/show_bug.cgi?id=214205
Reviewed by Yusuke Suzuki.
There are two main changes here. The first is converting most
invocations of load to also pass "caller relative" as the second
parameter. This lets those tests be run from any working directory
rather than only the same directory as the test script.
The second change is to prohibit "bare-name" specifiers in our
CLI's module loader. This matches pretty much all other module
loaders, including WebCore and our Obj-C API.
* modules/aliased-names.js:
* modules/aliasing/drink.js:
* modules/caching-should-not-make-ambiguous.js:
* modules/default-error/main.js:
* modules/execution-order-cyclic/5.js:
* modules/execution-order-dag/5.js:
* modules/execution-order-tree/5.js:
* modules/indirect-export-error/indirect-export-default-2.js:
* modules/namespace-ambiguous/ambiguous-2.js:
* modules/namespace-ambiguous/ambiguous.js:
* modules/namespace-re-export.js:
* modules/uncacheable-when-see-star.js:
* stress/global-const-redeclaration-setting-2.js:
* stress/global-const-redeclaration-setting-3.js:
* stress/global-const-redeclaration-setting-4.js:
* stress/global-const-redeclaration-setting-5.js:
* stress/global-const-redeclaration-setting.js:
* stress/global-lexical-redeclare-variable.js:
* stress/global-lexical-redefine-const.js:
* stress/global-lexical-variable-tdz.js:
* stress/global-lexical-variable-unresolved-property.js:
* stress/global-property-into-variable-get-from-scope.js:
* stress/import-with-empty-string.js:
* stress/jsonp-literal-parser-semicolon-is-not-assignment.js:
* stress/op_add.js:
* stress/op_bitand.js:
* stress/op_bitor.js:
* stress/op_bitxor.js:
* stress/op_div-ConstVar.js:
* stress/op_div-VarConst.js:
* stress/op_div-VarVar.js:
* stress/op_lshift-ConstVar.js:
* stress/op_lshift-VarConst.js:
* stress/op_lshift-VarVar.js:
* stress/op_mod-ConstVar.js:
* stress/op_mod-VarConst.js:
* stress/op_mod-VarVar.js:
* stress/op_mul-ConstVar.js:
* stress/op_mul-VarConst.js:
* stress/op_mul-VarVar.js:
* stress/op_negate.js:
* stress/op_postdec.js:
* stress/op_postinc.js:
* stress/op_predec.js:
* stress/op_preinc.js:
* stress/op_rshift-ConstVar.js:
* stress/op_rshift-VarConst.js:
* stress/op_rshift-VarVar.js:
* stress/op_sub-ConstVar.js:
* stress/op_sub-VarConst.js:
* stress/op_sub-VarVar.js:
* stress/op_urshift-ConstVar.js:
* stress/op_urshift-VarConst.js:
* stress/op_urshift-VarVar.js:
* stress/regress-159779-1.js:
(makeUseRegressionTest):
* stress/regress-159779-2.js:
(makeUseRegressionTest):
* stress/resources/typedarray-constructor-helper-functions.js:
* stress/resources/typedarray-test-helper-functions.js:
* stress/sampling-profiler-anonymous-function.js:
* stress/sampling-profiler-basic.js:
* stress/sampling-profiler-bound-function-name.js:
* stress/sampling-profiler-deep-stack.js:
* stress/sampling-profiler-display-name.js:
* stress/sampling-profiler-internal-function-name.js:
* stress/sampling-profiler-microtasks.js:
* stress/sampling-profiler-wasm-name-section.js:
* stress/sampling-profiler-wasm.js:
* stress/shadow-chicken-disabled.js:
* stress/shadow-chicken-enabled.js:
* stress/typedarray-constructor.js:
* stress/typedarray-copyWithin.js:
* stress/typedarray-every.js:
* stress/typedarray-fill.js:
* stress/typedarray-filter.js:
* stress/typedarray-find.js:
* stress/typedarray-findIndex.js:
* stress/typedarray-forEach.js:
* stress/typedarray-from.js:
* stress/typedarray-includes.js:
* stress/typedarray-indexOf.js:
* stress/typedarray-lastIndexOf.js:
* stress/typedarray-map.js:
* stress/typedarray-of.js:
* stress/typedarray-reduce.js:
* stress/typedarray-reduceRight.js:
* stress/typedarray-set.js:
* stress/typedarray-slice.js:
* stress/typedarray-some.js:
* stress/typedarray-sort.js:
* stress/typedarray-subarray.js:
* wasm/Builder.js:
* wasm/Builder_WebAssemblyBinary.js:
* wasm/LowLevelBinary.js:
* wasm/README.md:
* wasm/WASM.js:
* wasm/regress/selectf64.js:
* wasm/spec-harness.js:
(import.string_appeared_here.then):
2020-07-12 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, mark wasm/references/multitable.js as memory-exhausting
Got footprint exceeding crashes in Debug JSC tests in GTK.
* wasm/references/multitable.js:
2020-07-11 Yusuke Suzuki <ysuzuki@apple.com>
Intl.Locale maximize, minimize should return Intl.Locale instead of String
https://bugs.webkit.org/show_bug.cgi?id=214223
<rdar://problem/65413620>
Reviewed by Ross Kirsling.
* stress/intl-locale.js:
(minimize.toString):
(shouldBe):
2020-07-09 Caio Lima <ticaiolima@gmail.com>
[JSC][32-bits] Test gardening July 9th
https://bugs.webkit.org/show_bug.cgi?id=214138
Unreviewed Gardening.
* stress/array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js:
* stress/butterfly-zero-unused-butterfly-properties.js:
* stress/check-stack-overflow-before-value-profiling-arguments.js:
2020-07-09 Alexey Shvayka <shvaikalesh@gmail.com>
ErrorInstance::finishCreation() puts "message" twice, with different attributes
https://bugs.webkit.org/show_bug.cgi?id=214089
Reviewed by Yusuke Suzuki.
* microbenchmarks/error-source-appender.js: Added.
2020-07-07 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] BytecodeGenerator should be robust against failed constant generation
https://bugs.webkit.org/show_bug.cgi?id=214062
<rdar://problem/65117916>
Reviewed by Saam Barati.
* stress/bigint-oom-in-codegen-array-literal-context.js: Added.
(shouldThrow):
(test):
* stress/bigint-oom-in-codegen-binary-conditional-context.js: Added.
(shouldThrow):
(test):
* stress/bigint-oom-in-codegen-conditional-context.js: Added.
(shouldThrow):
(test):
2020-07-07 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Should not pass Exception to JSPromise::reject
https://bugs.webkit.org/show_bug.cgi?id=214061
<rdar://problem/65134450>
Reviewed by Mark Lam.
* stress/import-exception.js: Added.
(import.string_appeared_here.then):
2020-07-07 Keith Miller <keith_miller@apple.com>
Bytecode UseDef should be aware of checkpoints
https://bugs.webkit.org/show_bug.cgi?id=213566
Reviewed by Saam Barati.
* stress/def-then-use-in-single-bytecode-with-checkpoints-for-of.js: Added.
(foo):
2020-07-04 Alexey Shvayka <shvaikalesh@gmail.com>
%TypedArray%.prototype.{indexOf,lastIndexOf} are not spec-perfect
https://bugs.webkit.org/show_bug.cgi?id=213715
Reviewed by Yusuke Suzuki.
* microbenchmarks/array-prototype-indexOf-empty.js: Added.
* microbenchmarks/typed-array-indexOf-empty.js: Added.
* stress/array-indexof-tointeger-order.js: Added.
* test262/expectations.yaml: Mark 10 test cases as passing.
2020-07-03 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Promise should check whether a user-provided function is set by using `@isUndefinedOrNull`
https://bugs.webkit.org/show_bug.cgi?id=213951
Reviewed by Ross Kirsling.
* stress/masquerader-as-function-in-promise.js: Added.
2020-07-03 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Add exception checks before and after viewWithUnderlyingString
https://bugs.webkit.org/show_bug.cgi?id=213923
<rdar://problem/65068473>
Reviewed by Sam Weinig.
* stress/exception-checks-before-and-after-viewwithunderlyingstring.js: Added.
(shouldThrow):
2020-07-03 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Add exception checks in JSStringBuilder and Array#join
https://bugs.webkit.org/show_bug.cgi?id=213915
<rdar://problem/64878225>
Reviewed by Saam Barati and Mark Lam.
* stress/out-of-memory-handle-in-join.js: Added.
(shouldThrow):
2020-07-02 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, mark JSTests/test262/test/intl402/NumberFormat/prototype/format/numbering-systems.js fail since it requires ICU 66
https://bugs.webkit.org/show_bug.cgi?id=213872
This test in test262 requires ICU 66 while Catalina bot is using ICU 64.
* test262/config.yaml:
2020-07-02 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Configure option-offered numberingSystem in Intl.NumberFormat through locale
https://bugs.webkit.org/show_bug.cgi?id=213872
Reviewed by Ross Kirsling.
* stress/intl-numberformat-nu.js: Added.
(shouldBe):
* test262/expectations.yaml:
2020-07-01 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Intl.Collator should set usage:"search" option through ICU locale
https://bugs.webkit.org/show_bug.cgi?id=213869
Reviewed by Ross Kirsling.
* stress/intl-collator-co-extension.js: Added.
(shouldBe):
(shouldBeArray):
(explicitTrueBeforeICU67):
* test262/expectations.yaml:
2020-06-26 Yusuke Suzuki <ysuzuki@apple.com>
Update test262
https://bugs.webkit.org/show_bug.cgi?id=213676
Reviewed by Ross Kirsling.
Update and rebaseline expectations.
* test262/expectations.yaml:
* test262/harness/testBigIntTypedArray.js:
(testWithBigIntTypedArrayConstructors):
* test262/harness/testIntl.js:
* test262/harness/testTypedArray.js:
(testWithNonAtomicsFriendlyTypedArrayConstructors):
(testWithAtomicsFriendlyTypedArrayConstructors):
* test262/latest-changes-summary.txt:
* test262/test/annexB/built-ins/Function/createdynfn-no-line-terminator-html-close-comment-body.js:
* test262/test/built-ins/Array/prototype/indexOf/length-zero-returns-minus-one.js: Added.
(fromIndex.valueOf):
* test262/test/built-ins/Array/prototype/lastIndexOf/length-zero-returns-minus-one.js: Added.
(fromIndex.valueOf):
* test262/test/built-ins/Atomics/add/bigint/non-shared-bufferdata.js: Added.
* test262/test/built-ins/Atomics/add/bigint/nonshared-int-views.js: Removed.
* test262/test/built-ins/Atomics/add/non-shared-bufferdata.js: Added.
* test262/test/built-ins/Atomics/add/non-shared-int-views-throws.js: Added.
* test262/test/built-ins/Atomics/add/nonshared-int-views.js: Removed.
* test262/test/built-ins/Atomics/and/bigint/non-shared-bufferdata.js: Added.
* test262/test/built-ins/Atomics/and/bigint/nonshared-int-views.js: Removed.
* test262/test/built-ins/Atomics/and/non-shared-bufferdata.js: Added.
* test262/test/built-ins/Atomics/and/non-shared-int-views-throws.js: Added.
* test262/test/built-ins/Atomics/and/nonshared-int-views.js: Removed.
* test262/test/built-ins/Atomics/compareExchange/bigint/non-shared-bufferdata.js: Added.
* test262/test/built-ins/Atomics/compareExchange/bigint/nonshared-int-views.js: Removed.
* test262/test/built-ins/Atomics/compareExchange/non-shared-bufferdata.js: Added.
* test262/test/built-ins/Atomics/compareExchange/non-shared-int-views-throws.js: Added.
* test262/test/built-ins/Atomics/compareExchange/nonshared-int-views.js: Removed.
* test262/test/built-ins/Atomics/exchange/bigint/non-shared-bufferdata.js: Added.
* test262/test/built-ins/Atomics/exchange/bigint/nonshared-int-views.js: Removed.
* test262/test/built-ins/Atomics/exchange/non-shared-bufferdata.js: Added.
* test262/test/built-ins/Atomics/exchange/non-shared-int-views-throws.js: Added.
* test262/test/built-ins/Atomics/load/bigint/non-shared-bufferdata.js: Added.
* test262/test/built-ins/Atomics/load/bigint/nonshared-int-views.js: Removed.
* test262/test/built-ins/Atomics/load/non-shared-bufferdata.js: Added.
* test262/test/built-ins/Atomics/load/non-shared-int-views-throws.js: Added.
* test262/test/built-ins/Atomics/load/nonshared-int-views.js: Removed.
* test262/test/built-ins/Atomics/notify/bigint/non-shared-bufferdata-count-evaluation-throws.js: Added.
(const.poisoned.valueOf):
* test262/test/built-ins/Atomics/notify/bigint/non-shared-bufferdata-index-evaluation-throws.js: Added.
(const.poisoned.valueOf):
* test262/test/built-ins/Atomics/notify/bigint/non-shared-bufferdata-non-shared-int-views-throws.js: Added.
(const.poisoned.valueOf):
* test262/test/built-ins/Atomics/notify/bigint/non-shared-bufferdata-returns-0.js: Added.
* test262/test/built-ins/Atomics/notify/bigint/non-shared-bufferdata-throws.js: Removed.
* test262/test/built-ins/Atomics/notify/non-shared-bufferdata-count-evaluation-throws.js: Added.
(const.poisoned.valueOf):
* test262/test/built-ins/Atomics/notify/non-shared-bufferdata-index-evaluation-throws.js: Added.
(const.poisoned.valueOf):
* test262/test/built-ins/Atomics/notify/non-shared-bufferdata-non-shared-int-views-throws.js: Renamed from JSTests/test262/test/built-ins/Atomics/notify/non-shared-bufferdatate-non-shared-int-views.js.
* test262/test/built-ins/Atomics/notify/non-shared-bufferdata-returns-0.js: Added.
* test262/test/built-ins/Atomics/notify/non-shared-bufferdata-throws.js: Removed.
* test262/test/built-ins/Atomics/or/bigint/non-shared-bufferdata.js: Added.
* test262/test/built-ins/Atomics/or/bigint/nonshared-int-views.js: Removed.
* test262/test/built-ins/Atomics/or/non-shared-bufferdata.js: Added.
* test262/test/built-ins/Atomics/or/non-shared-int-views-throws.js: Added.
* test262/test/built-ins/Atomics/or/nonshared-int-views.js: Removed.
* test262/test/built-ins/Atomics/store/bigint/bad-range.js:
(testWithBigIntTypedArrayConstructors): Deleted.
* test262/test/built-ins/Atomics/store/bigint/non-shared-bufferdata.js: Added.
* test262/test/built-ins/Atomics/store/bigint/nonshared-int-views.js: Removed.
* test262/test/built-ins/Atomics/store/non-shared-bufferdata.js: Added.
* test262/test/built-ins/Atomics/store/non-shared-int-views-throws.js: Added.
* test262/test/built-ins/Atomics/store/nonshared-int-views.js: Removed.
* test262/test/built-ins/Atomics/sub/bigint/non-shared-bufferdata.js: Added.
* test262/test/built-ins/Atomics/sub/bigint/nonshared-int-views.js: Removed.
* test262/test/built-ins/Atomics/sub/non-shared-bufferdata.js: Added.
* test262/test/built-ins/Atomics/sub/non-shared-int-views-throws.js: Added.
* test262/test/built-ins/Atomics/sub/nonshared-int-views.js: Removed.
* test262/test/built-ins/Atomics/wait/bigint/non-shared-bufferdata-throws.js:
* test262/test/built-ins/Atomics/waitAsync/bigint/false-for-timeout.js:
* test262/test/built-ins/Atomics/waitAsync/bigint/good-views.js:
(async const):
* test262/test/built-ins/Atomics/waitAsync/bigint/negative-timeout.js:
(1.value.then):
* test262/test/built-ins/Atomics/waitAsync/bigint/null-for-timeout.js:
* test262/test/built-ins/Atomics/waitAsync/bigint/object-for-timeout.js:
* test262/test/built-ins/Atomics/waitAsync/bigint/true-for-timeout.js:
* test262/test/built-ins/Atomics/waitAsync/bigint/undefined-for-timeout.js:
* test262/test/built-ins/Atomics/waitAsync/bigint/value-not-equal.js:
* test262/test/built-ins/Atomics/waitAsync/false-for-timeout.js:
* test262/test/built-ins/Atomics/waitAsync/good-views.js:
(async const):
* test262/test/built-ins/Atomics/waitAsync/negative-timeout.js:
(then):
* test262/test/built-ins/Atomics/waitAsync/null-for-timeout.js:
* test262/test/built-ins/Atomics/waitAsync/object-for-timeout.js:
* test262/test/built-ins/Atomics/waitAsync/true-for-timeout.js:
* test262/test/built-ins/Atomics/waitAsync/undefined-for-timeout.js:
* test262/test/built-ins/Atomics/waitAsync/value-not-equal.js:
* test262/test/built-ins/Atomics/xor/bigint/non-shared-bufferdata.js: Added.
* test262/test/built-ins/Atomics/xor/bigint/nonshared-int-views.js: Removed.
* test262/test/built-ins/Atomics/xor/non-shared-bufferdata.js: Added.
* test262/test/built-ins/Atomics/xor/non-shared-int-views-throws.js: Added.
* test262/test/built-ins/Atomics/xor/nonshared-int-views.js: Removed.
* test262/test/built-ins/NativeErrors/AggregateError/prototype/errors-absent-on-prototype.js: Added.
* test262/test/built-ins/NativeErrors/AggregateError/prototype/errors/invoked-as-accessor.js: Removed.
* test262/test/built-ins/NativeErrors/AggregateError/prototype/errors/invoked-as-func.js: Removed.
* test262/test/built-ins/NativeErrors/AggregateError/prototype/errors/length.js: Removed.
* test262/test/built-ins/NativeErrors/AggregateError/prototype/errors/name.js: Removed.
* test262/test/built-ins/NativeErrors/AggregateError/prototype/errors/prop-desc.js: Removed.
* test262/test/built-ins/NativeErrors/AggregateError/prototype/errors/return-from-iterable-errors.js: Removed.
* test262/test/built-ins/NativeErrors/AggregateError/prototype/errors/return-new-array-from-list.js: Removed.
* test262/test/built-ins/NativeErrors/AggregateError/prototype/errors/this-has-no-typedarrayname-internal.js: Removed.
* test262/test/built-ins/NativeErrors/AggregateError/prototype/errors/this-is-not-object.js: Removed.
* test262/test/built-ins/Object/defineProperties/15.2.3.7-2-18.js:
(catch):
* test262/test/built-ins/Promise/all/S25.4.4.1_A2.2_T1.js:
(then):
* test262/test/built-ins/Promise/all/S25.4.4.1_A7.2_T1.js:
(Promise.all.p1.then):
(p1.then):
(then):
* test262/test/built-ins/Promise/all/S25.4.4.1_A8.1_T1.js:
(p1.then):
(p2.then):
* test262/test/built-ins/Promise/all/invoke-resolve-on-promises-every-iteration-of-custom.js:
(values.then):
* test262/test/built-ins/Promise/all/invoke-resolve-on-promises-every-iteration-of-promise.js:
(Promise.all.values.then):
* test262/test/built-ins/Promise/all/invoke-resolve-on-values-every-iteration-of-promise.js:
(Promise.all.values.then):
* test262/test/built-ins/Promise/allSettled/invoke-resolve-on-promises-every-iteration-of-custom.js:
(values.then):
* test262/test/built-ins/Promise/allSettled/invoke-resolve-on-promises-every-iteration-of-promise.js:
(Promise.allSettled.values.then):
* test262/test/built-ins/Promise/allSettled/invoke-resolve-on-values-every-iteration-of-promise.js:
(Promise.allSettled.values.then):
* test262/test/built-ins/Promise/allSettled/resolved-immed.js:
(then):
* test262/test/built-ins/Promise/allSettled/resolved-sequence-extra-ticks.js:
(Promise.allSettled.p1.then):
(p1.then):
(then):
* test262/test/built-ins/Promise/allSettled/resolved-sequence-mixed.js:
(p1.catch):
(p3.then):
(p2.then):
(p3.catch):
* test262/test/built-ins/Promise/allSettled/resolved-sequence-with-rejections.js:
(p1.catch):
(p2.then):
(p2.catch):
* test262/test/built-ins/Promise/allSettled/resolved-sequence.js:
(p1.then):
(p2.then):
* test262/test/built-ins/Promise/any/invoke-resolve-on-promises-every-iteration-of-custom.js:
(values.then):
* test262/test/built-ins/Promise/any/invoke-resolve-on-promises-every-iteration-of-promise.js:
(Promise.any.values.then):
* test262/test/built-ins/Promise/any/invoke-resolve-on-values-every-iteration-of-custom.js:
(values.then):
* test262/test/built-ins/Promise/any/invoke-resolve-on-values-every-iteration-of-promise.js:
(Promise.any.values.then):
* test262/test/built-ins/Promise/any/invoke-then-on-promises-every-iteration.js:
(Promise.any.promises.then):
* test262/test/built-ins/Promise/any/resolved-sequence-extra-ticks.js:
(Promise.any.p1.then):
(p1.then):
(then):
* test262/test/built-ins/Promise/any/resolved-sequence-mixed.js:
(p1.catch):
(p3.then):
(p2.then):
(p3.catch):
* test262/test/built-ins/Promise/any/resolved-sequence-with-rejections.js:
(p1.catch):
(p2.then):
(p2.catch):
* test262/test/built-ins/Promise/any/resolved-sequence.js:
(p1.then):
(p2.then):
* test262/test/built-ins/Promise/prototype/finally/rejected-observable-then-calls.js:
(then):
* test262/test/built-ins/Promise/prototype/finally/rejection-reason-no-fulfill.js:
(then):
* test262/test/built-ins/Promise/prototype/finally/rejection-reason-override-with-throw.js:
(then):
* test262/test/built-ins/Promise/prototype/finally/resolution-value-no-override.js:
(then):
* test262/test/built-ins/Promise/prototype/finally/resolved-observable-then-calls.js:
(then):
* test262/test/built-ins/Promise/prototype/then/S25.4.4_A1.1_T1.js:
(then):
* test262/test/built-ins/Promise/prototype/then/S25.4.4_A2.1_T1.js:
(then):
* test262/test/built-ins/Promise/prototype/then/S25.4.4_A2.1_T2.js:
(then):
* test262/test/built-ins/Promise/prototype/then/S25.4.4_A2.1_T3.js:
(Promise.resolve.then):
* test262/test/built-ins/Promise/prototype/then/S25.4.5.3_A5.1_T1.js:
(p.then):
(Promise.resolve.then):
* test262/test/built-ins/Promise/prototype/then/S25.4.5.3_A5.2_T1.js:
(p.then):
(Promise.resolve.then):
* test262/test/built-ins/Promise/prototype/then/S25.4.5.3_A5.3_T1.js:
(Promise.resolve.then):
* test262/test/built-ins/Promise/race/S25.4.4.3_A6.1_T1.js:
(p.then):
(Promise.resolve.then):
(then):
* test262/test/built-ins/Promise/race/S25.4.4.3_A6.2_T1.js:
(Promise.resolve.then):
(then):
* test262/test/built-ins/Promise/race/S25.4.4.3_A7.1_T1.js:
(p.then):
(Promise.resolve.then):
(then):
* test262/test/built-ins/Promise/race/S25.4.4.3_A7.1_T2.js:
(p.then):
(Promise.resolve.then):
(then):
* test262/test/built-ins/Promise/race/S25.4.4.3_A7.1_T3.js:
(p.then):
(Promise.resolve.then):
(then):
* test262/test/built-ins/Promise/race/S25.4.4.3_A7.2_T1.js:
(Promise.resolve.then):
(then):
* test262/test/built-ins/Promise/race/invoke-resolve-on-promises-every-iteration-of-custom.js: Copied from JSTests/test262/test/built-ins/Promise/all/invoke-resolve-on-promises-every-iteration-of-custom.js.
(Custom):
(Custom.resolve):
(Promise.resolve):
(values.then):
* test262/test/built-ins/Promise/race/invoke-resolve-on-promises-every-iteration-of-promise.js: Copied from JSTests/test262/test/built-ins/Promise/all/invoke-resolve-on-promises-every-iteration-of-promise.js.
(Promise.resolve):
(Promise.race.values.then):
* test262/test/built-ins/Promise/race/invoke-resolve-on-values-every-iteration-of-promise.js: Copied from JSTests/test262/test/built-ins/Promise/all/invoke-resolve-on-values-every-iteration-of-promise.js.
(Promise.resolve):
(Promise.race.values.then):
* test262/test/built-ins/Promise/race/reject-from-same-thenable.js: Added.
(Constructor.reject):
(Constructor.resolve):
(let.a.then):
* test262/test/built-ins/Promise/race/resolve-element-function-extensible.js: Added.
(let.thenable.then):
(NotPromise):
(NotPromise.resolve):
* test262/test/built-ins/Promise/race/resolve-element-function-name.js: Added.
(let.thenable.then):
(NotPromise):
(NotPromise.resolve):
* test262/test/built-ins/Promise/race/resolve-element-function-nonconstructor.js: Added.
(let.thenable.then):
(NotPromise):
(NotPromise.resolve):
* test262/test/built-ins/Promise/race/resolve-element-function-prototype.js: Added.
(let.thenable.then):
(NotPromise):
(NotPromise.resolve):
* test262/test/built-ins/Promise/race/resolve-from-same-thenable.js: Added.
(Constructor.resolve):
(let.a.then):
* test262/test/built-ins/Promise/race/resolve-ignores-late-rejection-deferred.js: Added.
(let.lateRejector.then):
* test262/test/built-ins/Promise/race/resolve-ignores-late-rejection.js: Added.
(let.resolver.then):
(let.lateRejector.then):
* test262/test/built-ins/Promise/race/resolved-sequence-extra-ticks.js: Added.
(a.then):
(then):
* test262/test/built-ins/Promise/race/resolved-sequence-mixed.js: Added.
(Promise.all.a.catch):
(c.then):
(b.then):
(catch):
* test262/test/built-ins/Promise/race/resolved-sequence-with-rejections.js: Added.
(Promise.all.a.catch):
(b.catch):
* test262/test/built-ins/Promise/race/resolved-sequence.js: Added.
(Promise.all.a.then):
(b.then):
* test262/test/built-ins/Promise/race/resolved-then-catch-finally.js: Added.
(let.b.Promise.resolve.string_appeared_here.then):
(let.c.Promise.reject.string_appeared_here.then):
(let.f.Promise.resolve.string_appeared_here.finally):
(let.g.Promise.reject.string_appeared_here.finally):
* test262/test/built-ins/Promise/resolve/S25.4.4.5_A3.1_T1.js:
(thenable.then):
(p1.then):
* test262/test/built-ins/Promise/resolve/S25.Promise_resolve_foreign_thenable_2.js:
(thenable.then):
(p.then):
* test262/test/intl402/DateTimeFormat/constructor-options-fractionalSecondDigits-valid.js:
(valueOf):
* test262/test/intl402/NumberFormat/constructor-order.js:
* test262/test/intl402/NumberFormat/constructor-unit.js:
(string_appeared_here.new.Intl.NumberFormat):
* test262/test/intl402/NumberFormat/prototype/format/numbering-systems.js:
(digitList.of.Object.entries):
* test262/test/language/expressions/class/elements/after-same-line-gen-rs-static-async-generator-method-privatename-identifier-alt.js:
* test262/test/language/expressions/class/elements/after-same-line-gen-rs-static-async-generator-method-privatename-identifier.js:
* test262/test/language/expressions/class/elements/after-same-line-gen-rs-static-async-method-privatename-identifier-alt.js:
* test262/test/language/expressions/class/elements/after-same-line-gen-rs-static-async-method-privatename-identifier.js:
* test262/test/language/expressions/class/elements/after-same-line-method-rs-static-async-generator-method-privatename-identifier-alt.js:
* test262/test/language/expressions/class/elements/after-same-line-method-rs-static-async-generator-method-privatename-identifier.js:
* test262/test/language/expressions/class/elements/after-same-line-method-rs-static-async-method-privatename-identifier-alt.js:
* test262/test/language/expressions/class/elements/after-same-line-method-rs-static-async-method-privatename-identifier.js:
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-computed-names.js:
(prototype.C.m.next.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-computed-symbol-names.js:
(prototype.C.m.next.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-grammar-privatename-identifier-semantics-stringvalue.js:
(C.m.next.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-literal-names-asi.js:
(prototype.C.m.next.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-literal-names.js:
(prototype.C.m.next.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-private-field-usage.js:
(prototype.C.m.next.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-private-method-getter-usage.js:
(prototype.C.m.next.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-private-method-usage.js:
(prototype.C.m.next.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-private-names.js:
(prototype.C.m.next.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-rs-field-identifier-initializer.js:
(C.m.next.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-rs-field-identifier.js:
(C.m.next.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-rs-private-getter-alt.js:
(C.m.next.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-rs-private-getter.js:
(C.m.next.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-rs-private-method-alt.js:
(C.m.next.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-rs-private-method.js:
(C.m.next.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-rs-private-setter-alt.js:
(C.m.next.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-rs-private-setter.js:
(C.m.next.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-rs-privatename-identifier-alt.js:
(C.m.next.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-rs-privatename-identifier-initializer-alt.js:
(C.m.next.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-rs-privatename-identifier-initializer.js:
(C.m.next.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-rs-privatename-identifier.js:
(C.m.next.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-rs-static-async-generator-method-privatename-identifier-alt.js:
(C.get return):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-rs-static-async-generator-method-privatename-identifier.js:
(C):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-rs-static-async-method-privatename-identifier-alt.js:
(C.async return):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-rs-static-async-method-privatename-identifier.js:
(C):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-rs-static-generator-method-privatename-identifier-alt.js:
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-rs-static-generator-method-privatename-identifier.js:
(C.m.next.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-rs-static-method-privatename-identifier-alt.js:
(prototype.C.m.next.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-rs-static-method-privatename-identifier.js:
(C.m.next.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-rs-static-privatename-identifier-alt-by-classname.js:
(C.m.next.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-rs-static-privatename-identifier-alt.js:
(C.m.next.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-rs-static-privatename-identifier-by-classname.js:
(C.m.next.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-rs-static-privatename-identifier-initializer-alt-by-classname.js:
(C.m.next.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-rs-static-privatename-identifier-initializer-alt.js:
(C.m.next.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-rs-static-privatename-identifier-initializer.js:
(C.m.next.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-rs-static-privatename-identifier.js:
(C.m.next.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-static-private-fields.js:
(prototype.C.m.next.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-static-private-methods-with-fields.js:
(prototype.C.m.next.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-static-private-methods.js:
(prototype.C.m.next.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-gen-string-literal-names.js:
(prototype.C.m.next.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-computed-names.js:
(prototype.C.m.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-computed-symbol-names.js:
(prototype.C.m.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-grammar-privatename-identifier-semantics-stringvalue.js:
(C.m.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-literal-names-asi.js:
(prototype.C.m.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-literal-names.js:
(prototype.C.m.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-private-field-usage.js:
(prototype.C.m.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-private-method-getter-usage.js:
(prototype.C.m.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-private-method-usage.js:
(prototype.C.m.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-private-names.js:
(prototype.C.m.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-rs-field-identifier-initializer.js:
(C.m.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-rs-field-identifier.js:
(C.m.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-rs-private-getter-alt.js:
(C.m.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-rs-private-getter.js:
(C.m.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-rs-private-method-alt.js:
(C.m.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-rs-private-method.js:
(C.m.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-rs-private-setter-alt.js:
(C.m.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-rs-private-setter.js:
(C.m.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-rs-privatename-identifier-alt.js:
(C.m.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-rs-privatename-identifier-initializer-alt.js:
(C.m.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-rs-privatename-identifier-initializer.js:
(C.m.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-rs-privatename-identifier.js:
(C.m.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-rs-static-async-generator-method-privatename-identifier-alt.js:
(C.get return):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-rs-static-async-generator-method-privatename-identifier.js:
(C):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-rs-static-async-method-privatename-identifier-alt.js:
(C.async return):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-rs-static-async-method-privatename-identifier.js:
(C):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-rs-static-generator-method-privatename-identifier-alt.js:
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-rs-static-generator-method-privatename-identifier.js:
(C.m.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-rs-static-method-privatename-identifier-alt.js:
(prototype.C.m.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-rs-static-method-privatename-identifier.js:
(C.m.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-rs-static-privatename-identifier-alt-by-classname.js:
(C.m.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-rs-static-privatename-identifier-alt.js:
(C.m.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-rs-static-privatename-identifier-by-classname.js:
(C.m.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-rs-static-privatename-identifier-initializer-alt-by-classname.js:
(C.m.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-rs-static-privatename-identifier-initializer-alt.js:
(C.m.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-rs-static-privatename-identifier-initializer.js:
(C.m.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-rs-static-privatename-identifier.js:
(C.m.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-static-private-fields.js:
(prototype.C.m.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-static-private-methods-with-fields.js:
(prototype.C.m.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-static-private-methods.js:
(prototype.C.m.then):
* test262/test/language/expressions/class/elements/after-same-line-static-async-method-string-literal-names.js:
(prototype.C.m.then):
* test262/test/language/expressions/class/elements/after-same-line-static-gen-rs-static-async-generator-method-privatename-identifier-alt.js:
* test262/test/language/expressions/class/elements/after-same-line-static-gen-rs-static-async-generator-method-privatename-identifier.js:
* test262/test/language/expressions/class/elements/after-same-line-static-gen-rs-static-async-method-privatename-identifier-alt.js:
* test262/test/language/expressions/class/elements/after-same-line-static-gen-rs-static-async-method-privatename-identifier.js:
* test262/test/language/expressions/class/elements/after-same-line-static-method-rs-static-async-generator-method-privatename-identifier-alt.js:
* test262/test/language/expressions/class/elements/after-same-line-static-method-rs-static-async-generator-method-privatename-identifier.js:
* test262/test/language/expressions/class/elements/after-same-line-static-method-rs-static-async-method-privatename-identifier-alt.js:
* test262/test/language/expressions/class/elements/after-same-line-static-method-rs-static-async-method-privatename-identifier.js:
* test262/test/language/expressions/class/elements/multiple-definitions-rs-static-async-generator-method-privatename-identifier-alt.js:
* test262/test/language/expressions/class/elements/multiple-definitions-rs-static-async-generator-method-privatename-identifier.js:
* test262/test/language/expressions/class/elements/multiple-definitions-rs-static-async-method-privatename-identifier-alt.js:
* test262/test/language/expressions/class/elements/multiple-definitions-rs-static-async-method-privatename-identifier.js:
* test262/test/language/expressions/class/elements/multiple-stacked-definitions-rs-static-async-generator-method-privatename-identifier-alt.js:
* test262/test/language/expressions/class/elements/multiple-stacked-definitions-rs-static-async-generator-method-privatename-identifier.js:
* test262/test/language/expressions/class/elements/multiple-stacked-definitions-rs-static-async-method-privatename-identifier-alt.js:
* test262/test/language/expressions/class/elements/multiple-stacked-definitions-rs-static-async-method-privatename-identifier.js:
* test262/test/language/expressions/class/elements/new-no-sc-line-method-rs-static-async-generator-method-privatename-identifier-alt.js:
* test262/test/language/expressions/class/elements/new-no-sc-line-method-rs-static-async-generator-method-privatename-identifier.js:
* test262/test/language/expressions/class/elements/new-no-sc-line-method-rs-static-async-method-privatename-identifier-alt.js:
* test262/test/language/expressions/class/elements/new-no-sc-line-method-rs-static-async-method-privatename-identifier.js:
* test262/test/language/expressions/class/elements/new-sc-line-gen-rs-static-async-generator-method-privatename-identifier-alt.js:
* test262/test/language/expressions/class/elements/new-sc-line-gen-rs-static-async-generator-method-privatename-identifier.js:
* test262/test/language/expressions/class/elements/new-sc-line-gen-rs-static-async-method-privatename-identifier-alt.js:
* test262/test/language/expressions/class/elements/new-sc-line-gen-rs-static-async-method-privatename-identifier.js:
* test262/test/language/expressions/class/elements/new-sc-line-method-rs-static-async-generator-method-privatename-identifier-alt.js:
* test262/test/language/expressions/class/elements/new-sc-line-method-rs-static-async-generator-method-privatename-identifier.js:
* test262/test/language/expressions/class/elements/new-sc-line-method-rs-static-async-method-privatename-identifier-alt.js:
* test262/test/language/expressions/class/elements/new-sc-line-method-rs-static-async-method-privatename-identifier.js:
* test262/test/language/expressions/class/elements/private-methods/prod-private-async-generator.js:
(ctorPromise.then):
* test262/test/language/expressions/class/elements/private-methods/prod-private-async-method.js:
(ctorPromise.then):
* test262/test/language/expressions/class/elements/regular-definitions-rs-static-async-generator-method-privatename-identifier-alt.js:
* test262/test/language/expressions/class/elements/regular-definitions-rs-static-async-generator-method-privatename-identifier.js:
* test262/test/language/expressions/class/elements/regular-definitions-rs-static-async-method-privatename-identifier-alt.js:
* test262/test/language/expressions/class/elements/regular-definitions-rs-static-async-method-privatename-identifier.js:
* test262/test/language/expressions/class/elements/same-line-async-gen-computed-names.js:
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-computed-symbol-names.js:
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-grammar-privatename-identifier-semantics-stringvalue.js:
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-literal-names-asi.js:
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-literal-names.js:
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-private-field-usage.js:
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-private-method-getter-usage.js:
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-private-method-usage.js:
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-private-names.js:
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-rs-field-identifier-initializer.js:
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-rs-field-identifier.js:
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-rs-private-getter-alt.js:
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-rs-private-getter.js:
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-rs-private-method-alt.js:
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-rs-private-method.js:
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-rs-private-setter-alt.js:
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-rs-private-setter.js:
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-rs-privatename-identifier-alt.js:
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-rs-privatename-identifier-initializer-alt.js:
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-rs-privatename-identifier-initializer.js:
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-rs-privatename-identifier.js:
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-rs-static-async-generator-method-privatename-identifier-alt.js:
(assertions):
* test262/test/language/expressions/class/elements/same-line-async-gen-rs-static-async-generator-method-privatename-identifier.js:
(c.m.next.then.assertions):
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-rs-static-async-method-privatename-identifier-alt.js:
(c.m.next.then.assertions):
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-rs-static-async-method-privatename-identifier.js:
(c.m.next.then.assertions):
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-rs-static-generator-method-privatename-identifier-alt.js:
* test262/test/language/expressions/class/elements/same-line-async-gen-rs-static-generator-method-privatename-identifier.js:
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-rs-static-method-privatename-identifier-alt.js:
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-rs-static-method-privatename-identifier.js:
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-rs-static-privatename-identifier-alt-by-classname.js:
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-rs-static-privatename-identifier-alt.js:
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-rs-static-privatename-identifier-by-classname.js:
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-rs-static-privatename-identifier-initializer-alt-by-classname.js:
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-rs-static-privatename-identifier-initializer-alt.js:
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-rs-static-privatename-identifier-initializer.js:
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-rs-static-privatename-identifier.js:
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-static-private-fields.js:
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-static-private-methods-with-fields.js:
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-static-private-methods.js:
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-gen-string-literal-names.js:
(c.m.next.then):
* test262/test/language/expressions/class/elements/same-line-async-method-computed-names.js:
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-computed-symbol-names.js:
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-grammar-privatename-identifier-semantics-stringvalue.js:
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-literal-names-asi.js:
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-literal-names.js:
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-private-field-usage.js:
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-private-method-getter-usage.js:
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-private-method-usage.js:
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-private-names.js:
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-rs-field-identifier-initializer.js:
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-rs-field-identifier.js:
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-rs-private-getter-alt.js:
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-rs-private-getter.js:
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-rs-private-method-alt.js:
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-rs-private-method.js:
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-rs-private-setter-alt.js:
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-rs-private-setter.js:
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-rs-privatename-identifier-alt.js:
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-rs-privatename-identifier-initializer-alt.js:
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-rs-privatename-identifier-initializer.js:
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-rs-privatename-identifier.js:
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-rs-static-async-generator-method-privatename-identifier-alt.js:
(assertions):
* test262/test/language/expressions/class/elements/same-line-async-method-rs-static-async-generator-method-privatename-identifier.js:
(c.m.then.assertions):
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-rs-static-async-method-privatename-identifier-alt.js:
(c.m.then.assertions):
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-rs-static-async-method-privatename-identifier.js:
(c.m.then.assertions):
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-rs-static-generator-method-privatename-identifier-alt.js:
* test262/test/language/expressions/class/elements/same-line-async-method-rs-static-generator-method-privatename-identifier.js:
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-rs-static-method-privatename-identifier-alt.js:
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-rs-static-method-privatename-identifier.js:
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-rs-static-privatename-identifier-alt-by-classname.js:
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-rs-static-privatename-identifier-alt.js:
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-rs-static-privatename-identifier-by-classname.js:
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-rs-static-privatename-identifier-initializer-alt-by-classname.js:
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-rs-static-privatename-identifier-initializer-alt.js:
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-rs-static-privatename-identifier-initializer.js:
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-rs-static-privatename-identifier.js:
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-static-private-fields.js:
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-static-private-methods-with-fields.js:
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-static-private-methods.js:
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-async-method-string-literal-names.js:
(c.m.then):
* test262/test/language/expressions/class/elements/same-line-gen-rs-static-async-generator-method-privatename-identifier-alt.js:
* test262/test/language/expressions/class/elements/same-line-gen-rs-static-async-generator-method-privatename-identifier.js:
* test262/test/language/expressions/class/elements/same-line-gen-rs-static-async-method-privatename-identifier-alt.js:
* test262/test/language/expressions/class/elements/same-line-gen-rs-static-async-method-privatename-identifier.js:
* test262/test/language/expressions/class/elements/same-line-method-rs-static-async-generator-method-privatename-identifier-alt.js:
* test262/test/language/expressions/class/elements/same-line-method-rs-static-async-generator-method-privatename-identifier.js:
* test262/test/language/expressions/class/elements/same-line-method-rs-static-async-method-privatename-identifier-alt.js:
* test262/test/language/expressions/class/elements/same-line-method-rs-static-async-method-privatename-identifier.js:
* test262/test/language/expressions/class/elements/wrapped-in-sc-rs-static-async-generator-method-privatename-identifier-alt.js:
* test262/test/language/expressions/class/elements/wrapped-in-sc-rs-static-async-generator-method-privatename-identifier.js:
* test262/test/language/expressions/class/elements/wrapped-in-sc-rs-static-async-method-privatename-identifier-alt.js:
* test262/test/language/expressions/class/elements/wrapped-in-sc-rs-static-async-method-privatename-identifier.js:
* test262/test/language/expressions/optional-chaining/eval-optional-call.js: Added.
* test262/test/language/statements/class/elements/after-same-line-gen-rs-static-async-generator-method-privatename-identifier-alt.js:
* test262/test/language/statements/class/elements/after-same-line-gen-rs-static-async-generator-method-privatename-identifier.js:
* test262/test/language/statements/class/elements/after-same-line-gen-rs-static-async-method-privatename-identifier-alt.js:
* test262/test/language/statements/class/elements/after-same-line-gen-rs-static-async-method-privatename-identifier.js:
* test262/test/language/statements/class/elements/after-same-line-method-rs-static-async-generator-method-privatename-identifier-alt.js:
* test262/test/language/statements/class/elements/after-same-line-method-rs-static-async-generator-method-privatename-identifier.js:
* test262/test/language/statements/class/elements/after-same-line-method-rs-static-async-method-privatename-identifier-alt.js:
* test262/test/language/statements/class/elements/after-same-line-method-rs-static-async-method-privatename-identifier.js:
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-computed-names.js:
(C.m.next.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-computed-symbol-names.js:
(C.m.next.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-grammar-privatename-identifier-semantics-stringvalue.js:
(C.m.next.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-literal-names-asi.js:
(C.m.next.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-literal-names.js:
(C.m.next.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-private-field-usage.js:
(C.m.next.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-private-method-getter-usage.js:
(C.m.next.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-private-method-usage.js:
(C.m.next.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-private-names.js:
(C.m.next.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-rs-field-identifier-initializer.js:
(C.m.next.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-rs-field-identifier.js:
(C.m.next.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-rs-private-getter-alt.js:
(C.m.next.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-rs-private-getter.js:
(C.m.next.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-rs-private-method-alt.js:
(C.m.next.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-rs-private-method.js:
(C.m.next.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-rs-private-setter-alt.js:
(C.m.next.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-rs-private-setter.js:
(C.m.next.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-rs-privatename-identifier-alt.js:
(C.m.next.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-rs-privatename-identifier-initializer-alt.js:
(C.m.next.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-rs-privatename-identifier-initializer.js:
(C.m.next.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-rs-privatename-identifier.js:
(C.m.next.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-rs-static-async-generator-method-privatename-identifier-alt.js:
(C.get return):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-rs-static-async-generator-method-privatename-identifier.js:
(C):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-rs-static-async-method-privatename-identifier-alt.js:
(C.async return):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-rs-static-async-method-privatename-identifier.js:
(C):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-rs-static-generator-method-privatename-identifier-alt.js:
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-rs-static-generator-method-privatename-identifier.js:
(C.m.next.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-rs-static-method-privatename-identifier-alt.js:
(C.m.next.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-rs-static-method-privatename-identifier.js:
(C.m.next.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-rs-static-privatename-identifier-alt-by-classname.js:
(C.m.next.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-rs-static-privatename-identifier-alt.js:
(C.m.next.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-rs-static-privatename-identifier-by-classname.js:
(C.m.next.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-rs-static-privatename-identifier-initializer-alt-by-classname.js:
(C.m.next.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-rs-static-privatename-identifier-initializer-alt.js:
(C.m.next.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-rs-static-privatename-identifier-initializer.js:
(C.m.next.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-rs-static-privatename-identifier.js:
(C.m.next.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-static-private-fields.js:
(C.m.next.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-static-private-methods-with-fields.js:
(C.m.next.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-static-private-methods.js:
(C.m.next.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-gen-string-literal-names.js:
(C.m.next.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-computed-names.js:
(C.m.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-computed-symbol-names.js:
(C.m.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-grammar-privatename-identifier-semantics-stringvalue.js:
(C.m.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-literal-names-asi.js:
(C.m.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-literal-names.js:
(C.m.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-private-field-usage.js:
(C.m.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-private-method-getter-usage.js:
(C.m.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-private-method-usage.js:
(C.m.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-private-names.js:
(C.m.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-rs-field-identifier-initializer.js:
(C.m.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-rs-field-identifier.js:
(C.m.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-rs-private-getter-alt.js:
(C.m.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-rs-private-getter.js:
(C.m.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-rs-private-method-alt.js:
(C.m.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-rs-private-method.js:
(C.m.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-rs-private-setter-alt.js:
(C.m.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-rs-private-setter.js:
(C.m.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-rs-privatename-identifier-alt.js:
(C.m.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-rs-privatename-identifier-initializer-alt.js:
(C.m.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-rs-privatename-identifier-initializer.js:
(C.m.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-rs-privatename-identifier.js:
(C.m.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-rs-static-async-generator-method-privatename-identifier-alt.js:
(C.get return):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-rs-static-async-generator-method-privatename-identifier.js:
(C):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-rs-static-async-method-privatename-identifier-alt.js:
(C.async return):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-rs-static-async-method-privatename-identifier.js:
(C):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-rs-static-generator-method-privatename-identifier-alt.js:
* test262/test/language/statements/class/elements/after-same-line-static-async-method-rs-static-generator-method-privatename-identifier.js:
(C.m.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-rs-static-method-privatename-identifier-alt.js:
(C.m.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-rs-static-method-privatename-identifier.js:
(C.m.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-rs-static-privatename-identifier-alt-by-classname.js:
(C.m.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-rs-static-privatename-identifier-alt.js:
(C.m.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-rs-static-privatename-identifier-by-classname.js:
(C.m.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-rs-static-privatename-identifier-initializer-alt-by-classname.js:
(C.m.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-rs-static-privatename-identifier-initializer-alt.js:
(C.m.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-rs-static-privatename-identifier-initializer.js:
(C.m.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-rs-static-privatename-identifier.js:
(C.m.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-static-private-fields.js:
(C.m.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-static-private-methods-with-fields.js:
(C.m.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-static-private-methods.js:
(C.m.then):
* test262/test/language/statements/class/elements/after-same-line-static-async-method-string-literal-names.js:
(C.m.then):
* test262/test/language/statements/class/elements/after-same-line-static-gen-rs-static-async-generator-method-privatename-identifier-alt.js:
* test262/test/language/statements/class/elements/after-same-line-static-gen-rs-static-async-generator-method-privatename-identifier.js:
* test262/test/language/statements/class/elements/after-same-line-static-gen-rs-static-async-method-privatename-identifier-alt.js:
* test262/test/language/statements/class/elements/after-same-line-static-gen-rs-static-async-method-privatename-identifier.js:
* test262/test/language/statements/class/elements/after-same-line-static-method-rs-static-async-generator-method-privatename-identifier-alt.js:
* test262/test/language/statements/class/elements/after-same-line-static-method-rs-static-async-generator-method-privatename-identifier.js:
* test262/test/language/statements/class/elements/after-same-line-static-method-rs-static-async-method-privatename-identifier-alt.js:
* test262/test/language/statements/class/elements/after-same-line-static-method-rs-static-async-method-privatename-identifier.js:
* test262/test/language/statements/class/elements/multiple-definitions-rs-static-async-generator-method-privatename-identifier-alt.js:
* test262/test/language/statements/class/elements/multiple-definitions-rs-static-async-generator-method-privatename-identifier.js:
* test262/test/language/statements/class/elements/multiple-definitions-rs-static-async-method-privatename-identifier-alt.js:
* test262/test/language/statements/class/elements/multiple-definitions-rs-static-async-method-privatename-identifier.js:
* test262/test/language/statements/class/elements/multiple-stacked-definitions-rs-static-async-generator-method-privatename-identifier-alt.js:
* test262/test/language/statements/class/elements/multiple-stacked-definitions-rs-static-async-generator-method-privatename-identifier.js:
* test262/test/language/statements/class/elements/multiple-stacked-definitions-rs-static-async-method-privatename-identifier-alt.js:
* test262/test/language/statements/class/elements/multiple-stacked-definitions-rs-static-async-method-privatename-identifier.js:
* test262/test/language/statements/class/elements/new-no-sc-line-method-rs-static-async-generator-method-privatename-identifier-alt.js:
* test262/test/language/statements/class/elements/new-no-sc-line-method-rs-static-async-generator-method-privatename-identifier.js:
* test262/test/language/statements/class/elements/new-no-sc-line-method-rs-static-async-method-privatename-identifier-alt.js:
* test262/test/language/statements/class/elements/new-no-sc-line-method-rs-static-async-method-privatename-identifier.js:
* test262/test/language/statements/class/elements/new-sc-line-gen-rs-static-async-generator-method-privatename-identifier-alt.js:
* test262/test/language/statements/class/elements/new-sc-line-gen-rs-static-async-generator-method-privatename-identifier.js:
* test262/test/language/statements/class/elements/new-sc-line-gen-rs-static-async-method-privatename-identifier-alt.js:
* test262/test/language/statements/class/elements/new-sc-line-gen-rs-static-async-method-privatename-identifier.js:
* test262/test/language/statements/class/elements/new-sc-line-method-rs-static-async-generator-method-privatename-identifier-alt.js:
* test262/test/language/statements/class/elements/new-sc-line-method-rs-static-async-generator-method-privatename-identifier.js:
* test262/test/language/statements/class/elements/new-sc-line-method-rs-static-async-method-privatename-identifier-alt.js:
* test262/test/language/statements/class/elements/new-sc-line-method-rs-static-async-method-privatename-identifier.js:
* test262/test/language/statements/class/elements/private-methods/prod-private-async-generator.js:
(ctorPromise.then):
* test262/test/language/statements/class/elements/private-methods/prod-private-async-method.js:
(ctorPromise.then):
* test262/test/language/statements/class/elements/regular-definitions-rs-static-async-generator-method-privatename-identifier-alt.js:
* test262/test/language/statements/class/elements/regular-definitions-rs-static-async-generator-method-privatename-identifier.js:
* test262/test/language/statements/class/elements/regular-definitions-rs-static-async-method-privatename-identifier-alt.js:
* test262/test/language/statements/class/elements/regular-definitions-rs-static-async-method-privatename-identifier.js:
* test262/test/language/statements/class/elements/same-line-async-gen-computed-names.js:
(c.m.next.then):
* test262/test/language/statements/class/elements/same-line-async-gen-computed-symbol-names.js:
(c.m.next.then):
* test262/test/language/statements/class/elements/same-line-async-gen-grammar-privatename-identifier-semantics-stringvalue.js:
(c.m.next.then):
* test262/test/language/statements/class/elements/same-line-async-gen-literal-names-asi.js:
(c.m.next.then):
* test262/test/language/statements/class/elements/same-line-async-gen-literal-names.js:
(c.m.next.then):
* test262/test/language/statements/class/elements/same-line-async-gen-private-field-usage.js:
(c.m.next.then):
* test262/test/language/statements/class/elements/same-line-async-gen-private-method-getter-usage.js:
(c.m.next.then):
* test262/test/language/statements/class/elements/same-line-async-gen-private-method-usage.js:
(c.m.next.then):
* test262/test/language/statements/class/elements/same-line-async-gen-private-names.js:
(c.m.next.then):
* test262/test/language/statements/class/elements/same-line-async-gen-rs-field-identifier-initializer.js:
(c.m.next.then):
* test262/test/language/statements/class/elements/same-line-async-gen-rs-field-identifier.js:
(c.m.next.then):
* test262/test/language/statements/class/elements/same-line-async-gen-rs-private-getter-alt.js:
(c.m.next.then):
* test262/test/language/statements/class/elements/same-line-async-gen-rs-private-getter.js:
(c.m.next.then):
* test262/test/language/statements/class/elements/same-line-async-gen-rs-private-method-alt.js:
(c.m.next.then):
* test262/test/language/statements/class/elements/same-line-async-gen-rs-private-method.js:
(c.m.next.then):
* test262/test/language/statements/class/elements/same-line-async-gen-rs-private-setter-alt.js:
(c.m.next.then):
* test262/test/language/statements/class/elements/same-line-async-gen-rs-private-setter.js:
(c.m.next.then):
* test262/test/language/statements/class/elements/same-line-async-gen-rs-privatename-identifier-alt.js:
(c.m.next.then):
* test262/test/language/statements/class/elements/same-line-async-gen-rs-privatename-identifier-initializer-alt.js:
(c.m.next.then):
* test262/test/language/statements/class/elements/same-line-async-gen-rs-privatename-identifier-initializer.js:
(c.m.next.then):
* test262/test/language/statements/class/elements/same-line-async-gen-rs-privatename-identifier.js:
(c.m.next.then):
* test262/test/language/statements/class/elements/same-line-async-gen-rs-static-async-generator-method-privatename-identifier-alt.js:
(C.get return):
* test262/test/language/statements/class/elements/same-line-async-gen-rs-static-async-generator-method-privatename-identifier.js:
(C):
* test262/test/language/statements/class/elements/same-line-async-gen-rs-static-async-method-privatename-identifier-alt.js:
(C.async return):
* test262/test/language/statements/class/elements/same-line-async-gen-rs-static-async-method-privatename-identifier.js:
(C):
* test262/test/language/statements/class/elements/same-line-async-gen-rs-static-generator-method-privatename-identifier-alt.js:
* test262/test/language/statements/class/elements/same-line-async-gen-rs-static-generator-method-privatename-identifier.js:
(c.m.next.then):
* test262/test/language/statements/class/elements/same-line-async-gen-rs-static-method-privatename-identifier-alt.js:
(c.m.next.then):
* test262/test/language/statements/class/elements/same-line-async-gen-rs-static-method-privatename-identifier.js:
(c.m.next.then):
* test262/test/language/statements/class/elements/same-line-async-gen-rs-static-privatename-identifier-alt-by-classname.js:
(c.m.next.then):
* test262/test/language/statements/class/elements/same-line-async-gen-rs-static-privatename-identifier-alt.js:
(c.m.next.then):
* test262/test/language/statements/class/elements/same-line-async-gen-rs-static-privatename-identifier-by-classname.js:
(c.m.next.then):
* test262/test/language/statements/class/elements/same-line-async-gen-rs-static-privatename-identifier-initializer-alt-by-classname.js:
(c.m.next.then):
* test262/test/language/statements/class/elements/same-line-async-gen-rs-static-privatename-identifier-initializer-alt.js:
(c.m.next.then):
* test262/test/language/statements/class/elements/same-line-async-gen-rs-static-privatename-identifier-initializer.js:
(c.m.next.then):
* test262/test/language/statements/class/elements/same-line-async-gen-rs-static-privatename-identifier.js:
(c.m.next.then):
* test262/test/language/statements/class/elements/same-line-async-gen-static-private-fields.js:
(c.m.next.then):
* test262/test/language/statements/class/elements/same-line-async-gen-static-private-methods-with-fields.js:
(c.m.next.then):
* test262/test/language/statements/class/elements/same-line-async-gen-static-private-methods.js:
(c.m.next.then):
* test262/test/language/statements/class/elements/same-line-async-gen-string-literal-names.js:
(c.m.next.then):
* test262/test/language/statements/class/elements/same-line-async-method-computed-names.js:
(c.m.then):
* test262/test/language/statements/class/elements/same-line-async-method-computed-symbol-names.js:
(c.m.then):
* test262/test/language/statements/class/elements/same-line-async-method-grammar-privatename-identifier-semantics-stringvalue.js:
(c.m.then):
* test262/test/language/statements/class/elements/same-line-async-method-literal-names-asi.js:
(c.m.then):
* test262/test/language/statements/class/elements/same-line-async-method-literal-names.js:
(c.m.then):
* test262/test/language/statements/class/elements/same-line-async-method-private-field-usage.js:
(c.m.then):
* test262/test/language/statements/class/elements/same-line-async-method-private-method-getter-usage.js:
(c.m.then):
* test262/test/language/statements/class/elements/same-line-async-method-private-method-usage.js:
(c.m.then):
* test262/test/language/statements/class/elements/same-line-async-method-private-names.js:
(c.m.then):
* test262/test/language/statements/class/elements/same-line-async-method-rs-field-identifier-initializer.js:
(c.m.then):
* test262/test/language/statements/class/elements/same-line-async-method-rs-field-identifier.js:
(c.m.then):
* test262/test/language/statements/class/elements/same-line-async-method-rs-private-getter-alt.js:
(c.m.then):
* test262/test/language/statements/class/elements/same-line-async-method-rs-private-getter.js:
(c.m.then):
* test262/test/language/statements/class/elements/same-line-async-method-rs-private-method-alt.js:
(c.m.then):
* test262/test/language/statements/class/elements/same-line-async-method-rs-private-method.js:
(c.m.then):
* test262/test/language/statements/class/elements/same-line-async-method-rs-private-setter-alt.js:
(c.m.then):
* test262/test/language/statements/class/elements/same-line-async-method-rs-private-setter.js:
(c.m.then):
* test262/test/language/statements/class/elements/same-line-async-method-rs-privatename-identifier-alt.js:
(c.m.then):
* test262/test/language/statements/class/elements/same-line-async-method-rs-privatename-identifier-initializer-alt.js:
(c.m.then):
* test262/test/language/statements/class/elements/same-line-async-method-rs-privatename-identifier-initializer.js:
(c.m.then):
* test262/test/language/statements/class/elements/same-line-async-method-rs-privatename-identifier.js:
(c.m.then):
* test262/test/language/statements/class/elements/same-line-async-method-rs-static-async-generator-method-privatename-identifier-alt.js:
(C.get return):
* test262/test/language/statements/class/elements/same-line-async-method-rs-static-async-generator-method-privatename-identifier.js:
(C):
* test262/test/language/statements/class/elements/same-line-async-method-rs-static-async-method-privatename-identifier-alt.js:
(C.async return):
* test262/test/language/statements/class/elements/same-line-async-method-rs-static-async-method-privatename-identifier.js:
(C):
* test262/test/language/statements/class/elements/same-line-async-method-rs-static-generator-method-privatename-identifier-alt.js:
* test262/test/language/statements/class/elements/same-line-async-method-rs-static-generator-method-privatename-identifier.js:
(c.m.then):
* test262/test/language/statements/class/elements/same-line-async-method-rs-static-method-privatename-identifier-alt.js:
(c.m.then):
* test262/test/language/statements/class/elements/same-line-async-method-rs-static-method-privatename-identifier.js:
(c.m.then):
* test262/test/language/statements/class/elements/same-line-async-method-rs-static-privatename-identifier-alt-by-classname.js:
(c.m.then):
* test262/test/language/statements/class/elements/same-line-async-method-rs-static-privatename-identifier-alt.js:
(c.m.then):
* test262/test/language/statements/class/elements/same-line-async-method-rs-static-privatename-identifier-by-classname.js:
(c.m.then):
* test262/test/language/statements/class/elements/same-line-async-method-rs-static-privatename-identifier-initializer-alt-by-classname.js:
(c.m.then):
* test262/test/language/statements/class/elements/same-line-async-method-rs-static-privatename-identifier-initializer-alt.js:
(c.m.then):
* test262/test/language/statements/class/elements/same-line-async-method-rs-static-privatename-identifier-initializer.js:
(c.m.then):
* test262/test/language/statements/class/elements/same-line-async-method-rs-static-privatename-identifier.js:
(c.m.then):
* test262/test/language/statements/class/elements/same-line-async-method-static-private-fields.js:
(c.m.then):
* test262/test/language/statements/class/elements/same-line-async-method-static-private-methods-with-fields.js:
(c.m.then):
* test262/test/language/statements/class/elements/same-line-async-method-static-private-methods.js:
(c.m.then):
* test262/test/language/statements/class/elements/same-line-async-method-string-literal-names.js:
(c.m.then):
* test262/test/language/statements/class/elements/same-line-gen-rs-static-async-generator-method-privatename-identifier-alt.js:
* test262/test/language/statements/class/elements/same-line-gen-rs-static-async-generator-method-privatename-identifier.js:
* test262/test/language/statements/class/elements/same-line-gen-rs-static-async-method-privatename-identifier-alt.js:
* test262/test/language/statements/class/elements/same-line-gen-rs-static-async-method-privatename-identifier.js:
* test262/test/language/statements/class/elements/same-line-method-rs-static-async-generator-method-privatename-identifier-alt.js:
* test262/test/language/statements/class/elements/same-line-method-rs-static-async-generator-method-privatename-identifier.js:
* test262/test/language/statements/class/elements/same-line-method-rs-static-async-method-privatename-identifier-alt.js:
* test262/test/language/statements/class/elements/same-line-method-rs-static-async-method-privatename-identifier.js:
* test262/test/language/statements/class/elements/wrapped-in-sc-rs-static-async-generator-method-privatename-identifier-alt.js:
* test262/test/language/statements/class/elements/wrapped-in-sc-rs-static-async-generator-method-privatename-identifier.js:
* test262/test/language/statements/class/elements/wrapped-in-sc-rs-static-async-method-privatename-identifier-alt.js:
* test262/test/language/statements/class/elements/wrapped-in-sc-rs-static-async-method-privatename-identifier.js:
* test262/test/language/statements/for-await-of/async-gen-decl-dstr-array-elem-init-yield-expr.js:
* test262/test/language/statements/for-await-of/async-gen-decl-dstr-array-elem-nested-array-yield-expr.js:
* test262/test/language/statements/for-await-of/async-gen-decl-dstr-array-elem-nested-obj-yield-expr.js:
* test262/test262-Revision.txt:
2020-06-24 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, included copy of stress/llinttrue.js accidentally.
https://bugs.webkit.org/show_bug.cgi?id=213442
* stress/baselintjittrue.js: Removed.
2020-06-24 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] llintTrue / jitTrue can encounter native functions
https://bugs.webkit.org/show_bug.cgi?id=213442
<rdar://problem/64257914>
Reviewed by Mark Lam.
* stress/baselinejittrue.js: Added.
(shouldBe):
(jitCode1):
(jitCode2):
* stress/baselintjittrue.js: Added.
(shouldBe):
(llintCode1):
(llintCode2):
* stress/llinttrue-in-eval.js: Added.
* stress/llinttrue.js: Added.
(shouldBe):
(llintCode1):
(llintCode2):
2020-06-24 Alexey Shvayka <shvaikalesh@gmail.com>
Add DFG/FTL fast path for GetPrototypeOf based on OverridesGetPrototype flag
https://bugs.webkit.org/show_bug.cgi?id=213191
Reviewed by Yusuke Suzuki.
* microbenchmarks/object-get-prototype-of-object-rare.js: Added.
* stress/dfg-object-prototype-of.js: Removed.
* stress/dfg-reflect-get-prototype-of.js: Removed.
* stress/ftl-object-get-prototype-of.js: Added.
* stress/ftl-reflect-get-prototype-of.js: Added.
2020-06-24 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Clobberize misses `write(Heap)` report in some nodes
https://bugs.webkit.org/show_bug.cgi?id=213525
<rdar://problem/64642067>
Reviewed by Mark Lam.
* stress/missing-clobber-top-validation.js: Added.
2020-06-23 Mark Lam <mark.lam@apple.com>
Handle string overflow in DFG graph dump while validating AI.
https://bugs.webkit.org/show_bug.cgi?id=213524
<rdar://problem/64635620>
Reviewed by Saam Barati.
* stress/string-overflow-in-dfg-graph-dump.js: Added.
2020-06-21 Michael Catanzaro <mcatanzaro@gnome.org>
Attempt to unskip stress test array-buffer-view-watchpoint-can-be-fired-really-add-in-dfg.js on most architectures
https://bugs.webkit.org/show_bug.cgi?id=213433
Reviewed by Darin Adler.
* stress/array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js:
2020-06-19 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Check Gigacage usage before launching VM
https://bugs.webkit.org/show_bug.cgi?id=213410
Reviewed by Mark Lam.
* stress/exhaust-gigacage-and-allocate-vm.js: Added.
(foo):
2020-06-19 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Attempt to reduce timeout failures on Apple Watch Series 3
https://bugs.webkit.org/show_bug.cgi?id=213419
Reviewed by Mark Lam.
Look into timeout tests, and
1. If the test is using too many iterations, decrease the count.
2. If the test is still useful while iteration count is not so much, try attaching `slow!` to see the effect on the bot.
* stress/memcpy-typed-loops.js:
* stress/op_bitand.js:
* stress/op_bitor.js:
* stress/op_bitxor.js:
* stress/op_mul-ConstVar.js:
* stress/op_mul-VarConst.js:
* stress/op_mul-VarVar.js:
* stress/op_sub-ConstVar.js:
* stress/op_sub-VarConst.js:
* stress/op_sub-VarVar.js:
* stress/set-iteration-oas.js:
* stress/value-to-boolean.js:
2020-06-19 Mark Lam <mark.lam@apple.com>
Make $vm properties non-configurable, non-enumerable, and non-writable.
https://bugs.webkit.org/show_bug.cgi?id=213395
Reviewed by Saam Barati and Yusuke Suzuki.
* stress/dollarVM-properties-should-not-be-enumerable.js: Added.
2020-06-18 Saam Barati <sbarati@apple.com>
sampling-profiler-wasm-name-section should run for more iterations
https://bugs.webkit.org/show_bug.cgi?id=207576
<rdar://problem/59431250>
Reviewed by Mark Lam.
This test was flaky because the sampling profiler is inherently probabilistic.
We need to run it for more iterations to ensure it's not flaky.
* stress/sampling-profiler-wasm-name-section.js:
2020-06-18 Ross Kirsling <ross.kirsling@sony.com>
[Intl] Enable RelativeTimeFormat and Locale by default
https://bugs.webkit.org/show_bug.cgi?id=213324
Reviewed by Yusuke Suzuki.
* stress/intl-locale-as-intl-param.js:
* stress/intl-locale.js:
* stress/intl-relativetimeformat.js:
* test262/config.yaml:
Remove feature flags.
2020-06-18 Alexey Shvayka <shvaikalesh@gmail.com>
Promise built-in functions should be anonymous non-constructors
https://bugs.webkit.org/show_bug.cgi?id=213317
Reviewed by Darin Adler.
* test262/expectations.yaml: Mark 20 test cases as passing.
2020-06-18 Alexey Shvayka <shvaikalesh@gmail.com>
TypedArray.prototype.set is incorrect with primitives
https://bugs.webkit.org/show_bug.cgi?id=212730
Reviewed by Yusuke Suzuki.
* test262/expectations.yaml: Mark 2 test cases as passing.
2020-06-17 Saam Barati <sbarati@apple.com>
Skip JSTests/stress/check-is-constant-non-cell-should-not-array-profile-during-osr-exit.js on memory limited devices
https://bugs.webkit.org/show_bug.cgi?id=213321
Reviewed by Mark Lam.
It uses ~1GB of memory and jetsams on iOS devices.
* stress/check-is-constant-non-cell-should-not-array-profile-during-osr-exit.js:
2020-06-17 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Freeze JSBigInt when setting it as a constant in AI
https://bugs.webkit.org/show_bug.cgi?id=213310
<rdar://problem/64450410>
Reviewed by Mark Lam.
* stress/bigint-constant-fold-to-numeric.js: Added.
(foo):
2020-06-17 Alexey Shvayka <shvaikalesh@gmail.com>
Update test262 to commit 8d3dd2d1a0a5
https://bugs.webkit.org/show_bug.cgi?id=213312
Reviewed by Yusuke Suzuki.
* test262/expectations.yaml:
* test262/latest-changes-summary.txt:
* test262/test/*: Updated.
* test262/test262-Revision.txt:
2020-06-17 Keith Miller <keith_miller@apple.com>
$vm.haveABadTime/isHavingABadTime should work with non-globalObject parameters
https://bugs.webkit.org/show_bug.cgi?id=213304
Reviewed by Mark Lam.
* stress/dollarVM-have-a-bad-time-no-params.js: Added.
* stress/dollarVM-have-a-bad-time-works-for-non-global-object-params.js: Added.
2020-06-16 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Check NullSetterFunction under strict-mode context since structure / PropertyCondition are unaware of this
https://bugs.webkit.org/show_bug.cgi?id=213266
Reviewed by Mark Lam.
* stress/null-setter-frame.js: Added.
(shouldBe):
(realm.runString.test):
(object.get value):
(i.catch):
* stress/setter-throw-in-strict.js: Added.
(foo):
2020-06-16 Mark Lam <mark.lam@apple.com>
Add SIGABRT handler for non OS(DARWIN) builds to the jsc shell with the -s option.
https://bugs.webkit.org/show_bug.cgi?id=213200
Reviewed by Michael Catanzaro.
* stress/ensure-crash.js:
- unskip this test since expected crashes should now be handled on non-darwin builds.
2020-06-15 Tadeu Zagallo <tzagallo@apple.com>
Bytecode liveness should be aware of checkpoints
https://bugs.webkit.org/show_bug.cgi?id=213106
<rdar://problem/63416838>
Reviewed by Keith Miller.
* stress/iterator-open-checkpoint-liveness.js: Added.
(f):
(next):
(iterator):
(catch):
2020-06-15 Alexey Shvayka <shvaikalesh@gmail.com>
Expand JSObject::defineOwnIndexedProperty() fast path for existing properties
https://bugs.webkit.org/show_bug.cgi?id=213133
Reviewed by Yusuke Suzuki.
* microbenchmarks/array-redefine-index-and-reverse.js: Added.
* microbenchmarks/array-redefine-index.js: Added.
* stress/define-own-indexed-property-fast-path.js: Added.
2020-06-15 Caio Lima <ticaiolima@gmail.com>
[ARMv7][MIPS][JSC] Skip check-is-constant-non-cell-should-not-array-profile-during-osr-exit.js
https://bugs.webkit.org/show_bug.cgi?id=213208
Unreviewed Gardening.
* stress/check-is-constant-non-cell-should-not-array-profile-during-osr-exit.js:
2020-06-15 Keith Miller <keith_miller@apple.com>
CheckIsConstant should not use BadCache exit kind
https://bugs.webkit.org/show_bug.cgi?id=213141
Reviewed by Yusuke Suzuki.
* stress/check-is-constant-non-cell-should-not-array-profile-during-osr-exit.js: Added.
(foo.bar):
2020-06-15 Keith Miller <keith_miller@apple.com>
JIT thunks should work on arm64_32
https://bugs.webkit.org/show_bug.cgi?id=213103
Reviewed by Saam Barati.
skip test on memory limited since it breaks on watch with JIT.
* stress/array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js:
2020-06-15 Caitlin Potter <caitp@igalia.com>
[JSC] add machinery to disable JIT tiers when experimental features are enabled
https://bugs.webkit.org/show_bug.cgi?id=213193
Reviewed by Mark Lam.
* stress/get-private-name.js:
* stress/put-by-val-direct-addprivate.js:
* stress/put-by-val-direct-putprivate.js:
2020-06-15 Alexey Shvayka <shvaikalesh@gmail.com>
super should not depend on __proto__
https://bugs.webkit.org/show_bug.cgi?id=157972
Reviewed by Saam Barati.
* microbenchmarks/object-get-prototype-of-primitive.js: Added.
* stress/class-syntax-derived-default-constructor.js:
* stress/get-prototype-of.js: Added.
* stress/super-property-access.js:
* test262/expectations.yaml: Mark 4 test cases as passing.
2020-06-14 Yusuke Suzuki <ysuzuki@apple.com>
Add wasm regresion test for loop
https://bugs.webkit.org/show_bug.cgi?id=213176
Reviewed by Darin Adler.
This patch adds one more regression test for r246134.
* wasm/regress/regression-with-loop.js: Added.
2020-06-13 Devin Rousso <drousso@apple.com>
Make `errors` an own property of `AggregateError` instead of a prototype accessor
https://bugs.webkit.org/show_bug.cgi?id=212677
Reviewed by Yusuke Suzuki.
* stress/AggregateError-own-property-errors.js: Added.
* test262/expectations.yaml:
Mark 9 tests as failing while waiting for test262 to update to match the spec.
2020-06-12 Robin Morisset <rmorisset@apple.com>
The ||= operator (and similar ones) should produce valid bytecode even if the right side is a static error
https://bugs.webkit.org/show_bug.cgi?id=213154
Reviewed by Devin Rousso.
* stress/bytecode-for-rmw-with-invalid-right-side.js: Added.
(catch):
2020-06-12 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] el(Greek) characters' upper-case conversion is locale-sensitive
https://bugs.webkit.org/show_bug.cgi?id=213155
<rdar://problem/55018467>
Reviewed by Darin Adler.
* stress/intl-el-case.js: Added.
(shouldBe):
2020-06-12 Keith Miller <keith_miller@apple.com>
Tests expecting a crash should use a signal handler in the JSC CLI process
https://bugs.webkit.org/show_bug.cgi?id=212479
Reviewed by Yusuke Suzuki.
* stress/ensure-crash.js:
* stress/incorrect-put-could-generate-invalid-ic-but-still-not-causing-bad-behavior-bad-transition-debug.js:
* stress/incorrect-put-could-generate-invalid-ic-but-still-not-causing-bad-behavior-bad-transition.js:
* stress/incorrect-put-could-generate-invalid-ic-but-still-not-causing-bad-behavior-debug.js: Removed.
* stress/incorrect-put-could-generate-invalid-ic-but-still-not-causing-bad-behavior.js:
* stress/incorrect-put-could-generate-invalid-ic-involving-dictionary-flatten-debug.js:
2020-06-12 Alexey Shvayka <shvaikalesh@gmail.com>
AsyncGenerator should await "return" completions
https://bugs.webkit.org/show_bug.cgi?id=212774
Reviewed by Ross Kirsling.
With this change, async generator stress tests now pass in Chrome and Firefox (tested manually).
* stress/async-iteration-yield-star-interface.js:
* stress/async-iteration-yield-star.js:
* test262/expectations.yaml: Mark 8 test cases as passing.
2020-06-12 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Add sampling-profiler code-origin lookup test
https://bugs.webkit.org/show_bug.cgi?id=213108
<rdar://problem/52044072>
Reviewed by Saam Barati.
This is fixed by r262920. This patch just adds a test additionally.
We are keeping CallSiteIndex valid until corresponding JIT stub is destroyed.
This fixes SamplingProfiler too since SamplingProfiler also collects CallSiteIndex and gets corresponding CodeOrigin.
Since SamplingProfiler does this CallSiteIndex => CodeOrigin before running GC finalizer, validity of CallSiteIndex
should be kept correctly.
* stress/sampling-profiler-code-origin.js: Added.
(let.oThrow.get f):
(foo):
(return.get f):
(f):
2020-06-11 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Return DisposableCallSiteIndex when destroying GCAwareJITStubRoutineWithExceptionHandler
https://bugs.webkit.org/show_bug.cgi?id=213069
<rdar://problem/64205186>
Reviewed by Saam Barati.
* stress/dont-dispose-callsiteindex-while-executing.js: Added.
(emptyFunction):
(foo.bar.set catch):
(foo.bar):
(foo):
2020-06-11 Alexey Shvayka <shvaikalesh@gmail.com>
RegExp.prototype getters should throw on cross-realm access
https://bugs.webkit.org/show_bug.cgi?id=213075
Reviewed by Saam Barati.
* test262/expectations.yaml: Mark 14 test cases as passing.
2020-06-10 Ross Kirsling <ross.kirsling@sony.com>
REGRESSION(r260697): [Intl] "missing script" locales like zh-TW are no longer mapped
https://bugs.webkit.org/show_bug.cgi?id=213007
Reviewed by Darin Adler.
* stress/intl-missing-script-locales.js: Added.
2020-06-10 Caitlin Potter <caitp@igalia.com>
[JSC] add stress test for op_get_private_name
https://bugs.webkit.org/show_bug.cgi?id=213024
Reviewed by Mark Lam.
* stress/get-private-name.js: Added.
2020-06-09 Mark Lam <mark.lam@apple.com>
Stringifier::appendStringifiedValue() should not assume it is always safe to recurse.
https://bugs.webkit.org/show_bug.cgi?id=213006
<rdar://problem/64154840>
Reviewed by Keith Miller.
* stress/json-stringify-executing-in-reserved-zone.js: Added.
2020-06-09 Mark Lam <mark.lam@apple.com>
Disambiguate the OverridesGetPropertyNames structure flag
https://bugs.webkit.org/show_bug.cgi?id=212909
<rdar://problem/63823557>
Reviewed by Saam Barati.
* stress/unexpected-stack-overflow-below-JSObject-getPropertyNames.js: Added.
2020-06-08 Ross Kirsling <ross.kirsling@sony.com>
[Intl] Update tests to support ICU 67
https://bugs.webkit.org/show_bug.cgi?id=212943
Reviewed by Yusuke Suzuki.
Our tests have been assuming ICU 60-64 results but WinCairo and PlayStation are now on ICU 67,
which includes fixes for variant alphabetization and non-explicit "-true" values in locale strings.
* stress/intl-collator.js:
(explicitTrueBeforeICU67):
(shouldBe.testCollator.Intl.Collator):
* stress/intl-datetimeformat.js:
* stress/intl-locale.js:
* stress/intl-numberformat.js:
* stress/intl-object.js:
* stress/intl-pluralrules.js:
* stress/intl-relativetimeformat.js:
2020-06-08 Keith Miller <keith_miller@apple.com>
Fix tests that time out on Series 4 Watch
https://bugs.webkit.org/show_bug.cgi?id=212911
Reviewed by Saam Barati.
Simplify some logic about when to skip microbenchmarks to $jitTests.
Also reduce iteration count for
dont-range-based-iterate-vector-that-is-mutated.js
Also, mark wasm tests as not run on watch.
* microbenchmarks/bit-test-constant.js:
* microbenchmarks/bit-test-nonconstant.js:
* microbenchmarks/interpreter-wasm.js:
* microbenchmarks/memcpy-typed-loop-large.js:
* microbenchmarks/memcpy-typed-loop-small.js:
* microbenchmarks/mul-immediate-sub.js:
* stress/dont-range-based-iterate-vector-that-is-mutated.js:
* stress/sampling-profiler-richards.js:
2020-06-08 Alexey Shvayka <shvaikalesh@gmail.com>
JSON.stringify should throw stack overflow error
https://bugs.webkit.org/show_bug.cgi?id=143511
Reviewed by Ross Kirsling and Mark Lam.
* stress/json-stringify-stack-overflow.js: Added.
* stress/json-stringify-string-builder-overflow.js:
2020-06-05 Saam Barati <sbarati@apple.com>
Audit safe to execute
https://bugs.webkit.org/show_bug.cgi?id=207075
<rdar://problem/59085094>
Reviewed by Yusuke Suzuki.
* microbenchmarks/licm-dom-jit.js: Added.
(assert):
(foo):
(bar):
2020-06-05 Saam Barati <sbarati@apple.com>
Try to reduce jetsams further on iOS devices running jsc stress tests
https://bugs.webkit.org/show_bug.cgi?id=212786
Reviewed by Mark Lam.
* wasm/references/multitable.js:
(string_appeared_here.vm.isMemoryLimited.tableInsanity):
(string_appeared_here.vm.isMemoryLimited.):
(string_appeared_here.vm.isMemoryLimited):
(string_appeared_here.tableInsanity): Deleted.
(I32Const.0.GetLocal.0.TableSet.1.End.End.WebAssembly.): Deleted.
(I32Const.0.GetLocal.0.TableSet.1.End.End.WebAssembly): Deleted.
2020-06-05 Devin Rousso <drousso@apple.com>
Logical Assignment: perform NamedEvaluation of anonymous functions
https://bugs.webkit.org/show_bug.cgi?id=212679
Reviewed by Ross Kirsling.
* stress/logical-assignment-operator-and.js:
* stress/logical-assignment-operator-coalesce.js:
* stress/logical-assignment-operator-or.js:
2020-06-05 Caitlin Potter <caitp@igalia.com>
[JSC] Add support for private class fields
https://bugs.webkit.org/show_bug.cgi?id=206431
Reviewed by Saam Barati.
Expands upon the earlier public fields patch, adding a number of private
field tests.
* stress/class-fields-private-as-function.js: Added.
* stress/class-fields-private-cached-bytecode.js: Added.
* stress/class-fields-private-freeze-out-of-line.js: Added.
* stress/class-fields-private-freeze.js: Added.
* stress/class-fields-private-on-proxy.js: Added.
* stress/class-fields-private-out-of-line.js: Added.
* stress/class-fields-private-prevent-extensions-out-of-line.js: Added.
* stress/class-fields-private-prevent-extensions.js: Added.
* stress/class-fields-private-seal-out-of-line.js: Added.
* stress/class-fields-private-seal.js: Added.
* stress/class-fields-private-use-eval.js: Added.
* stress/class-fields-stress-instance.js:
* stress/optional-chaining-and-private-fields.js: Added.
* stress/private-name-access-in-computed-property.js: Added.
* stress/put-by-val-direct-addprivate.js: Added.
* stress/put-by-val-direct-putprivate.js: Added.
* test262/config.yaml:
2020-06-04 Paulo Matos <pmatos@igalia.com>
Skip microbenchmarks/interpreter-wasm.js on MIPS/ARM
Unreviewed Gardening.
There's no native wasm support on 32bits atm - skipping.
* microbenchmarks/interpreter-wasm.js:
2020-06-04 Ross Kirsling <ross.kirsling@sony.com>
Intl classes should have meaningful @@toStringTag values
https://bugs.webkit.org/show_bug.cgi?id=212769
Reviewed by Yusuke Suzuki.
* test262/expectations.yaml:
Mark 16 test cases as passing.
* stress/intl-collator.js:
* stress/intl-datetimeformat.js:
* stress/intl-numberformat.js:
* stress/intl-pluralrules.js:
Update stress tests.
2020-06-04 Alexey Shvayka <shvaikalesh@gmail.com>
GetMethod isn't performed properly on iterators
https://bugs.webkit.org/show_bug.cgi?id=212771
Reviewed by Saam Barati.
* test262/expectations.yaml: Mark 26 test cases as passing.
2020-06-04 Alexey Shvayka <shvaikalesh@gmail.com>
Update test262 to commit 290ceba31fea
https://bugs.webkit.org/show_bug.cgi?id=212752
Reviewed by Ross Kirsling.
* test262/config.yaml: Unskip tests fixed in r260990.
* test262/expectations.yaml:
* test262/latest-changes-summary.txt:
* test262/test/*: Updated.
* test262/test262-Revision.txt:
2020-06-03 Tadeu Zagallo <tzagallo@apple.com>
Disable B3 hoistLoopInvariantValues by default
https://bugs.webkit.org/show_bug.cgi?id=212511
<rdar://problem/63813245>
Reviewed by Mark Lam.
* microbenchmarks/interpreter-wasm.js: Added.
(key.in.Module.Module.hasOwnProperty):
(quit_):
(locateFile):
(ENVIRONMENT_IS_NODE.read_):
(ENVIRONMENT_IS_NODE.readBinary):
(ENVIRONMENT_IS_NODE.quit_):
(ENVIRONMENT_IS_NODE.Module.string_appeared_here):
(else.read_):
(else.readBinary):
(else.quit_):
(else):
(else.xhr.onload):
(else.readAsync):
(else.setWindowTitle):
(key.in.moduleOverrides.moduleOverrides.hasOwnProperty):
(dynamicAlloc):
(getNativeTypeSize):
(warnOnce):
(convertJsFunctionToWasm):
(addFunctionWasm):
(removeFunctionWasm):
(setTempRet0):
(setValue):
(assert):
(getCFunc):
(toC.string_appeared_here):
(convertReturnValue):
(ccall):
(UTF8ArrayToString):
(UTF8ToString):
(stringToUTF8Array):
(stringToUTF8):
(lengthBytesUTF8):
(allocateUTF8OnStack):
(writeArrayToMemory):
(writeAsciiToMemory):
(updateGlobalBufferAndViews):
(callRuntimeCallbacks):
(preRun):
(initRuntime):
(preMain):
(exitRuntime):
(postRun):
(addOnPreRun):
(addOnPostRun):
(addRunDependency):
(removeRunDependency):
(hasPrefix):
(isDataURI):
(isFileURI):
(getBinary):
(getBinaryPromise):
(createWasm.receiveInstance):
(createWasm.receiveInstantiatedSource):
(createWasm.instantiateArrayBuffer):
(createWasm.instantiateAsync.):
(createWasm.instantiateAsync):
(createWasm):
(__ATINIT__.push.func):
(demangle):
(demangleAll):
(_emscripten_get_sbrk_ptr):
(_emscripten_memcpy_big):
(abortOnCannotGrowMemory):
(_emscripten_resize_heap):
(PATH.splitPath):
(PATH.normalizeArray):
(PATH.normalize):
(PATH.dirname):
(PATH.basename):
(PATH.extname):
(PATH.join):
(PATH.join2):
(SYSCALLS.printChar):
(SYSCALLS.getStr):
(SYSCALLS.get64):
(_fd_write):
(_setTempRet0):
(___wasm_call_ctors.Module.string_appeared_here):
(_main.Module.string_appeared_here):
(_malloc.Module.string_appeared_here):
(___errno_location.Module.string_appeared_here):
(_free.Module.string_appeared_here):
(stackSave.Module.string_appeared_here):
(stackAlloc.Module.string_appeared_here):
(stackRestore.Module.string_appeared_here):
(__growWasmMemory.Module.string_appeared_here):
(dynCall_ii.Module.string_appeared_here):
(dynCall_iiii.Module.string_appeared_here):
(dynCall_jiji.Module.string_appeared_here):
(ExitStatus):
(dependenciesFulfilled):
(callMain):
(run.doRun):
(run):
(exit):
* microbenchmarks/interpreter-wasm.wasm: Added.
2020-06-02 Saam Barati <sbarati@apple.com>
MultiDeleteByOffset should not always def
https://bugs.webkit.org/show_bug.cgi?id=212621
<rdar://problem/63824182>
Reviewed by Yusuke Suzuki.
* stress/multi-del-by-offset-doesnt-always-def-osr-entry.js: Added.
(foo):
* stress/multi-del-by-offset-doesnt-always-def.js: Added.
(foo):
(let.p.set undefined):
2020-06-01 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] JSBigInt::rightTrim can miss |this| pointer and leads to incorrect GC collection
https://bugs.webkit.org/show_bug.cgi?id=212601
Reviewed by Saam Barati.
* stress/bigint-should-not-be-collected-while-creating.js: Added.
(foo.let.increment.10000n.bar):
(foo):
2020-06-01 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] JSValue::toThis should not throw exception
https://bugs.webkit.org/show_bug.cgi?id=212595
Reviewed by Mark Lam.
* stress/number-proto.js: Added.
(shouldBe):
2020-06-01 Caio Lima <ticaiolima@gmail.com>
JSTests/exceptionFuzz/earley-boyer.js fails with early exception thrown.
https://bugs.webkit.org/show_bug.cgi?id=212569
Reviewed by Mark Lam.
This is a temporary fix to avoid flawky results when running
`exceptionFuzz` tests. Right now, exception handler starts after
function declarations, since they are hoisted. Since function
declarations emit `new_func` bytecode, those bytecodes can
throw an exception outside expected exception handler.
Embedding them in a function avoid such hoisting to happen.
* exceptionFuzz/3d-cube.js:
* exceptionFuzz/date-format-xparb.js:
* exceptionFuzz/earley-boyer.js:
2020-05-30 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] for-in should allocate new temporary register for base
https://bugs.webkit.org/show_bug.cgi?id=212519
<rdar://problem/63722044>
Reviewed by Saam Barati.
* microbenchmarks/has-own-property-for-in-loop-with-heap-variable.js: Added.
(assert):
(test1.count):
(test1):
* microbenchmarks/has-own-property-for-in-loop-with-this.js: Added.
(assert):
(test1.count):
(test1):
* stress/for-in-body-replace-enumerable.js: Added.
(foo):
* stress/for-in-enumerable-shadow.js: Added.
(assert):
(test1.count):
(test1):
* stress/for-in-enumerable-this-arrow.js: Added.
(assert):
(test1):
2020-05-29 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] JSBigInt allocation should be graceful for OOM
https://bugs.webkit.org/show_bug.cgi?id=212512
Reviewed by Mark Lam.
* stress/bigint-can-throw-oom.js: Copied from JSTests/stress/get-function-realm-not-doing-recursion.js.
(canThrow):
(foo):
(get foo):
* stress/get-function-realm-not-doing-recursion.js:
(canThrow):
2020-05-29 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Split some of JSC tests / reduce iteration count to make it not timed-out in Debug build
https://bugs.webkit.org/show_bug.cgi?id=212557
Reviewed by Mark Lam.
* stress/should-not-emit-double-rep-for-bigint.js: Ensured that this iteration count can reproduce the original crash.
* stress/tailCallForwardArguments.js: Split tests into 4 files.
(let.bodyText): Deleted.
(baz4): Deleted.
(testFunc): Deleted.
(baz5): Deleted.
(baz6): Deleted.
(arrayEq): Deleted.
* stress/tailCallForwardArguments2.js: Added.
(putFuncToPrivateName.createBuiltin):
(createTailCallForwardingFuncWith):
(putFuncToPrivateName):
(let.bodyText):
(baz4):
* stress/tailCallForwardArguments3.js: Added.
(putFuncToPrivateName.createBuiltin):
(createTailCallForwardingFuncWith):
(putFuncToPrivateName):
(let.bodyText):
(testFunc):
(baz5):
* stress/tailCallForwardArguments4.js: Added.
(putFuncToPrivateName.createBuiltin):
(createTailCallForwardingFuncWith):
(let.bodyText):
(putFuncToPrivateName):
(baz6):
(arrayEq):
2020-05-29 Saam Barati <sbarati@apple.com>
We need to properly model heap ranges of Delete in DFG/B3
https://bugs.webkit.org/show_bug.cgi?id=212538
<rdar://problem/63670964>
Reviewed by Filip Pizlo.
* stress/delete-inlining-should-model-aliasing-of-future-stores.js: Added.
2020-05-29 Saam Barati <sbarati@apple.com>
Skip a few more JSC tests when $memoryLimited
https://bugs.webkit.org/show_bug.cgi?id=212552
Reviewed by Mark Lam.
* stress/call-varargs-inlining-should-not-clobber-previous-to-free-register.js:
* stress/incremental-marking-should-not-dead-lock-in-new-property-transition.js:
2020-05-27 Keith Miller <keith_miller@apple.com>
for-of should check the iterable is a JSArray for FastArray in DFG iterator_open
https://bugs.webkit.org/show_bug.cgi?id=212383
Reviewed by Saam Barati.
* stress/check-sub-class.js:
* stress/for-of-iterator-open-fast-array-should-check-js-type.js: Added.
(foo):
2020-05-27 Saam Barati <sbarati@apple.com>
hasOwnProperty inside structure property for-in loop should use an opcode like has_structure_property but for hasOwnProperty
https://bugs.webkit.org/show_bug.cgi?id=212248
Reviewed by Keith Miller.
* microbenchmarks/has-own-property-for-in-loop.js: Added.
* stress/has-own-property-structure-for-in-loop-correctness.js: Added.
2020-05-27 Yusuke Suzuki <ysuzuki@apple.com>
[ macOS iOS ] REGRESSION(r261600?): imported/w3c/web-platform-tests/html/dom/reflection-embedded.html & imported/w3c/web-platform-tests/html/dom/reflection-forms.html are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=212430
Reviewed by Saam Barati.
* stress/is-constructor-should-be-correct-in-ai.js: Added.
(shouldBe):
(test):
2020-05-27 Saam Barati <sbarati@apple.com>
Limit memory used by wasm/references/multitable.js on memory limited devices
https://bugs.webkit.org/show_bug.cgi?id=212437
Reviewed by Keith Miller.
wasm/references/multitable.js was using around ~700MB of memory.
This looks like it's causing jetsams on some of our iOS test runners.
This patch makes this test use less memory on memory limited devices.
* wasm/assert.js:
* wasm/references/multitable.js:
(string_appeared_here.tableInsanity):
2020-05-27 Keith Miller <keith_miller@apple.com>
Unreviwed, catch expected exception in new test.
* stress/for-in-in-structure-property-constant-virtual-register.js:
2020-05-27 Keith Miller <keith_miller@apple.com>
in_structure_property needs to handle constants on the RHS of the "in"
https://bugs.webkit.org/show_bug.cgi?id=212399
Reviewed by Saam Barati.
* stress/for-in-in-structure-property-constant-virtual-register.js: Added.
2020-05-26 Mark Lam <mark.lam@apple.com>
JSC stress tests that require --useLLInt=0 should be skipped on --no-jit test runs.
https://bugs.webkit.org/show_bug.cgi?id=212400
Reviewed by Saam Barati.
That's because using --useLLInt=0 and --useJIT=0 together is not a "coherent"
(read "valid") configuration. We should be able to do a --no-jit test run with
the JSC_useJIT=0 environmental variable set. Before this patch, the following
tests will all fail. This patch skips them.
* stress/delete-property-poly-proto.js:
* stress/dfg-compare-eq-via-nonSpeculativeNonPeepholeCompareNullOrUndefined.js:
* stress/getter-setter-inlining-should-emit-movhint.js:
* stress/merging-ic-variants-should-bail-if-structures-overlap.js:
* stress/poly-proto-setter-adds-setter-in-middle.js:
* stress/poly-proto-setter-changes-setter-2.js:
* stress/poly-proto-setter-changes-setter.js:
* stress/racy-gc-cleanup-of-identifier-after-mutator-stops-running.js:
* stress/regress-192717.js:
* stress/retry-cache-later.js:
2020-05-26 Alexey Shvayka <shvaikalesh@gmail.com>
IteratorClose should suppress GetMethod errors
https://bugs.webkit.org/show_bug.cgi?id=212378
Reviewed by Keith Miller.
* stress/custom-iterators.js:
* stress/iterator-return-abrupt-lookup-builtins.js: Added.
* test262/expectations.yaml: Mark 4 test cases as passing.
2020-05-23 Caio Lima <ticaiolima@gmail.com>
[bmalloc] Fix OOM errors on MIPS after r261667
https://bugs.webkit.org/show_bug.cgi?id=212016
Reviewed by Yusuke Suzuki.
* stress/array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js:
* stress/big-int-mod-memory-stress.js:
* stress/incremental-marking-should-not-dead-lock-in-new-property-transition.js:
2020-05-22 Alexey Shvayka <shvaikalesh@gmail.com>
Array.prototype.splice doesn't set "length" of returned object
https://bugs.webkit.org/show_bug.cgi?id=212285
Reviewed by Darin Adler.
* test262/expectations.yaml: Mark 2 test cases as passing.
2020-05-22 Saam Barati <sbarati@apple.com>
in_by_val inside structure property for-in loop should use an opcode like has_structure_property but for "in"
https://bugs.webkit.org/show_bug.cgi?id=212239
Reviewed by Tadeu Zagallo.
* microbenchmarks/in-by-val-inside-for-in-loop.js: Added.
(assert):
(count):
* stress/in-by-val-inside-for-in-loop.js: Added.
(assert):
(test1.count):
(test1):
(test2.count):
(test2):
(test3.count):
(test3):
(test4.count):
(test4):
(test5.count):
(test5):
(test6.count):
(test6):
(test7.count):
(test7):
(test8.count):
(test8):
2020-05-22 Keith Miller <keith_miller@apple.com>
Checkpoint inlined call return handler needs an exception check when dispatching
https://bugs.webkit.org/show_bug.cgi?id=212104
Reviewed by Yusuke Suzuki.
* stress/for-of-done-getter-osr-exits-inlined-to-value-getter-with-exception.js: Added.
(let.d.get done):
(let.d.get value):
(foo):
(catch):
2020-05-21 Alexey Shvayka <shvaikalesh@gmail.com>
Use @isUndefinedOrNull instead of abstract equality with null
https://bugs.webkit.org/show_bug.cgi?id=210954
Reviewed by Yusuke Suzuki.
* test262/expectations.yaml: Mark 16 test cases as passing.
2020-05-21 Alexey Shvayka <shvaikalesh@gmail.com>
Array.prototype.concat is incorrect with objects whose "length" exceeds 2 ** 32 - 1
https://bugs.webkit.org/show_bug.cgi?id=212167
Reviewed by Saam Barati.
* stress/array-prototype-concat-of-long-spliced-arrays.js:
* stress/array-prototype-concat-of-long-spliced-arrays2.js:
* test262/expectations.yaml: Mark 4 test cases as passing.
2020-05-19 Michael Catanzaro <mcatanzaro@gnome.org>
Fixups for r261689 "stress/array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js failing on ppc64le and s390x"
https://bugs.webkit.org/show_bug.cgi?id=211724
<rdar://problem/63227393>
Reviewed by Carlos Alberto Lopez Perez.
Separately skip 32-bit and 64-bit PowerPC.
* stress/array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js:
2020-05-18 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] BigInt peephole compare should speculate appropriately
https://bugs.webkit.org/show_bug.cgi?id=212037
<rdar://problem/63346966>
Reviewed by Saam Barati.
* stress/bigint-compare-peephole-branch.js: Added.
2020-05-18 Keith Miller <keith_miller@apple.com>
OSR loop entry to iterator_next generic needs to CheckNotEmpty on m_next
https://bugs.webkit.org/show_bug.cgi?id=212001
Reviewed by Saam Barati.
* stress/for-of-osr-loop-enter-active-next-differs-from-seen-modes.js: Added.
(foo):
2020-05-18 Paulo Matos <pmatos@igalia.com>
Skip stress test array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js on MIPS
Unreviewed Gardening.
* stress/array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js:
2020-05-16 Keith Miller <keith_miller@apple.com>
[test262] Update to master for May
https://bugs.webkit.org/show_bug.cgi?id=211985
Reviewed by Mark Lam.
* test262/expectations.yaml:
* test262/harness/testIntl.js:
* test262/latest-changes-summary.txt:
* test262/test/annexB/built-ins/Array/from/iterator-method-emulates-undefined.js: Added.
* test262/test/annexB/built-ins/String/prototype/match/custom-matcher-emulates-undefined.js: Added.
* test262/test/annexB/built-ins/String/prototype/matchAll/custom-matcher-emulates-undefined.js: Added.
* test262/test/annexB/built-ins/String/prototype/replace/custom-replacer-emulates-undefined.js: Added.
* test262/test/annexB/built-ins/String/prototype/replaceAll/custom-replacer-emulates-undefined.js: Added.
* test262/test/annexB/built-ins/String/prototype/search/custom-searcher-emulates-undefined.js: Added.
* test262/test/annexB/built-ins/String/prototype/split/custom-splitter-emulates-undefined.js: Added.
* test262/test/annexB/built-ins/TypedArrayConstructors/from/iterator-method-emulates-undefined.js: Added.
(testWithTypedArrayConstructors):
* test262/test/annexB/language/expressions/yield/star-iterable-throw-emulates-undefined-throws-when-called.js:
* test262/test/built-ins/AsyncGeneratorFunction/proto-from-ctor-realm-prototype.js: Added.
* test262/test/built-ins/Atomics/waitAsync/false-for-timeout-agent.js:
* test262/test/built-ins/Atomics/waitAsync/good-views.js:
* test262/test/built-ins/Atomics/waitAsync/nan-for-timeout-agent.js:
* test262/test/built-ins/Atomics/waitAsync/negative-timeout-agent.js:
* test262/test/built-ins/Atomics/waitAsync/no-spurious-wakeup-no-operation.js:
* test262/test/built-ins/Atomics/waitAsync/no-spurious-wakeup-on-add.js:
* test262/test/built-ins/Atomics/waitAsync/no-spurious-wakeup-on-and.js:
* test262/test/built-ins/Atomics/waitAsync/no-spurious-wakeup-on-compareExchange.js:
* test262/test/built-ins/Atomics/waitAsync/no-spurious-wakeup-on-exchange.js:
* test262/test/built-ins/Atomics/waitAsync/no-spurious-wakeup-on-or.js:
* test262/test/built-ins/Atomics/waitAsync/no-spurious-wakeup-on-store.js:
* test262/test/built-ins/Atomics/waitAsync/no-spurious-wakeup-on-sub.js:
* test262/test/built-ins/Atomics/waitAsync/no-spurious-wakeup-on-xor.js:
* test262/test/built-ins/Atomics/waitAsync/null-for-timeout-agent.js:
* test262/test/built-ins/Atomics/waitAsync/object-for-timeout-agent.js:
* test262/test/built-ins/Atomics/waitAsync/poisoned-object-for-timeout-throws-agent.js:
* test262/test/built-ins/Atomics/waitAsync/symbol-for-index-throws-agent.js:
* test262/test/built-ins/Atomics/waitAsync/symbol-for-timeout-throws-agent.js:
* test262/test/built-ins/Atomics/waitAsync/symbol-for-value-throws-agent.js:
* test262/test/built-ins/Atomics/waitAsync/true-for-timeout-agent.js:
* test262/test/built-ins/Atomics/waitAsync/undefined-for-timeout-agent.js:
* test262/test/built-ins/Atomics/waitAsync/undefined-index-defaults-to-zero-agent.js:
* test262/test/built-ins/Atomics/waitAsync/value-not-equal-agent.js:
* test262/test/built-ins/Atomics/waitAsync/waiterlist-block-indexedposition-wake.js:
* test262/test/built-ins/Atomics/waitAsync/was-woken-before-timeout.js:
* test262/test/built-ins/BigInt/prototype/toString/a-z.js: Added.
* test262/test/built-ins/Function/proto-from-ctor-realm-prototype.js: Added.
* test262/test/built-ins/GeneratorFunction/proto-from-ctor-realm-prototype.js: Added.
* test262/test/built-ins/NativeErrors/AggregateError/proto-from-ctor-realm.js:
* test262/test/built-ins/Number/isSafeInteger/safe-integers.js:
* test262/test/built-ins/Number/prototype/toString/a-z.js: Added.
* test262/test/built-ins/Object/assign/strings-and-symbol-order-proxy.js: Added.
(getOwnPropertyDescriptor):
(ownKeys):
* test262/test/built-ins/Object/defineProperties/proxy-no-ownkeys-returned-keys-order.js: Added.
(getOwnPropertyDescriptor):
* test262/test/built-ins/Object/freeze/proxy-no-ownkeys-returned-keys-order.js: Added.
(getOwnPropertyDescriptor):
* test262/test/built-ins/Object/getOwnPropertyDescriptors/proxy-no-ownkeys-returned-keys-order.js: Added.
(getOwnPropertyDescriptor):
* test262/test/built-ins/Object/isFrozen/proxy-no-ownkeys-returned-keys-order.js: Added.
(getOwnPropertyDescriptor):
* test262/test/built-ins/Object/isSealed/proxy-no-ownkeys-returned-keys-order.js: Added.
(getOwnPropertyDescriptor):
* test262/test/built-ins/Object/prototype/hasOwnProperty/S15.2.4.5_A10.js: Removed.
* test262/test/built-ins/Object/prototype/hasOwnProperty/S15.2.4.5_A11.js: Removed.
* test262/test/built-ins/Object/prototype/hasOwnProperty/S15.2.4.5_A8.js: Removed.
* test262/test/built-ins/Object/prototype/hasOwnProperty/S15.2.4.5_A9.js: Removed.
* test262/test/built-ins/Object/prototype/hasOwnProperty/length.js: Added.
* test262/test/built-ins/Object/prototype/hasOwnProperty/topropertykey_before_toobject.js: Added.
(coercibleKey1.get toString):
(coercibleKey1.get valueOf):
(coercibleKey2.Symbol.toPrimitive):
* test262/test/built-ins/Object/prototype/toString/proxy-revoked-during-get-call.js: Added.
* test262/test/built-ins/Object/seal/proxy-no-ownkeys-returned-keys-order.js: Added.
(defineProperty):
* test262/test/built-ins/Promise/all/invoke-resolve-get-once-no-calls.js:
* test262/test/built-ins/Promise/all/resolve-not-callable-close.js: Added.
(const.iter.return.return):
(const.iter.Symbol.iterator):
(Promise.all.iter.then):
* test262/test/built-ins/Promise/allSettled/resolve-not-callable-close.js: Added.
(const.iter.return.return):
(const.iter.Symbol.iterator):
(Promise.allSettled.iter.then):
* test262/test/built-ins/Promise/any/resolve-not-callable-close.js: Added.
(const.iter.return.return):
(const.iter.Symbol.iterator):
(Promise.any.iter.then):
* test262/test/built-ins/Promise/race/resolve-not-callable-close.js: Added.
(const.iter.return.return):
(const.iter.Symbol.iterator):
(Promise.race.iter.then):
* test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/order-dayPeriod.js:
* test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/order-fractionalSecondDigits.js:
* test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/order-style.js:
* test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/order.js:
* test262/test/intl402/RelativeTimeFormat/prototype/format/pl-pl-style-long.js:
(expected.of.Object.entries):
* test262/test/intl402/RelativeTimeFormat/prototype/format/pl-pl-style-narrow.js:
(expected.of.Object.entries):
* test262/test/intl402/RelativeTimeFormat/prototype/format/pl-pl-style-short.js:
(expected.of.Object.entries):
* test262/test/intl402/RelativeTimeFormat/prototype/formatToParts/pl-pl-style-long.js:
(expected.of.Object.entries):
* test262/test/intl402/RelativeTimeFormat/prototype/formatToParts/pl-pl-style-narrow.js:
(expected.of.Object.entries):
* test262/test/intl402/RelativeTimeFormat/prototype/formatToParts/pl-pl-style-short.js:
(expected.of.Object.entries):
* test262/test/language/expressions/async-generator/named-yield-star-sync-return.js:
(gen):
* test262/test/language/expressions/async-generator/named-yield-star-sync-throw.js:
(gen):
* test262/test/language/expressions/async-generator/yield-star-sync-return.js:
* test262/test/language/expressions/async-generator/yield-star-sync-throw.js:
* test262/test/language/expressions/class/async-gen-method-static/yield-star-sync-return.js:
(C):
* test262/test/language/expressions/class/async-gen-method-static/yield-star-sync-throw.js:
(C):
* test262/test/language/expressions/class/async-gen-method/yield-star-sync-return.js:
* test262/test/language/expressions/class/async-gen-method/yield-star-sync-throw.js:
* test262/test/language/expressions/class/elements/async-gen-private-method-static/yield-star-sync-return.js:
(C):
* test262/test/language/expressions/class/elements/async-gen-private-method-static/yield-star-sync-throw.js:
(C):
* test262/test/language/expressions/class/elements/async-gen-private-method/yield-star-sync-return.js:
* test262/test/language/expressions/class/elements/async-gen-private-method/yield-star-sync-throw.js:
* test262/test/language/expressions/class/elements/field-declaration.js: Added.
* test262/test/language/expressions/class/elements/fields-anonymous-function-length.js:
* test262/test/language/expressions/class/elements/private-method-referenced-from-static-method.js:
* test262/test/language/expressions/object/dstr/object-rest-proxy-ownkeys-returned-keys-order.js: Added.
(getOwnPropertyDescriptor):
(ownKeys):
* test262/test/language/expressions/object/method-definition/async-gen-yield-star-sync-return.js:
* test262/test/language/expressions/object/method-definition/async-gen-yield-star-sync-throw.js:
* test262/test/language/expressions/object/object-spread-proxy-ownkeys-returned-keys-order.js: Added.
(getOwnPropertyDescriptor):
(ownKeys):
* test262/test/language/identifiers/part-unicode-10.0.0-escaped.js:
* test262/test/language/identifiers/part-unicode-10.0.0.js:
* test262/test/language/identifiers/part-unicode-11.0.0-escaped.js:
* test262/test/language/identifiers/part-unicode-11.0.0.js:
* test262/test/language/identifiers/part-unicode-12.0.0-escaped.js:
* test262/test/language/identifiers/part-unicode-12.0.0.js:
* test262/test/language/identifiers/part-unicode-13.0.0-escaped.js:
* test262/test/language/identifiers/part-unicode-13.0.0.js:
* test262/test/language/identifiers/part-unicode-5.2.0-escaped.js:
* test262/test/language/identifiers/part-unicode-5.2.0.js:
* test262/test/language/identifiers/part-unicode-6.0.0-escaped.js:
* test262/test/language/identifiers/part-unicode-6.0.0.js:
* test262/test/language/identifiers/part-unicode-6.1.0-escaped.js:
* test262/test/language/identifiers/part-unicode-6.1.0.js:
* test262/test/language/identifiers/part-unicode-7.0.0-escaped.js:
* test262/test/language/identifiers/part-unicode-7.0.0.js:
* test262/test/language/identifiers/part-unicode-8.0.0-escaped.js:
* test262/test/language/identifiers/part-unicode-8.0.0.js:
* test262/test/language/identifiers/part-unicode-9.0.0-escaped.js:
* test262/test/language/identifiers/part-unicode-9.0.0.js:
* test262/test/language/module-code/eval-rqstd-once.js:
* test262/test/language/module-code/export-star-as-dflt.js: Added.
* test262/test/language/module-code/export-star-as-dflt_FIXTURE.js: Added.
* test262/test/language/statements/async-generator/yield-star-sync-return.js:
* test262/test/language/statements/async-generator/yield-star-sync-throw.js:
* test262/test/language/statements/class/async-gen-method-static/yield-star-sync-return.js:
* test262/test/language/statements/class/async-gen-method-static/yield-star-sync-throw.js:
* test262/test/language/statements/class/async-gen-method/yield-star-sync-return.js:
* test262/test/language/statements/class/async-gen-method/yield-star-sync-throw.js:
* test262/test/language/statements/class/elements/async-gen-private-method-static/yield-star-sync-return.js:
* test262/test/language/statements/class/elements/async-gen-private-method-static/yield-star-sync-throw.js:
* test262/test/language/statements/class/elements/async-gen-private-method/yield-star-sync-return.js:
* test262/test/language/statements/class/elements/async-gen-private-method/yield-star-sync-throw.js:
* test262/test/language/statements/class/elements/field-declaration.js: Added.
(C):
* test262/test/language/statements/class/elements/fields-anonymous-function-length.js:
* test262/test/language/statements/class/elements/private-method-referenced-from-static-method.js:
* test262/test/language/statements/class/subclass/bound-function.js: Removed.
* test262/test/language/statements/class/subclass/class-definition-superclass-generator.js: Removed.
* test262/test/language/statements/class/subclass/superclass-arrow-function.js: Added.
(fn):
(A):
(C):
* test262/test/language/statements/class/subclass/superclass-async-function.js: Added.
(async fn):
(A):
(bound):
(C):
* test262/test/language/statements/class/subclass/superclass-async-generator-function.js: Added.
(async fn):
(A):
(bound):
(async bind):
* test262/test/language/statements/class/subclass/superclass-bound-function.js: Added.
(bound):
* test262/test/language/statements/class/subclass/superclass-generator-function.js: Added.
(fn):
(A):
(bound):
(C):
* test262/test262-Revision.txt:
2020-05-16 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Make OutOfMemory error as instance of RangeError
https://bugs.webkit.org/show_bug.cgi?id=211952
Reviewed by Mark Lam.
* ChakraCore/test/Error/outofmem.baseline-jsc:
* es6/String.prototype_methods_String.prototype.padEnd.js:
(TestMemoryLimits):
* es6/String.prototype_methods_String.prototype.padStart.js:
(TestMemoryLimits):
* slowMicrobenchmarks/function-constructor-with-huge-strings.js:
* stress/array-join-on-strings-need-overflow-checks.js:
* stress/big-wasm-memory-grow-no-max.js:
(test):
* stress/big-wasm-memory-grow.js:
(test):
* stress/big-wasm-memory.js:
(test):
* stress/bigint-exponential-oom.js:
(shouldThrow):
* stress/bigint-int32-min-shift.js:
(shouldThrow):
* stress/check-symbol-description-oom.js:
* stress/constructFunctionSkippingEvalEnabledCheck-should-throw-out-of-memory-error.js:
* stress/intl-canonicalize-locale-list-error-oom.js:
(shouldThrow):
* stress/joined-strings-should-not-exceed-max-string-length.js:
* stress/js-fixed-array-out-of-memory.js:
(test):
* stress/json-stringified-overflow-2.js:
(catch):
* stress/json-stringified-overflow.js:
(catch):
* stress/json-stringify-string-builder-overflow.js:
* stress/missing-exception-check-in-JSValue-toWTFStringSlowCase.js:
* stress/missing-exception-check-in-array-prototype-fastJoin.js:
* stress/missing-exception-check-in-canonicalizeLocaleList.js:
* stress/missing-exception-check-in-json-stringifier-gap.js:
* stress/missing-exception-check-in-string-compare.js:
* stress/missing-exception-check-in-string-greater-than-compare.js:
* stress/missing-exception-check-in-string-greater-than-or-equal-compare.js:
* stress/missing-exception-check-in-string-lastIndexOf.js:
* stress/missing-exception-check-in-string-less-than-compare.js:
* stress/missing-exception-check-in-string-less-than-or-equal-compare.js:
* stress/missing-exception-check-in-string-toLower.js:
* stress/missing-exception-check-in-string-toUpper.js:
* stress/new_array_with_spread-should-cap-array-size-to-MIN_ARRAY_STORAGE_CONSTRUCTION_LENGTH.js:
* stress/out-of-memory-while-constructing-BytecodeGenerator.js:
* stress/regexp-prototype-exec-on-too-long-rope.js:
* stress/regexp-prototype-match-on-too-long-rope.js:
* stress/regexp-prototype-test-on-too-long-rope.js:
* stress/regress-169783.js:
(doTest):
* stress/regress-178385.js:
* stress/regress-178386.js:
* stress/regress-185888.js:
* stress/regress-189132.js:
* stress/regress-190187.js:
* stress/regress-191563.js:
* stress/scoped-arguments-table-should-be-tolerant-for-oom.js:
(i.canThrow):
* stress/string-16bit-repeat-overflow.js:
* stress/string-overflow-createError-builder.js:
* stress/string-overflow-createError-fit.js:
* stress/string-overflow-createError.js:
* stress/string-prototype-charCodeAt-on-too-long-rope.js:
* stress/string-prototype-replace-should-throw-out-of-memory-error-when-using-too-much-memory.js:
* stress/switch-string-oom.js:
(testLowerTiers):
(testFTL):
* stress/test-exception-assert-in-ExceptionHelpers-createError.js:
* stress/test-out-of-memory.js:
* stress/typed-array-subarray-can-throw-oom-error.js:
(get bar):
* wasm/regress/wasm-memory-requested-more-than-MAX_ARRAY_BUFFER_SIZE-2.js:
* wasm/regress/wasm-memory-requested-more-than-MAX_ARRAY_BUFFER_SIZE.js:
2020-05-15 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] getFunctionRealm should not use recursion
https://bugs.webkit.org/show_bug.cgi?id=211965
<rdar://problem/63268287>
Reviewed by Saam Barati.
* stress/get-function-realm-not-doing-recursion.js: Added.
(canThrow):
(const.emptyFunction):
2020-05-15 Paulo Matos <pmatos@igalia.com>
Skip tests in ARM and MIPS post r261667
Unreviewed Gardening.
These tests started failing on both ARMv7 and MIPS post r261667.
Skipping for now until an investigation takes place.
* stress/big-int-mod-memory-stress.js:
* stress/incremental-marking-should-not-dead-lock-in-new-property-transition.js:
2020-05-14 Saam Barati <sbarati@apple.com>
GetByVal and PutByVal runtime operations shouldn't fall off a performance cliff when the property is an integer boxed as a double
https://bugs.webkit.org/show_bug.cgi?id=211935
Reviewed by Yusuke Suzuki and Mark Lam.
* microbenchmarks/get-and-put-by-val-double-index-dont-fall-off-a-cliff.js: Added.
(test):
2020-05-14 Devin Rousso <drousso@apple.com>
[ESNext] enable logical assignment operators by default
https://bugs.webkit.org/show_bug.cgi?id=211921
Reviewed by Yusuke Suzuki.
* test262/config.yaml:
* stress/logical-assignment-operator-and.js:
* stress/logical-assignment-operator-coalesce.js:
* stress/logical-assignment-operator-or.js:
2020-05-14 Keith Miller <keith_miller@apple.com>
Undecided Arrays shouldn't need to be OriginalArray to covert to GetArrayLength
https://bugs.webkit.org/show_bug.cgi?id=211914
Reviewed by Saam Barati.
* stress/undecided-arrays-should-not-need-original-array-for-length.js: Added.
(findFoo):
(const.nonUndecidedFrequency.1000.SubArray):
(i.i.some):
2020-05-14 Keith Miller <keith_miller@apple.com>
GetArrayLength should be "blessed" during Fixup phase in the DFG
https://bugs.webkit.org/show_bug.cgi?id=211540
Reviewed by Saam Barati.
* stress/get-array-length-node-should-be-blessed-in-fixup.js: Added.
(foo):
2020-05-13 Keith Miller <keith_miller@apple.com>
iteration bytecodes need to handle osr exiting from inlined getter frames
https://bugs.webkit.org/show_bug.cgi?id=211873
Reviewed by Saam Barati.
* stress/for-of-done-getter-osr-exit-inlined.js: Added.
(let.d.get done):
(let.d.get value):
* stress/for-of-next-getter-osr-exit-inlined.js: Added.
(let.x.get next):
(foo):
* stress/for-of-value-getter-osr-exit-inlined.js: Added.
(let.d.get value):
(let.d.get done):
2020-05-14 Michael Catanzaro <mcatanzaro@gnome.org>
stress/array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js failing on ppc64le and s390x
https://bugs.webkit.org/show_bug.cgi?id=211724
Reviewed by Carlos Alberto Lopez Perez.
This test is broken on ppc64le and s390x, so skip it.
* stress/array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js:
2020-05-13 Paulo Matos <pmatos@igalia.com>
Skip on MIPS test stress/has-own-property-name-cache-symbols-and-strings.js
Unreviewed Gardening.
Test started to fail unpredictably with segfault in bots -
requires further investigation.
* stress/has-own-property-name-cache-symbols-and-strings.js:
2020-05-13 Saam Barati <sbarati@apple.com>
MovHint can see an arguments object be MovHinted to a Tmp
https://bugs.webkit.org/show_bug.cgi?id=211820
<rdar://problem/62882158>
Reviewed by Keith Miller.
* stress/varargs-forwarding-can-see-arguments-mov-hint-to-for-of-tmp.js: Added.
(let.iter.Symbol.iterator.return.next):
(let.iter.Symbol.iterator):
2020-05-13 Alexey Shvayka <shvaikalesh@gmail.com>
Move @isConstructor checks from fast paths of Array.from and Array.of
https://bugs.webkit.org/show_bug.cgi?id=211805
Reviewed by Keith Miller.
* microbenchmarks/array-from-arraylike.js: Added.
* microbenchmarks/array-of.js: Added.
* stress/new-promise-capabilities-requires-constructor.js:
2020-05-12 Alexey Shvayka <shvaikalesh@gmail.com>
Implement @isConstructor bytecode intrinsic and bytecode for that
https://bugs.webkit.org/show_bug.cgi?id=144093
Reviewed by Keith Miller.
* microbenchmarks/is-constructor.js: Added.
* stress/async-arrow-function-in-class-heritage.js:
* stress/is-constructor.js:
* test262/expectations.yaml: Mark 2 test cases as passing.
2020-05-12 Robin Morisset <rmorisset@apple.com>
Exception check for OOM is a bit too late in JSBigInt::exponentiate.
https://bugs.webkit.org/show_bug.cgi?id=211823
Reviewed by Mark Lam.
Just add one more case so that this test now catches this bug (the control-flow through JSBigInt::exponentiate is pretty convoluted).
* stress/bigint-exponential-oom.js:
(shouldThrow):
2020-05-12 Saam Barati <sbarati@apple.com>
handling of Check in VarargsForwardingPhase is too pessimistic
https://bugs.webkit.org/show_bug.cgi?id=211810
Reviewed by Keith Miller and Filip Pizlo.
* microbenchmarks/forward-varargs-check-shouldnt-escape.js: Added.
(g):
(foo):
2020-05-12 Keith Miller <keith_miller@apple.com>
The bottom value set for m_value in iterator_next should be materialized after a done getter
https://bugs.webkit.org/show_bug.cgi?id=211811
Reviewed by Saam Barati.
* stress/for-of-done-getter-materialize-bottom-late.js: Added.
(let.d.get done):
* stress/for-of-value-getter-contains-control-flow.js: Added.
(let.d.get value):
(let.d.get done):
2020-05-11 Paulo Matos <pmatos@igalia.com>
Skip on armv7/linux stress/array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js
https://bugs.webkit.org/show_bug.cgi?id=211721
Unreviewed Gardening.
This test is failing on our linux armv7 bots on a flaky basis and requires investigation.
* stress/array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js:
2020-05-08 Alexey Shvayka <shvaikalesh@gmail.com>
Array.prototype.concat fast path checks should not be observable
https://bugs.webkit.org/show_bug.cgi?id=211643
Reviewed by Ross Kirsling.
While test262 has complete coverage for @@isConcatSpreadable getters in prototype
chain, Proxy cases are covered by stress/array-concat-fast-spread-proxy.js and
stress/array-concat-spread-proxy.js.
* test262/expectations.yaml: Mark 2 test cases as passing.
2020-05-08 Pablo Saavedra <psaavedra@igalia.com>
Unreviewed, reverting r261010.
Test skipped for all ARM. no evidence of this affecting iOS
Reverted changeset:
"Skip on ARM and MIPS stress/array-buffer-view-watchpoint-can-
be-fired-in-really-add-in-dfg.js added after r260990"
https://bugs.webkit.org/show_bug.cgi?id=211304
https://trac.webkit.org/changeset/261010
2020-05-07 Mark Lam <mark.lam@apple.com>
Fix broken exceptionFuzz tests.
https://bugs.webkit.org/show_bug.cgi?id=211550
Reviewed by Yusuke Suzuki.
The tests should not be relying on setting a JSC Option at runtime because the
options are already frozen by then. Instead, we set the needed
--useExceptionFuzz=true option from the command line.
* exceptionFuzz/3d-cube.js:
* exceptionFuzz/date-format-xparb.js:
* exceptionFuzz/earley-boyer.js:
2020-05-06 Keith Miller <keith_miller@apple.com>
DFG ByVal nodes with ArrayModes should clobberTop until Fixup phase runs.
https://bugs.webkit.org/show_bug.cgi?id=211531
Reviewed by Yusuke Suzuki.
* stress/for-of-get-by-val-marks-clobbers-exit-state.js: Added.
(foo):
* stress/put-by-val-correctly-clobbers-exit-state-when-misprofiling-index.js: Added.
(let.foo.vm.createBuiltin):
2020-05-05 Ross Kirsling <ross.kirsling@sony.com>
[ECMA-402] Implement Intl.Locale
https://bugs.webkit.org/show_bug.cgi?id=209772
Reviewed by Darin Adler and Saam Barati.
* stress/intl-locale.js: Added.
* stress/intl-locale-as-intl-param.js: Added.
* test262/config.yaml:
Enable Intl.Locale feature with flag.
* test262/expectations.yaml:
Mark known failures.
None of these should be specific to Intl.Locale.
2020-05-05 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Implement BigInt.asIntN and BigInt.asUintN
https://bugs.webkit.org/show_bug.cgi?id=181144
Reviewed by Darin Adler.
* stress/bigint-asintn.js: Added.
(shouldBe):
(shouldThrow):
(BigInt.asIntN):
* stress/bigint-asuintn.js: Added.
(shouldBe):
(shouldThrow):
(BigInt.asUintN):
* test262/expectations.yaml:
2020-05-05 Ross Kirsling <ross.kirsling@sony.com>
[Intl] Alphabetize extension keys and correctly mark const methods
https://bugs.webkit.org/show_bug.cgi?id=211359
Reviewed by Darin Adler.
* stress/intl-collator.js:
* stress/intl-datetimeformat.js:
Add tests.
2020-05-05 Keith Miller <keith_miller@apple.com>
iterator_open should remap the symbolIterator argument correctly when inlined.
https://bugs.webkit.org/show_bug.cgi?id=211308
<rdar://problem/62287877>
Reviewed by Mark Lam.
* stress/inlining-for-of-should-validate.js: Added.
(bar):
(foo):
2020-05-05 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, reverting r261156.
Break ARM64_32 build due to existing bug
Reverted changeset:
"[JSC] Implement BigInt.asIntN and BigInt.asUintN"
https://bugs.webkit.org/show_bug.cgi?id=181144
https://trac.webkit.org/changeset/261156
2020-05-05 Alexey Shvayka <shvaikalesh@gmail.com>
Object.prototype.toString is not spec-perfect
https://bugs.webkit.org/show_bug.cgi?id=199138
Reviewed by Darin Adler and Keith Miller.
* ChakraCore.yaml: Skip a test as `global` now has @@toStringTag.
* ChakraCore/test/LetConst/delete.baseline: Removed.
* stress/internal-promise-constructor-not-confusing.js: Use @isPromise.
* stress/object-get-own-property-symbols.js: Adjust test as `global` now has @@toStringTag.
* test262/expectations.yaml: Mark 6 test cases as passing.
2020-05-04 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Implement BigInt.asIntN and BigInt.asUintN
https://bugs.webkit.org/show_bug.cgi?id=181144
Reviewed by Darin Adler.
* stress/bigint-asintn.js: Added.
(shouldBe):
(shouldThrow):
(BigInt.asIntN):
* stress/bigint-asuintn.js: Added.
(shouldBe):
(shouldThrow):
(BigInt.asUintN):
* test262/expectations.yaml:
2020-05-04 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] DFG NotCellUse is used without considering about BigInt32
https://bugs.webkit.org/show_bug.cgi?id=211395
Reviewed by Saam Barati.
* stress/non-cell-nor-bigint-should-be-emitted-for-to-number-target-if-bigint-appears.js: Added.
(shouldThrow):
(test):
(i.shouldThrow):
* stress/non-cell-nor-bigint-should-reject-bigint.js: Added.
(shouldBe):
(test):
* stress/should-not-emit-double-rep-for-bigint.js: Added.
(foo):
* stress/urshift-value-to-int32-should-reject-bigint.js: Added.
(shouldThrow):
(test):
(i.shouldThrow):
2020-05-01 Yusuke Suzuki <ysuzuki@apple.com>
Fix stress/big-int-negate-jit.js
https://bugs.webkit.org/show_bug.cgi?id=211321
Reviewed by Saam Barati.
This test is assuming that 100000 iteration of 2 negateBigInt calls makes negateBigInt DFG-compiled.
But this is wrong if BigInt negation is fast enough. We made BigInt faster and now this test starts
failing because running this iteration finishes earlier than DFG compilation finishes. We should use `useConcurrentJIT`
to ensure this status.
* stress/big-int-negate-jit.js:
2020-05-01 Yusuke Suzuki <ysuzuki@apple.com>
REGRESSION (r260990): 8 test262 unicode tests failing
https://bugs.webkit.org/show_bug.cgi?id=211298
Reviewed by Saam Barati.
These unicode identifier tests are marked as PASS in r260990, but they are failing.
Update test262/expectations.yaml by running `test262-runner --release --save`.
* test262/expectations.yaml:
2020-05-01 Pablo Saavedra <psaavedra@igalia.com>
Skip on ARM and MIPS stress/array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js added after r260990
https://bugs.webkit.org/show_bug.cgi?id=211304
Unreviewed Gardening.
* stress/array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js:
2020-05-01 Saam Barati <sbarati@apple.com>
We can't cast toLength result to unsigned
https://bugs.webkit.org/show_bug.cgi?id=211205
<rdar://problem/62625562>
Reviewed by Yusuke Suzuki.
* stress/array-length-cant-get-casted-to-unsigned.js: Added.
(assert):
(testArrayPop):
(testArrayPush):
(testArrayReverse):
(testArraySplice):
(testArrayUnshift):
(testArrayLastIndexOf):
(shouldThrowTypeError):
(testJSONStringify.get let):
(testJSONStringify):
* test262/expectations.yaml:
2020-04-30 Caio Lima <ticaiolima@gmail.com>
Investigate stress/v8-bitint32-inc.js failure on mips
https://bugs.webkit.org/show_bug.cgi?id=210907
Unreviewed test gardening.
* stress/v8-bigint32-inc.js:
2020-04-29 Alexey Shvayka <shvaikalesh@gmail.com>
AsyncFromSyncIterator methods should not pass absent values
https://bugs.webkit.org/show_bug.cgi?id=211147
Reviewed by Ross Kirsling.
* test262/expectations.yaml: Mark 4 test cases as passing.
2020-04-29 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] JSStringJoiner is missing BigInt handling
https://bugs.webkit.org/show_bug.cgi?id=211174
Reviewed by Mark Lam.
* stress/bigint-to-string-in-array.js: Added.
(shouldBe):
2020-04-28 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] BigInt constructor should accept larger integers than safe-integers
https://bugs.webkit.org/show_bug.cgi?id=210755
Reviewed by Darin Adler.
* stress/big-int-constructor.js:
* stress/large-number-to-bigint.js: Added.
(shouldBe):
(shouldThrow):
* test262/config.yaml:
2020-04-28 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] NumberConstructor should accept BigInt
https://bugs.webkit.org/show_bug.cgi?id=210835
Reviewed by Mark Lam.
* stress/number-constructor-bigint-dfg.js: Added.
(shouldBe):
(convert):
* stress/number-constructor-bigint.js: Added.
(shouldBe):
* test262/expectations.yaml:
2020-04-27 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Throw OutOfMemoryError instead of RangeError if BigInt is too big
https://bugs.webkit.org/show_bug.cgi?id=211111
Reviewed by Saam Barati.
* stress/big-int-constructor-oom.js:
(catch):
* stress/big-int-left-shift-range-error.js:
(assertThrowRangeError):
* stress/big-int-out-of-memory-tests.js:
(catch):
* stress/bigint-exponential-oom.js: Added.
(shouldThrow):
* stress/bigint-int32-min-shift.js:
(shouldThrow):
2020-04-27 Keith Miller <keith_miller@apple.com>
stress/generator-containing-for-of-on-map.js and stress/generator-containing-for-of-on-set.js timing out on debug JSC bot
https://bugs.webkit.org/show_bug.cgi?id=211095
Reviewed by Yusuke Suzuki.
Let's try making these tests shorter. Eager compilation should still be interesting with the shorter iterations.
* stress/generator-containing-for-of-on-map.js:
* stress/generator-containing-for-of-on-set.js:
2020-04-27 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] >>> should call ToNumeric
https://bugs.webkit.org/show_bug.cgi?id=211065
Reviewed by Ross Kirsling.
* stress/bigint-urshift.js: Added.
(shouldBe):
(shouldThrow):
* test262/expectations.yaml:
2020-04-27 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Add $vm.assertEnabled() to suppress Debug crash expected tests in release+assert build
https://bugs.webkit.org/show_bug.cgi?id=211089
Reviewed by Keith Miller.
We have ASSERT which only fires when DOM object is wrongly implemented to catch wrong ones.
We are using ASSERT in JSC side since we don't know all the DOM objects are correctly implemented.
If it is not correctly implemented, in Release build, JSC is returning sub-optimal but right results.
But in Debug build, we can catch the wrong ones, which allows us to fix the wrong things while avoiding
catastrophic crashes in release build.
However, the test is assuming that ASSERT is not enabled if it is not Debug build. Release & Debug builds
work, but Release+Assert does not meet this assumption.
So, skip this based on `$vm.assertEnabled()`.
* stress/incorrect-put-could-generate-invalid-ic-but-still-not-causing-bad-behavior.js:
(vm.assertEnabled.putter):
(vm.assertEnabled):
(putter): Deleted.
(not_string.toString): Deleted.
* stress/incorrect-put-could-generate-invalid-ic-involving-dictionary-flatten.js:
(vm.assertEnabled):
(not_string.toString): Deleted.
2020-04-26 Alexey Shvayka <shvaikalesh@gmail.com>
Symbol should have [[Construct]] internal method
https://bugs.webkit.org/show_bug.cgi?id=211050
Reviewed by Yusuke Suzuki.
* stress/is-constructor.js:
* test262/expectations.yaml: Mark 2 test cases as passing.
2020-04-26 Alexey Shvayka <shvaikalesh@gmail.com>
InternalFunction::createSubclassStructure should use newTarget's globalObject
https://bugs.webkit.org/show_bug.cgi?id=202599
Reviewed by Yusuke Suzuki.
* stress/promise-proto-from-ctor-realm.js: Added.
* test262/expectations.yaml: Mark 88 test cases as passing.
2020-04-26 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] ValueAdd, VaueSub, ValueMul, Inc, Dec should say SpecBigInt32 prediction based on ArithProfile
https://bugs.webkit.org/show_bug.cgi?id=211038
Reviewed by Filip Pizlo.
* stress/bigint32-add-overflow.js: Added.
(shouldBe):
(add):
(noInline):
* stress/bigint32-dec-overflow.js: Added.
(shouldBe):
(dec):
(noInline):
* stress/bigint32-inc-overflow.js: Added.
(shouldBe):
(inc):
(noInline):
* stress/bigint32-mul-overflow.js: Added.
(shouldBe):
(mul):
(noInline):
* stress/bigint32-sub-overflow.js: Added.
(shouldBe):
(sub):
(noInline):
2020-04-25 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Handle BigInt32 INT32_MIN shift amount
https://bugs.webkit.org/show_bug.cgi?id=211030
Reviewed by Darin Adler.
* stress/bigint-int32-min-shift.js: Added.
(shouldBe):
(shouldThrow):
2020-04-25 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Add fast path for BigInt32 left-shift
https://bugs.webkit.org/show_bug.cgi?id=211029
Reviewed by Saam Barati.
* stress/bigint-left-shift-overflow.js: Added.
(shouldBe):
(leftShift):
(noInline):
* stress/bigint-right-shift-large.js: Added.
(shouldBe):
2020-04-25 Paulo Matos <pmatos@igalia.com>
Skip stress/butterfly-zero-unused-butterfly-properties.js on MIPS
https://bugs.webkit.org/show_bug.cgi?id=211016
Unreviewed Gardening.
* stress/butterfly-zero-unused-butterfly-properties.js:
2020-04-25 Ross Kirsling <ross.kirsling@sony.com>
[Intl] Locale validation/canonicalization should defer to ICU
https://bugs.webkit.org/show_bug.cgi?id=210853
Reviewed by Darin Adler.
* stress/intl-collator.js:
* stress/intl-datetimeformat.js:
* stress/intl-numberformat.js:
* stress/intl-object.js:
* stress/intl-pluralrules.js:
* stress/intl-relativetimeformat.js:
Adjust tests, since one of the two fixes in r260151 no longer applies
(and certain sensitivities apply to older ICU versions).
* test262/expectations.yaml:
Mark eight new passes, two new fails, and six changed failures.
It is an unfortunate and baffling truth that the Intl tests of test262 are often not spec tests at all,
but effectively ICU/CLDR regression tests. These are not carrots worth chasing.
2020-04-24 Alexey Shvayka <shvaikalesh@gmail.com>
Fix WASM Error classes and re-sync wpt/wasm/jsapi from upstream
https://bugs.webkit.org/show_bug.cgi?id=210980
Reviewed by Keith Miller.
* wasm/modules/js-wasm-cycle.js:
* wasm/modules/wasm-wasm-cycle.js:
* wasm/stress/too-many-locals.js:
2020-04-24 Saam Barati <sbarati@apple.com>
Return BigInt32 whenever we can
https://bugs.webkit.org/show_bug.cgi?id=210922
Reviewed by Yusuke Suzuki.
* microbenchmarks/sunspider-sha1-big-int.js: Added.
(hex_sha1):
(b64_sha1):
(str_sha1):
(hex_hmac_sha1):
(b64_hmac_sha1):
(str_hmac_sha1):
(bigIntToInt32):
(sha1_vm_test):
(core_sha1):
(sha1_ft):
(sha1_kt):
(core_hmac_sha1):
(safe_add):
(rol):
(str2binb):
(binb2hex):
(binb2b64):
(run):
2020-04-24 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] DFG compare should speculate BigInt well
https://bugs.webkit.org/show_bug.cgi?id=210892
Reviewed by Saam Barati.
* stress/compare-bigint-with-number.js: Added.
(shouldBe):
(result):
(lessThan):
(lessThanEqual):
(greaterThan):
(greaterThanEqual):
(equal):
* stress/compare-bigint-with-string.js: Added.
(shouldBe):
(result):
(lessThan):
(lessThanEqual):
(greaterThan):
(greaterThanEqual):
(equal):
* stress/compare-bigint.js: Added.
(shouldBe):
(result):
(lessThan):
(lessThanEqual):
(greaterThan):
(greaterThanEqual):
(equal):
* stress/compare-bigint32.js: Added.
(shouldBe):
(result):
(lessThan):
(lessThanEqual):
(greaterThan):
(greaterThanEqual):
(equal):
* stress/compare-heap-bigint.js: Added.
(shouldBe):
(result):
(lessThan):
(lessThanEqual):
(greaterThan):
(greaterThanEqual):
(equal):
* stress/dfg-ai-fold-bigint.js: Added.
(shouldBe):
(allAreTrue):
(allAreFalse):
(lessThan):
(lessThanFalse):
(lessThanEqual):
(lessThanEqualFalse):
(greaterThan):
(greaterThanFalse):
(greaterThanEqual):
(greaterThanEqualFalse):
(equal):
(equalFalse):
2020-04-24 Alexey Shvayka <shvaikalesh@gmail.com>
Proxy.revocable should not have [[Construct]] slot
https://bugs.webkit.org/show_bug.cgi?id=210959
Reviewed by Darin Adler.
* stress/proxy-revoke.js:
* test262/expectations.yaml: Mark 2 test cases as passing.
2020-04-24 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] DFG AI for some bitops + BigInt32 should be precise
https://bugs.webkit.org/show_bug.cgi?id=210956
Reviewed by Keith Miller.
* stress/bigint-bitops.js: Added.
(shouldBe):
(test):
2020-04-24 Paulo Matos <pmatos@igalia.com>
Skip on ARM and MIPS stress/for-of-iterator-open* added at r260585
https://bugs.webkit.org/show_bug.cgi?id=210961
Unreviewed Gardening.
* stress/for-of-iterator-open-osr-at-inlined-return-non-object.js:
* stress/for-of-iterator-open-osr-at-iterator-set-local.js:
* stress/for-of-iterator-open-return-non-object.js:
2020-04-23 Alexey Shvayka <shvaikalesh@gmail.com>
Remove revoked Proxy checks from ProxyCreate
https://bugs.webkit.org/show_bug.cgi?id=210862
Reviewed by Ross Kirsling.
Removes expectations for 2 invalid ChakraCore tests.
* ChakraCore.yaml: Mark 2 test cases as passing.
* ChakraCore/test/es6/arraywithproxy.baseline: Removed.
* ChakraCore/test/es6/proxytest9.baseline: Removed.
* stress/proxy-revoke.js: Adjust test.
* test262/expectations.yaml: Mark 12 test cases as passing.
2020-04-23 Ross Kirsling <ross.kirsling@sony.com>
Unreviewed test262 gardening following r260591.
* test262/expectations.yaml:
Fix expectations to reflect ICU 64.
2020-04-23 Alexey Shvayka <shvaikalesh@gmail.com>
Update test262 to commit 31dabb5618e2
https://bugs.webkit.org/show_bug.cgi?id=210921
Reviewed by Ross Kirsling.
* test262/config.yaml: Skip "Atomics.waitAsync" feature.
* test262/expectations.yaml:
* test262/harness/*: Updated.
* test262/latest-changes-summary.txt:
* test262/test/*: Updated.
* test262/test262-Revision.txt:
2020-04-23 Yusuke Suzuki <ysuzuki@apple.com>
Reduce iteration count and change how it invokes GC to reduce execution time of JSTests/stress/delete-property-dfg-inline.js
https://bugs.webkit.org/show_bug.cgi?id=210933
Reviewed by Keith Miller.
This test takes 7~ seconds in Release build with default run. And it takes 1 mins in several variants of JSC tests, which is too long.
By analyzing this, we found that this takes very long time,
1. due to so frequent synchronous GC run
2. due to large iteration count while function can get FTL with less counts
While ensuring all functions gets FTL, we reduce iteration count and GC invocations to reduce the execution time, the default run gets 200ms.
* stress/delete-property-dfg-inline.js:
(noInline.blackbox.testSingleStructure):
(noInline.testSingleStructure.testInlineSingleStructure):
(noInline.testInlineSingleStructure.testExit):
(noInline.testExit.testSingleStructureMiss):
(noInline.testSingleStructureMiss.testSingleStructureMissStrict):
(noInline.testSingleStructureMissStrict.testSingleStructureMissNonConfigurable):
(noInline.testSingleStructureMissNonConfigurable.testSingleStructureEmpty):
(noInline.testSingleStructureEmpty.testPolymorphic):
(noInline.testPolymorphic.testPolyvariant):
(noInline.testPolyvariant.testConstantFolding):
(noInline.testConstantFolding.testObjectSinking):
(noInline.testObjectSinking.testProxy):
(noInline.testProxy.testTypedArray):
(noInline.testTypedArray.testMissMixed):
(noInline.testMissMixed.testMissNonMixed):
(noInline.testMissNonMixed.testByVal.noInline.test):
(noInline.testMissNonMixed.testByVal):
(noInline.assert.assert_throws): Deleted.
2020-04-22 Keith Miller <keith_miller@apple.com>
Fix OSR exiting/iterator object checks in for-of bytecodes
https://bugs.webkit.org/show_bug.cgi?id=210882
Reviewed by Saam Barati.
* stress/for-of-iterator-next-osr-at-inlined-return-non-object.js: Added.
(vendNext):
(test):
(catch):
* stress/for-of-iterator-next-osr-at-next-set-local.js: Added.
(vendNext):
(test):
(catch):
* stress/for-of-iterator-open-osr-at-inlined-return-non-object.js: Added.
(vendIterator):
(test):
(catch):
* stress/for-of-iterator-open-osr-at-iterator-set-local.js: Added.
(vendIterator):
(test):
(catch):
* stress/for-of-iterator-open-return-non-object.js: Added.
(vendIterator):
(test):
(i.catch):
* stress/test-for-of-cfg-simplication-exit-ok.js: Added.
(z.__proto__):
2020-04-23 Paulo Matos <pmatos@igalia.com>
Skip stress/v8-bitint32-inc.js on mips
https://bugs.webkit.org/show_bug.cgi?id=210906
Unreviewed Gardening.
* stress/v8-bigint32-inc.js:
2020-04-22 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] branchIfBigInt32 can use BigInt32Mask and remove branchIfNumber filter
https://bugs.webkit.org/show_bug.cgi?id=210870
Reviewed by Saam Barati.
* stress/anybigintuse-should-filter-number-correctly.js: Added.
(shouldBe):
(test):
2020-04-22 Saam Barati <sbarati@apple.com>
BigInt32 parsing should be precise
https://bugs.webkit.org/show_bug.cgi?id=210869
Reviewed by Robin Morisset.
* stress/big-int-32-parsing-should-be-precise.js: Added.
2020-04-22 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] JSBigInt inc operation does not produce right HeapBigInt zero
https://bugs.webkit.org/show_bug.cgi?id=210860
Reviewed by Mark Lam.
* stress/bigint-zero-canonicalized.js: Added.
(shouldBe):
2020-04-22 Saam Barati <sbarati@apple.com>
ValueBitNot is wrong in FTL with AnyBigIntUse
https://bugs.webkit.org/show_bug.cgi?id=210846
Reviewed by Yusuke Suzuki.
* stress/big-int-value-bit-not-spec-any-big-int.js: Added.
(assert):
(foo):
2020-04-22 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] AI results of BigInt32 Bitwise shift operation does not match to runtime results
https://bugs.webkit.org/show_bug.cgi?id=210839
Reviewed by Saam Barati.
* stress/v8-bigint32-add.js: Added.
(main):
* stress/v8-bigint32-and.js: Added.
(main):
* stress/v8-bigint32-dec.js: Added.
(main):
* stress/v8-bigint32-div.js: Added.
(main):
* stress/v8-bigint32-inc.js: Added.
(main):
* stress/v8-bigint32-mod.js: Added.
(main):
* stress/v8-bigint32-mul.js: Added.
(main):
* stress/v8-bigint32-neg.js: Added.
(main):
* stress/v8-bigint32-not.js: Added.
(main):
* stress/v8-bigint32-or.js: Added.
(main):
* stress/v8-bigint32-sar.js: Added.
(main):
* stress/v8-bigint32-shl.js: Added.
(main):
* stress/v8-bigint32-sub.js: Added.
(main):
* stress/v8-bigint32-xor.js: Added.
(main):
2020-04-21 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] SpeculativeJIT::nonSpeculativeNonPeepholeStrictEq should expect AnyBigIntUse
https://bugs.webkit.org/show_bug.cgi?id=210832
Reviewed by Mark Lam.
* stress/heap-and-32-bigint-eq.js: Added.
(shouldBe):
* stress/heap-and-32-bigint-stricteq.js: Added.
(shouldBe):
2020-04-21 Alexey Shvayka <shvaikalesh@gmail.com>
constructObjectFromPropertyDescriptor() is incorrect with partial descriptors
https://bugs.webkit.org/show_bug.cgi?id=184629
Reviewed by Ross Kirsling.
* test262/expectations.yaml: Mark 4 test cases as passing.
2020-04-21 Yusuke Suzuki <ysuzuki@apple.com>
Move value-pow-ai-rule-should-box-the-same-way-as-the-runtime.js to JSTests/stress/
https://bugs.webkit.org/show_bug.cgi?id=210805
Reviewed by Saam Barati.
r251408 accidentally puts value-pow-ai-rule-should-box-the-same-way-as-the-runtime.js in JSTests/ instead of JSTests/stress/.
This patch fixes that.
* stress/value-pow-ai-rule-should-box-the-same-way-as-the-runtime.js: Renamed from JSTests/value-pow-ai-rule-should-box-the-same-way-as-the-runtime.js.
2020-04-21 Paulo Matos <pmatos@igalia.com>
[ARMv7][EWS] stress/check-stack-overflow-before-value-profiling-arguments.js is failing
https://bugs.webkit.org/show_bug.cgi?id=210720
Unreviewed gardening.
Skip test on arm since it is failing on EWS, causing significant delays.
* stress/check-stack-overflow-before-value-profiling-arguments.js:
2020-04-21 Paulo Matos <pmatos@igalia.com>
Re-enable previously skipped mips tests
https://bugs.webkit.org/show_bug.cgi?id=209964
Reviewed by Mark Lam.
Followup to r259454 - where we re-enabled a few stress tests for arm.
* stress/JSArrayBufferView-byteOffset-is-racy-from-compiler-thread.js:
* stress/dont-range-based-iterate-vector-that-is-mutated.js:
* stress/ensure-code-block-is-not-precise-allocation.js:
* stress/generator-cell-with-type.js:
* stress/racy-slow-put-cloned-arguments-when-having-a-bad-time.js:
* stress/symbol-is-destructed-before-refing-underlying-symbol-impl.js:
* stress/toctou-having-a-bad-time-new-array.js:
2020-04-20 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Import V8 BigInt tests generated by bigint-tester.py
https://bugs.webkit.org/show_bug.cgi?id=210783
Reviewed by Ross Kirsling.
This patch adds BigInt tests generated by V8 bigint-tester.py, which is modified for JSC use.
* stress/v8-bigint-add.js: Added.
* stress/v8-bigint-and.js: Added.
* stress/v8-bigint-dec.js: Added.
* stress/v8-bigint-div.js: Added.
* stress/v8-bigint-inc.js: Added.
* stress/v8-bigint-mod.js: Added.
* stress/v8-bigint-mul.js: Added.
* stress/v8-bigint-neg.js: Added.
* stress/v8-bigint-not.js: Added.
* stress/v8-bigint-or.js: Added.
* stress/v8-bigint-sar.js: Added.
* stress/v8-bigint-shl.js: Added.
* stress/v8-bigint-sub.js: Added.
* stress/v8-bigint-xor.js: Added.
2020-04-20 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Skip test262 for non-safe-integer range BigIntConstructor
https://bugs.webkit.org/show_bug.cgi?id=210749
Reviewed by Keith Miller.
We skip test262 test/built-ins/BigInt/constructor-integer.js for now. As it is shown in old test262 JSTests/test262/expectations.yaml,
this test was failing before BigInt flag is enabled. And new BigInt patch changes error message while we are failing in the same way.
While we implemented BigInt, this test is based on spec change introduced[1], and we are not implementing this. So we mark it skipped,
as it is skipped before BigInt is enabled.
[1]: https://github.com/tc39/proposal-bigint/pull/138
* test262/config.yaml:
2020-04-20 Keith Miller <keith_miller@apple.com>
Unreviewed, revert accidental test changes.
* microbenchmarks/for-of-iterate-array-entries.js:
(foo):
2020-04-20 Paulo Matos <pmatos@igalia.com>
[32-bits] stress/for-of-array-different-globals.js is failing
https://bugs.webkit.org/show_bug.cgi?id=210718
Unreviewed gardening.
Skip test for arm and mips, failing due to r260323
* stress/for-of-array-different-globals.js:
2020-04-19 Ross Kirsling <ross.kirsling@sony.com>
[ECMA-402] Intl.RelativeTimeFormat missing in WebKit
https://bugs.webkit.org/show_bug.cgi?id=209770
Reviewed by Darin Adler.
* stress/intl-relativetimeformat.js: Added.
* test262/config.yaml:
Enable Intl.RelativeTimeFormat feature with flag.
* test262/expectations.yaml:
Mark known failures.
Test for locale validation is not specific to RelativeTimeFormat and should be investigated separately.
Tests for Polish appear to be wrong and should be corrected in test262.
2020-04-18 Keith Miller <keith_miller@apple.com>
Unreviewed, mark test passing.
* test262/expectations.yaml:
2020-04-18 Robin Morisset <rmorisset@apple.com>
Support an inlined representation in JSValue of small BigInts ("BigInt32")
https://bugs.webkit.org/show_bug.cgi?id=206182
Reviewed by Yusuke Suzuki.
I improved several of the tests to give more informative error messages in the process of fixing them.
More interestingly I had to modify "missing-exception-check-in-string-compare" because it relied on "s1 == s1" resolving ropes, and we now just return true.
* stress/big-int-division.js:
(testDiv):
* stress/big-int-left-shift-wrapped-value.js:
(assert.sameValue):
* stress/big-int-logical-not.js:
(assert):
* stress/big-int-mod-jit.js:
* stress/big-int-right-shift-general.js:
(testRightShift):
* stress/big-int-type-of-proven-type.js:
(assert):
* stress/compare-strict-eq-on-various-types.js:
(testAllTypesCall):
* stress/ftl-string-strict-equality.js:
* stress/missing-exception-check-in-string-compare.js:
2020-04-18 Keith Miller <keith_miller@apple.com>
Redesign how we do for-of iteration for JSArrays
https://bugs.webkit.org/show_bug.cgi?id=175454
Reviewed by Filip Pizlo.
* microbenchmarks/for-of-iterate-array-entries.js:
(foo):
* stress/custom-iterators.js:
(catch):
(iter.return):
(iteratorInterfaceErrorTest):
(iteratorInterfaceErrorTestReturn):
(iteratorInterfaceBreakTestReturn):
* stress/for-of-array-different-globals.js: Added.
(foo):
(array.Symbol.iterator.__proto__.next):
* stress/for-of-array-mixed-values.js: Added.
(test):
* stress/for-of-no-direct-loop-back-edge-osr.js: Added.
(osrIfFinalTier):
(test):
* stress/generator-containing-for-of-on-map.js: Added.
(find):
(i.let.v.of.find):
* stress/generator-containing-for-of-on-set.js: Added.
(find):
(set add):
* stress/osr-from-for-of-done-getter.js: Added.
(i.let.iterable.next.return.get done):
(i.let.iterable.next):
(i.let.iterable.Symbol.iterator):
(i.let.iterable.return):
* stress/osr-from-for-of-value-getter.js: Added.
(i.let.iterable.next.return.get value):
(i.let.iterable.next):
(i.let.iterable.Symbol.iterator):
(i.let.iterable.return):
* stress/throw-for-of-next-returns-non-object.js: Added.
(i.let.iterable.next):
(i.let.iterable.Symbol.iterator):
(i.let.iterable.return):
(i.catch):
* stress/throw-from-done-getter-in-for-of-header.js: Added.
(i.let.iterable.next):
(i.let.iterable.get done):
(i.let.iterable.Symbol.iterator):
(i.let.iterable.return):
(i.catch):
* stress/throw-from-next-in-for-of-header.js: Added.
(i.let.iterable.next):
(i.let.iterable.Symbol.iterator):
(i.let.iterable.return):
(i.catch):
* stress/throw-from-value-getter-in-for-of-header.js: Added.
(i.let.iterable.next):
(i.let.iterable.get value):
(i.let.iterable.Symbol.iterator):
(i.let.iterable.return):
(i.catch):
* stress/webidl-tokenizer-for-of.js: Added.
(tokenise.attemptTokenMatch):
(tokenise):
(Tokeniser):
(Tokeniser.prototype.probe):
(Tokeniser.prototype.consume):
(Tokeniser.prototype.unconsume):
2020-04-18 Alexey Shvayka <shvaikalesh@gmail.com>
RegExp.prototype[@@search] should use SameValue
https://bugs.webkit.org/show_bug.cgi?id=173226
Reviewed by Yusuke Suzuki.
* stress/same-value-intrinsic.js: Added.
* test262/expectations.yaml: Mark 4 test cases as passing.
2020-04-17 Saam Barati <sbarati@apple.com>
GetTypedArrayByteOffset is broken on arm64e
https://bugs.webkit.org/show_bug.cgi?id=210631
Reviewed by Mark Lam.
* stress/byte-offset-on-wasteful-neutered-arm64e.js: Added.
(foo):
(assert):
(transferArrayBuffer.array.buffer):
2020-04-17 Devin Rousso <drousso@apple.com>
Rename NullishEq / NULLISHEQUAL to CoalesceEq / COALESCEEQUAL to match the spec
https://bugs.webkit.org/show_bug.cgi?id=210663
Reviewed by Ross Kirsling.
* stress/logical-assignment-operator-coalesce.js: Renamed from stress/logical-assignment-operator-nullish.js.
2020-04-17 Devin Rousso <drousso@apple.com>
Implement Promise.any and AggregateError
https://bugs.webkit.org/show_bug.cgi?id=202566
Reviewed by Yusuke Suzuki.
* test262/config.yaml:
* test262/expectations.yaml:
2020-04-17 Paulo Matos <pmatos@igalia.com>
Reduce test iterations for stress/array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js on mips
https://bugs.webkit.org/show_bug.cgi?id=210641
Reviewed by Yusuke Suzuki.
Reduce test iteration count on mips for which the current value is too high.
* stress/array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js:
2020-04-17 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Map/Set iterator creation functions should fail with BadType etc. before executing insertChecks
https://bugs.webkit.org/show_bug.cgi?id=210649
<rdar://problem/61925452>
Reviewed by Mark Lam.
* stress/map-iterator-check-before-fail.js: Added.
(test):
* stress/set-iterator-check-before-fail.js: Added.
(set new):
(set var):
2020-04-16 Ross Kirsling <ross.kirsling@sony.com>
REGRESSION(r259480): Two new failing i18n tests
https://bugs.webkit.org/show_bug.cgi?id=210605
Reviewed by Darin Adler.
* stress/date-toLocaleString.js:
Tests shouldn't rely on system default time zone.
2020-04-16 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, reduce # of iteration since this test is timed out in slow devices
https://bugs.webkit.org/show_bug.cgi?id=210023
* stress/map-iteration-oas.js:
2020-04-16 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Implement JSMapIterator/JSSetIterator with JSInternalFieldObjectImpl
https://bugs.webkit.org/show_bug.cgi?id=210023
Reviewed by Keith Miller.
* stress/map-iteration-oas.js: Added.
(shouldBe):
(test):
* stress/map-iterator-creation-fail-dfg.js: Added.
(shouldThrow):
(test2):
(test3):
* stress/map-iterator-creation-fail.js: Added.
(shouldThrow):
(i.shouldThrow):
(test2):
(test3):
* stress/set-iteration-oas.js: Added.
(shouldBe):
* stress/set-iterator-creation-fail-dfg.js: Added.
(shouldThrow):
(set shouldThrow):
* stress/set-iterator-creation-fail.js: Added.
(shouldThrow):
(i.shouldThrow):
(test2):
(test3):
2020-04-15 Ross Kirsling <ross.kirsling@sony.com>
[ECMA-402] Extension values should default to true, canonicalize without "-true"
https://bugs.webkit.org/show_bug.cgi?id=210457
Reviewed by Yusuke Suzuki.
* stress/intl-collator.js:
* stress/intl-datetimeformat.js:
* stress/intl-numberformat.js:
* stress/intl-object.js:
* stress/intl-pluralrules.js:
Fix tests.
* test262/expectations.yaml:
Mark two test cases as passing.
2020-04-15 Justin Michaud <justin@justinmichaud.com>
stress/delete-property-dfg-inline.js.ftl-no-cjit-small-pool consistently timing out on debug JSC bot
https://bugs.webkit.org/show_bug.cgi?id=210513
Reviewed by Saam Barati.
* stress/delete-property-dfg-inline.js:
2020-04-15 Ross Kirsling <ross.kirsling@sony.com>
[ECMA-402] Fix Intl.DateTimeFormat patterns and fields in WebKit
https://bugs.webkit.org/show_bug.cgi?id=209783
Reviewed by Keith Miller.
* stress/date-toLocaleString.js:
* stress/intl-datetimeformat.js:
Add tests and fix some existing ones.
* test262/config.yaml:
* test262/expectations.yaml:
Mark eight test cases passing...but skip half of them due to outdated CLDR data in macOS system ICU.
2020-04-15 Devin Rousso <drousso@apple.com>
[ESNext] Implement logical assignment operators
https://bugs.webkit.org/show_bug.cgi?id=209716
Reviewed by Ross Kirsling.
* stress/logical-assignment-operator-and.js: Added.
* stress/logical-assignment-operator-nullish.js: Added.
* stress/logical-assignment-operator-or.js: Added.
* test262/config.yaml:
* test262/expectations.yaml:
Right now, test262 expects an early error to be thrown if the lhs is not simple, which does
not match what we do with other read-modify assignment operators. This is likely to change
in the future to match existing behavior (throw a `ReferenceError`) [1].
[1]: <https://github.com/tc39/ecma262/issues/257#issuecomment-502878708>
2020-04-14 Saam Barati <sbarati@apple.com>
Skip all low executable memory wasm tests on arm64
https://bugs.webkit.org/show_bug.cgi?id=210522
Reviewed by Tadeu Zagallo.
In my original JIT islands patch, I only skipped one of the "low executable
memory" tests. But the others are also causing problems on the iOS JSC test
runners, so let's just skip them all.
* wasm/lowExecutableMemory/exports-oom.js:
* wasm/lowExecutableMemory/imports-oom.js:
2020-04-14 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, reduce iteration count and introduce early return to make typed-array-subarray-can-throw-oom-error.js execution time short while throwing an error
https://bugs.webkit.org/show_bug.cgi?id=210507
* stress/typed-array-subarray-can-throw-oom-error.js:
(canThrow):
(bar):
(get bar):
2020-04-13 Michael Saboff <msaboff@apple.com>
[YARR] Allow for Unicode named capture group identifiers in non-Unicode regular expressions
https://bugs.webkit.org/show_bug.cgi?id=210309
Reviewed by Ross Kirsling.
* stress/regexp-named-capture-groups.js: New test added.
(shouldBe):
(shouldThrowInvalidGroupSpecifierName):
* test262/expectations.yaml: Updated for now failing tests.
When test262 gets updated for this change, this can be reverted.
2020-04-12 Ross Kirsling <ross.kirsling@sony.com>
[ECMA-402] WebKit Intl does not allow calendar and numberingSystem options
https://bugs.webkit.org/show_bug.cgi?id=209784
Reviewed by Myles C. Maxfield.
* stress/intl-datetimeformat.js:
Fix two test cases for old behavior.
* test262/expectations.yaml:
Mark 16 test cases as passing.
2020-04-10 Ross Kirsling <ross.kirsling@sony.com>
[ECMA-402] Properly implement BigInt.prototype.toLocaleString
https://bugs.webkit.org/show_bug.cgi?id=209782
Reviewed by Darin Adler.
* stress/bigint-toLocaleString.js: Added.
* stress/intl-numberformat.js: Add test cases.
* test262/expectations.yaml: Mark 10 test cases as passing.
2020-04-10 Ross Kirsling <ross.kirsling@sony.com>
Unreviewed gardening for JSTests/stress. Remove skips that were forgotten in r259658.
* stress/array-toLocaleString.js:
* stress/date-toLocaleString.js:
* stress/number-toLocaleString.js:
* stress/string-localeCompare.js:
* stress/string-toLocaleLowerCase.js:
* stress/string-toLocaleUpperCase.js:
2020-04-10 Devin Rousso <drousso@apple.com>
The rhs in `ReadModifyResolveNode` should be evaluated before throwing an exception if the lhs is read-only
https://bugs.webkit.org/show_bug.cgi?id=210317
Reviewed by Ross Kirsling.
* stress/const-read-modify-assignment-eval-rhs-before-exception.js: Added.
2020-04-09 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] ModuleEnvironment do not have JSGlobalLexicalEnvironment as its upper scope
https://bugs.webkit.org/show_bug.cgi?id=193347
Reviewed by Tadeu Zagallo.
* stress/global-lexical-environment-access-from-module.js: Added.
(shouldBe):
(import.string_appeared_here.then):
* stress/resources/global-lexical-environment-access-from-module-child.js: Added.
(export.read):
(export.write):
2020-04-09 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, skip JSTests/stress/intl-canonicalize-locale-list-error-oom.js if memoryLimited
<rdar://problem/61533598>
* stress/intl-canonicalize-locale-list-error-oom.js:
2020-04-09 Alexey Shvayka <shvaikalesh@gmail.com>
ProxyObject::defineOwnProperty() should conditionally throw on falsy trap result
https://bugs.webkit.org/show_bug.cgi?id=210267
Reviewed by Ross Kirsling.
* test262/expectations.yaml: Mark 2 test cases as passing.
2020-04-09 Saam Barati <sbarati@apple.com>
We can still cache delete in strict mode as long as the property is not "non-configurable"
https://bugs.webkit.org/show_bug.cgi?id=210148
Reviewed by Tadeu Zagallo.
* microbenchmarks/delete-cache-strict-mode.js: Added.
(assert):
(doDel):
(doDelByVal):
2020-04-09 Alexey Shvayka <shvaikalesh@gmail.com>
getOwnPropertyDescriptor() is incorrect with Proxy of exotic object
https://bugs.webkit.org/show_bug.cgi?id=200560
Reviewed by Yusuke Suzuki.
* test262/expectations.yaml: Mark 14 test cases as passing.
2020-04-08 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] MultiDeleteByOffset should tell correct result AbstractValue in AI
https://bugs.webkit.org/show_bug.cgi?id=210175
<rdar://problem/61433817>
Reviewed by Saam Barati.
* stress/multi-delete-by-offset-ai-result.js: Added.
(foo):
2020-04-07 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Collect-continuously thread should take m_collectContinuouslyLock while it is waking up concurrent collector thread
https://bugs.webkit.org/show_bug.cgi?id=210163
Reviewed by Saam Barati.
* stress/collect-continuously-should-not-wake-concurrent-collector-after-prevent-collection-is-called.js: Added.
(let.theCode):
2020-04-07 Saam Barati <sbarati@apple.com>
Delete ICs can't cache dictionaries
https://bugs.webkit.org/show_bug.cgi?id=210147
<rdar://problem/61382405>
Reviewed by Tadeu Zagallo.
* stress/dont-cache-delete-ic-on-dictionary-2.js: Added.
(assert):
(makeDictionary):
(foo):
* stress/dont-cache-delete-ic-on-dictionary.js: Added.
(assert):
(foo):
2020-04-07 Tadeu Zagallo <tzagallo@apple.com>
Not using strict mode within ClassDeclaration statement
https://bugs.webkit.org/show_bug.cgi?id=205578
<rdar://problem/58194589>
Reviewed by Yusuke Suzuki.
* stress/inline-strict-delete.js: Added.
(assert):
(bar):
(foo):
* stress/superclass-expression-strictness.js: Added.
(f.try.c):
(f):
2020-04-07 Alexey Shvayka <shvaikalesh@gmail.com>
test262/Runner.pm ignores "async" flag
https://bugs.webkit.org/show_bug.cgi?id=210127
Reviewed by Ross Kirsling.
* test262/expectations.yaml: Mark 56 test cases as failing.
2020-04-07 Ross Kirsling <ross.kirsling@sony.com>
Update JSTests to assume ICU 60+
https://bugs.webkit.org/show_bug.cgi?id=210085
Reviewed by Yusuke Suzuki.
* stress/intl-collator.js:
* stress/intl-constructors-with-proxy.js:
* stress/intl-datetimeformat.js:
* stress/intl-default-locale.js:
* stress/intl-numberformat-format-to-parts.js:
* stress/intl-numberformat.js: Ensure a test case doesn't depend on behavior changed in ICU 64.
* stress/intl-object.js:
* stress/intl-pluralrules.js: Correct two invalid test cases.
* test262/config.yaml:
Remove skips.
2020-04-07 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] ScopedArgumentsTable should handle OOM in tolerant manner
https://bugs.webkit.org/show_bug.cgi?id=210126
Reviewed by Mark Lam.
* stress/scoped-arguments-table-should-be-tolerant-for-oom.js: Added.
(canThrow):
(bar):
(get bar):
(foo):
(i.canThrow):
2020-04-07 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Inlined IC should get right JSGlobalObject
https://bugs.webkit.org/show_bug.cgi?id=210092
Reviewed by Tadeu Zagallo.
* stress/getter-setter-globalobject-in-ic.js: Added.
(shouldBe):
(valueFunc):
(accessorFunc):
(valueTest):
(accessorTest):
2020-04-07 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] $.evalScript should check exception when accessing "global"
https://bugs.webkit.org/show_bug.cgi?id=210114
<rdar://problem/61388482>
Reviewed by Keith Miller.
* stress/eval-script-global-access-exception-check.js: Added.
(shouldThrow):
2020-04-06 Rick Waldron <waldron.rick@gmail.com> and Alexey Shvayka <shvaikalesh@gmail.com>
Remove unnecessary Test262 harness file and implement $262.IsHTMLDDA
https://bugs.webkit.org/show_bug.cgi?id=187526
Reviewed by Darin Adler.
* stress/optional-chaining.js: Adjust test for callable masquerader.
2020-04-06 Justin Michaud <justin_michaud@apple.com>
Allow deleteById to be cached in the DFG
https://bugs.webkit.org/show_bug.cgi?id=208664
Reviewed by Saam Barati.
* microbenchmarks/delete-property-allocation-sinking.js: Added.
(assert):
(noInline.assert.blackbox):
(noInline.blackbox.doAlloc1):
(noInline.doAlloc1):
* microbenchmarks/polyvariant-delete-property.js: Added.
(assert):
(blackbox):
(noInline.blackbox.polyvariant):
(doAlloc1):
(noInline.doAlloc1.doAlloc2):
(noInline.doAlloc2):
* stress/delete-property-dfg-inline.js: Added.
(assert):
(noInline.assert.assert_throws):
(noInline.assert_throws.blackbox):
(noInline.blackbox.testSingleStructure.doAlloc1):
(noInline.blackbox.testSingleStructure):
(noInline.testSingleStructure.testInlineSingleStructure.doDelete2):
(noInline.testSingleStructure.testInlineSingleStructure.doAlloc2):
(noInline.testSingleStructure.testInlineSingleStructure):
(noInline.testInlineSingleStructure.testExit.doDelete3):
(noInline.testInlineSingleStructure.testExit):
(noInline.testExit.testSingleStructureMiss.doAlloc4):
(noInline.testExit.testSingleStructureMiss):
(noInline.testSingleStructureMiss.testSingleStructureMissStrict.string_appeared_here.doAlloc5):
(noInline.testSingleStructureMiss.testSingleStructureMissStrict):
(noInline.testSingleStructureMissStrict.testSingleStructureMissNonConfigurable.doAlloc6):
(noInline.testSingleStructureMissStrict.testSingleStructureMissNonConfigurable):
(noInline.testSingleStructureMissNonConfigurable.testSingleStructureEmpty.doAlloc7):
(noInline.testSingleStructureMissNonConfigurable.testSingleStructureEmpty):
(noInline.testSingleStructureEmpty.testPolymorphic.doDelete8):
(noInline.testSingleStructureEmpty.testPolymorphic):
(noInline.testPolymorphic.testPolyvariant.doDelete9):
(noInline.testPolymorphic.testPolyvariant.polyvariant):
(noInline.testPolymorphic.testPolyvariant):
(noInline.testPolyvariant.testConstantFolding.doDelete10):
(noInline.testPolyvariant.testConstantFolding):
(noInline.testConstantFolding.testObjectSinking.doAlloc11):
(noInline.testConstantFolding.testObjectSinking):
(noInline.testObjectSinking.testProxy.doAlloc12):
(noInline.testObjectSinking.testProxy.noInline.doDelete12):
(noInline.testObjectSinking.testProxy):
(noInline.testProxy.testTypedArray.doDelete12):
(noInline.testProxy.testTypedArray):
(noInline.testTypedArray.testMissMixed.doDelete13):
(noInline.testTypedArray.testMissMixed):
(noInline.testMissMixed.testMissNonMixed.doDelete14):
(noInline.testMissMixed.testMissNonMixed):
(noInline.testMissNonMixed.testByVal.doDelete15):
(noInline.testMissNonMixed.testByVal):
2020-04-06 Saam Barati <sbarati@apple.com>
Implement 1GB of executable memory on arm64
https://bugs.webkit.org/show_bug.cgi?id=208490
<rdar://problem/60797127>
Reviewed by Keith Miller.
Run JetStream2 wasm tests.
* wasm.yaml:
* wasm/lowExecutableMemory/executable-memory-oom.js:
2020-04-06 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Since ArrayBufferViewWatchpointAdaptor::add can fire watchpoints, DFG::Plan should check validity of CodeBlock after executing reallyAdd
https://bugs.webkit.org/show_bug.cgi?id=210055
<rdar://problem/61331962>
Reviewed by Keith Miller.
* stress/array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js: Added.
(xxx.foo):
2020-04-05 Ross Kirsling <ross.kirsling@sony.com>
JSC shell shouldn't treat NUL as a terminator when printing a JS string
https://bugs.webkit.org/show_bug.cgi?id=210037
Reviewed by Darin Adler.
* .gitattributes:
* ChakraCore.yaml:
* ChakraCore/test/es5/hasItem.baseline-jsc: Added.
Update baseline and mark it diffable (as plaintext) in spite of containing \0.
2020-04-05 Alexey Shvayka <shvaikalesh@gmail.com>
Octal escapes should be max 3 digits and syntax errors in Unicode patterns
https://bugs.webkit.org/show_bug.cgi?id=167067
Reviewed by Ross Kirsling.
* test262/expectations.yaml: Mark 4 test cases as passing.
2020-04-04 Alexey Shvayka <shvaikalesh@gmail.com>
'\u' should throw an early SyntaxError exception, but instead evaluates to 'u'
https://bugs.webkit.org/show_bug.cgi?id=198790
Reviewed by Yusuke Suzuki.
* mozilla/ecma/Array/15.4.5.1-1.js:
* mozilla/ecma/LexicalConventions/7.7.4.js:
* test262/expectations.yaml: Mark 4 test cases as passing.
2020-04-04 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, skip stress/typed-array-subarray-can-throw-oom-error.js on memory-limited archs, and mark it slow
https://bugs.webkit.org/show_bug.cgi?id=209974
* stress/typed-array-subarray-can-throw-oom-error.js:
2020-04-04 Mark Lam <mark.lam@apple.com>
Gardening: skip test for ARMv7 and MIPS to green the bots until the failure can be investigated.
https://bugs.webkit.org/show_bug.cgi?id=210003
Not reviewed.
* stress/typed-array-subarray-can-throw-oom-error.js:
2020-04-03 Alexey Shvayka <shvaikalesh@gmail.com>
Update test262 to commit 62b8fce38971
https://bugs.webkit.org/show_bug.cgi?id=209979
Reviewed by Ross Kirsling.
* .gitattributes: Added.
* test262/config.yaml: Skip "logical-assignment-operators" and "Promise.any" features.
* test262/expectations.yaml:
* test262/harness/*: Updated.
* test262/latest-changes-summary.txt:
* test262/test/*: Updated.
* test262/test262-Revision.txt:
2020-04-03 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] canonicalizeLocaleList should gracefully throw OOM error if input + error message is too large
https://bugs.webkit.org/show_bug.cgi?id=209971
<rdar://problem/61258621>
Reviewed by Mark Lam.
* stress/intl-canonicalize-locale-list-error-oom.js: Added.
(shouldThrow):
2020-04-03 Ross Kirsling <ross.kirsling@sony.com>
Move Intl tests from LayoutTests to JSTests
https://bugs.webkit.org/show_bug.cgi?id=209922
Reviewed by Yusuke Suzuki.
Intl doesn't depend on WebCore, so these tests shouldn't be layout tests.
(They do, however, require one method to be added to $vm.)
Since LayoutTests/js has its own test harness, I've also migrated each test case to use simpler assertions.
* stress/array-to-locale-string.js: Removed -- subsumed by the following test.
* stress/array-toLocaleString.js: Added.
* stress/date-toLocaleString.js: Added.
* stress/intl-collator.js: Added.
* stress/intl-datetimeformat.js: Added.
* stress/intl-default-locale.js: Added.
* stress/intl-numberformat-format-to-parts.js: Added.
* stress/intl-numberformat.js: Added.
* stress/intl-object.js: Added.
* stress/intl-pluralrules.js: Added.
* stress/number-toLocaleString.js: Added.
* stress/string-localeCompare.js: Added.
* stress/string-toLocaleLowerCase.js: Added.
* stress/string-toLocaleUpperCase.js: Added.
2020-04-03 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] TypedArray#subarray should throw OOM error gracefully
https://bugs.webkit.org/show_bug.cgi?id=209974
<rdar://problem/61253901>
Reviewed by Mark Lam.
* stress/typed-array-subarray-can-throw-oom-error.js: Added.
(foo):
(canThrow):
(bar):
(get bar):
2020-04-03 Paulo Matos <pmatos@igalia.com>
Re-enable previously skipped arm tests
https://bugs.webkit.org/show_bug.cgi?id=209958
Reviewed by Adrian Perez de Castro.
In the past year, some arm tests were skipped to keep the bots green.
All known issues affecting these tests were fixed and now can be unskipped.
* stress/JSArrayBufferView-byteOffset-is-racy-from-compiler-thread.js:
* stress/dont-range-based-iterate-vector-that-is-mutated.js:
* stress/generator-cell-with-type.js:
* stress/incremental-marking-should-not-dead-lock-in-new-property-transition.js:
* stress/racy-slow-put-cloned-arguments-when-having-a-bad-time.js:
* stress/sampling-profiler-should-not-sample-beyond-stack-bounds.js:
* stress/symbol-is-destructed-before-refing-underlying-symbol-impl.js:
* stress/toctou-having-a-bad-time-new-array.js:
2020-04-03 Paulo Matos <pmatos@igalia.com>
stress/ftl-gettypedarrayoffset-wasteful.js times out on arm/linux
https://bugs.webkit.org/show_bug.cgi?id=198754
Reviewed by Žan Doberšek.
Unskip test.
* stress/ftl-gettypedarrayoffset-wasteful.js:
2020-04-02 Alexey Shvayka <shvaikalesh@gmail.com>
TypedArray's [[DefineOwnProperty]] is incorrect with partial descriptors
https://bugs.webkit.org/show_bug.cgi?id=188875
Reviewed by Ross Kirsling.
* stress/typedarray-configure-index.js:
* test262/expectations.yaml: Mark 10 test cases as passing.
2020-04-01 Ross Kirsling <ross.kirsling@sony.com>
Intl.NumberFormat.prototype.format must preserve sign of -0
https://bugs.webkit.org/show_bug.cgi?id=209880
Reviewed by Keith Miller.
* test262/config.yaml:
This test was skipped as ICU version-dependent, but it shouldn't be.
* test262/expectations.yaml:
Mark four test cases as passing.
2020-04-01 Justin Michaud <justin@justinmichaud.com>
Delete IC incorrectly caches for proxies
https://bugs.webkit.org/show_bug.cgi?id=209777
Reviewed by Mark Lam.
* stress/delete-property-ic-proxy.js: Added.
(obj1.this.foo1):
(foo1.foo2):
(foo1):
(foo2.foo3):
(foo2):
* stress/delete-property-inline-cache.js:
2020-04-01 Paulo Matos <pmatos@igalia.com>
[JSC] Reenable non-cloop LLint, JIT and DFG on 32-bit platforms
https://bugs.webkit.org/show_bug.cgi?id=191163
Reviewed by Adrian Perez de Castro.
Re-enable tests for 32bits.
* stress/op_add.js:
* stress/op_bitand.js:
* stress/op_bitor.js:
* stress/op_bitxor.js:
* stress/op_lshift-ConstVar.js:
* stress/op_lshift-VarConst.js:
* stress/op_lshift-VarVar.js:
* stress/op_mod-ConstVar.js:
* stress/op_mod-VarConst.js:
* stress/op_mod-VarVar.js:
* stress/op_mul-ConstVar.js:
* stress/op_mul-VarConst.js:
* stress/op_mul-VarVar.js:
* stress/op_rshift-ConstVar.js:
* stress/op_rshift-VarConst.js:
* stress/op_rshift-VarVar.js:
* stress/op_sub-ConstVar.js:
* stress/op_sub-VarConst.js:
* stress/op_sub-VarVar.js:
* stress/op_urshift-ConstVar.js:
* stress/op_urshift-VarConst.js:
* stress/op_urshift-VarVar.js:
* stress/spread-forward-call-varargs-stack-overflow.js:
* stress/value-to-boolean.js:
2020-03-30 Alexey Shvayka <shvaikalesh@gmail.com>
Add support in named capture group identifiers for direct surrogate pairs
https://bugs.webkit.org/show_bug.cgi?id=178174
Reviewed by Darin Adler and Michael Saboff.
* test262/expectations.yaml: Mark 2 test cases as passing.
2020-03-30 Ross Kirsling <ross.kirsling@sony.com>
RegExp.prototype.exec must always access lastIndex
https://bugs.webkit.org/show_bug.cgi?id=209375
Reviewed by Saam Barati.
* mozilla/ecma_3/RegExp/15.10.6.2-2.js:
Sync test with mozilla-central's copy.
(https://searchfox.org/mozilla-central/source/js/src/tests/non262/RegExp/15.10.6.2-2.js)
* stress/regexp-exec-always-accesses-lastindex.js: Added.
* test262/expectations.yaml:
Mark eight test cases as passing.
2020-03-30 Caio Lima <ticaiolima@gmail.com>
[JSC] Public class field should accept "static" as field name
https://bugs.webkit.org/show_bug.cgi?id=209703
Reviewed by Ross Kirsling.
* stress/class-fields-with-special-names.js: Added.
2020-03-28 Caio Lima <ticaiolima@gmail.com>
stress/test-out-of-memory.js test gaderning
https://bugs.webkit.org/show_bug.cgi?id=209701
Unreviewed test gardening.
* stress/test-out-of-memory.js:
2020-03-27 Mark Lam <mark.lam@apple.com>
Skip stress/test-out-of-memory.js on memory limited devices.
https://bugs.webkit.org/show_bug.cgi?id=209690
<rdar://problem/60659198>
Reviewed by Keith Miller.
* stress/test-out-of-memory.js:
2020-03-27 Paulo Matos <pmatos@igalia.com>
Skip new memory test stress/typed-array-oom-in... in memory limited devices
https://bugs.webkit.org/show_bug.cgi?id=209661
Reviewed by Keith Miller.
* stress/typed-array-oom-in-buffer-accessor.js:
2020-03-27 Paulo Matos <pmatos@igalia.com>
Pass hardness for test numberingSystemsForLocale-cached-... through test header
https://bugs.webkit.org/show_bug.cgi?id=209476
Reviewed by Yusuke Suzuki.
Improvement over change r258190. Instead of creating a new test file
duplicating contents where a hardness parameter is different, pass this
through the test header using the -e flag to jsc.
* stress/numberingSystemsForLocale-cached-strings-should-be-immortal-and-safe-for-concurrent-access.js:
* stress/numberingSystemsForLocale-cached-strings-should-be-immortal-and-safe-for-concurrent-access_memory-limited.js: Removed.
2020-03-26 Michael Saboff <msaboff@apple.com>
Refactor YARR Stack Overflow Checks
https://bugs.webkit.org/show_bug.cgi?id=209435
rdar://problem/58988252
Reviewed by Mark Lam.
Added a new test and removed a now obsolete test.
* stress/regexp-compile-oom.js: Removed because the test is no longer valid.
Previously when therer where different stack check mechanisims we failed different.
This test was based on the different failure modes. With these changes, most of
the contain subtests no longer throw as this test expects.
* stress/regexp-huge-oom.js: Added.
(shouldBe):
(shouldThrow):
2020-03-26 Keith Miller <keith_miller@apple.com>
TypedArrays should more gracefully handle OOM during slowDownAndWasteMemory
https://bugs.webkit.org/show_bug.cgi?id=209611
Reviewed by Tadeu Zagallo.
* stress/typed-array-oom-in-buffer-accessor.js: Added.
(try.foo):
2020-03-25 Ross Kirsling <ross.kirsling@sony.com>
Unreviewed, reimport test262 once more to make bot green.
* test262/expectations.yaml:
* test262/harness/assert.js:
* test262/harness/propertyHelper.js:
* test262/latest-changes-summary.txt:
* test262/test/built-ins/JSON/stringify/replacer-function-stack-overflow.js: Removed.
* test262/test/built-ins/JSON/stringify/value-tojson-stack-overflow.js: Removed.
* test262/test/built-ins/NativeErrors/AggregateError/newtarget-is-undefined.js: Added.
* test262/test/built-ins/RegExp/prototype/Symbol.replace/poisoned-stdlib.js:
* test262/test/harness/assert-samevalue-zeros.js:
* test262/test/language/expressions/class/elements/private-field-after-optional-chain.js: Added.
* test262/test/language/statements/class/elements/private-field-after-optional-chain.js: Added.
* test262/test262-Revision.txt:
2020-03-25 Alexey Shvayka <shvaikalesh@gmail.com>
RegExp.prototype[@@replace] relies on globals and doesn't perform ToLength
https://bugs.webkit.org/show_bug.cgi?id=173867
Reviewed by Ross Kirsling.
* test262/expectations.yaml: Mark 4 test cases as passing.
2020-03-25 Alexey Shvayka <shvaikalesh@gmail.com>
Invalid numeric and named references should be early syntax errors
https://bugs.webkit.org/show_bug.cgi?id=178175
Reviewed by Ross Kirsling.
* test262/expectations.yaml: Mark 44 test cases as passing.
2020-03-25 Alexey Shvayka <shvaikalesh@gmail.com>
\b escapes inside character classes should be valid in Unicode patterns
https://bugs.webkit.org/show_bug.cgi?id=209528
Reviewed by Darin Adler.
* test262/expectations.yaml: Mark 2 test cases as passing.
2020-03-24 Tadeu Zagallo <tzagallo@apple.com>
LLIntGenerator must link switch jumps to otherwise redundant labels
https://bugs.webkit.org/show_bug.cgi?id=209333
<rdar://problem/60827987>
Reviewed by Saam Barati.
* wasm/stress/terminal-jump-switch-target.js: Added.
2020-03-24 Alexey Shvayka <shvaikalesh@gmail.com>
Update test262 to commit dfc7ecc6785e
https://bugs.webkit.org/show_bug.cgi?id=209449
Unreviewed test gardening.
* test262/expectations.yaml:
* test262/harness/propertyHelper.js:
* test262/latest-changes-summary.txt:
* test262/test/*: Updated.
* test262/test262-Revision.txt:
2020-03-24 Alexey Shvayka <shvaikalesh@gmail.com>
Update test262 to commit 79146e5cf48d
https://bugs.webkit.org/show_bug.cgi?id=209449
Reviewed by Keith Miller.
* test262/config.yaml: Add 3 tests that timeout.
* test262/expectations.yaml:
* test262/latest-changes-summary.txt:
* test262/test/*: Updated.
* test262/test262-Revision.txt:
2020-03-23 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Caller of Delete IC should emit write-barrier onto owner
https://bugs.webkit.org/show_bug.cgi?id=209392
<rdar://problem/60683173>
Reviewed by Saam Barati.
* stress/delete-ic-requires-write-barrier.js: Added.
(foo):
2020-03-23 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] DFG OSR exit cannot find StructureStubInfo for put_by_val if CodeBlock is once converved from Baseline to LLInt
https://bugs.webkit.org/show_bug.cgi?id=209327
<rdar://problem/60631061>
Reviewed by Saam Barati.
* stress/osr-exit-attempts-to-find-stubinfo-which-is-cleared-by-previous-baseline-to-llint-conversion.js: Added.
(setter):
(foo):
2020-03-23 Ross Kirsling <ross.kirsling@sony.com>
Catch parameters must not be lexically redeclared
https://bugs.webkit.org/show_bug.cgi?id=208976
Reviewed by Keith Miller.
* test262/expectations.yaml:
Mark four test cases as passing.
2020-03-20 Ross Kirsling <ross.kirsling@sony.com>
hasObservableSideEffectsForRegExpSplit doesn't check for @@match override
https://bugs.webkit.org/show_bug.cgi?id=209363
Reviewed by Michael Saboff.
* test262/expectations.yaml:
Mark two test cases as passing.
2020-03-20 Ross Kirsling <ross.kirsling@sony.com>
RegExp.prototype[@@replace] doesn't coerce result index to integer
https://bugs.webkit.org/show_bug.cgi?id=209323
Reviewed by Yusuke Suzuki.
* test262/expectations.yaml:
Mark six test cases as passing.
2020-03-19 Tomas Popela <tpopela@redhat.com>
[JSC][BigEndians] Several JSC stress tests failing
https://bugs.webkit.org/show_bug.cgi?id=194007
Reviewed by Michael Catanzaro.
Adapt the DataView tests to be able to pass on little endian as well
as the big endian hardware. Do so by introducing method that determine
the endianess and based on its value it saves the expected results in
the right format.
* stress/dataview-get-cse.js:
(getIsLittleEndian):
(adjustForEndianess):
(test3.foo):
(test3):
* stress/dataview-jit-get.js:
(getIsLittleEndian):
(test1.adjustForEndianess):
(test1):
(test2.adjustForEndianess):
(test2):
(test3.adjustForEndianess):
(test3):
(adjustForEndianessUint32):
(test4):
(test5):
(test6):
(test7):
(test8):
* stress/dataview-jit-neuter.js:
(getIsLittleEndian):
(adjustForEndianess):
(test):
(test2):
* stress/dataview-jit-set-nan.js:
(getIsLittleEndian):
(adjustForEndianessFloat32):
(test):
* stress/dataview-jit-set.js:
(getIsLittleEndian):
(readHex):
(adjustForEndianessUint16):
(test):
(test2):
(adjustForEndianessUint32):
(test3):
(test4):
(adjustForEndianessFloat32):
(test5):
(adjustForEndianessFloat64):
(test6):
(isLittleEndian): Deleted.
2020-03-18 Yusuke Suzuki <ysuzuki@apple.com>
Add a way to mark a rejected promise as handled
https://bugs.webkit.org/show_bug.cgi?id=209241
Reviewed by Michael Saboff.
* stress/reject-as-handled.js: Added.
(shouldBe):
(set new):
2020-03-16 Keith Miller <keith_miller@apple.com>
JavaScript identifier grammar supports unescaped astral symbols, but JSC doesn’t
https://bugs.webkit.org/show_bug.cgi?id=208998
Reviewed by Michael Saboff.
* stress/unicode-identifiers-with-surrogate-pairs.js: Added.
(let.c.of.chars.eval.foo):
(throwsSyntaxError):
(let.c.of.continueChars.throwsSyntaxError.foo):
2020-03-13 Saam Barati <sbarati@apple.com>
skip wasm/function-tests/grow-memory-cause-gc.js on memory limited devices
https://bugs.webkit.org/show_bug.cgi?id=209069
<rdar://problem/59954558>
Reviewed by Yusuke Suzuki.
* wasm/function-tests/grow-memory-cause-gc.js:
2020-03-13 Alexey Shvayka <shvaikalesh@gmail.com>
Bound functions should pass correct NewTarget value
https://bugs.webkit.org/show_bug.cgi?id=209057
Reviewed by Keith Miller.
* test262/expectations.yaml: Mark 4 test cases as passing.
2020-03-11 Keith Miller <keith_miller@apple.com>
Test262-runner should always consider crashes as new failures
https://bugs.webkit.org/show_bug.cgi?id=208943
Reviewed by Yusuke Suzuki.
* test262/expectations.yaml:
2020-03-11 Keith Miller <keith_miller@apple.com>
Throws incorrectly a syntax error when declaring a top level catch variable the same as a parameter
https://bugs.webkit.org/show_bug.cgi?id=189914
Reviewed by Saam Barati.
* ChakraCore/test/es6/globalParamCatchNewTargetSyntaxError.baseline-jsc:
* stress/catch-destructuring-shadow-lexical-const-variable-global.js: Added.
(catch):
* stress/catch-destructuring-shadow-lexical-variable-class.js: Added.
(Foo):
(Bar):
(Baz):
* stress/catch-destructuring-shadow-lexical-variable-function.js: Added.
(foo):
(bar):
* stress/catch-destructuring-shadow-lexical-variable-global.js: Added.
(catch):
* stress/catch-destructuring-shadow-var-global.js: Added.
(catch):
* test262/expectations.yaml:
2020-03-10 Ross Kirsling <ross.kirsling@sony.com>
Re-import test262 to acquire DST fix
https://bugs.webkit.org/show_bug.cgi?id=208901
Reviewed by Don Olmstead.
* test262/latest-changes-summary.txt:
* test262/test/built-ins/AggregateError/newtarget-proto-fallback.js:
* test262/test/built-ins/Array/prototype/filter/create-proto-from-ctor-realm-array.js:
* test262/test/built-ins/Array/prototype/indexOf/15.4.4.14-4-4.js:
* test262/test/built-ins/Date/parse/without-utc-offset.js:
* test262/test262-Revision.txt:
2020-03-10 Paulo Matos <pmatos@igalia.com>
JSC 32bits is failing on new test stress/numberingSystemsForLocale-cached-strings-should-be-immortal-and-safe-for-concurrent-access.js
https://bugs.webkit.org/show_bug.cgi?id=206864
Reviewed by Yusuke Suzuki.
Add new test to memory limited devices - behaviour is the same as
numberingSystemsForLocale-cached-strings-should-be-immortal-and-safe-for-concurrent-access.js
but it creates 25 threads instead of 100.
* stress/numberingSystemsForLocale-cached-strings-should-be-immortal-and-safe-for-concurrent-access_memory-limited.js: Added.
(let.theCode):
2020-03-09 Alexey Shvayka <shvaikalesh@gmail.com>
@putByValDirect does not perform [[DefineOwnProperty]] correctly
https://bugs.webkit.org/show_bug.cgi?id=208708
Reviewed by Yusuke Suzuki.
* test262/expectations.yaml: Mark 46 test cases as passing.
2020-03-09 Caio Lima <ticaiolima@gmail.com>
Tail calls are broken on ARM_THUMB2 and MIPS
https://bugs.webkit.org/show_bug.cgi?id=197797
Reviewed by Yusuke Suzuki.
* stress/tail-call-with-spilled-registers.js: Added.
2020-03-07 Mark Lam <mark.lam@apple.com>
Remove bad assertion in FTLLowerDFGToB3's compileDelBy().
https://bugs.webkit.org/show_bug.cgi?id=208764
<rdar://problem/59940095>
Reviewed by Keith Miller.
* stress/delete-by-val-with-base-and-subscript-using-same-cell.js: Added.
* stress/delete-by-val-with-base-and-subscript-using-same-non-cell.js: Added.
2020-03-06 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Enable public class fields
https://bugs.webkit.org/show_bug.cgi?id=208756
Reviewed by Mark Lam.
Rename useClassFields to usePublicClassFields to keep separate from usePrivateClassFields once
it is implemented.
* stress/big-int-as-property-name.js:
* stress/class-fields-bytecode-cache.js:
* stress/class-fields-computed-to-property-key.js:
* stress/class-fields-function-name.js:
* stress/class-fields-harmony.js:
* stress/class-fields-proxy-define-property.js:
* stress/class-fields-stress-instance.js:
* stress/class-fields-to-property-key-const-string-ftl.js:
* stress/class-fields-to-property-key-const-symbol-ftl.js:
* stress/class-fields-to-property-key-slow-object-tostring-ftl.js:
* stress/class-fields-to-property-key-slow-object-valueof-ftl.js:
* stress/class-fields-to-property-key-string-object-ftl.js:
* stress/class-fields-to-property-key-string-or-string-object-ftl.js:
* stress/generator-syntax.js:
* stress/method-name.js:
* test262/config.yaml:
2020-03-06 Alexey Shvayka <shvaikalesh@gmail.com>
JSON.stringify should call replacer on deleted properties
https://bugs.webkit.org/show_bug.cgi?id=208725
Reviewed by Ross Kirsling.
* microbenchmarks/json-stringify-many-objects-to-json.js: Added.
* microbenchmarks/json-stringify-many-objects.js: Added.
* test262/expectations.yaml: Mark 2 test cases as passing.
2020-03-04 Mark Lam <mark.lam@apple.com>
Handle an out of memory error while constructing the BytecodeGenerator.
https://bugs.webkit.org/show_bug.cgi?id=208622
<rdar://problem/59341136>
Reviewed by Saam Barati.
* stress/out-of-memory-while-constructing-BytecodeGenerator.js: Added.
2020-03-03 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] @hasOwnLengthProperty returns wrong value if "length" is attempted to be modified
https://bugs.webkit.org/show_bug.cgi?id=208497
<rdar://problem/59913544>
Reviewed by Mark Lam.
* stress/function-length-update.js: Added.
(shouldBe):
(userFunction):
(userFunction2):
2020-03-02 Saam Barati <sbarati@apple.com>
Don't skip tests unnecessarily on arm64
https://bugs.webkit.org/show_bug.cgi?id=208470
<rdar://problem/59968869>
Reviewed by Tadeu Zagallo.
* microbenchmarks/bit-test-constant.js:
* microbenchmarks/bit-test-nonconstant.js:
* microbenchmarks/memcpy-typed-loop-large.js:
* microbenchmarks/memcpy-typed-loop-small.js:
* microbenchmarks/mul-immediate-sub.js:
* stress/dont-range-based-iterate-vector-that-is-mutated.js:
* stress/dont-reserve-huge-capacity-lexer.js:
* stress/new-largeish-contiguous-array-with-size.js:
* stress/sampling-profiler-richards.js:
* typeProfiler/deltablue-for-of.js:
* typeProfiler/getter-richards.js:
* wasm/regress/llint-callee-saves-with-fast-memory.js:
2020-03-02 Justin Michaud <justin_michaud@apple.com>
Delete by val caching does not keep the subscript alive
https://bugs.webkit.org/show_bug.cgi?id=208393
Reviewed by Yusuke Suzuki.
* stress/delete-property-ic-stress.js: Added.
2020-02-27 Justin Michaud <justin_michaud@apple.com>
Poly proto should work with property delete transitions
https://bugs.webkit.org/show_bug.cgi?id=208261
Reviewed by Saam Barati.
* stress/delete-property-poly-proto.js: Added.
(A.prototype.set x):
(A):
(B):
2020-02-27 Ross Kirsling <ross.kirsling@sony.com>
Update test262 (2020.02.26)
https://bugs.webkit.org/show_bug.cgi?id=208280
Reviewed by Yusuke Suzuki.
* test262/config.yaml:
* test262/expectations.yaml:
* test262/harness/async-gc.js:
* test262/latest-changes-summary.txt:
* test262/test/:
* test262/test262-Revision.txt:
2020-02-26 Caio Lima <ticaiolima@gmail.com>
[JSC][MIPS] Adding support to Checkpoints
https://bugs.webkit.org/show_bug.cgi?id=208196
Reviewed by Yusuke Suzuki.
* microbenchmarks/memcpy-typed-loop.js:
2020-02-25 Justin Michaud <justin_michaud@apple.com>
Inline Cache delete by id/val
https://bugs.webkit.org/show_bug.cgi?id=207522
Reviewed by Keith Miller and Filip Pizlo.
* microbenchmarks/delete-property-from-prototype-chain.js:
(delete.C.prototype.z):
* microbenchmarks/delete-property-inline-cache-polymorphic.js: Added.
(C):
(noInline.C.foo):
(noInline.foo.F):
(noInline.F):
* microbenchmarks/delete-property-inline-cache.js: Added.
(C):
(noInline.C.D):
(noInline.D.foo):
(noInline.foo.E):
(noInline.E.F):
(noInline.F):
* microbenchmarks/delete-property-keeps-cacheable-structure.js:
* stress/delete-property-check-structure-transition.js:
(sd): Deleted.
(testDeleteIsNotUncacheable): Deleted.
(): Deleted.
(testCanFlatten): Deleted.
(testDeleteWithInlineCache.Object.prototype.globalProperty.42.makeFoo): Deleted.
(testDeleteWithInlineCache.noInline.doTest): Deleted.
(testDeleteWithInlineCache): Deleted.
* stress/delete-property-inline-cache.js: Added.
(assert):
(assert_eq):
(assert_neq):
(assert_throws):
(noInline.assert.noInline.assert_eq.noInline.assert_neq.noInline.assert_throws.testCacheableDeleteById.makeFoo):
(noInline.assert.noInline.assert_eq.noInline.assert_neq.noInline.assert_throws.testCacheableDeleteById):
(noInline.testCacheableDeleteById.testCacheableDeleteByVal.makeFoo2):
(noInline.testCacheableDeleteById.testCacheableDeleteByVal):
(noInline.testCacheableDeleteByVal.testCacheableEmptyDeleteById.makeFoo3):
(noInline.testCacheableDeleteByVal.testCacheableEmptyDeleteById):
(noInline.testCacheableEmptyDeleteById.testCacheableDeleteByIdMiss.makeFoo4):
(noInline.testCacheableEmptyDeleteById.testCacheableDeleteByIdMiss):
(noInline.testCacheableDeleteByIdMiss.testDeleteIndex.makeFoo5):
(noInline.testCacheableDeleteByIdMiss.testDeleteIndex):
(noInline.testDeleteIndex.testPolymorphicDelByVal.makeFoo6):
(noInline.testDeleteIndex.testPolymorphicDelByVal):
(noInline.testPolymorphicDelByVal.testBigintDeleteByVal.makeFoo7):
(noInline.testPolymorphicDelByVal.testBigintDeleteByVal):
(noInline.testBigintDeleteByVal.testSymbolDeleteByVal.makeFoo8):
(noInline.testBigintDeleteByVal.testSymbolDeleteByVal):
(noInline.testSymbolDeleteByVal.testObjDeleteByVal.makeFoo9):
(noInline.testSymbolDeleteByVal.testObjDeleteByVal):
(noInline.testObjDeleteByVal.testStrict.makeFoo10):
(noInline.testObjDeleteByVal.testStrict):
(noInline.testStrict.testOverride.arr.j):
(noInline.testStrict.testOverride):
(noInline.testOverride.testNonObject.deleteIt):
(noInline.testOverride.testNonObject):
(noInline.testNonObject.testNonObjectStrict.deleteIt):
(noInline.testNonObject.testNonObjectStrict):
(noInline.testNonObjectStrict.testExceptionUnwind.mutateThem):
(noInline.testNonObjectStrict.testExceptionUnwind.noInline.deleteIt):
(noInline.testNonObjectStrict.testExceptionUnwind):
(noInline.testExceptionUnwind.testTDZ):
(noInline.testTDZ):
2020-02-19 Ross Kirsling <ross.kirsling@sony.com>
Computed Properties with increment sometimes produces incorrect results
https://bugs.webkit.org/show_bug.cgi?id=170934
Reviewed by Yusuke Suzuki.
* stress/computed-property-increment.js: Added.
* test262/expectations.yaml: Mark two test cases as passing.
2020-02-19 Keith Miller <keith_miller@apple.com>
Disable Wasm reference types by default
https://bugs.webkit.org/show_bug.cgi?id=207952
Reviewed by Mark Lam.
* wasm/stress/immutable-globals.js:
* wasm/stress/local-ref.js:
* wasm/stress/mutable-globals.js:
2020-02-18 Ross Kirsling <ross.kirsling@sony.com>
[JSC] Computed function properties compute their keys twice
https://bugs.webkit.org/show_bug.cgi?id=207297
Reviewed by Keith Miller.
* stress/computed-property-key-side-effects.js: Added.
* test262/expectations.yaml: Mark 6 test cases as passing.
2020-02-17 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] JITThunk should be HashSet<Weak<NativeExecutable>> with appropriate GC weakness handling
https://bugs.webkit.org/show_bug.cgi?id=207715
Reviewed by Darin Adler.
* stress/stress-jitthunks.js: Added.
(let.set newGlobal):
(set catch):
2020-02-17 Tadeu Zagallo <tzagallo@apple.com>
[Wasm] REGRESSION(r256665): Wasm->JS call IC needs to save memory size register
https://bugs.webkit.org/show_bug.cgi?id=207849
Reviewed by Mark Lam.
* wasm/regress/regress-256665.js: Added.
(f):
2020-02-14 Tadeu Zagallo <tzagallo@apple.com>
Unreviewed: fix broken tests added in r256665
https://bugs.webkit.org/show_bug.cgi?id=207727
Our inline WAT doesn't seem to like named blocks/branch targets.
* wasm/regress/llint-callee-saves-with-fast-memory.js:
* wasm/regress/llint-callee-saves-without-fast-memory.js:
2020-02-14 Tadeu Zagallo <tzagallo@apple.com>
[WASM] Wasm interpreter's calling convention doesn't match Wasm JIT's convention.
https://bugs.webkit.org/show_bug.cgi?id=207727
Reviewed by Mark Lam.
* wasm/regress/llint-callee-saves-with-fast-memory.js: Added.
* wasm/regress/llint-callee-saves-without-fast-memory.js: Added.
2020-02-13 Caio Lima <ticaiolima@gmail.com>
[ESNext][BigInt] We don't support BigInt literal as PropertyName
https://bugs.webkit.org/show_bug.cgi?id=206888
Reviewed by Ross Kirsling.
* stress/big-int-as-property-name.js: Added.
2020-02-10 Mark Lam <mark.lam@apple.com>
Placate exception check validator in GenericArguments<Type>::put().
https://bugs.webkit.org/show_bug.cgi?id=207485
<rdar://problem/59302535>
Reviewed by Robin Morisset.
* stress/placate-exception-check-validator-in-GenericArguments-put.js: Added.
2020-02-10 Justin Michaud <justin_michaud@apple.com>
arm64_32: microbenchmarks/delete-property-keeps-cacheable-structure.js is timing out
https://bugs.webkit.org/show_bug.cgi?id=207484
Reviewed by Yusuke Suzuki.
* microbenchmarks/delete-property-keeps-cacheable-structure.js:
2020-02-10 Mark Lam <mark.lam@apple.com>
Missing exception check in GenericArguments<Type>::deletePropertyByIndex().
https://bugs.webkit.org/show_bug.cgi?id=207483
<rdar://problem/59302616>
Reviewed by Yusuke Suzuki.
* stress/missing-exception-check-in-GenericArguments-deletePropertyByIndex.js: Added.
2020-02-06 Sukolsak Sakshuwong <sukolsak@gmail.com> and Alexey Shvayka <shvaikalesh@gmail.com>
JavaScript string corruption using RegExp with unicode character
https://bugs.webkit.org/show_bug.cgi?id=187947
Reviewed by Yusuke Suzuki.
This change adds regression test for string corruption that occured after
non-BMP character was removed by String.prototype.replace.
The issue was fixed in https://trac.webkit.org/changeset/253648/webkit.
Also, this patch brings back:
1. An out-of-order character class range test.
2. Dangling and combined surrogates tests (as webkit.org/b/154863 is now resolved).
* stress/regress-187947.js: Added.
2020-02-05 Justin Michaud <justin_michaud@apple.com>
Deleting a property should not turn structures into uncacheable dictionaries
https://bugs.webkit.org/show_bug.cgi?id=206430
Reviewed by Yusuke Suzuki.
* microbenchmarks/delete-property-from-prototype-chain.js: Added.
(assert):
(noInline.assert.getZ):
(noInline.getZ.C):
(doTest):
(delete.C.prototype.z):
* microbenchmarks/delete-property-keeps-cacheable-structure.js: Added.
(assert):
(C):
(doTest):
* stress/cache-put-by-id-different-attributes.js:
(makePrototypeDict):
(set x):
* stress/cache-put-by-id-different-offset.js:
(makePrototypeDict):
(set x):
* stress/cache-put-by-id-poly-proto.js:
(makePrototypeDict):
(set _):
* stress/delete-property-check-structure-transition.js: Added.
(assert):
(assert_eq):
(assert_neq):
(sd):
(sid):
(testDeleteIsNotUncacheable):
(testCanMaterializeDeletes):
(testCanFlatten):
(testDeleteWithInlineCache.Object.prototype.globalProperty.42.makeFoo):
(testDeleteWithInlineCache.noInline.doTest):
(testDeleteWithInlineCache):
* stress/flatten-object-zero-unused-inline-properties.js:
2020-02-04 Alexey Shvayka <shvaikalesh@gmail.com>
Quantifiers after lookahead assertions should be syntax errors in Unicode patterns only
https://bugs.webkit.org/show_bug.cgi?id=206988
Reviewed by Darin Adler and Ross Kirsling.
* test262/expectations.yaml: Mark 10 test cases as passing.
2020-02-03 Alexey Shvayka <shvaikalesh@gmail.com>
\0 identity escapes should be syntax errors in Unicode patterns only
https://bugs.webkit.org/show_bug.cgi?id=207114
Reviewed by Darin Adler.
* test262/expectations.yaml: Mark 2 test cases as passing.
2020-02-01 Alexey Shvayka <shvaikalesh@gmail.com>
Non-alphabetical \c escapes should be syntax errors in Unicode patterns only
https://bugs.webkit.org/show_bug.cgi?id=207091
Reviewed by Darin Adler.
* test262/expectations.yaml: Mark 4 test cases as passing.
2020-01-31 Saam Barati <sbarati@apple.com>
Unreviewed. Don't dump disassembly in test.
* stress/get-getter-setter-by-offset-not-always-safe-to-execute.js:
2020-01-31 Saam Barati <sbarati@apple.com>
GetGetterSetterByOffset and GetGetter/GetSetter are not always safe to execute
https://bugs.webkit.org/show_bug.cgi?id=206805
<rdar://problem/58898161>
Reviewed by Yusuke Suzuki.
* stress/get-getter-setter-by-offset-not-always-safe-to-execute.js: Added.
2020-01-31 Alexey Shvayka <shvaikalesh@gmail.com>
Unmatched ] or } brackets should be syntax errors in Unicode patterns only
https://bugs.webkit.org/show_bug.cgi?id=207023
Reviewed by Darin Adler.
* test262/expectations.yaml: Mark 2 test cases as passing.
2020-01-30 Alexey Shvayka <shvaikalesh@gmail.com>
Incomplete braced quantifiers should be banned in Unicode patterns only
https://bugs.webkit.org/show_bug.cgi?id=206776
Reviewed by Darin Adler.
Although the change does not affect Unicode property escapes, a few
test/built-ins/RegExp/property-escapes/non-existent-property-value*.js files
are now passing because they had \\p or \\P instead of CharacterClassEscape.
* test262/expectations.yaml: Mark 18 test cases as passing.
2020-01-30 Keith Miller <keith_miller@apple.com>
Parser needs to restore unary stack state when backtracking
https://bugs.webkit.org/show_bug.cgi?id=206972
Reviewed by Saam Barati.
* stress/parser-save-state-remove-stale-entries.js: Added.
* stress/parser-syntax-checker-assignments-are-not-resolve-expressions.js: Added.
(foo):
2020-01-29 Mark Lam <mark.lam@apple.com>
Fix bad assertion in InternalFunctionAllocationProfile::createAllocationStructureFromBase().
https://bugs.webkit.org/show_bug.cgi?id=206981
<rdar://problem/58985736>
Reviewed by Keith Miller.
* stress/InternalFunctionAllocationProfile-createAllocationStructureFromBase-should-allow-for-same-classInfo-from-different-globals.js: Added.
2020-01-29 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, update tests
https://bugs.webkit.org/show_bug.cgi?id=206846
* stress/incorrect-put-could-generate-invalid-ic-but-still-not-causing-bad-behavior-debug.js: Copied from JSTests/stress/incorrect-put-could-generate-invalid-ic-but-still-not-causing-bad-behavior.js.
(shouldBe):
(putter):
(not_string.toString):
* stress/incorrect-put-could-generate-invalid-ic-but-still-not-causing-bad-behavior.js:
* stress/incorrect-put-could-generate-invalid-ic-involving-dictionary-flatten-debug.js: Copied from JSTests/stress/incorrect-put-could-generate-invalid-ic-involving-dictionary-flatten.js.
(shouldBe):
(dictionary):
(putter):
(not_string.toString):
* stress/incorrect-put-could-generate-invalid-ic-involving-dictionary-flatten.js:
2020-01-28 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Give up IC when unknown structure transition happens
https://bugs.webkit.org/show_bug.cgi?id=206846
Reviewed by Mark Lam.
* stress/ensure-crash.js: Added.
* stress/incorrect-put-could-generate-invalid-ic-but-still-not-causing-bad-behavior-bad-transition-debug.js: Added.
(shouldBe):
(putter):
(not_string.toString):
* stress/incorrect-put-could-generate-invalid-ic-but-still-not-causing-bad-behavior-bad-transition.js: Added.
(shouldBe):
(putter):
(not_string.toString):
* stress/incorrect-put-could-generate-invalid-ic-but-still-not-causing-bad-behavior.js: Added.
(shouldBe):
(putter):
(not_string.toString):
* stress/incorrect-put-could-generate-invalid-ic-involving-dictionary-flatten.js: Added.
(shouldBe):
(dictionary):
(putter):
(not_string.toString):
2020-01-29 Paulo Matos <pmatos@igalia.com>
Skip slow test operand-should-fit-in-abstract-heap-encoded-payload-format.js on mips and arm
https://bugs.webkit.org/show_bug.cgi?id=206926
Unreviewed test gardening.
This test has quadratic behaviour with the size of a, and on mips and arm it just takes too
long to run with such high value of a. Therefore we skip.
* stress/operand-should-fit-in-abstract-heap-encoded-payload-format.js:
2020-01-28 Paulo Matos <pmatos@igalia.com>
Skip test numberingSystemsForLocale-cached-strings-should-be-immortal-and-safe-for-concurrent-access.js in arm and mips
https://bugs.webkit.org/show_bug.cgi?id=206865
Reviewed by Žan Doberšek.
* stress/numberingSystemsForLocale-cached-strings-should-be-immortal-and-safe-for-concurrent-access.js:
2020-01-26 Alexey Shvayka <shvaikalesh@gmail.com>
Invalid ranges in character classes should be banned in Unicode patterns only
https://bugs.webkit.org/show_bug.cgi?id=206768
Reviewed by Darin Adler.
* test262/expectations.yaml: Mark 18 test cases as passing.
2020-01-24 Mark Lam <mark.lam@apple.com>
IntlObject's cached strings should be immortal and safe for concurrent access.
https://bugs.webkit.org/show_bug.cgi?id=206779
<rdar://problem/58831763>
Reviewed by Yusuke Suzuki.
* stress/numberingSystemsForLocale-cached-strings-should-be-immortal-and-safe-for-concurrent-access.js: Added.
2020-01-24 Yusuke Suzuki <ysuzuki@apple.com>
REGRESSION (r254964-r254970?): Catalina Debug JSC bot timing out while running tests
https://bugs.webkit.org/show_bug.cgi?id=206785
Unreviewed, skipping the test if $buildType is "debug".
* stress/operand-should-fit-in-abstract-heap-encoded-payload-format.js:
2020-01-23 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] DFG OSR exit is not marking CodeBlock::m_hasLinkedOSRExit when the exit target is checkpoint
https://bugs.webkit.org/show_bug.cgi?id=206726
<rdar://problem/58827849>
Reviewed by Saam Barati.
* stress/exit-target-code-block-can-be-changed-between-llint-and-baseline.js: Added.
(bar):
(foo):
2020-01-22 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Bits from Operand should fit in bits reserved in AbstractHeap's Payload
https://bugs.webkit.org/show_bug.cgi?id=206619
<rdar://problem/58270260>
Reviewed by Keith Miller.
* stress/operand-should-fit-in-abstract-heap-encoded-payload-format.js: Added.
2020-01-22 Keith Miller <keith_miller@apple.com>
InternalField and CheckNeutered DFG nodes are not always safe to execute
https://bugs.webkit.org/show_bug.cgi?id=206632
Reviewed by Saam Barati.
* stress/for-of-bad-internal-field-hoist.js: Added.
(foo):
2020-01-22 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] DateMath should accept more ISO-8601 timezone designators even if they are not included in ECMA262 to produce expected results in the wild code
https://bugs.webkit.org/show_bug.cgi?id=160287
Reviewed by Ross Kirsling.
* stress/relaxed-timezone-designators.js: Added.
(shouldBe):
(parsedDate):
2020-01-22 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Add CheckArrayOrEmpty to handle the case when hoisting CheckArray for places where input can be empty
https://bugs.webkit.org/show_bug.cgi?id=206571
<rdar://problem/58757016>
Reviewed by Saam Barati.
* stress/check-array-or-empty.js: Added.
(C):
2020-01-21 Tadeu Zagallo <tzagallo@apple.com>
Object allocation sinking is missing PutHint for allocations unreachable in the graph
https://bugs.webkit.org/show_bug.cgi?id=203799
<rdar://problem/56852162>
Reviewed by Saam Barati.
* stress/allocation-sinking-puthint-control-flow-2.js: Added.
(f.handler.construct):
(f):
2020-01-20 Gus Caplan <me@gus.host>
Remove own toString from NativeError prototype
https://bugs.webkit.org/show_bug.cgi?id=204629
Reviewed by Ross Kirsling.
NativeError prototypes are expected to inherit toString from
Error.prototype. See https://github.com/tc39/ecma262/issues/1794
for additional details.
* stress/nativeerror-prototype-tostring.js:
2020-01-20 Caio Lima <ticaiolima@gmail.com>
Skip tests when there is no JIT build on ARMv7 and MIPS
https://bugs.webkit.org/show_bug.cgi?id=206496
Unreviewed gardening.
* microbenchmarks/bit-test-constant.js:
* microbenchmarks/bit-test-nonconstant.js:
* microbenchmarks/memcpy-typed-loop-large.js:
* microbenchmarks/memcpy-typed-loop-small.js:
* microbenchmarks/mul-immediate-sub.js:
* stress/dont-range-based-iterate-vector-that-is-mutated.js:
* stress/int8-repeat-in-then-out-of-bounds.js:
* stress/sampling-profiler-richards.js:
2020-01-18 Caitlin Potter <caitp@igalia.com>
[JSC] add DFG/FTL support for op_to_property_key
https://bugs.webkit.org/show_bug.cgi?id=206368
Reviewed by Saam Barati.
* stress/class-fields-to-property-key-const-string-ftl.js: Added.
* stress/class-fields-to-property-key-const-symbol-ftl.js: Added.
* stress/class-fields-to-property-key-slow-object-tostring-ftl.js: Added.
* stress/class-fields-to-property-key-slow-object-valueof-ftl.js: Added.
* stress/class-fields-to-property-key-string-object-ftl.js: Added.
* stress/class-fields-to-property-key-string-or-string-object-ftl.js: Added.
2020-01-17 Saam Barati <sbarati@apple.com>
Air O0 should have better stack allocation
https://bugs.webkit.org/show_bug.cgi?id=206436
Reviewed by Tadeu Zagallo.
* wasm/stress/dont-stack-overflow-in-air.js: Added.
2020-01-17 Mark Lam <mark.lam@apple.com>
JSModuleLoader's printableModuleKey() should never throw.
https://bugs.webkit.org/show_bug.cgi?id=206461
<rdar://problem/58696678>
Reviewed by Michael Saboff.
* stress/printableModuleKey-should-never-throw.js: Added.
2020-01-17 Alexey Shvayka <shvaikalesh@gmail.com>
JSON.parse should lookup prototype chains during revival
https://bugs.webkit.org/show_bug.cgi?id=205769
Reviewed by Saam Barati.
* test262/expectations.yaml: Mark 4 test cases as passing.
2020-01-16 Robin Morisset <rmorisset@apple.com>
[ESNext] Enables a way to throw an error on ByteCodeGenerator step
https://bugs.webkit.org/show_bug.cgi?id=180139
Reviewed by Mark Lam.
* stress/eval-huge-big-int-memory-overflow.js: Added.
2020-01-16 Keith Miller <keith_miller@apple.com>
Reland bytecode checkpoints since bugs have been fixed
https://bugs.webkit.org/show_bug.cgi?id=206361
Unreviewed, reland.
The watch bugs have been fixed by https://trac.webkit.org/changeset/254674
* stress/apply-osr-exit-should-get-length-once-exceptions-occasionally.js: Added.
(expectedArgCount):
(callee):
(test):
(let.array.get length):
* stress/apply-osr-exit-should-get-length-once.js: Added.
(expectedArgCount):
(callee):
(test):
(let.array.get length):
* stress/load-varargs-then-inlined-call-and-exit-strict.js:
(checkEqual):
* stress/recursive-tail-call-with-different-argument-count.js:
* stress/rest-varargs-osr-exit-to-checkpoint.js: Added.
(foo):
(bar):
2020-01-16 Keith Miller <keith_miller@apple.com>
Revert 254725 since it breaks tests
https://bugs.webkit.org/show_bug.cgi?id=206391
Unreviewed, revert.
* stress/allocation-sinking-puthint-control-flow-2.js: Removed.
2020-01-16 Tadeu Zagallo <tzagallo@apple.com>
Object allocation sinking is missing PutHint for allocations unreachable in the graph
https://bugs.webkit.org/show_bug.cgi?id=203799
<rdar://problem/56852162>
Reviewed by Saam Barati.
* stress/allocation-sinking-puthint-control-flow-2.js: Added.
(f.handler.construct):
(f):
2020-01-16 Robin Morisset <rmorisset@apple.com>
Teach the bytecode that arithmetic operations can return bigints
https://bugs.webkit.org/show_bug.cgi?id=205416
Reviewed by Yusuke Suzuki.
This file crashes in debug mode without the fix.
* stress/big-int-arithmetic-return-big-int.js: Added.
(fooAdd):
(fooSub):
(fooMul):
(fooDiv):
2020-01-16 Mark Lam <mark.lam@apple.com>
operationToObject() should check for a null errorMessage.
https://bugs.webkit.org/show_bug.cgi?id=206339
<rdar://problem/58449666>
Reviewed by Yusuke Suzuki.
* stress/operationToObject-should-check-for-null-errorMessage.js: Added.
2020-01-15 Caitlin Potter <caitp@igalia.com>
[JSC] Add support for public class fields
https://bugs.webkit.org/show_bug.cgi?id=174212
Reviewed by Yusuke Suzuki.
New syntax invalidates some test expectations:
"async <linefeed> MethodDefinition" is no longer an unexpected "async"
token. It is now an instance field named "async" with no initializer,
and an automatic semicolon, followed by MethodDefinition.
"get|set GeneratorMethodDefinition"'s error message has changed, due to "get"
being valid class field names.
Many class-syntax tests relating to automatic semicolon insertion are
no longer valid, as a line containing nothing but an identifier is now
a valid class element.
* stress/async-await-syntax.js:
* stress/class-fields-bytecode-cache.js: Added.
* stress/class-fields-computed-to-property-key.js: Added.
* stress/class-fields-function-name.js: Added.
* stress/class-fields-harmony.js: Added.
* stress/class-fields-proxy-define-property.js: Added.
* stress/class-fields-stress-instance.js: Added.
* stress/generator-syntax.js:
* stress/method-name.js:
* test262/config.yaml:
2020-01-15 Keith Miller <keith_miller@apple.com>
Revert bytecode checkpoints since it breaks watch
https://bugs.webkit.org/show_bug.cgi?id=206301
Unreviewed, revert.
2020-01-15 Alexey Shvayka <shvaikalesh@gmail.com>
Object.preventExtensions should throw if not successful
https://bugs.webkit.org/show_bug.cgi?id=206131
Reviewed by Ross Kirsling.
* test262/expectations.yaml: Mark 2 test cases as passing.
2020-01-14 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r254480, r254496, and r254517.
https://bugs.webkit.org/show_bug.cgi?id=206278
"It regressed JetStream2 and Speedometer2" (Requested by
saamyjoon on #webkit).
Reverted changesets:
"Throw away baseline code if there is an optimized
replacement"
https://bugs.webkit.org/show_bug.cgi?id=202503
https://trac.webkit.org/changeset/254480
"Unreviewed. Change useLLInt=0 to forceBaseline=1"
https://trac.webkit.org/changeset/254496
"Add an option that enables/disables throwing away baseline
JIT code"
https://bugs.webkit.org/show_bug.cgi?id=206244
https://trac.webkit.org/changeset/254517
2020-01-13 Saam Barati <sbarati@apple.com>
Unreviewed. Change useLLInt=0 to forceBaseline=1
* stress/racy-gc-cleanup-of-identifier-after-mutator-stops-running.js:
2020-01-13 Keith Miller <keith_miller@apple.com>
scanSideState scans too much side state
https://bugs.webkit.org/show_bug.cgi?id=206166
Reviewed by Tadeu Zagallo.
* stress/checkpoint-side-state-gc-tmps-overflow.js: Added.
(v8):
2020-01-13 Saam Barati <sbarati@apple.com>
Throw away baseline code if there is an optimized replacement
https://bugs.webkit.org/show_bug.cgi?id=202503
Reviewed by Yusuke Suzuki.
* stress/dfg-compare-eq-via-nonSpeculativeNonPeepholeCompareNullOrUndefined.js:
* stress/getter-setter-inlining-should-emit-movhint.js:
* stress/make-dictionary-repatch.js:
* stress/merging-ic-variants-should-bail-if-structures-overlap.js:
* stress/proxy-getter-stack-overflow.js:
* stress/regress-192717.js:
* stress/retry-cache-later.js:
2020-01-13 Mark Lam <mark.lam@apple.com>
Replace uses of Box<Identifier> with a new CacheableIdentifier class.
https://bugs.webkit.org/show_bug.cgi?id=205544
<rdar://problem/58041800>
Reviewed by Saam Barati.
* stress/racy-gc-cleanup-of-identifier-after-mutator-stops-running.js: Added.
2020-01-11 Keith Miller <keith_miller@apple.com>
CheckNeutered needs to claim it reads JSType in clobberize.
https://bugs.webkit.org/show_bug.cgi?id=206136
Reviewed by Yusuke Suzuki.
* stress/check-neutered-clobberize-reads-jstype.js: Added.
(foo):
2020-01-12 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Use internal object field mechanism to implement JSStringIterator
https://bugs.webkit.org/show_bug.cgi?id=206144
Reviewed by Ross Kirsling.
* stress/string-iterators.js:
* stress/tailCallForwardArguments.js:
(putFuncToPrivateName.createBuiltin):
(createTailCallForwardingFuncWith):
2020-01-10 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Flush old tables in End phase
https://bugs.webkit.org/show_bug.cgi?id=206120
<rdar://problem/58039989>
Reviewed by Mark Lam.
* stress/create-many-realms.js: Added.
(foo):
2020-01-10 Caitlin Potter <caitp@igalia.com> and Alexey Shvayka <shvaikalesh@gmail.com>
Object.keys should throw if called on module namespace object with uninitialized binding
https://bugs.webkit.org/show_bug.cgi?id=205983
Reviewed by Yusuke Suzuki.
* test262/expectations.yaml: Mark 2 test cases as passing.
2020-01-10 Saam Barati <sbarati@apple.com>
ObjectAllocationSinkingPhase doesn't model pointers to allocations in control flow properly
https://bugs.webkit.org/show_bug.cgi?id=204738
<rdar://problem/57553238>
Reviewed by Yusuke Suzuki.
* stress/allocation-sinking-must-model-allocation-pointers-properly-2.js: Added.
(assert):
(v9):
* stress/allocation-sinking-must-model-allocation-pointers-properly-3.js: Added.
(assert):
(v9):
* stress/allocation-sinking-must-model-allocation-pointers-properly-4.js: Added.
(bool):
(effects):
(escape):
(bar):
* stress/allocation-sinking-must-model-allocation-pointers-properly.js: Added.
(alwaysFalse):
(sometimesZero):
(assert):
(v9):
2020-01-08 Keith Miller <keith_miller@apple.com>
[JSC] Introduce JSArrayIterator
https://bugs.webkit.org/show_bug.cgi?id=204043
Reviewed by Yusuke Suzuki.
* stress/array-iterator-materialize-at-osr-exit.js: Added.
(shouldBe):
(test):
* stress/array-iterator-materialize-one-path.js: Added.
(shouldBe):
(test):
* stress/array-iterator-materialize.js: Added.
(shouldBe):
(test):
* stress/array-iterator-sinking.js: Added.
(shouldBe):
(test):
* stress/array-iterators-next-error-messages.js:
(catch):
* stress/array-iterators-next-with-call.js:
* stress/for-of-iteration.js: Added.
(shouldBe):
(test1):
(test2):
(test3):
* stress/typedarray-functions-with-neutered.js:
(checkProtoFunc):
2020-01-08 Saam Barati <sbarati@apple.com>
Unreviewed follow up on r254188. I accidentally included the same test
twice instead of including the two different variants.
* stress/ai-value-mod-should-result-in-constant-int-where-possible.js:
2020-01-08 Alexey Shvayka <shvaikalesh@gmail.com>
Proxy's [[OwnPropertyKeys]] is correct only in PropertyNameMode::StringsAndSymbols
https://bugs.webkit.org/show_bug.cgi?id=205772
Reviewed by Ross Kirsling.
* test262/expectations.yaml: Mark 12 test cases as passing.
2020-01-08 Alexey Shvayka <shvaikalesh@gmail.com>
RegExp.prototype[Symbol.replace] does not support named capture groups
https://bugs.webkit.org/show_bug.cgi?id=205783
Reviewed by Ross Kirsling.
* test262/expectations.yaml: Mark 6 test cases as passing.
2020-01-07 Saam Barati <sbarati@apple.com>
AI rule for ValueMod/ValueDiv produce constants with the wrong format when the result can be an int32
https://bugs.webkit.org/show_bug.cgi?id=205906
<rdar://problem/56108519>
Reviewed by Yusuke Suzuki.
* stress/ai-value-div-should-result-in-constant-int-where-possible.js: Added.
(foo.bar.f):
(foo.):
(foo):
* stress/ai-value-mod-should-result-in-constant-int-where-possible.js: Added.
(foo.bar.f):
(foo.):
(foo):
2020-01-06 Alexey Shvayka <shvaikalesh@gmail.com>
String.prototype.replace() incorrectly handles named references on RegExp w/o named groups
https://bugs.webkit.org/show_bug.cgi?id=205785
Reviewed by Ross Kirsling.
* test262/expectations.yaml: Mark 2 test cases as passing.
2020-01-06 Alexey Shvayka <shvaikalesh@gmail.com>
Proxy's [[OwnPropertyKeys]] is incorrect in DontEnumPropertiesMode::Exclude
https://bugs.webkit.org/show_bug.cgi?id=203818
Reviewed by Keith Miller.
Stress test was failing because "ownKeys" trap didn't return non-configurable
"prototype" property of Proxy's target, violating an invariant.
* stress/proxy-get-own-property-names-should-not-clear-previous-results.js:
* test262/expectations.yaml: Mark 8 test cases as passing.
2020-01-04 Alexey Shvayka <shvaikalesh@gmail.com>
JSON.parse should initialize wrapper object with [[DefineOwnProperty]]
https://bugs.webkit.org/show_bug.cgi?id=205767
Reviewed by Darin Adler.
* test262/expectations.yaml: Mark 2 test cases as passing.
2020-01-03 Keith Miller <keith_miller@apple.com>
Update test262 tests to commit 157b18d
https://bugs.webkit.org/show_bug.cgi?id=205741
Reviewed by Yusuke Suzuki.
* test262/expectations.yaml:
* test262/harness/deepEqual.js:
(assert.deepEqual):
(assert.deepEqual.format):
(deepEqual):
(compareEquality):
(compareIf):
(tryCompareStrictEquality):
(tryCompareTypeOfEquality):
(tryCompareToStringTagEquality):
(isOptional):
(compareOptionality):
(isPrimitiveEquatable):
(comparePrimitiveEquality):
(isNaNEquatable):
(compareNaNEquality):
(isObjectEquatable):
(compareObjectEquality):
(isBoxed):
(isValueOfEquatable):
(compareValueOfEquality):
(isToStringEquatable):
(compareToStringEquality):
(isArrayLikeEquatable):
(isStructurallyEquatable):
(isIterableEquatable):
(compareIteratorEquality):
(compareIterableEquality):
(cacheComparison):
(fail):
(setCache):
(getCache):
(assert.deepEqual._compare):
* test262/latest-changes-summary.txt:
* test262/test/built-ins/AggregateError: Added.
* test262/test/built-ins/AggregateError/errors-iterabletolist-failures.js: Added.
(case1.get Symbol):
(case2.get Symbol):
(case3.Symbol.iterator):
(case4.Symbol.iterator):
(case5.Symbol.iterator):
(case6.Symbol.iterator.return.get next):
(case6.Symbol.iterator):
(case7.Symbol.iterator.return.get next):
(case7.Symbol.iterator):
(case8.Symbol.iterator):
(case9.Symbol.iterator):
(case10.Symbol.iterator):
(case11.Symbol.iterator.return.next.return.get done):
(case11.Symbol.iterator):
* test262/test/built-ins/AggregateError/errors-iterabletolist.js: Added.
(case1.Symbol.iterator.return.next.return.get value):
(case1.Symbol.iterator):
* test262/test/built-ins/AggregateError/length.js: Added.
* test262/test/built-ins/AggregateError/message-method-prop-cast.js: Added.
(toString):
* test262/test/built-ins/AggregateError/message-method-prop.js: Added.
* test262/test/built-ins/AggregateError/message-tostring-abrupt-symbol.js: Added.
(case2.Symbol.toPrimitive):
(case2.toString):
(case2.valueOf):
* test262/test/built-ins/AggregateError/message-tostring-abrupt.js: Added.
(case1.Symbol.toPrimitive):
(case1.toString):
(case1.valueOf):
(case2.toString):
(case2.valueOf):
(case3.valueOf):
* test262/test/built-ins/AggregateError/message-undefined-no-prop.js: Added.
* test262/test/built-ins/AggregateError/name.js: Added.
* test262/test/built-ins/AggregateError/newtarget-proto-custom.js: Added.
(newt.new.Proxy):
(newt.new.Proxy.get if):
* test262/test/built-ins/AggregateError/newtarget-proto-fallback.js: Added.
(ctor):
(const.value.of.values.get t):
* test262/test/built-ins/AggregateError/newtarget-proto.js: Added.
* test262/test/built-ins/AggregateError/prop-desc.js: Added.
* test262/test/built-ins/AggregateError/proto.js: Added.
* test262/test/built-ins/AggregateError/prototype: Added.
* test262/test/built-ins/AggregateError/prototype/constructor.js: Added.
* test262/test/built-ins/AggregateError/prototype/errors: Added.
* test262/test/built-ins/AggregateError/prototype/errors/invoked-as-accessor.js: Added.
* test262/test/built-ins/AggregateError/prototype/errors/invoked-as-func.js: Added.
* test262/test/built-ins/AggregateError/prototype/errors/length.js: Added.
* test262/test/built-ins/AggregateError/prototype/errors/name.js: Added.
* test262/test/built-ins/AggregateError/prototype/errors/prop-desc.js: Added.
* test262/test/built-ins/AggregateError/prototype/errors/return-from-iterable-errors.js: Added.
(errors.Symbol.iterator.return.next.return.get value):
(errors.Symbol.iterator):
* test262/test/built-ins/AggregateError/prototype/errors/return-new-array-from-list.js: Added.
* test262/test/built-ins/AggregateError/prototype/errors/this-has-no-typedarrayname-internal.js: Added.
* test262/test/built-ins/AggregateError/prototype/errors/this-is-not-object.js: Added.
* test262/test/built-ins/AggregateError/prototype/message.js: Added.
* test262/test/built-ins/AggregateError/prototype/name.js: Added.
* test262/test/built-ins/AggregateError/prototype/prop-desc.js: Added.
* test262/test/built-ins/AggregateError/prototype/proto.js: Added.
* test262/test/built-ins/Array/prototype/copyWithin/coerced-values-start-change-start.js: Added.
(longDenseArray):
(shorten):
* test262/test/built-ins/Array/prototype/copyWithin/coerced-values-start-change-target.js: Added.
(longDenseArray):
(shorten):
* test262/test/built-ins/Array/prototype/flatMap/this-value-ctor-object-species-bad-throws.js:
* test262/test/built-ins/Atomics/add/bigint/nonshared-int-views.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/Atomics/and/bigint/nonshared-int-views.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/Atomics/compareExchange/bigint/nonshared-int-views.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/Atomics/exchange/bigint/nonshared-int-views.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/Atomics/or/bigint/nonshared-int-views.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/Atomics/store/bigint/nonshared-int-views.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/Atomics/sub/bigint/nonshared-int-views.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/Error/prototype/toString/invalid-receiver.js: Added.
(Symbol.forEach):
* test262/test/built-ins/Error/prototype/toString/undefined-props.js: Added.
* test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/cleanup-prevented-with-unregister.js:
(emptyCells):
(emptyCells.then):
* test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/cleanup-throws-in-callback.js: Added.
(fg.new.FinalizationGroup):
(callback):
(emptyCells):
(emptyCells.then):
* test262/test/built-ins/FinalizationGroup/prototype/register/holdings-same-as-target.js:
* test262/test/built-ins/FinalizationGroup/prototype/register/return-undefined-register-itself.js:
* test262/test/built-ins/FinalizationGroup/prototype/register/unregisterToken-same-as-holdings-and-target.js:
* test262/test/built-ins/FinalizationGroup/prototype/unregister/unregister-cleaned-up-cell.js: Added.
(fg.new.FinalizationGroup):
(emptyCells):
(emptyCells.then):
* test262/test/built-ins/FinalizationGroup/target-not-callable-throws.js:
* test262/test/built-ins/JSON/parse/reviver-array-get-prop-from-prototype.js: Added.
* test262/test/built-ins/JSON/parse/reviver-array-non-configurable-prop-create.js: Added.
* test262/test/built-ins/JSON/parse/reviver-array-non-configurable-prop-delete.js: Added.
* test262/test/built-ins/JSON/parse/reviver-call-order.js: Added.
* test262/test/built-ins/JSON/parse/reviver-object-get-prop-from-prototype.js: Added.
* test262/test/built-ins/JSON/parse/reviver-object-non-configurable-prop-create.js: Added.
* test262/test/built-ins/JSON/parse/reviver-object-non-configurable-prop-delete.js: Added.
* test262/test/built-ins/JSON/parse/reviver-wrapper.js: Added.
* test262/test/built-ins/JSON/stringify/property-order.js: Added.
* test262/test/built-ins/Object/entries/return-order.js: Added.
* test262/test/built-ins/Object/freeze/throws-when-false.js: Added.
(preventExtensions):
* test262/test/built-ins/Object/getOwnPropertyNames/proxy-invariant-absent-not-configurable-symbol-key.js: Added.
(ownKeys):
* test262/test/built-ins/Object/getOwnPropertyNames/proxy-invariant-duplicate-symbol-entry.js: Added.
(ownKeys):
* test262/test/built-ins/Object/getOwnPropertyNames/proxy-invariant-not-extensible-absent-symbol-key.js: Added.
(ownKeys):
* test262/test/built-ins/Object/getOwnPropertyNames/proxy-invariant-not-extensible-extra-symbol-key.js: Added.
(ownKeys):
* test262/test/built-ins/Object/getOwnPropertySymbols/length.js:
* test262/test/built-ins/Object/getOwnPropertySymbols/name.js:
* test262/test/built-ins/Object/getOwnPropertySymbols/object-contains-symbol-property-with-description.js:
* test262/test/built-ins/Object/getOwnPropertySymbols/object-contains-symbol-property-without-description.js:
* test262/test/built-ins/Object/getOwnPropertySymbols/proxy-invariant-absent-not-configurable-string-key.js: Added.
(ownKeys):
* test262/test/built-ins/Object/getOwnPropertySymbols/proxy-invariant-duplicate-string-entry.js: Added.
(ownKeys):
* test262/test/built-ins/Object/getOwnPropertySymbols/proxy-invariant-not-extensible-absent-string-key.js: Added.
(ownKeys):
* test262/test/built-ins/Object/getOwnPropertySymbols/proxy-invariant-not-extensible-extra-string-key.js: Added.
(ownKeys):
* test262/test/built-ins/Object/keys/proxy-non-enumerable-prop-invariant-2.js:
* test262/test/built-ins/Object/keys/proxy-non-enumerable-prop-invariant-3.js: Added.
(ownKeys):
* test262/test/built-ins/Object/keys/return-order.js: Added.
* test262/test/built-ins/Object/preventExtensions/throws-when-false.js: Added.
(preventExtensions):
* test262/test/built-ins/Object/prototype/isPrototypeOf/arg-is-proxy.js: Added.
(handler.allowProxyTraps.getPrototypeOf):
* test262/test/built-ins/Object/prototype/isPrototypeOf/builtin.js: Added.
* test262/test/built-ins/Object/prototype/isPrototypeOf/length.js: Added.
* test262/test/built-ins/Object/prototype/isPrototypeOf/name.js:
* test262/test/built-ins/Object/prototype/isPrototypeOf/null-this-and-object-arg-throws.js: Added.
* test262/test/built-ins/Object/prototype/isPrototypeOf/null-this-and-primitive-arg-returns-false.js: Added.
* test262/test/built-ins/Object/prototype/isPrototypeOf/this-value-is-in-prototype-chain-of-arg.js: Added.
(USER_FACTORY.this.getName):
(USER_FACTORY):
(this.getGrade):
(FORCEDUSER_FACTORY):
* test262/test/built-ins/Object/prototype/isPrototypeOf/undefined-this-and-object-arg-throws.js: Added.
* test262/test/built-ins/Object/prototype/isPrototypeOf/undefined-this-and-primitive-arg-returns-false.js: Added.
* test262/test/built-ins/Object/seal/throws-when-false.js: Added.
(preventExtensions):
* test262/test/built-ins/Object/values/return-order.js: Added.
* test262/test/built-ins/Proxy/has/call-in-prototype-index.js: Added.
(handler.allowProxyTraps.has):
* test262/test/built-ins/Proxy/has/call-in-prototype.js:
* test262/test/built-ins/Proxy/ownKeys/call-parameters-object-keys.js:
(handler.ownKeys):
* test262/test/built-ins/Proxy/set/call-parameters-prototype-index.js: Added.
* test262/test/built-ins/Reflect/preventExtensions/target-is-not-object-throws.js:
* test262/test/built-ins/RegExp/match-indices/indices-array-element.js:
* test262/test/built-ins/RegExp/match-indices/indices-array-matched.js:
* test262/test/built-ins/RegExp/match-indices/indices-array-non-unicode-match.js:
* test262/test/built-ins/RegExp/match-indices/indices-array-properties.js:
* test262/test/built-ins/RegExp/match-indices/indices-array-unicode-match.js:
* test262/test/built-ins/RegExp/match-indices/indices-array-unicode-property-names.js:
* test262/test/built-ins/RegExp/match-indices/indices-array-unmatched.js:
* test262/test/built-ins/RegExp/match-indices/indices-array.js:
* test262/test/built-ins/RegExp/match-indices/indices-groups-object-unmatched.js:
* test262/test/built-ins/RegExp/match-indices/indices-groups-object.js:
* test262/test/built-ins/RegExp/match-indices/indices-groups-properties.js:
* test262/test/built-ins/RegExp/match-indices/indices-property.js:
* test262/test/built-ins/String/prototype/replaceAll: Added.
* test262/test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024-0x0024.js: Added.
* test262/test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024-0x0026.js: Added.
* test262/test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024-0x0027.js: Added.
* test262/test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024-0x003C.js: Added.
* test262/test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024-0x0060.js: Added.
* test262/test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024.js: Added.
* test262/test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024N.js: Added.
* test262/test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024NN.js: Added.
* test262/test/built-ins/String/prototype/replaceAll/length.js: Added.
* test262/test/built-ins/String/prototype/replaceAll/name.js: Added.
* test262/test/built-ins/String/prototype/replaceAll/replaceAll.js: Added.
* test262/test/built-ins/String/prototype/replaceAll/replaceValue-call-abrupt.js: Added.
(custom):
* test262/test/built-ins/String/prototype/replaceAll/replaceValue-call-each-match-position.js: Added.
(t):
(replaceValue):
* test262/test/built-ins/String/prototype/replaceAll/replaceValue-call-matching-empty.js: Added.
(t):
(replaceValue):
* test262/test/built-ins/String/prototype/replaceAll/replaceValue-call-skip-no-match.js: Added.
(replaceValue):
* test262/test/built-ins/String/prototype/replaceAll/replaceValue-call-tostring-abrupt.js: Added.
(custom):
(symbol):
* test262/test/built-ins/String/prototype/replaceAll/replaceValue-fn-skip-toString.js: Added.
(replaceValue):
(value):
* test262/test/built-ins/String/prototype/replaceAll/replaceValue-tostring-abrupt.js: Added.
(thisValue.toString):
(searchValue.toString):
(replaceValue.toString):
* test262/test/built-ins/String/prototype/replaceAll/replaceValue-value-replaces-string.js: Added.
* test262/test/built-ins/String/prototype/replaceAll/replaceValue-value-tostring.js: Added.
(replaceValue.Symbol.toPrimitive):
(replaceValue.toString):
(replaceValue.valueOf):
* test262/test/built-ins/String/prototype/replaceAll/searchValue-empty-string-this-empty-string.js: Added.
* test262/test/built-ins/String/prototype/replaceAll/searchValue-empty-string.js: Added.
* test262/test/built-ins/String/prototype/replaceAll/searchValue-flags-no-g-throws.js: Added.
(poison.toString):
* test262/test/built-ins/String/prototype/replaceAll/searchValue-flags-null-undefined-throws.js: Added.
(poison.toString):
(searchValue.get flags):
* test262/test/built-ins/String/prototype/replaceAll/searchValue-flags-toString-abrupt.js: Added.
(poison.toString):
(searchValue.toString):
(searchValue.flags.toString):
* test262/test/built-ins/String/prototype/replaceAll/searchValue-get-flags-abrupt.js: Added.
(searchValue.get flags):
(poison.toString):
* test262/test/built-ins/String/prototype/replaceAll/searchValue-isRegExp-abrupt.js: Added.
(searchValue.get Symbol):
(searchValue.toString):
(poison.toString):
* test262/test/built-ins/String/prototype/replaceAll/searchValue-replace-method-abrupt.js: Added.
(poison.toString):
(searchValue.get Symbol):
(searchValue.toString):
* test262/test/built-ins/String/prototype/replaceAll/searchValue-replacer-RegExp-call-fn.js: Added.
(RE.prototype.Symbol.replace):
(RE.prototype.toString):
(RE):
(const.t):
(getFn.return.replaceValueFn):
(getFn):
* test262/test/built-ins/String/prototype/replaceAll/searchValue-replacer-RegExp-call.js: Added.
(RE.prototype.Symbol.replace):
(RE.prototype.toString):
(RE):
* test262/test/built-ins/String/prototype/replaceAll/searchValue-replacer-before-tostring.js: Added.
(value):
(poison.toString):
* test262/test/built-ins/String/prototype/replaceAll/searchValue-replacer-call-abrupt.js: Added.
(poison.toString):
(searchValue.Symbol.replace):
(searchValue.toString):
* test262/test/built-ins/String/prototype/replaceAll/searchValue-replacer-call.js: Added.
(value):
* test262/test/built-ins/String/prototype/replaceAll/searchValue-tostring-abrupt.js: Added.
(poison.toString):
(thisValue.toString):
(searchValue.toString):
* test262/test/built-ins/String/prototype/replaceAll/searchValue-tostring-regexp.js: Added.
* test262/test/built-ins/String/prototype/replaceAll/this-is-null-throws.js: Added.
* test262/test/built-ins/String/prototype/replaceAll/this-is-undefined-throws.js: Added.
* test262/test/built-ins/String/prototype/replaceAll/this-tostring-abrupt.js: Added.
(poison.toString):
(thisValue.toString):
(searchValue.toString):
* test262/test/built-ins/String/prototype/replaceAll/this-tostring.js: Added.
(thisValue.Symbol.toPrimitive):
(thisValue.toString):
(thisValue.valueOf):
* test262/test/built-ins/TypedArray/from/mapfn-is-not-callable.js:
* test262/test/built-ins/TypedArray/prototype/slice/BigInt/speciesctor-get-species-custom-ctor-length-throws.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/slice/BigInt/speciesctor-get-species-custom-ctor-length.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/slice/speciesctor-get-species-custom-ctor-length-throws.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/slice/speciesctor-get-species-custom-ctor-length.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/from/nan-conversion.js:
* test262/test/built-ins/TypedArrayConstructors/from/new-instance-from-zero.js:
* test262/test/built-ins/TypedArrayConstructors/of/BigInt/inherited.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/of/inherited.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/WeakRef/prototype-from-newtarget-abrupt.js:
* test262/test/harness/deepEqual-array.js:
* test262/test/harness/deepEqual-circular.js:
* test262/test/harness/deepEqual-deep.js:
* test262/test/harness/deepEqual-mapset.js:
* test262/test/harness/deepEqual-object.js:
* test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle-dateStyle.js: Added.
* test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle-default.js: Added.
(locales.forEach):
* test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle-timeStyle.js: Added.
* test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle.js:
* test262/test/intl402/DisplayNames: Added.
* test262/test/intl402/DisplayNames/ctor-custom-get-prototype-poison-throws.js: Added.
(custom.new.Proxy.new.Function.get if):
(custom.new.Proxy.new.Function):
* test262/test/intl402/DisplayNames/ctor-custom-prototype.js: Added.
* test262/test/intl402/DisplayNames/ctor-default-prototype.js: Added.
* test262/test/intl402/DisplayNames/instance-extensible.js: Added.
* test262/test/intl402/DisplayNames/length.js: Added.
* test262/test/intl402/DisplayNames/locales-invalid-throws.js: Added.
* test262/test/intl402/DisplayNames/locales-length-poison-throws.js: Added.
* test262/test/intl402/DisplayNames/locales-length-tolength-throws.js: Added.
(locales.length.valueOf):
(locales.length.Symbol.toPrimitive):
(locales.length.toString):
* test262/test/intl402/DisplayNames/locales-symbol-length.js: Added.
* test262/test/intl402/DisplayNames/name.js: Added.
* test262/test/intl402/DisplayNames/options-fallback-abrupt-throws.js: Added.
* test262/test/intl402/DisplayNames/options-fallback-invalid-throws.js: Added.
* test262/test/intl402/DisplayNames/options-fallback-toString-abrupt-throws.js: Added.
(options.fallback.toString):
(options.fallback.valueOf):
(options.fallback.Symbol.toPrimitive):
* test262/test/intl402/DisplayNames/options-fallback-valid.js: Added.
* test262/test/intl402/DisplayNames/options-localeMatcher-abrupt-throws.js: Added.
* test262/test/intl402/DisplayNames/options-localeMatcher-invalid-throws.js: Added.
* test262/test/intl402/DisplayNames/options-localeMatcher-toString-abrupt-throws.js: Added.
(options.localeMatcher.toString):
(options.localeMatcher.valueOf):
(options.localeMatcher.Symbol.toPrimitive):
* test262/test/intl402/DisplayNames/options-localeMatcher-valid.js: Added.
* test262/test/intl402/DisplayNames/options-null-throws.js: Added.
* test262/test/intl402/DisplayNames/options-random-properties-unchecked.js: Added.
* test262/test/intl402/DisplayNames/options-style-abrupt-throws.js: Added.
* test262/test/intl402/DisplayNames/options-style-invalid-throws.js: Added.
* test262/test/intl402/DisplayNames/options-style-toString-abrupt-throws.js: Added.
(options.style.toString):
(options.style.valueOf):
(options.style.Symbol.toPrimitive):
* test262/test/intl402/DisplayNames/options-style-valid.js: Added.
* test262/test/intl402/DisplayNames/options-type-abrupt-throws.js: Added.
* test262/test/intl402/DisplayNames/options-type-invalid-throws.js: Added.
* test262/test/intl402/DisplayNames/options-type-toString-abrupt-throws.js: Added.
(options.type.toString):
(options.type.valueOf):
(options.type.Symbol.toPrimitive):
* test262/test/intl402/DisplayNames/options-type-valid.js: Added.
* test262/test/intl402/DisplayNames/prop-desc.js: Added.
* test262/test/intl402/DisplayNames/proto-from-ctor-realm.js: Added.
* test262/test/intl402/DisplayNames/proto.js: Added.
* test262/test/intl402/DisplayNames/prototype: Added.
* test262/test/intl402/DisplayNames/prototype/Symbol.toStringTag.js: Added.
* test262/test/intl402/DisplayNames/prototype/prop-desc.js: Added.
* test262/test/intl402/DisplayNames/prototype/resolvedOptions: Added.
* test262/test/intl402/DisplayNames/prototype/resolvedOptions/default-option-values.js: Added.
* test262/test/intl402/DisplayNames/prototype/resolvedOptions/length.js: Added.
* test262/test/intl402/DisplayNames/prototype/resolvedOptions/name.js: Added.
* test262/test/intl402/DisplayNames/prototype/resolvedOptions/option-fallback.js: Added.
* test262/test/intl402/DisplayNames/prototype/resolvedOptions/option-style.js: Added.
* test262/test/intl402/DisplayNames/prototype/resolvedOptions/option-type.js: Added.
* test262/test/intl402/DisplayNames/prototype/resolvedOptions/prop-desc.js: Added.
* test262/test/intl402/DisplayNames/prototype/resolvedOptions/return-object.js: Added.
* test262/test/intl402/DisplayNames/prototype/resolvedOptions/this-not-object-throws.js: Added.
* test262/test/intl402/DisplayNames/prototype/resolvedOptions/this-object-lacks-internal-throws.js: Added.
* test262/test/intl402/DisplayNames/undefined-newtarget-throws.js: Added.
* test262/test/language/destructuring/binding/syntax/property-list-single-name-bindings.js:
* test262/test/language/expressions/addition/bigint-and-number.js:
* test262/test/language/expressions/addition/bigint-arithmetic.js:
* test262/test/language/expressions/addition/bigint-errors.js:
* test262/test/language/expressions/addition/bigint-toprimitive.js:
* test262/test/language/expressions/addition/bigint-wrapped-values.js:
* test262/test/language/expressions/arrow-function/eval-var-scope-syntax-err.js: Added.
(f.a.eval):
* test262/test/language/expressions/arrow-function/scope-param-elem-var-close.js:
* test262/test/language/expressions/arrow-function/scope-param-elem-var-open.js:
* test262/test/language/expressions/arrow-function/scope-param-rest-elem-var-close.js:
* test262/test/language/expressions/arrow-function/scope-param-rest-elem-var-open.js:
* test262/test/language/expressions/async-arrow-function/eval-var-scope-syntax-err.js: Added.
(f.async a):
(SyntaxError.then):
* test262/test/language/expressions/async-function/named-eval-var-scope-syntax-err.js: Added.
(f.async f):
(f):
* test262/test/language/expressions/async-function/nameless-eval-var-scope-syntax-err.js: Added.
* test262/test/language/expressions/async-generator/eval-var-scope-syntax-err.js: Added.
* test262/test/language/expressions/async-generator/named-eval-var-scope-syntax-err.js: Added.
(f.async g):
(f):
* test262/test/language/expressions/bitwise-and/bigint-and-number.js:
* test262/test/language/expressions/bitwise-and/bigint-errors.js:
* test262/test/language/expressions/bitwise-and/bigint-non-primitive.js:
* test262/test/language/expressions/bitwise-and/bigint-toprimitive.js:
* test262/test/language/expressions/bitwise-and/bigint-wrapped-values.js:
* test262/test/language/expressions/bitwise-not/bigint-non-primitive.js:
* test262/test/language/expressions/bitwise-or/bigint-and-number.js:
* test262/test/language/expressions/bitwise-or/bigint-errors.js:
* test262/test/language/expressions/bitwise-or/bigint-non-primitive.js:
* test262/test/language/expressions/bitwise-or/bigint-toprimitive.js:
* test262/test/language/expressions/bitwise-or/bigint-wrapped-values.js:
* test262/test/language/expressions/bitwise-xor/bigint-and-number.js:
* test262/test/language/expressions/bitwise-xor/bigint-errors.js:
* test262/test/language/expressions/bitwise-xor/bigint-non-primitive.js:
* test262/test/language/expressions/bitwise-xor/bigint-toprimitive.js:
* test262/test/language/expressions/bitwise-xor/bigint-wrapped-values.js:
* test262/test/language/expressions/class/async-gen-method-static/eval-var-scope-syntax-err.js: Added.
(C):
* test262/test/language/expressions/class/async-gen-method/eval-var-scope-syntax-err.js: Added.
(C):
* test262/test/language/expressions/class/async-method-static/eval-var-scope-syntax-err.js: Added.
(C):
(then):
* test262/test/language/expressions/class/async-method/eval-var-scope-syntax-err.js: Added.
(C):
(SyntaxError.then):
* test262/test/language/expressions/class/elements/syntax/early-errors/grammar-private-field-optional-chaining.js: Added.
(C.prototype.access):
* test262/test/language/expressions/class/gen-method-static/eval-var-scope-syntax-err.js: Added.
(C):
* test262/test/language/expressions/class/gen-method/eval-var-scope-syntax-err.js: Added.
(C):
* test262/test/language/expressions/class/method-static/eval-var-scope-syntax-err.js: Added.
(C):
* test262/test/language/expressions/class/method/eval-var-scope-syntax-err.js: Added.
(C):
* test262/test/language/expressions/coalesce/cannot-chain-head-with-logical-and.js:
* test262/test/language/expressions/coalesce/cannot-chain-head-with-logical-or.js:
* test262/test/language/expressions/coalesce/cannot-chain-tail-with-logical-and.js:
* test262/test/language/expressions/coalesce/cannot-chain-tail-with-logical-or.js:
* test262/test/language/expressions/delete/super-property.js:
(C):
* test262/test/language/expressions/division/bigint-and-number.js:
* test262/test/language/expressions/division/bigint-arithmetic.js:
* test262/test/language/expressions/division/bigint-complex-infinity.js:
* test262/test/language/expressions/division/bigint-errors.js:
* test262/test/language/expressions/division/bigint-toprimitive.js:
* test262/test/language/expressions/division/bigint-wrapped-values.js:
* test262/test/language/expressions/does-not-equals/bigint-and-bigint.js:
* test262/test/language/expressions/does-not-equals/bigint-and-boolean.js:
* test262/test/language/expressions/does-not-equals/bigint-and-incomparable-primitive.js:
* test262/test/language/expressions/does-not-equals/bigint-and-non-finite.js:
* test262/test/language/expressions/does-not-equals/bigint-and-number-extremes.js:
* test262/test/language/expressions/does-not-equals/bigint-and-number.js:
* test262/test/language/expressions/does-not-equals/bigint-and-object.js:
* test262/test/language/expressions/does-not-equals/bigint-and-string.js:
* test262/test/language/expressions/equals/bigint-and-bigint.js:
* test262/test/language/expressions/equals/bigint-and-boolean.js:
* test262/test/language/expressions/equals/bigint-and-incomparable-primitive.js:
* test262/test/language/expressions/equals/bigint-and-non-finite.js:
* test262/test/language/expressions/equals/bigint-and-number-extremes.js:
* test262/test/language/expressions/equals/bigint-and-number.js:
* test262/test/language/expressions/equals/bigint-and-object.js:
* test262/test/language/expressions/equals/bigint-and-string.js:
* test262/test/language/expressions/exponentiation/bigint-and-number.js:
* test262/test/language/expressions/exponentiation/bigint-arithmetic.js:
* test262/test/language/expressions/exponentiation/bigint-errors.js:
* test262/test/language/expressions/exponentiation/bigint-negative-exponent-throws.js:
* test262/test/language/expressions/exponentiation/bigint-toprimitive.js:
* test262/test/language/expressions/exponentiation/bigint-wrapped-values.js:
* test262/test/language/expressions/exponentiation/bigint-zero-base-zero-exponent.js:
* test262/test/language/expressions/function/eval-var-scope-syntax-err.js: Added.
(f):
* test262/test/language/expressions/function/scope-param-elem-var-close.js:
* test262/test/language/expressions/function/scope-param-elem-var-open.js:
* test262/test/language/expressions/function/scope-param-rest-elem-var-close.js:
* test262/test/language/expressions/function/scope-param-rest-elem-var-open.js:
* test262/test/language/expressions/generators/eval-var-scope-syntax-err.js: Added.
(f):
* test262/test/language/expressions/generators/scope-param-elem-var-close.js:
* test262/test/language/expressions/generators/scope-param-elem-var-open.js:
* test262/test/language/expressions/generators/scope-param-rest-elem-var-close.js:
* test262/test/language/expressions/generators/scope-param-rest-elem-var-open.js:
* test262/test/language/expressions/greater-than-or-equal/bigint-and-bigint.js:
* test262/test/language/expressions/greater-than-or-equal/bigint-and-incomparable-string.js:
* test262/test/language/expressions/greater-than-or-equal/bigint-and-non-finite.js:
* test262/test/language/expressions/greater-than-or-equal/bigint-and-number-extremes.js:
* test262/test/language/expressions/greater-than-or-equal/bigint-and-number.js:
* test262/test/language/expressions/greater-than-or-equal/bigint-and-string.js:
* test262/test/language/expressions/greater-than/bigint-and-bigint.js:
* test262/test/language/expressions/greater-than/bigint-and-boolean.js:
* test262/test/language/expressions/greater-than/bigint-and-incomparable-string.js:
* test262/test/language/expressions/greater-than/bigint-and-non-finite.js:
* test262/test/language/expressions/greater-than/bigint-and-number-extremes.js:
* test262/test/language/expressions/greater-than/bigint-and-number.js:
* test262/test/language/expressions/greater-than/bigint-and-symbol.js:
* test262/test/language/expressions/left-shift/bigint-and-number.js:
* test262/test/language/expressions/left-shift/bigint-errors.js:
* test262/test/language/expressions/left-shift/bigint-non-primitive.js:
* test262/test/language/expressions/left-shift/bigint-toprimitive.js:
* test262/test/language/expressions/left-shift/bigint-wrapped-values.js:
* test262/test/language/expressions/less-than-or-equal/bigint-and-bigint.js:
* test262/test/language/expressions/less-than-or-equal/bigint-and-incomparable-string.js:
* test262/test/language/expressions/less-than-or-equal/bigint-and-non-finite.js:
* test262/test/language/expressions/less-than-or-equal/bigint-and-number-extremes.js:
* test262/test/language/expressions/less-than-or-equal/bigint-and-number.js:
* test262/test/language/expressions/less-than-or-equal/bigint-and-string.js:
* test262/test/language/expressions/less-than/bigint-and-bigint.js:
* test262/test/language/expressions/less-than/bigint-and-boolean.js:
* test262/test/language/expressions/less-than/bigint-and-incomparable-string.js:
* test262/test/language/expressions/less-than/bigint-and-non-finite.js:
* test262/test/language/expressions/less-than/bigint-and-number-extremes.js:
* test262/test/language/expressions/less-than/bigint-and-number.js:
* test262/test/language/expressions/modulus/bigint-and-number.js:
* test262/test/language/expressions/modulus/bigint-arithmetic.js:
* test262/test/language/expressions/modulus/bigint-errors.js:
* test262/test/language/expressions/modulus/bigint-modulo-zero.js:
* test262/test/language/expressions/modulus/bigint-toprimitive.js:
* test262/test/language/expressions/modulus/bigint-wrapped-values.js:
* test262/test/language/expressions/multiplication/bigint-and-number.js:
* test262/test/language/expressions/multiplication/bigint-arithmetic.js:
* test262/test/language/expressions/multiplication/bigint-errors.js:
* test262/test/language/expressions/multiplication/bigint-toprimitive.js:
* test262/test/language/expressions/multiplication/bigint-wrapped-values.js:
* test262/test/language/expressions/object/method-definition/async-gen-meth-eval-var-scope-syntax-err.js: Added.
(obj.async method):
* test262/test/language/expressions/object/method-definition/async-meth-eval-var-scope-syntax-err.js: Added.
(obj.async method):
(SyntaxError.then):
* test262/test/language/expressions/object/method-definition/gen-meth-eval-var-scope-syntax-err.js: Added.
(obj.method.a.eval):
* test262/test/language/expressions/object/method-definition/meth-eval-var-scope-syntax-err.js: Added.
(obj.method.a.eval):
* test262/test/language/expressions/object/scope-gen-meth-param-elem-var-close.js:
* test262/test/language/expressions/object/scope-gen-meth-param-elem-var-open.js:
* test262/test/language/expressions/object/scope-gen-meth-param-rest-elem-var-close.js:
* test262/test/language/expressions/object/scope-gen-meth-param-rest-elem-var-open.js:
* test262/test/language/expressions/object/scope-meth-param-elem-var-close.js:
* test262/test/language/expressions/object/scope-meth-param-elem-var-open.js:
* test262/test/language/expressions/object/scope-meth-param-rest-elem-var-close.js:
* test262/test/language/expressions/object/scope-meth-param-rest-elem-var-open.js:
* test262/test/language/expressions/optional-chaining/iteration-statement-do.js: Added.
* test262/test/language/expressions/optional-chaining/iteration-statement-for-await-of.js: Added.
(const.obj.iterable.Symbol.asyncIterator):
(async checkAssertions):
* test262/test/language/expressions/optional-chaining/iteration-statement-for-in.js: Added.
* test262/test/language/expressions/optional-chaining/iteration-statement-for-of-type-error.js: Added.
* test262/test/language/expressions/optional-chaining/iteration-statement-for.js: Added.
(const.obj3.get a):
* test262/test/language/expressions/optional-chaining/iteration-statement-while.js: Added.
* test262/test/language/expressions/optional-chaining/new-target-optional-call.js: Added.
(const.newTargetContext):
(Base):
(Foo):
* test262/test/language/expressions/optional-chaining/optional-call-preserves-this.js: Added.
(const.a.b):
* test262/test/language/expressions/optional-chaining/super-property-optional-call.js: Added.
(Base.prototype.method):
(Base):
(Foo.prototype.method):
(Foo):
* test262/test/language/expressions/right-shift/bigint-and-number.js:
* test262/test/language/expressions/right-shift/bigint-errors.js:
* test262/test/language/expressions/right-shift/bigint-non-primitive.js:
* test262/test/language/expressions/right-shift/bigint-toprimitive.js:
* test262/test/language/expressions/right-shift/bigint-wrapped-values.js:
* test262/test/language/expressions/strict-does-not-equals/bigint-and-bigint.js:
* test262/test/language/expressions/strict-does-not-equals/bigint-and-boolean.js:
* test262/test/language/expressions/strict-does-not-equals/bigint-and-incomparable-primitive.js:
* test262/test/language/expressions/strict-does-not-equals/bigint-and-non-finite.js:
* test262/test/language/expressions/strict-does-not-equals/bigint-and-number-extremes.js:
* test262/test/language/expressions/strict-does-not-equals/bigint-and-number.js:
* test262/test/language/expressions/strict-does-not-equals/bigint-and-object.js:
* test262/test/language/expressions/strict-does-not-equals/bigint-and-string.js:
* test262/test/language/expressions/strict-equals/bigint-and-bigint.js:
* test262/test/language/expressions/strict-equals/bigint-and-boolean.js:
* test262/test/language/expressions/strict-equals/bigint-and-incomparable-primitive.js:
* test262/test/language/expressions/strict-equals/bigint-and-non-finite.js:
* test262/test/language/expressions/strict-equals/bigint-and-number-extremes.js:
* test262/test/language/expressions/strict-equals/bigint-and-number.js:
* test262/test/language/expressions/strict-equals/bigint-and-object.js:
* test262/test/language/expressions/strict-equals/bigint-and-string.js:
* test262/test/language/expressions/subtraction/bigint-and-number.js:
* test262/test/language/expressions/subtraction/bigint-arithmetic.js:
* test262/test/language/expressions/subtraction/bigint-errors.js:
* test262/test/language/expressions/subtraction/bigint-toprimitive.js:
* test262/test/language/expressions/subtraction/bigint-wrapped-values.js:
* test262/test/language/expressions/typeof/proxy.js: Added.
(assert.sameValue.typeof.new.Proxy):
(const.rp2.Proxy.revocable):
* test262/test/language/expressions/unary-minus/bigint-non-primitive.js:
* test262/test/language/expressions/unary-plus/bigint-throws.js:
* test262/test/language/expressions/unsigned-right-shift/bigint-and-number.js:
* test262/test/language/expressions/unsigned-right-shift/bigint-errors.js:
* test262/test/language/expressions/unsigned-right-shift/bigint-non-primitive.js:
* test262/test/language/expressions/unsigned-right-shift/bigint-toprimitive.js:
* test262/test/language/expressions/unsigned-right-shift/bigint-wrapped-values.js:
* test262/test/language/function-code/eval-param-env-with-computed-key.js:
* test262/test/language/function-code/eval-param-env-with-prop-initializer.js:
* test262/test/language/statements/async-function/eval-var-scope-syntax-err.js: Added.
(async f):
(SyntaxError.then):
* test262/test/language/statements/async-generator/eval-var-scope-syntax-err.js: Added.
(async f):
* test262/test/language/statements/class/async-gen-method-static/eval-var-scope-syntax-err.js: Added.
(C.async method):
(C):
* test262/test/language/statements/class/async-gen-method/eval-var-scope-syntax-err.js: Added.
(C.prototype.async method):
(C):
* test262/test/language/statements/class/async-method-static/eval-var-scope-syntax-err.js: Added.
(C.async method):
(C):
(SyntaxError.then):
* test262/test/language/statements/class/async-method/eval-var-scope-syntax-err.js: Added.
(C.prototype.async method):
(C):
(SyntaxError.then):
* test262/test/language/statements/class/definition/constructable-but-no-prototype.js:
* test262/test/language/statements/class/definition/constructor-strict-by-default.js:
* test262/test/language/statements/class/definition/getters-restricted-ids.js:
* test262/test/language/statements/class/definition/implicit-constructor.js:
* test262/test/language/statements/class/definition/invalid-extends.js:
* test262/test/language/statements/class/definition/methods-named-eval-arguments.js:
* test262/test/language/statements/class/definition/prototype-getter.js:
* test262/test/language/statements/class/definition/prototype-property.js:
* test262/test/language/statements/class/definition/setters-restricted-ids.js:
* test262/test/language/statements/class/definition/side-effects-in-extends.js:
* test262/test/language/statements/class/definition/side-effects-in-property-define.js:
* test262/test/language/statements/class/definition/this-access-restriction-2.js:
* test262/test/language/statements/class/definition/this-access-restriction.js:
* test262/test/language/statements/class/definition/this-check-ordering.js:
* test262/test/language/statements/class/elements/syntax/early-errors/grammar-private-field-optional-chaining.js: Added.
(C.prototype.access):
(C):
* test262/test/language/statements/class/gen-method-static/eval-var-scope-syntax-err.js: Added.
(C.method):
(C):
* test262/test/language/statements/class/gen-method/eval-var-scope-syntax-err.js: Added.
(C.prototype.method):
(C):
* test262/test/language/statements/class/method-static/eval-var-scope-syntax-err.js: Added.
(C.method):
(C):
* test262/test/language/statements/class/method/eval-var-scope-syntax-err.js: Added.
(C.prototype.method):
(C):
* test262/test/language/statements/class/name-binding/basic.js:
* test262/test/language/statements/class/subclass/binding.js:
* test262/test/language/statements/class/subclass/builtin-objects/RegExp/lastIndex.js:
* test262/test/language/statements/class/subclass/builtin-objects/String/length.js:
* test262/test/language/statements/class/subclass/builtin-objects/WeakMap/regular-subclassing.js:
* test262/test/language/statements/class/subclass/builtin-objects/WeakMap/super-must-be-called.js:
* test262/test/language/statements/class/subclass/builtin-objects/WeakSet/regular-subclassing.js:
* test262/test/language/statements/class/subclass/builtin-objects/WeakSet/super-must-be-called.js:
* test262/test/language/statements/class/subclass/builtins.js:
* test262/test/language/statements/class/subclass/default-constructor-spread-override.js:
* test262/test/language/statements/for-in/identifier-let-allowed-as-lefthandside-expression-not-strict.js:
* test262/test/language/statements/for-in/order-enumerable-shadowed.js: Added.
* test262/test/language/statements/for-in/order-property-added.js: Added.
* test262/test/language/statements/for-in/order-property-on-prototype.js: Added.
* test262/test/language/statements/for-in/order-simple-object.js: Added.
* test262/test/language/statements/function/eval-var-scope-syntax-err.js: Added.
(f):
* test262/test/language/statements/function/scope-param-elem-var-close.js:
* test262/test/language/statements/function/scope-param-elem-var-open.js:
* test262/test/language/statements/function/scope-param-rest-elem-var-close.js:
* test262/test/language/statements/function/scope-param-rest-elem-var-open.js:
* test262/test/language/statements/generators/eval-var-scope-syntax-err.js: Added.
(f):
* test262/test/language/statements/generators/scope-param-elem-var-close.js:
* test262/test/language/statements/generators/scope-param-elem-var-open.js:
* test262/test/language/statements/generators/scope-param-rest-elem-var-close.js:
* test262/test/language/statements/generators/scope-param-rest-elem-var-open.js:
* test262/test262-Revision.txt:
2020-01-03 Saam Barati <sbarati@apple.com>
B3::ReduceLoopStrength should not do range based iteration on a vector it's mutating
https://bugs.webkit.org/show_bug.cgi?id=205703
<rdar://problem/56459483>
Reviewed by Mark Lam.
* stress/dont-range-based-iterate-vector-that-is-mutated.js: Added.
(foo):
2020-01-03 Saam Barati <sbarati@apple.com>
AI rule for PutById can only observe transitions when it watches the condition
https://bugs.webkit.org/show_bug.cgi?id=205697
<rdar://problem/56814254>
Reviewed by Yusuke Suzuki.
* stress/only-transition-structures-for-put-by-id-in-AI-if-watchable.js: Added.
2020-01-02 Yusuke Suzuki <ysuzuki@apple.com>
REGRESSION (r253867): Six test262 tests broken
https://bugs.webkit.org/show_bug.cgi?id=205583
Reviewed by Mark Lam.
* stress/bound-function-empty-name.js: Added.
(shouldBe):
2019-12-23 Keith Miller <keith_miller@apple.com>
DFG/FTL should be able to exit to the middle of a bytecode
https://bugs.webkit.org/show_bug.cgi?id=205232
Reviewed by Saam Barati.
* stress/apply-osr-exit-should-get-length-once-exceptions-occasionally.js: Added.
(expectedArgCount):
(callee):
(test):
(let.array.get length):
* stress/apply-osr-exit-should-get-length-once.js: Added.
(expectedArgCount):
(callee):
(test):
(let.array.get length):
* stress/load-varargs-then-inlined-call-and-exit-strict.js:
(checkEqual):
* stress/recursive-tail-call-with-different-argument-count.js:
* stress/rest-varargs-osr-exit-to-checkpoint.js: Added.
(foo):
(bar):
2019-12-23 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Wasm OSR entry should capture top-most enclosing-stack
https://bugs.webkit.org/show_bug.cgi?id=205571
Reviewed by Keith Miller.
* wasm/stress/top-most-enclosing-stack.js: Added.
2019-12-21 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Improve our bound function implementation
https://bugs.webkit.org/show_bug.cgi?id=205327
Reviewed by Keith Miller.
* microbenchmarks/function-bind-no-inlining-repeat-call.js: Added.
(assert):
(test):
(test2):
(foo):
(let.start.Date.now):
* stress/bind-args.js: Added.
(shouldBe):
(test):
(test2):
2019-12-17 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] 8Bit JSRopeString can contain 16Bit string in its rope
https://bugs.webkit.org/show_bug.cgi?id=205323
Reviewed by Mark Lam.
* stress/8bit-resolve-can-encounter-16bit-string.js: Added.
(foo):
2019-12-13 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Remove JSFixedArray, and use JSImmutableButterfly instead
https://bugs.webkit.org/show_bug.cgi?id=204402
Reviewed by Mark Lam.
* stress/new-array-with-spread-cow-double.js: Added.
(shouldBe):
(shouldBeArray):
(test):
* stress/new-array-with-spread-cow-int.js: Added.
(shouldBe):
(shouldBeArray):
(test):
* stress/new-array-with-spread-cow.js: Added.
(shouldBe):
(shouldBeArray):
(test):
2019-12-13 Mark Lam <mark.lam@apple.com>
Fix bad exception assertion in ExceptionHelpers.cpp's createError().
https://bugs.webkit.org/show_bug.cgi?id=205230
<rdar://problem/57875688>
Reviewed by Yusuke Suzuki.
* stress/test-exception-assert-in-ExceptionHelpers-createError.js: Added.
2019-12-12 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Wasm init-expr should reject mutable globals
https://bugs.webkit.org/show_bug.cgi?id=205191
Reviewed by Mark Lam.
* wasm/js-api/global-error.js:
(assert.throws.new.WebAssembly.Module.bin):
(new.WebAssembly.Module): Deleted.
(assert.throws): Deleted.
(new.Number): Deleted.
2019-12-12 Mark Lam <mark.lam@apple.com>
Fix missing exception in JSValue::toWTFStringSlowCase().
https://bugs.webkit.org/show_bug.cgi?id=205176
<rdar://problem/57871899>
Reviewed by Yusuke Suzuki.
* stress/missing-exception-check-in-JSValue-toWTFStringSlowCase.js: Added.
2019-12-12 Mark Lam <mark.lam@apple.com>
Fix missing exception check in JSON Stringifier's gap function.
https://bugs.webkit.org/show_bug.cgi?id=205171
<rdar://problem/57871842>
Reviewed by Yusuke Suzuki.
* stress/missing-exception-check-in-json-stringifier-gap.js: Added.
2019-12-12 Mark Lam <mark.lam@apple.com>
DFG and FTL expects String.prototype to not qualify for StringObjectUse.
https://bugs.webkit.org/show_bug.cgi?id=205147
<rdar://problem/57748888>
Reviewed by Saam Barati.
* stress/ftl-expects-string-prototype-to-not-be-StringObjectUse.js: Added.
2019-12-11 Keith Miller <keith_miller@apple.com>
Add test for osr exiting with interpreter on the stack
https://bugs.webkit.org/show_bug.cgi?id=205124
Reviewed by Mark Lam.
I forgot to add this test before.
* stress/osr-exit-with-interpreter-on-stack.js: Added.
(foo):
2019-12-10 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Adhocly created CallLinkInfo in GetterSetterAccess should be owned by GCAwareJITStubRoutine
https://bugs.webkit.org/show_bug.cgi?id=204876
Reviewed by Saam Barati.
* stress/code-emitted-by-getter-setter-access-case-should-hold-ownership-of-call-link-info.js: Added.
(func):
2019-12-09 Tadeu Zagallo <tzagallo@apple.com>
REGRESSION(r253140): WebAssembly validation should check for unmatched else before calling addElse/addElseToUnreachable
https://bugs.webkit.org/show_bug.cgi?id=205022
<rdar://problem/57748159>
Reviewed by Saam Barati.
* wasm/regress/unmatched-else.js: Added.
(catch):
2019-12-08 Tadeu Zagallo <tzagallo@apple.com>
[WebAssembly] Fix LLIntGenerator's checkConsistency contract
https://bugs.webkit.org/show_bug.cgi?id=204998
<rdar://problem/57733405>
Reviewed by Mark Lam.
* wasm/regress/stack-consistency.js: Added.
2019-12-08 Caio Lima <ticaiolima@gmail.com>
[ARMv7] Skip flaky stress tests
https://bugs.webkit.org/show_bug.cgi?id=204996
Unreviewed gardening.
* stress/incremental-marking-should-not-dead-lock-in-new-property-transition.js:
* stress/sampling-profiler-should-not-sample-beyond-stack-bounds.js:
2019-12-07 Mark Lam <mark.lam@apple.com>
Object.prototype.isPrototypeOf() should check if the passed in value is a non-object first.
https://bugs.webkit.org/show_bug.cgi?id=204971
<rdar://problem/57730080>
Reviewed by Saam Barati.
* stress/object-prototype-isPrototypeOf-should-check-for-non-object-first.js: Added.
2019-12-06 Mark Lam <mark.lam@apple.com>
The compiler thread should not adjust Identifier refCounts.
https://bugs.webkit.org/show_bug.cgi?id=204919
<rdar://problem/57426861>
Reviewed by Saam Barati.
* stress/compiler-thread-should-not-ref-identifiers.js: Added.
2019-12-04 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] AI should convert IsCellWithType to constant when Structure set is finite
https://bugs.webkit.org/show_bug.cgi?id=204141
Reviewed by Mark Lam.
* stress/generator-cell-with-type.js: Added.
(shouldBe):
(shouldThrow):
(test):
(i.shouldThrow):
* stress/is-cell-with-type-should-check-non-cell-cases.js: Added.
(getter):
(foo):
2019-12-04 Mark Lam <mark.lam@apple.com>
Fix missing exception check in ArrayPrototype's fastJoin().
https://bugs.webkit.org/show_bug.cgi?id=204868
<rdar://problem/57516684>
Reviewed by Saam Barati.
* stress/missing-exception-check-in-array-prototype-fastJoin.js: Added.
2019-12-04 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, rolling out r252416, vimeo does not work
https://bugs.webkit.org/show_bug.cgi?id=204141
* stress/generator-cell-with-type.js: Removed.
2019-12-04 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] JSWebAssemblyGlobal creation should have exception check
https://bugs.webkit.org/show_bug.cgi?id=204857
<rdar://problem/57618579>
Reviewed by Mark Lam.
* wasm/regress/wasm-global-creation-can-throw-an-exception.js: Added.
2019-12-04 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Update Wasm spec-tests
https://bugs.webkit.org/show_bug.cgi?id=204844
Reviewed by Keith Miller.
To get broader coverage, we update Wasm spec-tests to the latest one[1].
[1]: 3e5fdc6b51ca2cde537bb8ecb1ba25c1ee366833
* wasm.yaml:
* wasm/spec-tests/address.wast.js:
* wasm/spec-tests/align.wast.js:
* wasm/spec-tests/binary-leb128.wast.js: Added.
* wasm/spec-tests/binary.wast.js:
* wasm/spec-tests/block.wast.js:
* wasm/spec-tests/br.wast.js:
* wasm/spec-tests/br_if.wast.js:
* wasm/spec-tests/br_table.wast.js:
* wasm/spec-tests/call_indirect.wast.js:
* wasm/spec-tests/const.wast.js:
* wasm/spec-tests/conversions.wast.js:
* wasm/spec-tests/custom.wast.js: Added.
* wasm/spec-tests/data.wast.js: Added.
* wasm/spec-tests/elem.wast.js: Added.
* wasm/spec-tests/endianness.wast.js:
* wasm/spec-tests/f32.wast.js:
* wasm/spec-tests/f32_bitwise.wast.js:
* wasm/spec-tests/f32_cmp.wast.js:
* wasm/spec-tests/f64.wast.js:
* wasm/spec-tests/f64_bitwise.wast.js:
* wasm/spec-tests/f64_cmp.wast.js:
* wasm/spec-tests/fac.wast.js:
* wasm/spec-tests/float_exprs.wast.js:
* wasm/spec-tests/float_literals.wast.js:
* wasm/spec-tests/float_memory.wast.js:
* wasm/spec-tests/func.wast.js:
* wasm/spec-tests/func_ptrs.wast.js:
* wasm/spec-tests/i32.wast.js:
* wasm/spec-tests/i64.wast.js:
* wasm/spec-tests/imports.wast.js:
* wasm/spec-tests/int_exprs.wast.js:
* wasm/spec-tests/int_literals.wast.js:
* wasm/spec-tests/labels.wast.js:
* wasm/spec-tests/left-to-right.wast.js:
* wasm/spec-tests/load.wast.js: Added.
* wasm/spec-tests/local_get.wast.js: Added.
* wasm/spec-tests/local_set.wast.js: Added.
* wasm/spec-tests/local_tee.wast.js: Added.
* wasm/spec-tests/loop.wast.js:
* wasm/spec-tests/memory_grow.wast.js: Added.
* wasm/spec-tests/memory_size.wast.js: Added.
* wasm/spec-tests/memory_trap.wast.js:
* wasm/spec-tests/names.wast.js:
* wasm/spec-tests/nop.wast.js:
* wasm/spec-tests/return.wast.js:
* wasm/spec-tests/select.wast.js:
* wasm/spec-tests/stack.wast.js:
* wasm/spec-tests/start.wast.js:
* wasm/spec-tests/store.wast.js: Added.
* wasm/spec-tests/switch.wast.js:
* wasm/spec-tests/traps.wast.js:
* wasm/spec-tests/type.wast.js:
* wasm/spec-tests/unreachable.wast.js:
* wasm/spec-tests/unreached-invalid.wast.js:
* wasm/spec-tests/unwind.wast.js:
* wasm/spec-tests/utf8-custom-section-id.wast.js:
* wasm/spec-tests/utf8-import-field.wast.js:
* wasm/spec-tests/utf8-import-module.wast.js:
* wasm/spec-tests/utf8-invalid-encoding.wast.js: Added.
2019-12-03 Yusuke Suzuki <ysuzuki@apple.com>
Adopt the new WebAssembly.Global system
https://bugs.webkit.org/show_bug.cgi?id=186552
Reviewed by Keith Miller.
1. Update spec-harness to accept newer tests. And we update several tests that does not work with the old harness.
2. Add WebAssembly.Global tests.
* wasm/js-api/global-error.js:
(assert.throws.new.WebAssembly.Module.bin):
(new.WebAssembly.Module):
(assert.throws):
* wasm/js-api/global-external-init-from-import.js:
* wasm/js-api/globals-export.js:
* wasm/modules/js-wasm-global-namespace.js:
(assert.throws):
* wasm/modules/js-wasm-global.js:
(assert.throws):
* wasm/modules/wasm-import-wasm-export-i64-error.js:
* wasm/references/anyref_globals.js:
* wasm/references/func_ref.js:
(assert.eq.instance.exports.fix):
* wasm/spec-harness.js:
(getGlobal):
(let.console.log):
* wasm/spec-harness/sync_index.js: Renamed from JSTests/wasm/spec-harness/index.js.
(reinitializeRegistry.let.handler.get return):
(module):
* wasm/spec-tests/call.wast.js:
* wasm/spec-tests/exports.wast.js:
* wasm/spec-tests/globals.wast.js:
* wasm/spec-tests/if.wast.js:
* wasm/spec-tests/imports.wast.js:
* wasm/spec-tests/linking.wast.js:
* wasm/spec-tests/memory.wast.js:
* wasm/stress/immutable-globals.js: Added.
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.i.assert.eq.instance.exports.getI32):
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.i.assert.eq):
* wasm/stress/mutable-globals-cross.js: Added.
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.const.instance1):
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.const.instance2):
* wasm/stress/mutable-globals.js: Added.
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.i.instance.exports.setI32AsI64):
2019-12-03 Christopher Reid <chris.reid@sony.com>
Regular expression hangs in Safari only
https://bugs.webkit.org/show_bug.cgi?id=202882
<rdar://problem/56236654>
Reviewed by Yusuke Suzuki.
* stress/regress-202882.js: Added.
2019-12-02 Saam Barati <sbarati@apple.com>
PropertySlot should not have Customs have a PropertyOffset of zero
https://bugs.webkit.org/show_bug.cgi?id=204566
<rdar://problem/57466781>
Reviewed by Keith Miller.
* stress/cacheable-custom-accessor-should-not-have-property-offset.js: Added.
2019-12-02 Mark Lam <mark.lam@apple.com>
mozilla-tests.yaml/js1_5/Array/regress-101964.js is frequently failing on JSC EWS bots.
https://bugs.webkit.org/show_bug.cgi?id=200789
<rdar://problem/54361916>
Reviewed by Keith Miller.
The prevailing theory is that this test is being pre-empted and not getting the
CPU time it needs to complete. As a result, the wall clock time period for
running the test exceeds the expected time. This patch tests this theory by
changing the time measurement to use CPU time instead.
* mozilla/js1_5/Array/regress-101964.js:
2019-12-01 Caio Lima <ticaiolima@gmail.com>
[JSC][MIPS] CallFrame is being clobbered on InternalFunction execution
https://bugs.webkit.org/show_bug.cgi?id=203739
Reviewed by Saam Barati.
* stress/has-instance-exception-check.js:
* stress/regress-176485.js:
2019-11-30 Ross Kirsling <ross.kirsling@sony.com>
test262-runner should dump YAML with correct encoding
https://bugs.webkit.org/show_bug.cgi?id=204493
Reviewed by Saam Barati.
* test262/expectations.yaml:
Fix double-encoding of test failure output.
2019-11-23 Ross Kirsling <ross.kirsling@sony.com>
[JSC] GetSubstitution is performed incorrectly via RegExp.prototype[@@replace]
https://bugs.webkit.org/show_bug.cgi?id=204490
Reviewed by Mark Lam.
* stress/replace-indexed-backreferences.js: Added.
* test262/expectations.yaml: Mark four test cases as passing.
2019-11-22 Tadeu Zagallo <tzagallo@apple.com>
[WebAssembly] Improve Wasm::LLIntGenerator
https://bugs.webkit.org/show_bug.cgi?id=204092
Reviewed by Saam Barati.
* wasm/stress/set-local-enclosed-stack.js: Added.
(assert.eq.instance.exports.foo):
(assert.eq):
2019-11-22 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] DFG terminal's liveness should respect caller's opcodeID
https://bugs.webkit.org/show_bug.cgi?id=204317
Reviewed by Saam Barati.
* stress/call-var-args-phantom-arguments-handler-strict.js: Added.
(shouldBe):
(inlined):
(test):
* stress/call-var-args-phantom-arguments-handler.js: Added.
(shouldBe):
(inlined):
(test):
* stress/call-var-args-phantom-arguments-strict.js: Added.
(shouldBe):
(inlined):
(test):
* stress/call-var-args-phantom-arguments.js: Added.
(shouldBe):
(inlined):
(test):
* stress/derived-class-construct-varargs.js: Added.
(shouldThrow):
(B):
* stress/tail-call-var-args-phantom-arguments-handler-strict.js: Added.
(shouldBe):
(inlined):
(test):
* stress/tail-call-var-args-phantom-arguments-handler.js: Added.
(shouldBe):
(inlined):
(test):
* stress/tail-call-var-args-phantom-arguments-strict.js: Added.
(shouldBe):
(inlined):
(test):
* stress/tail-call-var-args-phantom-arguments.js: Added.
(shouldBe):
(inlined):
(test):
2019-11-22 Guillaume Emont <guijemont@igalia.com>
Skip tests that fail on arm and mips devices
https://bugs.webkit.org/show_bug.cgi?id=204522
Unreviewed gardening.
* stress/generator-cell-with-type.js:
* stress/stack-overflow-in-yarr-byteCompile.js:
* stress/toctou-having-a-bad-time-new-array.js:
2019-11-21 Mark Lam <mark.lam@apple.com>
replaceUsingStringSearch() should not use CachedCall with host functions.
https://bugs.webkit.org/show_bug.cgi?id=204494
<rdar://problem/57421078>
Reviewed by Ross Kirsling.
* stress/string-replaceAll-2.js:
2019-11-21 Ross Kirsling <ross.kirsling@sony.com>
Unreviewed test262 gardening following r252680.
* test262/expectations.yaml:
Mark eight test cases as passing.
2019-11-21 Saam Barati <sbarati@apple.com>
GetByStatus should not say it took the slow path for multiple identifiers and should have a way to indicate if the StructureStubInfo it saw took the slow path
https://bugs.webkit.org/show_bug.cgi?id=204435
Reviewed by Tadeu Zagallo.
* microbenchmarks/get-by-val-polymorphic-ic-1.js: Added.
(assert):
(test1.foo):
(test1):
* microbenchmarks/get-by-val-polymorphic-ic-2.js: Added.
(assert):
(test2.foo):
(test2):
* microbenchmarks/get-by-val-polymorphic-ic-3.js: Added.
(assert):
(test3.foo):
(test3.args):
(test3):
* microbenchmarks/get-by-val-polymorphic-ic-4.js: Added.
(assert):
(test4.foo):
(test4.capture):
(test4.args):
(test4):
* microbenchmarks/get-by-val-polymorphic-ic-5.js: Added.
(assert):
(test5.foo):
(test5.capture):
(test5.args):
(test5):
* microbenchmarks/get-by-val-polymorphic-ic-6.js: Added.
(assert):
(test6.foo):
(test6.capture):
(test6.args):
(test6):
* microbenchmarks/get-by-val-polymorphic-ic-7.js: Added.
(assert):
(test7.foo):
(test7):
* microbenchmarks/get-by-val-polymorphic-ic-8.js: Added.
(assert):
(test7.foo):
(test7):
* microbenchmarks/get-by-val-polymorphic-ic-9.js: Added.
(assert):
(test7.foo):
(test7):
2019-11-21 Mark Lam <mark.lam@apple.com>
Fix broken String.prototype.replace() and replaceAll().
https://bugs.webkit.org/show_bug.cgi?id=204479
<rdar://problem/57354854>
Reviewed by Ross Kirsling and Yusuke Suzuki.
* ChakraCore.yaml:
* ChakraCore/test/Strings/replace.baseline-jsc: Removed.
- We no longer need this because we've fixed the spec compliance issue in replace().
* stress/string-replaceAll-2.js: Added.
2019-11-21 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, rolling in again, regression is not caused by it
https://bugs.webkit.org/show_bug.cgi?id=202471
* stress/string-replaceall.js: Added.
(shouldBe):
(shouldThrowTypeError):
(shouldBe.string_appeared_here.replaceAll.Symbol.match):
2019-11-21 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r252683 and r252721.
https://bugs.webkit.org/show_bug.cgi?id=204475
13% regression in JetStream2/prepack-wtb (Requested by
yusukesuzuki on #webkit).
Reverted changesets:
"Implement String.prototype.replaceAll"
https://bugs.webkit.org/show_bug.cgi?id=202471
https://trac.webkit.org/changeset/252683
"Unreviewed, address Darin's feedback on r252683."
https://trac.webkit.org/changeset/252721
2019-11-20 Ross Kirsling <ross.kirsling@sony.com>
Unreviewed, address Darin's feedback on r252683.
* stress/string-replaceall.js:
2019-11-20 Caio Lima <ticaiolima@gmail.com>
[JSC] OSR exit to LLInt is broken on MIPS
https://bugs.webkit.org/show_bug.cgi?id=203737
Reviewed by Yusuke Suzuki.
Unskipping broken tests due to OSR to LLInt bug.
* microbenchmarks/call-spread-call.js:
* microbenchmarks/throw.js:
* stress/allocation-sinking-hints-are-valid-ssa-2.js:
* stress/allocation-sinking-hints-are-valid-ssa.js:
* stress/arith-profile-for-negate-can-see-non-number-due-to-dfg-osr-exit-profiling.js:
* stress/arrowfunction-lexical-bind-supercall-4.js:
* stress/arrowfunction-tdz-3.js:
* stress/function-constructor-semantics.js:
* stress/global-import-function-should-return-a-promise-when-clearing-exceptions.js:
* stress/stress-cleared-calllinkinfo.js:
* stress/typedarray-configure-index.js:
* stress/v8-deltablue-strict.js:
2019-11-20 Mark Lam <mark.lam@apple.com>
Flaky JSC test: stress/stack-overflow-in-yarr-byteCompile.js.dfg-eager.
https://bugs.webkit.org/show_bug.cgi?id=204405
Reviewed by Alexey Proskuryakov.
The test was timing out because it's slow. We don't really need to run this test
on all configurations. So, we'll change it to on run with the default
configuration. Also declare the test as "//@ slow!".
* stress/stack-overflow-in-yarr-byteCompile.js:
2019-11-19 Ross Kirsling <ross.kirsling@sony.com>
Implement String.prototype.replaceAll
https://bugs.webkit.org/show_bug.cgi?id=202471
Reviewed by Yusuke Suzuki.
* stress/string-replaceall.js: Added.
2019-11-19 Robin Morisset <rmorisset@apple.com>
[ESNext][BigInt] Add support for op_inc
https://bugs.webkit.org/show_bug.cgi?id=193240
Reviewed by Yusuke Suzuki.
Some parts of these tests are inspired by tests in a WIP patch by Caio Lima.
Thanks to him for allowing their reuse.
* stress/inc-osr-exit-from-big-int.js: Added.
(let.assert.sameValue):
(postInc):
(preInc):
(postDec):
(preDec):
* stress/inc-osr-exit-to-big-int.js: Added.
(let.assert.sameValue):
(postInc):
(preInc):
(postDec):
(preDec):
(o.valueOf):
2019-11-19 Saam Barati <sbarati@apple.com>
Remove runNullishAwareOperatorsEnabled
Rubber-stamped by Keith Miller.
* stress/nullish-coalescing.js:
* stress/optional-chaining.js:
* stress/tail-call-recognize.js:
2019-11-18 Keith Miller <keith_miller@apple.com>
Enable Nullish operators by default
https://bugs.webkit.org/show_bug.cgi?id=204308
Reviewed by Yusuke Suzuki.
Remove feature -> option map.
* test262/config.yaml:
2019-11-18 Caio Lima <ticaiolima@gmail.com>
Skipping wasm-error-message-cross-threads.js on architectures without WASM support
https://bugs.webkit.org/show_bug.cgi?id=204293
Unreviewed gardening.
* stress/ensure-code-block-is-not-precise-allocation.js:
Skipping this test until we fix OSR to LLInt on MIPS.
* stress/wasm-error-message-cross-threads.js:
2019-11-15 Ross Kirsling <ross.kirsling@sony.com>
[JSC] Anonymous built-in functions should have empty string for a name
https://bugs.webkit.org/show_bug.cgi?id=204214
Reviewed by Yusuke Suzuki.
* test262/expectations.yaml:
Mark 20 test cases as passing.
* stress/builtin-function-name.js:
(shouldThrow):
* stress/private-name-as-anonymous-builtin.js:
Fix tests which are no longer accurate.
2019-11-15 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] DFG strength reduction should define "groups" for RegExp constant-folded result
https://bugs.webkit.org/show_bug.cgi?id=204264
Reviewed by Michael Saboff.
* stress/dfg-strength-reduction-for-regexp-should-include-groups-property.js: Added.
(shouldBe):
(test):
2019-11-15 Yusuke Suzuki <ysuzuki@apple.com>
Wasm error message should be cross-thread-copied
https://bugs.webkit.org/show_bug.cgi?id=204143
Reviewed by Mark Lam.
* stress/wasm-error-message-cross-threads.js: Added.
(f):
2019-11-14 Alexey Shvayka <shvaikalesh@gmail.com>
Use toLength() and getIndexQuickly() in JSON.stringify
https://bugs.webkit.org/show_bug.cgi?id=204122
Reviewed by Yusuke Suzuki.
* microbenchmarks/json-stringify-array-replacer.js: Added.
* microbenchmarks/json-stringify-empty-array.js: Added.
2019-11-14 Caio Lima <ticaiolima@gmail.com>
Support or16(TrustedImm32, AbsoluteAddress) in the MIPS MacroAssembler
https://bugs.webkit.org/show_bug.cgi?id=204126
Reviewed by Mark Lam.
Decreasing the number of iterations of test to avoid timeout into slow
ports.
* stress/regress-57020338.js:
2019-11-13 Robin Morisset <rmorisset@apple.com>
Split ArithProfile into a Unary and a Binary version
https://bugs.webkit.org/show_bug.cgi?id=202832
<rdar://problem/56266847>
Reviewed by Keith Miller.
The new test (kindly provided by Mark Lam) catches the metadata corruption that used to happen in the previous version of this patch.
* stress/regress-57020338.js: Added.
2019-11-13 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] AI should convert IsCellWithType to constant when Structure set is finite
https://bugs.webkit.org/show_bug.cgi?id=204141
Reviewed by Saam Barati.
* stress/generator-cell-with-type.js: Added.
(shouldBe):
(shouldThrow):
(test):
(i.shouldThrow):
2019-11-12 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] JSC GC relies on CodeBlock is not PreciseAllocation
https://bugs.webkit.org/show_bug.cgi?id=204124
Reviewed by Saam Barati.
* stress/ensure-code-block-is-not-precise-allocation.js: Added.
(foo):
(get for):
2019-11-12 Alexey Shvayka <shvaikalesh@gmail.com>
RegExpBuiltinExec should create "groups" property unconditionally
https://bugs.webkit.org/show_bug.cgi?id=204067
Reviewed by Ross Kirsling.
* test262/expectations.yaml: Mark 4 test cases as passing.
2019-11-11 Ross Kirsling <ross.kirsling@sony.com>
UTC offset for Samoa is miscalculated when !HAVE(TIMEGM)
https://bugs.webkit.org/show_bug.cgi?id=204032
Reviewed by Yusuke Suzuki.
* complex.yaml:
* complex/timezone-offset-apia.js: Added.
Add test to verify Date.prototype.getTimezoneOffset for TZ=Pacific/Apia.
2019-11-08 Guillaume Emont <guijemont@igalia.com>
Temporarily skip another broken test on MIPS due to OSR exit to LLInt
https://bugs.webkit.org/show_bug.cgi?id=204003
Unreviewed gardening.
* stress/global-import-function-should-return-a-promise-when-clearing-exceptions.js:
2019-11-07 Mark Lam <mark.lam@apple.com>
Add a stack overflow check in Yarr::ByteCompiler::emitDisjunction().
https://bugs.webkit.org/show_bug.cgi?id=203936
<rdar://problem/56624724>
Reviewed by Saam Barati.
This issue originally manifested as incorrect-exception-assertion-in-operationRegExpExecNonGlobalOrSticky.js
failing on iOS devices due to its smaller stack. We adapted the original test
here using $vm.callWithStackSize() to reproduce the issue on x86_64 though it
has a much larger physical stack to work with. This new test will crash while
stepping on the guard page beyond the end of the stack if the fix is not applied.
* stress/stack-overflow-in-yarr-byteCompile.js: Added.
2019-11-07 Tuomas Karkkainen <tuomas.webkit@apple.com>
didPassSomeTestsSilenty is misspelled in standalone-pre.js
https://bugs.webkit.org/show_bug.cgi?id=203948
Reviewed by Yusuke Suzuki.
* stress/resources/standalone-pre.js:
2019-11-07 Ross Kirsling <ross.kirsling@sony.com>
Unskip test262 tests for async-iteration
https://bugs.webkit.org/show_bug.cgi?id=203921
Reviewed by Keith Miller.
This should have been done two years ago, it seems.
* test262/config.yaml:
* test262/expectations.yaml:
2019-11-07 Alexey Shvayka <shvaikalesh@gmail.com>
[[HasProperty]] result of Proxy in prototype chain is ignored
https://bugs.webkit.org/show_bug.cgi?id=203560
Reviewed by Ross Kirsling.
* stress/proxy-get-prototype-of.js: Correct Proxy "has" trap test.
* test262/expectations.yaml: Mark 6 test cases as passing.
2019-11-06 Mark Lam <mark.lam@apple.com>
JSGlobalObject::fireWatchpointAndMakeAllArrayStructuresSlowPut() should fire its watchpoint as the last step.
https://bugs.webkit.org/show_bug.cgi?id=203867
<rdar://problem/56813514>
Reviewed by Saam Barati.
* stress/racy-slow-put-cloned-arguments-when-having-a-bad-time.js: Added.
2019-11-06 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r251940.
https://bugs.webkit.org/show_bug.cgi?id=203920
"it introduced test262 failures" (Requested by rkirsling on
#webkit).
Reverted changeset:
"[[HasProperty]] result of Proxy in prototype chain is
ignored"
https://bugs.webkit.org/show_bug.cgi?id=203560
https://trac.webkit.org/changeset/251940
2019-11-04 Saam Barati <sbarati@apple.com>
Don't use memmove/memcpy/memset for memory that can be scanned concurrently
https://bugs.webkit.org/show_bug.cgi?id=203228
<rdar://problem/56401852>
Reviewed by Robin Morisset.
* stress/torn-js-value-concurrent-collector.js: Added.
(foo):
2019-11-03 Tadeu Zagallo <tzagallo@apple.com>
LLIntGenerator should not allocate temporaries in between variables
https://bugs.webkit.org/show_bug.cgi?id=203787
Reviewed by Yusuke Suzuki.
* wasm/stress/local-ref.js: Added.
2019-11-02 Alexey Proskuryakov <ap@apple.com>
Revert http://trac.webkit.org/r251875
Don't use memmove/memcpy/memset for memory that can be scanned concurrently
This is suspected to have broken performance tests on iOS.
* stress/torn-js-value-concurrent-collector.js: Removed.
2019-11-01 Alexey Shvayka <shvaikalesh@gmail.com>
[[HasProperty]] result of Proxy in prototype chain is ignored
https://bugs.webkit.org/show_bug.cgi?id=203560
Reviewed by Ross Kirsling.
* stress/proxy-get-prototype-of.js: Correct Proxy "has" trap test.
* test262/expectations.yaml: Mark 6 test cases as passing.
2019-11-01 Caio Lima <ticaiolima@gmail.com>
[JSC][MIPS] Skip tests failing in RELEASE_ASSERT_NOT_REACHED() at CallFrame.cpp:81
https://bugs.webkit.org/show_bug.cgi?id=203738
Unreviewed gardening.
* stress/allocation-sinking-hints-are-valid-ssa.js:
* stress/has-instance-exception-check.js:
* stress/regress-176485.js:
2019-10-31 Caio Lima <ticaiolima@gmail.com>
Temporary skip broken tests on MIPS that is broken due to OSR exit to LLInt
https://bugs.webkit.org/show_bug.cgi?id=203710
Unreviewed gardening.
* microbenchmarks/call-spread-call.js:
* microbenchmarks/throw.js:
* stress/allocation-sinking-hints-are-valid-ssa-2.js:
* stress/arith-profile-for-negate-can-see-non-number-due-to-dfg-osr-exit-profiling.js:
* stress/arrowfunction-lexical-bind-supercall-4.js:
* stress/arrowfunction-tdz-3.js:
* stress/function-constructor-semantics.js:
* stress/stress-cleared-calllinkinfo.js:
* stress/typedarray-configure-index.js:
* stress/v8-deltablue-strict.js:
2019-10-31 Saam Barati <sbarati@apple.com>
Don't use memmove/memcpy/memset for memory that can be scanned concurrently
https://bugs.webkit.org/show_bug.cgi?id=203228
<rdar://problem/56401852>
Reviewed by Robin Morisset.
* stress/torn-js-value-concurrent-collector.js: Added.
(foo):
2019-10-30 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Date functions should have intrinsic
https://bugs.webkit.org/show_bug.cgi?id=202187
Reviewed by Keith Miller.
* stress/date-cse.js: Added.
(shouldBe):
(test):
(test2):
(test3):
* stress/date-get-date-jit.js: Added.
(shouldBe):
(test):
* stress/date-get-day-jit.js: Added.
(shouldBe):
(test):
* stress/date-get-full-year-jit.js: Added.
(shouldBe):
(test):
* stress/date-get-hours-jit.js: Added.
(shouldBe):
(test):
* stress/date-get-milliseconds-jit.js: Added.
(shouldBe):
(test):
* stress/date-get-minutes-jit.js: Added.
(shouldBe):
(test):
* stress/date-get-month-jit.js: Added.
(shouldBe):
(test):
* stress/date-get-seconds-jit.js: Added.
(shouldBe):
(test):
* stress/date-get-time-jit.js: Added.
(shouldBe):
(test):
* stress/date-get-timezone-offset-jit.js: Added.
(shouldBe):
(test):
* stress/date-get-utc-date-jit.js: Added.
(shouldBe):
(test):
* stress/date-get-utc-day-jit.js: Added.
(shouldBe):
(test):
* stress/date-get-utc-full-year-jit.js: Added.
(shouldBe):
(test):
* stress/date-get-utc-hours-jit.js: Added.
(shouldBe):
(test):
* stress/date-get-utc-milliseconds-jit.js: Added.
(shouldBe):
(test):
* stress/date-get-utc-minutes-jit.js: Added.
(shouldBe):
(test):
* stress/date-get-utc-month-jit.js: Added.
(shouldBe):
(test):
* stress/date-get-utc-seconds-jit.js: Added.
(shouldBe):
(test):
* stress/date-get-year-jit.js: Added.
(shouldBe):
(test):
* stress/date-value-of-jit.js: Added.
(shouldBe):
(test):
2019-10-30 Guillaume Emont <guijemont@igalia.com>
Temporarily skip ChakraCore/test/Math/max.js on arm and mips
Unreviewed gardening.
* ChakraCore.yaml:
2019-10-30 Ross Kirsling <ross.kirsling@sony.com>
Intl.DateTimeFormat returns resolvedOptions in the wrong order
https://bugs.webkit.org/show_bug.cgi?id=203297
Reviewed by Yusuke Suzuki.
* test262/expectations.yaml:
Mark two test cases as passing.
2019-10-30 Tadeu Zagallo <tzagallo@apple.com>
tryCachePutToScopeGlobal should hold the lock to update metadata.m_getPutInfo
https://bugs.webkit.org/show_bug.cgi?id=203628
<rdar://problem/56705353>
Reviewed by Yusuke Suzuki.
* stress/property-move-from-global-object-to-global-lexical-environment.js: Added.
(foo):
2019-10-29 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Add fast path for String#localeCompare
https://bugs.webkit.org/show_bug.cgi?id=202676
Reviewed by Mark Lam.
* stress/locale-compare-bits.js: Added.
(shouldBe):
2019-10-28 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Optimize Promise runtime functions
https://bugs.webkit.org/show_bug.cgi?id=203454
Reviewed by Keith Miller.
* microbenchmarks/promise-reject.js: Added.
* microbenchmarks/promise-resolve.js: Added.
2019-10-25 Ross Kirsling <ross.kirsling@sony.com>
test262-runner should be able to pass JSC a feature flag
https://bugs.webkit.org/show_bug.cgi?id=203301
Reviewed by Keith Miller.
* test262/config.yaml:
Add feature flag mapping.
Also skip a few forgotten features as well as BigInt TypedArray tests.
* test262/expectations.yaml:
Regenerate expectations.
2019-10-23 Keith Miller <keith_miller@apple.com>
Undo incidental change from BytecodeIndex class patch
https://bugs.webkit.org/show_bug.cgi?id=203339
Reviewed by Mark Lam.
* stress/error-source-location-assertion.js: Added.
2019-10-23 Ross Kirsling <ross.kirsling@sony.com>
String.prototype.matchAll should throw on non-global regex
https://bugs.webkit.org/show_bug.cgi?id=202838
Reviewed by Keith Miller.
* stress/string-matchall.js: Added.
* test262/expectations.yaml:
Mark four test cases as passing.
2019-10-23 Ross Kirsling <ross.kirsling@sony.com>
Update test262 (2019.10.11)
https://bugs.webkit.org/show_bug.cgi?id=202861
Reviewed by Keith Miller.
* test262/config.yaml:
* test262/expectations.yaml:
* test262/harness/:
* test262/latest-changes-summary.txt:
* test262/test/:
* test262/test262-Revision.txt:
2019-10-22 Zhifei Fang <zhifei_fang@apple.com>
[JSC tests] Skip slow tests on Watch S3 and Watch S4
https://bugs.webkit.org/show_bug.cgi?id=203268
Reviewed by Saam Barati.
* microbenchmarks/ArrayBuffer-DataView-alloc-large-long-lived.js:
* microbenchmarks/ArrayBuffer-DataView-alloc-long-lived.js:
* microbenchmarks/ArrayBuffer-Int32Array-byteOffset.js:
* microbenchmarks/ArrayBuffer-Int8Array-alloc-large-long-lived.js:
* microbenchmarks/ArrayBuffer-Int8Array-alloc-long-lived-buffer.js:
* microbenchmarks/ArrayBuffer-Int8Array-alloc-long-lived.js:
* microbenchmarks/ArrayBuffer-Int8Array-alloc.js:
* microbenchmarks/DataView-custom-properties.js:
* microbenchmarks/Float32Array-matrix-mult.js:
* microbenchmarks/Float32Array-to-Float64Array-set.js:
* microbenchmarks/Float64Array-alloc-long-lived.js:
* microbenchmarks/Float64Array-to-Int16Array-set.js:
* microbenchmarks/HashMap-put-get-iterate-keys.js:
* microbenchmarks/HashMap-put-get-iterate.js:
* microbenchmarks/HashMap-string-put-get-iterate.js:
* microbenchmarks/Int16Array-alloc-long-lived.js:
* microbenchmarks/Int16Array-bubble-sort-with-byteLength.js:
* microbenchmarks/Int16Array-bubble-sort.js:
* microbenchmarks/Int16Array-load-int-mul.js:
* microbenchmarks/Int16Array-to-Int32Array-set.js:
* microbenchmarks/Int32Array-Int8Array-view-alloc.js:
* microbenchmarks/Int32Array-alloc-large.js:
* microbenchmarks/Int32Array-alloc-long-lived.js:
* microbenchmarks/Int32Array-alloc.js:
* microbenchmarks/Int8Array-alloc-long-lived.js:
* microbenchmarks/Int8Array-load-with-byteLength.js:
* microbenchmarks/Int8Array-load.js:
* microbenchmarks/JSONP-negative-0.js:
* microbenchmarks/Number-isNaN.js:
* microbenchmarks/abc-forward-loop-equal.js:
* microbenchmarks/abc-postfix-backward-loop.js:
* microbenchmarks/abc-simple-backward-loop.js:
* microbenchmarks/abc-simple-forward-loop.js:
* microbenchmarks/abc-skippy-loop.js:
* microbenchmarks/abs-boolean.js:
* microbenchmarks/adapt-to-double-divide.js:
* microbenchmarks/add-tree.js:
* microbenchmarks/aliased-arguments-getbyval.js:
* microbenchmarks/allocate-big-object.js:
* microbenchmarks/apply-not-apply.js:
* microbenchmarks/arguments-named-and-reflective.js:
* microbenchmarks/arguments-out-of-bounds.js:
* microbenchmarks/arguments-strict-mode.js:
* microbenchmarks/arguments.js:
* microbenchmarks/arity-mismatch-inlining.js:
* microbenchmarks/array-access-polymorphic-structure.js:
* microbenchmarks/array-nonarray-polymorhpic-access.js:
* microbenchmarks/array-prototype-every.js:
* microbenchmarks/array-prototype-forEach.js:
* microbenchmarks/array-prototype-join-uninitialized.js:
* microbenchmarks/array-prototype-map.js:
* microbenchmarks/array-prototype-reduce.js:
* microbenchmarks/array-prototype-reduceRight.js:
* microbenchmarks/array-prototype-some.js:
* microbenchmarks/array-push-0.js:
* microbenchmarks/array-push-1.js:
* microbenchmarks/array-push-2.js:
* microbenchmarks/array-splice-contiguous.js:
* microbenchmarks/array-with-double-add.js:
* microbenchmarks/array-with-double-increment.js:
* microbenchmarks/array-with-double-mul-add.js:
* microbenchmarks/array-with-double-sum.js:
* microbenchmarks/array-with-int32-add-sub.js:
* microbenchmarks/array-with-int32-or-double-sum.js:
* microbenchmarks/arrowfunciton-direct-arguments.js:
* microbenchmarks/arrowfunciton-reference-arguments.js:
* microbenchmarks/arrowfunction-call-in-class-constructor.js:
* microbenchmarks/arrowfunction-call-in-class-method.js:
* microbenchmarks/arrowfunction-call-in-function.js:
* microbenchmarks/arrowfunction-call.js:
* microbenchmarks/asmjs_bool_bug.js:
* microbenchmarks/assign-custom-setter-polymorphic.js:
* microbenchmarks/assign-custom-setter.js:
* microbenchmarks/basic-set.js:
* microbenchmarks/big-int-mul.js:
* microbenchmarks/bigswitch-indirect-symbol.js:
* microbenchmarks/bigswitch-indirect.js:
* microbenchmarks/bigswitch.js:
* microbenchmarks/bit-or-tree.js:
* microbenchmarks/bit-test-constant.js:
* microbenchmarks/bit-test-load.js:
* microbenchmarks/bit-test-nonconstant.js:
* microbenchmarks/bit-xor-tree.js:
* microbenchmarks/boolean-test.js:
* microbenchmarks/bound-function-call.js:
* microbenchmarks/bound-function-construction-performance.js:
* microbenchmarks/branch-fold.js:
* microbenchmarks/branch-on-string-as-boolean.js:
* microbenchmarks/bug-153431.js:
* microbenchmarks/build-large-object.js:
* microbenchmarks/by-val-generic.js:
* microbenchmarks/cache-get-variables-under-tdz-in-bytecode-generator.js:
* microbenchmarks/call-or-not-call.js:
* microbenchmarks/call-spread-apply.js:
* microbenchmarks/call-spread-call.js:
* microbenchmarks/call-using-spread.js:
* microbenchmarks/captured-assignments.js:
* microbenchmarks/cast-int-to-double.js:
* microbenchmarks/cell-argument.js:
* microbenchmarks/cfg-simplify.js:
* microbenchmarks/chain-getter-access.js:
* microbenchmarks/check-mul-constant.js:
* microbenchmarks/check-mul-no-constant.js:
* microbenchmarks/check-mul-power-of-two.js:
* microbenchmarks/cmpeq-obj-to-obj-other.js:
* microbenchmarks/concat-append-one.js:
* microbenchmarks/constant-fold-check-type-info-flags.js:
* microbenchmarks/constant-test.js:
* microbenchmarks/construct-poly-proto-object.js:
* microbenchmarks/contiguous-array-to-string.js:
* microbenchmarks/create-lots-of-functions.js:
* microbenchmarks/create-many-weak-map.js:
* microbenchmarks/cse-new-array-buffer.js:
* microbenchmarks/cse-new-array.js:
* microbenchmarks/custom-accessor-materialized.js:
* microbenchmarks/custom-accessor-thin-air.js:
* microbenchmarks/custom-accessor.js:
* microbenchmarks/custom-setter-getter-as-put-get-by-id.js:
* microbenchmarks/custom-value-2.js:
* microbenchmarks/custom-value.js:
* microbenchmarks/data-view-accesses-2.js:
* microbenchmarks/data-view-accesses.js:
* microbenchmarks/dataview-cse.js:
* microbenchmarks/delay-tear-off-arguments-strictmode.js:
* microbenchmarks/delta-blue-try-catch.js:
* microbenchmarks/deltablue-for-of.js:
* microbenchmarks/deltablue-varargs.js:
* microbenchmarks/destructuring-arguments.js:
* microbenchmarks/destructuring-parameters-overridden-by-function.js:
* microbenchmarks/destructuring-swap.js:
* microbenchmarks/dfg-internal-function-call.js:
* microbenchmarks/dfg-internal-function-construct.js:
* microbenchmarks/dfg-internal-function-not-handled-call.js:
* microbenchmarks/dfg-internal-function-not-handled-construct.js:
* microbenchmarks/direct-arguments-getbyval.js:
* microbenchmarks/direct-arguments-length.js:
* microbenchmarks/direct-arguments-overridden-length.js:
* microbenchmarks/direct-arguments-possibly-overridden-length.js:
* microbenchmarks/direct-call-arity-mismatch.js:
* microbenchmarks/direct-call.js:
* microbenchmarks/direct-construct-arity-mismatch.js:
* microbenchmarks/direct-construct.js:
* microbenchmarks/direct-tail-call-arity-mismatch.js:
* microbenchmarks/direct-tail-call-inlined-caller-arity-mismatch.js:
* microbenchmarks/direct-tail-call-inlined-caller.js:
* microbenchmarks/direct-tail-call.js:
* microbenchmarks/div-boolean-double.js:
* microbenchmarks/div-boolean.js:
* microbenchmarks/dont-confuse-structures-from-different-executable-as-poly-proto.js:
* microbenchmarks/double-array-to-string.js:
* microbenchmarks/double-get-by-val-out-of-bounds.js:
* microbenchmarks/double-pollution-getbyval.js:
* microbenchmarks/double-pollution-putbyoffset.js:
* microbenchmarks/double-real-use.js:
* microbenchmarks/double-to-int32-typed-array-no-inline.js:
* microbenchmarks/double-to-int32-typed-array.js:
* microbenchmarks/double-to-uint32-typed-array-no-inline.js:
* microbenchmarks/double-to-uint32-typed-array.js:
* microbenchmarks/elidable-new-object-dag.js:
* microbenchmarks/elidable-new-object-roflcopter.js:
* microbenchmarks/elidable-new-object-then-call.js:
* microbenchmarks/elidable-new-object-tree.js:
* microbenchmarks/empty-string-plus-int.js:
* microbenchmarks/emscripten-cube2hash.js:
* microbenchmarks/eval-cached.js:
* microbenchmarks/eval-code-ftl-reentry.js:
* microbenchmarks/eval-code-ftl.js:
* microbenchmarks/eval-compute.js:
* microbenchmarks/eval-not-eval-compute-args.js:
* microbenchmarks/eval-not-eval-compute.js:
* microbenchmarks/exit-length-on-plain-object.js:
* microbenchmarks/external-arguments-getbyval.js:
* microbenchmarks/external-arguments-putbyval.js:
* microbenchmarks/fixed-typed-array-storage-var-index.js:
* microbenchmarks/fixed-typed-array-storage.js:
* microbenchmarks/fold-double-to-int.js:
* microbenchmarks/fold-get-by-id-to-multi-get-by-offset-rare-int.js:
* microbenchmarks/fold-get-by-id-to-multi-get-by-offset.js:
* microbenchmarks/fold-multi-get-by-offset-to-get-by-offset.js:
* microbenchmarks/fold-multi-get-by-offset-to-poly-get-by-offset.js:
* microbenchmarks/fold-multi-put-by-offset-to-poly-put-by-offset.js:
* microbenchmarks/fold-multi-put-by-offset-to-put-by-offset.js:
* microbenchmarks/fold-multi-put-by-offset-to-replace-or-transition-put-by-offset.js:
* microbenchmarks/fold-put-by-id-to-multi-put-by-offset.js:
* microbenchmarks/fold-put-by-val-with-string-to-multi-put-by-offset.js:
* microbenchmarks/fold-put-by-val-with-symbol-to-multi-put-by-offset.js:
* microbenchmarks/fold-put-structure.js:
* microbenchmarks/for-in-on-object-with-lazily-materialized-properties.js:
* microbenchmarks/for-of-array.js:
* microbenchmarks/for-of-iterate-array-entries.js:
* microbenchmarks/for-of-iterate-array-keys.js:
* microbenchmarks/for-of-iterate-array-values.js:
* microbenchmarks/forward-arguments-dont-escape-on-arguments-length.js:
* microbenchmarks/freeze-and-do-work.js:
* microbenchmarks/fround.js:
* microbenchmarks/ftl-library-inlining-dataview.js:
* microbenchmarks/ftl-library-inlining.js:
* microbenchmarks/ftl-polymorphic-StringFromCharCode.js:
* microbenchmarks/function-call.js:
* microbenchmarks/function-dot-apply.js:
* microbenchmarks/function-test.js:
* microbenchmarks/function-with-eval.js:
* microbenchmarks/gcse-poly-get-less-obvious.js:
* microbenchmarks/gcse-poly-get.js:
* microbenchmarks/gcse.js:
* microbenchmarks/generate-multiple-llint-entrypoints.js:
* microbenchmarks/generator-create.js:
* microbenchmarks/generator-fib.js:
* microbenchmarks/generator-function-create.js:
* microbenchmarks/generator-sunspider-access-nsieve.js:
* microbenchmarks/generator-with-several-types.js:
* microbenchmarks/get-by-id-bimorphic-check-structure-elimination-simple.js:
* microbenchmarks/get-by-id-bimorphic-check-structure-elimination.js:
* microbenchmarks/get-by-id-chain-from-try-block.js:
* microbenchmarks/get-by-id-check-structure-elimination.js:
* microbenchmarks/get-by-id-proto-or-self.js:
* microbenchmarks/get-by-id-quadmorphic-check-structure-elimination-simple.js:
* microbenchmarks/get-by-id-self-or-proto.js:
* microbenchmarks/get-by-val-negative-array-index.js:
* microbenchmarks/get-by-val-out-of-bounds.js:
* microbenchmarks/get-by-val-with-string-bimorphic-check-structure-elimination-simple.js:
* microbenchmarks/get-by-val-with-string-bimorphic-check-structure-elimination.js:
* microbenchmarks/get-by-val-with-string-chain-from-try-block.js:
* microbenchmarks/get-by-val-with-string-check-structure-elimination.js:
* microbenchmarks/get-by-val-with-string-proto-or-self.js:
* microbenchmarks/get-by-val-with-string-quadmorphic-check-structure-elimination-simple.js:
* microbenchmarks/get-by-val-with-string-self-or-proto.js:
* microbenchmarks/get-by-val-with-symbol-bimorphic-check-structure-elimination-simple.js:
* microbenchmarks/get-by-val-with-symbol-bimorphic-check-structure-elimination.js:
* microbenchmarks/get-by-val-with-symbol-chain-from-try-block.js:
* microbenchmarks/get-by-val-with-symbol-check-structure-elimination.js:
* microbenchmarks/get-by-val-with-symbol-proto-or-self.js:
* microbenchmarks/get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple.js:
* microbenchmarks/get-by-val-with-symbol-self-or-proto.js:
* microbenchmarks/get-custom-getter.js:
* microbenchmarks/get_by_val-Int32Array.js:
* microbenchmarks/get_callee_monomorphic.js:
* microbenchmarks/get_callee_polymorphic.js:
* microbenchmarks/getter-no-activation.js:
* microbenchmarks/getter-prototype.js:
* microbenchmarks/getter-richards-try-catch.js:
* microbenchmarks/getter-richards.js:
* microbenchmarks/getter.js:
* microbenchmarks/global-code-ftl.js:
* microbenchmarks/global-isNaN.js:
* microbenchmarks/global-object-access-with-mutating-structure.js:
* microbenchmarks/global-var-const-infer-fire-from-opt.js:
* microbenchmarks/global-var-const-infer.js:
* microbenchmarks/hard-overflow-check-equal.js:
* microbenchmarks/hard-overflow-check.js:
* microbenchmarks/has-own-property-name-cache.js:
* microbenchmarks/hoist-get-by-offset-tower-with-inferred-types.js:
* microbenchmarks/hoist-make-rope.js:
* microbenchmarks/hoist-poly-check-structure-effectful-loop.js:
* microbenchmarks/hoist-poly-check-structure.js:
* microbenchmarks/implicit-bigswitch-indirect-symbol.js:
* microbenchmarks/imul-double-only.js:
* microbenchmarks/imul-int-only.js:
* microbenchmarks/imul-mixed.js:
* microbenchmarks/in-by-id-match.js:
* microbenchmarks/in-by-id-removed.js:
* microbenchmarks/in-four-cases.js:
* microbenchmarks/in-one-case-false.js:
* microbenchmarks/in-one-case-true.js:
* microbenchmarks/in-two-cases.js:
* microbenchmarks/indexed-properties-in-objects.js:
* microbenchmarks/infer-closure-const-then-mov-no-inline.js:
* microbenchmarks/infer-closure-const-then-mov.js:
* microbenchmarks/infer-closure-const-then-put-to-scope-no-inline.js:
* microbenchmarks/infer-closure-const-then-put-to-scope.js:
* microbenchmarks/infer-closure-const-then-reenter-no-inline.js:
* microbenchmarks/infer-closure-const-then-reenter.js:
* microbenchmarks/infer-constant-global-property.js:
* microbenchmarks/infer-constant-property.js:
* microbenchmarks/infer-one-time-closure-ten-vars.js:
* microbenchmarks/infer-one-time-closure-two-vars.js:
* microbenchmarks/infer-one-time-closure.js:
* microbenchmarks/infer-one-time-deep-closure.js:
* microbenchmarks/inline-arguments-access.js:
* microbenchmarks/inline-arguments-aliased-access.js:
* microbenchmarks/inline-arguments-local-escape.js:
* microbenchmarks/inline-get-scoped-var.js:
* microbenchmarks/inlined-put-by-id-transition.js:
* microbenchmarks/inlined-put-by-val-with-string-transition.js:
* microbenchmarks/inlined-put-by-val-with-symbol-transition.js:
* microbenchmarks/instanceof-always-hit-one.js:
* microbenchmarks/instanceof-always-hit-two.js:
* microbenchmarks/instanceof-bound.js:
* microbenchmarks/instanceof-dynamic.js:
* microbenchmarks/instanceof-sometimes-hit.js:
* microbenchmarks/instanceof-tricky-dynamic.js:
* microbenchmarks/int-or-other-abs-then-get-by-val.js:
* microbenchmarks/int-or-other-abs-zero-then-get-by-val.js:
* microbenchmarks/int-or-other-add-then-get-by-val.js:
* microbenchmarks/int-or-other-add.js:
* microbenchmarks/int-or-other-div-then-get-by-val.js:
* microbenchmarks/int-or-other-max-then-get-by-val.js:
* microbenchmarks/int-or-other-min-then-get-by-val.js:
* microbenchmarks/int-or-other-mod-then-get-by-val.js:
* microbenchmarks/int-or-other-mul-then-get-by-val.js:
* microbenchmarks/int-or-other-neg-then-get-by-val.js:
* microbenchmarks/int-or-other-neg-zero-then-get-by-val.js:
* microbenchmarks/int-or-other-sub-then-get-by-val.js:
* microbenchmarks/int-or-other-sub.js:
* microbenchmarks/int-overflow-local.js:
* microbenchmarks/int32-array-to-string.js:
* microbenchmarks/int52-back-and-forth.js:
* microbenchmarks/int52-rand-function.js:
* microbenchmarks/int52-spill.js:
* microbenchmarks/int8-out-of-bounds.js:
* microbenchmarks/integer-divide.js:
* microbenchmarks/integer-modulo.js:
* microbenchmarks/is-array-for-array.js:
* microbenchmarks/is-array-for-mixed-case.js:
* microbenchmarks/is-array-for-non-array-object.js:
* microbenchmarks/is-array-for-proxy.js:
* microbenchmarks/is-boolean-fold-tricky.js:
* microbenchmarks/is-boolean-fold.js:
* microbenchmarks/is-function-fold-tricky-internal-function.js:
* microbenchmarks/is-function-fold-tricky.js:
* microbenchmarks/is-function-fold.js:
* microbenchmarks/is-not-cell-speculation-for-empty-value.js:
* microbenchmarks/is-number-fold-tricky.js:
* microbenchmarks/is-number-fold.js:
* microbenchmarks/is-object-or-null-fold-functions.js:
* microbenchmarks/is-object-or-null-fold-less-tricky.js:
* microbenchmarks/is-object-or-null-fold-tricky.js:
* microbenchmarks/is-object-or-null-fold.js:
* microbenchmarks/is-object-or-null-trickier-function.js:
* microbenchmarks/is-object-or-null-trickier-internal-function.js:
* microbenchmarks/is-object-or-null-tricky-function.js:
* microbenchmarks/is-object-or-null-tricky-internal-function.js:
* microbenchmarks/is-string-fold-tricky.js:
* microbenchmarks/is-string-fold.js:
* microbenchmarks/is-symbol-mixed.js:
* microbenchmarks/is-symbol.js:
* microbenchmarks/is-undefined-fold-tricky.js:
* microbenchmarks/is-undefined-fold.js:
* microbenchmarks/json-parse-array-reviver-same-value.js:
* microbenchmarks/json-parse-array-reviver.js:
* microbenchmarks/json-parse-object-reviver-same-value.js:
* microbenchmarks/json-parse-object-reviver.js:
* microbenchmarks/large-empty-array-join-resolve-rope.js:
* microbenchmarks/large-empty-array-join.js:
* microbenchmarks/large-int-captured.js:
* microbenchmarks/large-int-neg.js:
* microbenchmarks/large-int.js:
* microbenchmarks/large-map-iteration.js:
* microbenchmarks/lazy-array-species-watchpoints.js:
* microbenchmarks/let-for-in.js:
* microbenchmarks/licm-dragons-out-of-bounds.js:
* microbenchmarks/licm-dragons-overflow.js:
* microbenchmarks/licm-dragons-two-structures.js:
* microbenchmarks/licm-dragons.js:
* microbenchmarks/load-varargs-elimination.js:
* microbenchmarks/locale-compare.js:
* microbenchmarks/logical-not-weird-types.js:
* microbenchmarks/logical-not.js:
* microbenchmarks/loop-osr-with-arity-mismatch.js:
* microbenchmarks/lots-of-fields.js:
* microbenchmarks/make-indexed-storage.js:
* microbenchmarks/make-rope-cse.js:
* microbenchmarks/make-rope.js:
* microbenchmarks/many-foreach-calls.js:
* microbenchmarks/many-repeat-stores.js:
* microbenchmarks/map-for-each.js:
* microbenchmarks/map-for-of.js:
* microbenchmarks/map-has-and-set.js:
* microbenchmarks/map-has-get-cse-opportunity.js:
* microbenchmarks/map-key-well-typed.js:
* microbenchmarks/map-rehash.js:
* microbenchmarks/marsaglia-larger-ints.js:
* microbenchmarks/marsaglia-osr-entry.js:
* microbenchmarks/math-random.js:
* microbenchmarks/math-trunc.js:
* microbenchmarks/math-with-out-of-bounds-array-values.js:
* microbenchmarks/max-boolean.js:
* microbenchmarks/megamorphic-load.js:
* microbenchmarks/memcpy-loop.js:
* microbenchmarks/memcpy-typed-loop-large.js:
* microbenchmarks/memcpy-typed-loop-small.js:
* microbenchmarks/memcpy-typed-loop-speculative.js:
* microbenchmarks/memcpy-typed-loop.js:
* microbenchmarks/memcpy-wasm-large.js:
* microbenchmarks/memcpy-wasm-medium.js:
* microbenchmarks/memcpy-wasm-small.js:
* microbenchmarks/memcpy-wasm.js:
* microbenchmarks/method-on-number.js:
* microbenchmarks/min-boolean.js:
* microbenchmarks/minus-boolean-double.js:
* microbenchmarks/minus-boolean.js:
* microbenchmarks/misc-strict-eq.js:
* microbenchmarks/mod-boolean-double.js:
* microbenchmarks/mod-boolean.js:
* microbenchmarks/mod-untyped.js:
* microbenchmarks/mul-boolean-double.js:
* microbenchmarks/mul-boolean.js:
* microbenchmarks/mul-immediate-sub.js:
* microbenchmarks/neg-boolean.js:
* microbenchmarks/negative-zero-divide.js:
* microbenchmarks/negative-zero-modulo.js:
* microbenchmarks/negative-zero-negate.js:
* microbenchmarks/new-array-buffer-dead.js:
* microbenchmarks/new-array-buffer-push.js:
* microbenchmarks/new-array-buffer-vector-profile.js:
* microbenchmarks/new-array-dead.js:
* microbenchmarks/new-array-push.js:
* microbenchmarks/new-error.js:
* microbenchmarks/no-inline-constructor.js:
* microbenchmarks/number-test.js:
* microbenchmarks/number-to-string-strength-reduction.js:
* microbenchmarks/number-to-string-with-add-empty.js:
* microbenchmarks/number-to-string-with-add-in-loop.js:
* microbenchmarks/number-to-string-with-add.js:
* microbenchmarks/number-to-string-with-radix-10.js:
* microbenchmarks/number-to-string-with-radix-cse.js:
* microbenchmarks/number-to-string-with-radix.js:
* microbenchmarks/object-and.js:
* microbenchmarks/object-closure-call.js:
* microbenchmarks/object-create-constant-prototype.js:
* microbenchmarks/object-create-null.js:
* microbenchmarks/object-create-unknown-object-prototype.js:
* microbenchmarks/object-create-untyped-prototype.js:
* microbenchmarks/object-entries.js:
* microbenchmarks/object-get-own-property-symbols-on-large-array.js:
* microbenchmarks/object-get-own-property-symbols.js:
* microbenchmarks/object-int-add-array.js:
* microbenchmarks/object-int-add.js:
* microbenchmarks/object-int-and-array.js:
* microbenchmarks/object-int-mul-array.js:
* microbenchmarks/object-int-sub-array.js:
* microbenchmarks/object-int-sub.js:
* microbenchmarks/object-is.js:
* microbenchmarks/object-iterate-symbols.js:
* microbenchmarks/object-iterate.js:
* microbenchmarks/object-keys-map-values.js:
* microbenchmarks/object-keys.js:
* microbenchmarks/object-lshift.js:
* microbenchmarks/object-or.js:
* microbenchmarks/object-rshift.js:
* microbenchmarks/object-test.js:
* microbenchmarks/object-urshift.js:
* microbenchmarks/object-values.js:
* microbenchmarks/object-xor.js:
* microbenchmarks/obvious-sink-pathology-taken.js:
* microbenchmarks/obvious-sink-pathology.js:
* microbenchmarks/obviously-elidable-new-object.js:
* microbenchmarks/plus-boolean-arith.js:
* microbenchmarks/plus-boolean-double.js:
* microbenchmarks/plus-boolean.js:
* microbenchmarks/poly-chain-access-different-prototypes-simple.js:
* microbenchmarks/poly-chain-access-different-prototypes.js:
* microbenchmarks/poly-chain-access-simpler.js:
* microbenchmarks/poly-chain-access.js:
* microbenchmarks/poly-proto-access.js:
* microbenchmarks/poly-proto-and-non-poly-proto-same-ic.js:
* microbenchmarks/poly-proto-clear-js-function-allocation-profile.js:
* microbenchmarks/poly-proto-put-transition-speed.js:
* microbenchmarks/poly-proto-setter-speed.js:
* microbenchmarks/poly-stricteq.js:
* microbenchmarks/polymorphic-array-call.js:
* microbenchmarks/polymorphic-get-by-id.js:
* microbenchmarks/polymorphic-put-by-id.js:
* microbenchmarks/polymorphic-put-by-val-with-string.js:
* microbenchmarks/polymorphic-put-by-val-with-symbol.js:
* microbenchmarks/polymorphic-structure.js:
* microbenchmarks/polyvariant-get-by-id-shorter-tower.js:
* microbenchmarks/polyvariant-get-by-id-tower.js:
* microbenchmarks/polyvariant-monomorphic-get-by-id.js:
* microbenchmarks/prevent-extensions-and-do-work.js:
* microbenchmarks/promise-creation-many.js:
* microbenchmarks/proto-getter-access.js:
* microbenchmarks/prototype-access-with-mutating-prototype.js:
* microbenchmarks/put-by-id-replace-and-transition.js:
* microbenchmarks/put-by-id-slightly-polymorphic.js:
* microbenchmarks/put-by-id-transition-with-indexing-header.js:
* microbenchmarks/put-by-id.js:
* microbenchmarks/put-by-val-direct-large-index.js:
* microbenchmarks/put-by-val-direct.js:
* microbenchmarks/put-by-val-large-index-blank-indexing-type.js:
* microbenchmarks/put-by-val-machine-int.js:
* microbenchmarks/put-by-val-negative-array-index.js:
* microbenchmarks/put-by-val-with-string-replace-and-transition.js:
* microbenchmarks/put-by-val-with-string-slightly-polymorphic.js:
* microbenchmarks/put-by-val-with-string.js:
* microbenchmarks/put-by-val-with-symbol-replace-and-transition.js:
* microbenchmarks/put-by-val-with-symbol-slightly-polymorphic.js:
* microbenchmarks/put-by-val-with-symbol.js:
* microbenchmarks/rare-osr-exit-on-local.js:
* microbenchmarks/raytrace-with-empty-try-catch.js:
* microbenchmarks/raytrace-with-try-catch.js:
* microbenchmarks/regexp-exec.js:
* microbenchmarks/regexp-last-index.js:
* microbenchmarks/regexp-nested-nonzero-min-counted-parens.js:
* microbenchmarks/regexp-prototype-is-not-instance.js:
* microbenchmarks/regexp-prototype-search-observable-side-effects.js:
* microbenchmarks/regexp-prototype-search-observable-side-effects2.js:
* microbenchmarks/regexp-prototype-split-observable-side-effects.js:
* microbenchmarks/regexp-prototype-split-observable-side-effects2.js:
* microbenchmarks/regexp-prototype-split-observable-side-effects3-flags.js:
* microbenchmarks/regexp-prototype-split-observable-side-effects3-global.js:
* microbenchmarks/regexp-prototype-split-observable-side-effects3-ignoreCase.js:
* microbenchmarks/regexp-prototype-split-observable-side-effects3-multiline.js:
* microbenchmarks/regexp-prototype-split-observable-side-effects3-sticky.js:
* microbenchmarks/regexp-prototype-split-observable-side-effects3-unicode.js:
* microbenchmarks/regexp-prototype-split-observable-side-effects4.js:
* microbenchmarks/regexp-prototype-test-observable-side-effects.js:
* microbenchmarks/regexp-prototype-test-observable-side-effects2.js:
* microbenchmarks/regexp-set-last-index.js:
* microbenchmarks/regexp-u-global-es5.js:
* microbenchmarks/regexp-u-global-es6.js:
* microbenchmarks/register-pressure-from-osr.js:
* microbenchmarks/repeat-multi-get-by-offset.js:
* microbenchmarks/rest-parameter-construction-performance.js:
* microbenchmarks/richards-empty-try-catch.js:
* microbenchmarks/richards-try-catch.js:
* microbenchmarks/scoped-arguments-length.js:
* microbenchmarks/scoped-arguments-overridden-length.js:
* microbenchmarks/scoped-arguments-possibly-overridden-length.js:
* microbenchmarks/seal-and-do-work.js:
* microbenchmarks/set-for-each.js:
* microbenchmarks/set-for-of.js:
* microbenchmarks/setter-prototype.js:
* microbenchmarks/setter.js:
* microbenchmarks/simple-activation-demo.js:
* microbenchmarks/simple-getter-access.js:
* microbenchmarks/simple-poly-call-nested.js:
* microbenchmarks/simple-poly-call.js:
* microbenchmarks/simple-regexp-exec-folding-fail.js:
* microbenchmarks/simple-regexp-exec-folding.js:
* microbenchmarks/simple-regexp-test-folding-fail-with-hoisted-regexp.js:
* microbenchmarks/simple-regexp-test-folding-fail.js:
* microbenchmarks/simple-regexp-test-folding-with-hoisted-regexp.js:
* microbenchmarks/simple-regexp-test-folding.js:
* microbenchmarks/sin-boolean.js:
* microbenchmarks/singleton-scope.js:
* microbenchmarks/sink-function.js:
* microbenchmarks/sink-huge-activation.js:
* microbenchmarks/sinkable-new-object-dag.js:
* microbenchmarks/sinkable-new-object-taken.js:
* microbenchmarks/sinkable-new-object-with-builtin-constructor.js:
* microbenchmarks/sinkable-new-object.js:
* microbenchmarks/slow-array-profile-convergence.js:
* microbenchmarks/slow-convergence.js:
* microbenchmarks/slow-ternaries.js:
* microbenchmarks/sorting-benchmark.js:
* microbenchmarks/sparse-conditional.js:
* microbenchmarks/sparse-set.js:
* microbenchmarks/splice-to-remove.js:
* microbenchmarks/strcat-const.js:
* microbenchmarks/strcat-length-const.js:
* microbenchmarks/strict-osr-entry.js:
* microbenchmarks/string-char-code-at.js:
* microbenchmarks/string-concat-convert.js:
* microbenchmarks/string-concat-long-convert.js:
* microbenchmarks/string-concat-long.js:
* microbenchmarks/string-concat-object.js:
* microbenchmarks/string-concat-pair-object.js:
* microbenchmarks/string-concat-pair-simple.js:
* microbenchmarks/string-concat-simple.js:
* microbenchmarks/string-concat.js:
* microbenchmarks/string-cons-repeat.js:
* microbenchmarks/string-cons-tower.js:
* microbenchmarks/string-equality.js:
* microbenchmarks/string-from-char-code.js:
* microbenchmarks/string-get-by-val-big-char.js:
* microbenchmarks/string-get-by-val-out-of-bounds-insane.js:
* microbenchmarks/string-get-by-val-out-of-bounds.js:
* microbenchmarks/string-get-by-val.js:
* microbenchmarks/string-hash.js:
* microbenchmarks/string-long-ident-equality.js:
* microbenchmarks/string-object-to-string.js:
* microbenchmarks/string-object-value-of.js:
* microbenchmarks/string-out-of-bounds.js:
* microbenchmarks/string-prototype-search-observable-side-effects.js:
* microbenchmarks/string-prototype-search-observable-side-effects2.js:
* microbenchmarks/string-prototype-search-observable-side-effects3.js:
* microbenchmarks/string-prototype-search-observable-side-effects4.js:
* microbenchmarks/string-prototype-split-observable-side-effects.js:
* microbenchmarks/string-prototype-split-observable-side-effects2.js:
* microbenchmarks/string-prototype-split-observable-side-effects3-flags.js:
* microbenchmarks/string-prototype-split-observable-side-effects3-global.js:
* microbenchmarks/string-prototype-split-observable-side-effects3-ignoreCase.js:
* microbenchmarks/string-prototype-split-observable-side-effects3-multiline.js:
* microbenchmarks/string-prototype-split-observable-side-effects3-sticky.js:
* microbenchmarks/string-prototype-split-observable-side-effects3-unicode.js:
* microbenchmarks/string-prototype-split-observable-side-effects4.js:
* microbenchmarks/string-repeat-arith.js:
* microbenchmarks/string-repeat-not-resolving-fixed.js:
* microbenchmarks/string-repeat-not-resolving-no-inline.js:
* microbenchmarks/string-repeat-not-resolving.js:
* microbenchmarks/string-repeat-resolving-fixed.js:
* microbenchmarks/string-repeat-resolving-no-inline.js:
* microbenchmarks/string-repeat-resolving.js:
* microbenchmarks/string-repeat-single-not-resolving.js:
* microbenchmarks/string-repeat-single-resolving.js:
* microbenchmarks/string-repeat-small-not-resolving.js:
* microbenchmarks/string-repeat-small-resolving.js:
* microbenchmarks/string-replace-empty.js:
* microbenchmarks/string-replace-generic.js:
* microbenchmarks/string-replace.js:
* microbenchmarks/string-rope-with-object.js:
* microbenchmarks/string-slice-empty.js:
* microbenchmarks/string-slice-one-char.js:
* microbenchmarks/string-slice.js:
* microbenchmarks/string-sub.js:
* microbenchmarks/string-test.js:
* microbenchmarks/string-transcoding.js:
* microbenchmarks/string-var-equality.js:
* microbenchmarks/stringalloc.js:
* microbenchmarks/structure-hoist-over-transitions.js:
* microbenchmarks/substring-concat-weird.js:
* microbenchmarks/substring-concat.js:
* microbenchmarks/substring.js:
* microbenchmarks/super-get-by-id-with-this-monomorphic.js:
* microbenchmarks/super-get-by-id-with-this-polymorphic.js:
* microbenchmarks/super-get-by-val-with-this-monomorphic.js:
* microbenchmarks/super-get-by-val-with-this-polymorphic.js:
* microbenchmarks/super-getter.js:
* microbenchmarks/switch-char-constant.js:
* microbenchmarks/switch-char.js:
* microbenchmarks/switch-constant.js:
* microbenchmarks/switch-string-basic-big-var.js:
* microbenchmarks/switch-string-basic-big.js:
* microbenchmarks/switch-string-basic-var.js:
* microbenchmarks/switch-string-basic.js:
* microbenchmarks/switch-string-big-length-tower-var.js:
* microbenchmarks/switch-string-length-tower-var.js:
* microbenchmarks/switch-string-length-tower.js:
* microbenchmarks/switch-string-short.js:
* microbenchmarks/switch.js:
* microbenchmarks/switching-size-classes.js:
* microbenchmarks/symbol-creation.js:
* microbenchmarks/symbol-tostringtag.js:
* microbenchmarks/tan.js:
* microbenchmarks/tear-off-arguments-simple.js:
* microbenchmarks/tear-off-arguments.js:
* microbenchmarks/template-string-array.js:
* microbenchmarks/temporal-structure.js:
* microbenchmarks/throw.js:
* microbenchmarks/to-int32-boolean.js:
* microbenchmarks/to-number-boolean.js:
* microbenchmarks/to-number-constructor-number-string-number-string.js:
* microbenchmarks/to-number-constructor-only-number.js:
* microbenchmarks/to-number-constructor-only-string.js:
* microbenchmarks/to-number-constructor-string-number-string-number.js:
* microbenchmarks/to-number-number-string-number-string.js:
* microbenchmarks/to-number-only-number.js:
* microbenchmarks/to-number-only-string.js:
* microbenchmarks/to-number-string-number-string-number.js:
* microbenchmarks/to-string-on-cow-array.js:
* microbenchmarks/try-catch-get-by-val-cloned-arguments.js:
* microbenchmarks/try-catch-get-by-val-direct-arguments.js:
* microbenchmarks/try-catch-get-by-val-scoped-arguments.js:
* microbenchmarks/try-catch-word-count.js:
* microbenchmarks/try-get-by-id-basic.js:
* microbenchmarks/try-get-by-id-polymorphic.js:
* microbenchmarks/typed-array-get-set-by-val-profiling.js:
* microbenchmarks/typed-array-subarray.js:
* microbenchmarks/typed-array-sum.js:
* microbenchmarks/undefined-test.js:
* microbenchmarks/unprofiled-licm.js:
* microbenchmarks/untyped-string-from-char-code.js:
* microbenchmarks/v8-raytrace-with-empty-try-catch.js:
* microbenchmarks/v8-raytrace-with-try-catch.js:
* microbenchmarks/v8-regexp-search.js:
* microbenchmarks/varargs-call.js:
* microbenchmarks/varargs-construct-inline.js:
* microbenchmarks/varargs-construct.js:
* microbenchmarks/varargs-inline.js:
* microbenchmarks/varargs-strict-mode.js:
* microbenchmarks/varargs.js:
* microbenchmarks/vector-length-hint-array-constructor.js:
* microbenchmarks/vector-length-hint-new-array.js:
* microbenchmarks/weak-map-key.js:
* microbenchmarks/weak-set-key.js:
* microbenchmarks/weird-inlining-const-prop.js:
2019-10-22 Mark Lam <mark.lam@apple.com>
Fix incorrect assertion in operationRegExpExecNonGlobalOrSticky().
https://bugs.webkit.org/show_bug.cgi?id=203230
<rdar://problem/56460749>
Reviewed by Robin Morisset.
* stress/incorrect-exception-assertion-in-operationRegExpExecNonGlobalOrSticky.js: Added.
2019-10-21 Mark Lam <mark.lam@apple.com>
Rolling out r251411: Fix is incorrect.
https://bugs.webkit.org/show_bug.cgi?id=203230
Not reviewed.
* stress/incorrect-exception-assertion-in-operationRegExpExecNonGlobalOrSticky.js: Removed.
2019-10-21 Mark Lam <mark.lam@apple.com>
Fix incorrect assertion in operationRegExpExecNonGlobalOrSticky().
https://bugs.webkit.org/show_bug.cgi?id=203230
<rdar://problem/56460749>
Reviewed by Robin Morisset.
* stress/incorrect-exception-assertion-in-operationRegExpExecNonGlobalOrSticky.js: Added.
2019-10-21 Saam Barati <sbarati@apple.com>
ValuePow's constant folding rule differs from what the runtime does
https://bugs.webkit.org/show_bug.cgi?id=203220
<rdar://problem/56181441>
Reviewed by Yusuke Suzuki.
* value-pow-ai-rule-should-box-the-same-way-as-the-runtime.js: Added.
(foo):
2019-10-21 Mark Lam <mark.lam@apple.com>
Fix missing exception check in JSON Stringifier.
https://bugs.webkit.org/show_bug.cgi?id=203227
<rdar://problem/56459854>
Reviewed by Keith Miller.
* stress/missing-exception-check-in-josn-stringifier.js: Added.
2019-10-21 Saam Barati <sbarati@apple.com>
JSON.parse has bad is array assert
https://bugs.webkit.org/show_bug.cgi?id=203207
<rdar://problem/56366913>
Reviewed by Yusuke Suzuki.
* stress/json-parse-array-prototype-is-array-assert.js: Added.
(assert):
2019-10-21 Robin Morisset <rmorisset@apple.com>
Throw the right exception upon memory exhaustion in Array::slice
https://bugs.webkit.org/show_bug.cgi?id=202650
Reviewed by Saam Barati.
* stress/array-slice-memory-exhaustion.js: Added.
(foo):
2019-10-21 Robin Morisset <rmorisset@apple.com>
Post increment/decrement should only call ToNumber once
https://bugs.webkit.org/show_bug.cgi?id=202711
Reviewed by Saam Barati.
* stress/postinc-custom-valueOf.js: Added.
(postInc):
(postDec):
2019-10-18 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] DFG::CommonData modification by DFG reallyAdd should be guarded by CodeBlock's lock
https://bugs.webkit.org/show_bug.cgi?id=203177
Reviewed by Mark Lam.
* stress/dfg-really-add-locking.js: Added.
2019-10-17 Mark Lam <mark.lam@apple.com>
Add missing checks after calls to the sameValue() JSValue comparator.
https://bugs.webkit.org/show_bug.cgi?id=203126
<rdar://problem/56366561>
Reviewed by Saam Barati.
* stress/validate-exception-check-in-proxy-object-put.js: Added.
2019-10-17 Saam Barati <sbarati@apple.com>
GetByVal and PutByVal on ArrayStorage need to use the same AbstractHeap
https://bugs.webkit.org/show_bug.cgi?id=203124
<rdar://problem/55988183>
Reviewed by Yusuke Suzuki.
* stress/licm-array-storage-get-and-put-by-val.js: Added.
(assert):
(foo):
2019-10-16 Keith Miller <keith_miller@apple.com>
Move assert in Wasm::Plan::fail.
https://bugs.webkit.org/show_bug.cgi?id=203052
Reviewed by Mark Lam.
* wasm/regress/wasm-plan-fail-bad-error-message-assert.js: Added.
(Binary):
(Binary.prototype.trunc_buffer):
(Binary.prototype.emit_leb_u):
(Binary.prototype.emit_u32v):
(Binary.prototype.emit_bytes):
(Binary.prototype.emit_header):
(__f_576):
(__f_587):
2019-10-15 Mark Lam <mark.lam@apple.com>
operationSwitchCharWithUnknownKeyType failed to handle OOME when resolving rope string.
https://bugs.webkit.org/show_bug.cgi?id=202312
<rdar://problem/55782280>
Reviewed by Yusuke Suzuki.
* stress/operationSwitchCharWithUnknownKeyType-should-avoid-resolving-rope-strings.js: Added.
* stress/operationSwitchCharWithUnknownKeyType-should-avoid-resolving-rope-strings2.js: Added.
* stress/switch-on-char-llint-rope.js:
- Changed this test to make a new rope string for each iterations. Otherwise,
the rope will get resolved, and subsequent tiers will not be testing with a rope.
2019-10-14 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] GetterSetter should be JSCell, not JSObject
https://bugs.webkit.org/show_bug.cgi?id=202656
Reviewed by Tadeu Zagallo and Saam Barati.
* stress/getter-setter-should-be-cell.js: Added.
(foo.with.):
(foo.with.get for):
(foo.with.bar):
(foo):
2019-10-14 Saam Barati <sbarati@apple.com>
Canonicalize how we prepare the prototype chain for inline caching
https://bugs.webkit.org/show_bug.cgi?id=202827
<rdar://problem/56193919>
Reviewed by Yusuke Suzuki.
* stress/cache-correct-offset-after-flattening.js: Added.
(assert):
2019-10-14 Paulo Matos <pmatos@igalia.com>
Skip memcpy-typed-loop timing out on ARMv7 pending investigation
https://bugs.webkit.org/show_bug.cgi?id=202923
Reviewed by Adrian Perez de Castro.
* microbenchmarks/memcpy-typed-loop.js:
2019-10-11 Keith Miller <keith_miller@apple.com>
Wasm B3IRGenerator should use arguments for control data.
https://bugs.webkit.org/show_bug.cgi?id=202855
Reviewed by Yusuke Suzuki.
* wasm/stress/loop-more-args-than-results.js: Added.
2019-10-10 Mark Lam <mark.lam@apple.com>
Modify JSTests/stress/string-overflow-createError-*.js tests to allow an OOME result.
https://bugs.webkit.org/show_bug.cgi?id=202828
Reviewed by Yusuke Suzuki.
The tests intentionally allocate a very large string. Hence, for some memory
limited configurations, it is perfectly reasonable for the test to throw an Out
Of Memory error.
* stress/string-overflow-createError-builder.js:
* stress/string-overflow-createError-fit.js:
2019-10-09 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, roll out r250878
https://bugs.webkit.org/show_bug.cgi?id=202656
Breaking vimeo page.
* stress/getter-setter-should-be-cell.js: Removed.
2019-10-08 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] GetterSetter should be JSCell, not JSObject
https://bugs.webkit.org/show_bug.cgi?id=202656
Reviewed by Tadeu Zagallo and Saam Barati.
* stress/getter-setter-should-be-cell.js: Added.
(foo.with.):
(foo.with.get for):
(foo.with.bar):
(foo):
2019-10-08 Alexey Shvayka <shvaikalesh@gmail.com>
JSON.parse incorrectly handles array proxies
https://bugs.webkit.org/show_bug.cgi?id=199292
Reviewed by Saam Barati.
* microbenchmarks/json-parse-array-reviver-same-value.js: Added.
* microbenchmarks/json-parse-array-reviver.js: Added.
* microbenchmarks/json-parse-object-reviver-same-value.js: Added.
* microbenchmarks/json-parse-object-reviver.js: Added.
* stress/json-parse-reviver-array-proxy.js: Added.
* stress/json-parse-reviver-revoked-proxy.js: Added.
* test262/expectations.yaml: Mark 6 test cases as passing.
2019-10-08 Ross Kirsling <ross.kirsling@sony.com>
Update test262 (2019.10.08).
Rubber-stamped by Keith Miller.
* test262/config.yaml:
* test262/expectations.yaml:
* test262/latest-changes-summary.txt:
* test262/test/:
* test262/test262-Revision.txt:
2019-10-07 Saam Barati <sbarati@apple.com>
Allow OSR exit to the LLInt
https://bugs.webkit.org/show_bug.cgi?id=197993
Reviewed by Tadeu Zagallo.
* stress/exit-from-getter-by-val.js: Added.
* stress/exit-from-setter-by-val.js: Added.
2019-10-07 Matt Lewis <jlewis3@apple.com>
Unreviewed, rolling out r250750.
Reverting change as this broke interal test over the weekend.
Reverted changeset:
"Allow OSR exit to the LLInt"
https://bugs.webkit.org/show_bug.cgi?id=197993
https://trac.webkit.org/changeset/250750
2019-10-04 Saam Barati <sbarati@apple.com>
Allow OSR exit to the LLInt
https://bugs.webkit.org/show_bug.cgi?id=197993
Reviewed by Tadeu Zagallo.
* stress/exit-from-getter-by-val.js: Added.
* stress/exit-from-setter-by-val.js: Added.
2019-10-04 Paulo Matos <pmatos@igalia.com>
Revert regexp test skip on armv7l and mips
https://bugs.webkit.org/show_bug.cgi?id=202310
Reviewed by Žan Doberšek.
Test was skipped in bug 202113 on armv7l and mips due to bug 202041.
Bug 202041 is fixed and change of bug 202113 can be reverted.
* stress/regexp-unicode-surrogate-pair-increment-should-involve-length-check.js:
2019-10-02 Mark Lam <mark.lam@apple.com>
DoubleToStringConverter::ToExponential() should null terminate its string.
https://bugs.webkit.org/show_bug.cgi?id=202492
<rdar://problem/55907708>
Reviewed by Filip Pizlo.
* stress/dtoa-AddSubstring-should-uses-strnlen-in-assertion.js: Added.
2019-10-02 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] AsyncGenerator should have internal fields
https://bugs.webkit.org/show_bug.cgi?id=201498
Reviewed by Saam Barati.
* stress/async-generator-construct-failure.js: Added.
(shouldThrow):
(async.gen):
(TypeError):
* stress/async-generator-prototype-change.js: Added.
(shouldBe):
(async.gen):
* stress/async-generator-prototype-closure.js: Added.
(shouldBe):
(test.async.gen):
(test):
* stress/create-async-generator.js: Added.
(shouldBe):
(test.async.generator):
(test):
2019-10-01 Saam Barati <sbarati@apple.com>
ObjectAllocationSinkingPhase shouldn't insert hints for allocations which are no longer valid
https://bugs.webkit.org/show_bug.cgi?id=199361
<rdar://problem/52454940>
Reviewed by Yusuke Suzuki.
* stress/allocation-sinking-hints-are-valid-ssa-2.js: Added.
(main.fn):
(main.executor):
(main):
* stress/allocation-sinking-hints-are-valid-ssa.js: Added.
(main.fn):
(main.executor):
(main):
2019-10-01 Keith Miller <keith_miller@apple.com>
skip test until we figure out why it's timing out
https://bugs.webkit.org/show_bug.cgi?id=202423
Reviewed by Mark Lam.
new_array_with_spread-should-cap-array-size-to-MIN_ARRAY_STORAGE_CONSTRUCTION_LENGTH.js consistently times out on the bots.
Let's skip it until we figure out what's going on.
* stress/new_array_with_spread-should-cap-array-size-to-MIN_ARRAY_STORAGE_CONSTRUCTION_LENGTH.js:
2019-10-01 Keith Miller <keith_miller@apple.com>
Mark toctou test as skipped on debug builds
https://bugs.webkit.org/show_bug.cgi?id=202420
Reviewed by Saam Barati.
Keeps timing out... Let's just skip it.
* stress/toctou-having-a-bad-time-new-array.js:
2019-10-01 Keith Miller <keith_miller@apple.com>
Test262 update
Rubber-stamped by Michael Saboff.
Note, this was too big to effectivetly put on bugzilla as it's a 10MB patch...
* test262/*:
2019-10-01 Michael Saboff <msaboff@apple.com> and Paulo Matos <pmatos@igalia.com>
[YARR] Properly handle surrogates when matching back references
https://bugs.webkit.org/show_bug.cgi?id=202041
Reviewed by Keith Miller.
Unchanged from the workin progress patch posted by Paulo Matos <pmatos@igalia.com>.
Updated test.
* stress/regexp-unicode-surrogate-pair-increment-should-involve-length-check.js:
(testRegExpNotMatch):
2019-10-01 Keith Miller <keith_miller@apple.com>
Add support for the Wasm multi-value proposal
https://bugs.webkit.org/show_bug.cgi?id=202250
Reviewed by Saam Barati.
This patch adds a new way to run stress tests via the .wat text
format. By attaching an asm.js compiled version of the wabt tool
we can easily create wat files programatically and convert them
into a wasm blob to compile. To make this easy there is a
wabt-wrapper.js module file that exports two useful functions that
correspond to WebAssembly.compile and WebAssembly.instantiate.
* wasm.yaml:
* wasm/function-tests/if-no-else-non-void.js:
* wasm/js-api/web-assembly-instantiate.js:
(assert.asyncTest.async.test):
(assert.asyncTest):
* wasm/libwabt.js: Added.
(WabtModule):
(set get if):
* wasm/references/func_ref.js:
* wasm/references/validation.js:
(assert.throws):
* wasm/spec-harness/index.js:
* wasm/spec-tests/block.wast.js:
* wasm/spec-tests/br.wast.js:
* wasm/spec-tests/br_if.wast.js:
* wasm/spec-tests/call.wast.js:
* wasm/spec-tests/call_indirect.wast.js:
* wasm/spec-tests/func.wast.js:
* wasm/spec-tests/if.wast.js:
* wasm/spec-tests/loop.wast.js:
* wasm/spec-tests/type.wast.js:
* wasm/stress/js-wasm-call-many-return-types-on-stack-no-args.js: Added.
(buildWat):
* wasm/stress/js-wasm-js-varying-arities.js: Added.
(paramForwarder):
* wasm/stress/wasm-js-call-many-return-types-on-stack-no-args.js: Added.
(buildWat):
* wasm/stress/wasm-js-multi-value-exception-in-iterator.js: Added.
(buildWat.throwError):
(buildWat.throwErrorInIterator):
(buildWat.tooManyValues):
(buildWat.tooFewValues):
(buildWat):
* wasm/stress/wasm-wasm-call-indirect-many-return-types-on-stack.js: Added.
(buildWat):
* wasm/stress/wasm-wasm-call-many-return-types-on-stack-no-args.js: Added.
(buildWat):
* wasm/wabt-wrapper.js: Added.
(export.compile):
* wasm/wast-tests/br-if-at-end-of-block.wasm: Added.
* wasm/wast-tests/br-if-at-end-of-block.wast: Added.
* wasm/wast-tests/harness.js:
(async.runWasmFile):
* wasm/wast-tests/single-param-loop-signature.wasm: Added.
* wasm/wast-tests/single-param-loop-signature.wast: Added.
2019-09-30 Tadeu Zagallo <tzagallo@apple.com>
Make assertion in JSObject::putOwnDataProperty more precise
https://bugs.webkit.org/show_bug.cgi?id=202379
<rdar://problem/49515980>
Reviewed by Yusuke Suzuki.
* stress/object-assign-target-proto-setter.js: Added.
(get Object):
2019-09-30 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] HeapSnapshotBuilder m_rootData should be protected with a lock too
https://bugs.webkit.org/show_bug.cgi?id=202389
<rdar://problem/50717564>
Reviewed by Mark Lam.
* stress/heap-analyzer-taking-lock.js: Added.
2019-09-30 Saam Barati <sbarati@apple.com>
Inline caching is wrong for custom accessors and custom values
https://bugs.webkit.org/show_bug.cgi?id=201994
<rdar://problem/50850326>
Reviewed by Yusuke Suzuki.
* microbenchmarks/custom-accessor-materialized.js: Added.
(assert):
(test4.get const):
* microbenchmarks/custom-accessor-thin-air.js: Added.
(assert):
(test5.get const):
(test5.get proto):
* microbenchmarks/custom-accessor.js: Added.
(assert):
(test3.get const):
* microbenchmarks/custom-value-2.js: Added.
(assert):
(test1.getMultiline):
(test1):
* microbenchmarks/custom-value.js: Added.
(assert):
(test1.getMultiline):
(test1):
* stress/custom-accessor-delete-1.js: Added.
(assert):
(test3.get const):
* stress/custom-accessor-delete-2.js: Added.
(assert):
(test4.get const):
* stress/custom-accessor-delete-3.js: Added.
(assert):
(test5.get const):
(test5.get proto):
* stress/custom-value-delete-property-1.js: Added.
(assert):
(test1.getMultiline):
(test1):
* stress/custom-value-delete-property-2.js: Added.
(test2.foo):
(test2):
* stress/custom-value-delete-property-3.js: Added.
(test6.foo):
(test6):
2019-09-30 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] AI folds CompareEq wrongly when it sees proven Boolean and Number
https://bugs.webkit.org/show_bug.cgi?id=202382
<rdar://problem/52669112>
Reviewed by Saam Barati.
* stress/compare-eq-bool-number-folding.js: Added.
(test):
2019-09-27 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Keep JSString::value(ExecState*)'s result as String instead of `const String&`
https://bugs.webkit.org/show_bug.cgi?id=202330
Reviewed by Saam Barati.
* stress/to-lower-case-gc-stress.js: Added.
2019-09-27 Alexey Shvayka <shvaikalesh@gmail.com>
Non-standard Error properties should not be enumerable
https://bugs.webkit.org/show_bug.cgi?id=198975
Reviewed by Ross Kirsling.
* ChakraCore/test/Error/NativeErrors_v4.baseline-jsc: Adjust expectations.
* microbenchmarks/let-for-in.js: Adjust test.
* test262/expectations.yaml: Mark 6 test cases as passing.
2019-09-26 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] DFG recursive-tail-call optimization should not emit jump to call-frame with varargs
https://bugs.webkit.org/show_bug.cgi?id=202299
<rdar://problem/52669116>
Reviewed by Saam Barati.
* stress/recursive-tail-call-optimization-should-not-jump-into-call-frame-with-varargs-simple.js: Added.
(foo):
(test):
* stress/recursive-tail-call-optimization-should-not-jump-into-call-frame-with-varargs.js: Added.
(foo):
(C1.prototype.baz):
(C1):
(bar):
(noInline.bar.goo):
(C2.prototype.baz):
(C2):
(test):
2019-09-26 Alexey Shvayka <shvaikalesh@gmail.com>
toExponential, toFixed, and toPrecision should allow arguments up to 100
https://bugs.webkit.org/show_bug.cgi?id=199163
Reviewed by Ross Kirsling.
* ChakraCore/test/Number/toString_3.baseline-jsc:
* ChakraCore/test/es5/exceptions3.baseline-jsc:
* test262/expectations.yaml: Mark 6 test cases as passing.
2019-09-24 Alexey Shvayka <shvaikalesh@gmail.com>
[ES6] Come up with a test for Proxy.[[GetOwnProperty]] that tests the isExtensible error when the result of the trap is undefined
https://bugs.webkit.org/show_bug.cgi?id=154376
Reviewed by Ross Kirsling.
Adds 2 test cases:
1. If [[GetOwnProperty]] trap result is `undefined` and Proxy's target is non-extensible, TypeError is thrown.
2. If [[GetOwnProperty]] trap result is `undefined` and Proxy's target is another Proxy, its "isExtensible" trap is called.
* stress/proxy-get-own-property.js:
2019-09-24 Caio Lima <ticaiolima@gmail.com>
[BigInt] Add ValueBitRShift into DFG
https://bugs.webkit.org/show_bug.cgi?id=192663
Reviewed by Robin Morisset.
* stress/big-int-right-shift-jit-osr.js: Added.
* stress/big-int-right-shift-jit-untyped.js: Added.
* stress/big-int-right-shift-jit.js: Added.
* stress/value-rshift-ai-rule.js: Added.
2019-09-23 Ross Kirsling <ross.kirsling@sony.com>
Array methods should throw TypeError upon attempting to modify a string
https://bugs.webkit.org/show_bug.cgi?id=201910
Reviewed by Keith Miller.
* stress/array-methods-should-not-modify-string.js: Added.
* mozilla/js1_6/Array/regress-304828.js:
Fix test. Original copy was changed similarly seven years ago:
https://searchfox.org/mozilla-central/source/js/src/tests/non262/Array/regress-304828.js
* stress/phantom-insertion-live-range-should-agree-with-arguments-forwarding.js:
Fix test. `Object.__proto__ = []; Object.shift();` shouldn't be valid JS.
2019-09-23 Mark Lam <mark.lam@apple.com>
Lazy JSGlobalObject property materialization should not use putDirectWithoutTransition.
https://bugs.webkit.org/show_bug.cgi?id=202122
<rdar://problem/55535249>
Reviewed by Yusuke Suzuki.
* stress/lazy-global-object-property-materialization-should-not-putDirectWithoutTransition.js: Added.
2019-09-23 Caio Lima <ticaiolima@gmail.com>
Skip stress/regexp-unicode-surrogate-pair-increment-should-involve-length-check.js into ARMv7 and MIPS
https://bugs.webkit.org/show_bug.cgi?id=202113
Unreviewed test gardening, skipped test in ARMv7 and MIPS.
It is going to be fixed in
https://bugs.webkit.org/show_bug.cgi?id=202041
* stress/regexp-unicode-surrogate-pair-increment-should-involve-length-check.js:
2019-09-22 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Int52Rep(DoubleRepAnyIntUse) should not call operation function
https://bugs.webkit.org/show_bug.cgi?id=202072
Reviewed by Mark Lam.
* stress/int52rep-with-double-checks-int52-range.js: Added.
(shouldBe):
(test):
2019-09-21 Caio Lima <ticaiolima@gmail.com>
stress/test-out-of-memory.js is not throwing OOM into ARMv7 and MIPS
https://bugs.webkit.org/show_bug.cgi?id=202011
Reviewed by Mark Lam.
We are skipping this test into MIPS and ARMv7 because some of its assumptions
are not valid for them. The current behavior of the test in those architectures
is that it does not throw during `new ArrayBuffer(1000)` allocation site,
because eden collection keeps happening between iterations. The collection
is triggered on those architectures because the amount of stress
`new Promise` generates into GC limits is not enough to avoid them
while loop is executing.
Changing the size of `UInt8Array` from `80000000` to `160000000` can
be an alternative fix to avoid collection happening during `ArrayBuffer`
allocation loop, but we can't guarantee this test is always going to execute
without error when Gigacage is disabled, given we can reach an OOM state in
some allocations that need to succeed, making this test flaky for those
architectures.
* stress/test-out-of-memory.js:
2019-09-21 Tadeu Zagallo <tzagallo@apple.com>
AccessCase should strongly visit its dependencies while on stack
https://bugs.webkit.org/show_bug.cgi?id=201986
<rdar://problem/55521953>
Reviewed by Saam Barati and Yusuke Suzuki.
* stress/ftl-put-by-id-setter-exception-interesting-live-state-2.js: Added.
(foo):
(warmup):
2019-09-20 Saam Barati <sbarati@apple.com>
Unreviewed. Make toctou-having-a-bad-time-new-array.js run for less time because it's timing out on the debug bots.
* stress/toctou-having-a-bad-time-new-array.js:
2019-09-19 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] DFG op_call_varargs should not assume that one-previous-local of freeReg is usable
https://bugs.webkit.org/show_bug.cgi?id=202014
Reviewed by Saam Barati.
* stress/call-varargs-inlining-should-not-clobber-previous-to-free-register.js: Added.
(__v0):
2019-09-19 Tadeu Zagallo <tzagallo@apple.com>
Syntax checker should report duplicate __proto__ properties
https://bugs.webkit.org/show_bug.cgi?id=201897
<rdar://problem/53201788>
Reviewed by Mark Lam.
* stress/syntax-checker-duplicate-underscore-proto.js: Added.
(catch):
2019-09-18 Saam Barati <sbarati@apple.com>
TOCTOU bug in havingABadTime related assertion in DFGSpeculativeJIT
https://bugs.webkit.org/show_bug.cgi?id=201953
<rdar://problem/53803524>
Reviewed by Yusuke Suzuki.
* stress/toctou-having-a-bad-time-new-array.js: Added.
(let.code):
2019-09-18 Saam Barati <sbarati@apple.com>
Phantom insertion phase may disagree with arguments forwarding about live ranges
https://bugs.webkit.org/show_bug.cgi?id=200715
<rdar://problem/54301717>
Reviewed by Yusuke Suzuki.
* stress/phantom-insertion-live-range-should-agree-with-arguments-forwarding.js: Added.
(main.v23):
(main.try.v43):
(main.):
(main):
2019-09-17 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Generator should have internal fields
https://bugs.webkit.org/show_bug.cgi?id=201159
Reviewed by Keith Miller.
* stress/create-generator.js: Added.
(shouldBe):
(test.generator):
(test):
* stress/generator-construct-failure.js: Added.
(shouldThrow):
(TypeError):
* stress/generator-prototype-change.js: Added.
(shouldBe):
(gen):
* stress/generator-prototype-closure.js: Added.
(shouldBe):
(test.gen):
(test):
* stress/object-assign-fast-path.js:
2019-09-17 Yusuke Suzuki <ysuzuki@apple.com>
Follow-up after String.codePointAt optimization
https://bugs.webkit.org/show_bug.cgi?id=201889
Reviewed by Saam Barati.
* stress/string-char-at-bad-type.js: Added.
(shouldBe):
(object.toString):
(test):
* stress/string-char-code-at-bad-type.js: Added.
(shouldBe):
(object.toString):
(test):
* stress/string-code-point-at-bad-type.js: Added.
(shouldBe):
(object.toString):
(test):
2019-09-17 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] CheckArray+NonArray is not filtering out Array in AI
https://bugs.webkit.org/show_bug.cgi?id=201857
<rdar://problem/54194820>
Reviewed by Keith Miller.
* stress/check-array-with-non-array-does-not-filter-arrays.js: Added.
(foo):
2019-09-17 Saam Barati <sbarati@apple.com>
CheckArray on DirectArguments/ScopedArguments does not filter out slow put array storage
https://bugs.webkit.org/show_bug.cgi?id=201853
<rdar://problem/53805461>
Reviewed by Yusuke Suzuki.
* stress/direct-arguments-check-array-filter-type.js: Added.
(foo):
2019-09-16 Tadeu Zagallo <tzagallo@apple.com>
Wasm StreamingParser should validate that number of functions matches number of declarations
https://bugs.webkit.org/show_bug.cgi?id=201850
<rdar://problem/55290186>
Reviewed by Yusuke Suzuki.
* wasm/regress/validate-number-of-functions-match-declarations.js: Added.
(catch):
2019-09-16 Michael Saboff <msaboff@apple.com>
[JSC] Perform check again when we found non-BMP characters
https://bugs.webkit.org/show_bug.cgi?id=201647
Reviewed by Yusuke Suzuki.
* stress/regexp-unicode-surrogate-pair-increment-should-involve-length-check.js: Added.
* stress/regexp-unicode-within-string.js: Updated test to eliminate the bogus print().
(testRegExpInbounds):
2019-09-16 Ross Kirsling <ross.kirsling@sony.com>
[JSC] Add missing syntax errors for await in function parameter default expressions
https://bugs.webkit.org/show_bug.cgi?id=201615
Reviewed by Darin Adler.
* stress/async-await-reserved-word.js:
* stress/async-await-syntax.js:
Add test cases.
* test262/expectations.yaml:
Mark newly-passing test cases.
2019-09-16 Saam Barati <sbarati@apple.com>
JSObject::putInlineSlow should not ignore "__proto__" for Proxy
https://bugs.webkit.org/show_bug.cgi?id=200386
<rdar://problem/53854946>
Reviewed by Yusuke Suzuki.
* stress/proxy-__proto__-in-prototype-chain.js: Added.
* stress/proxy-property-replace-structure-transition.js: Added.
2019-09-13 Alexey Shvayka <shvaikalesh@gmail.com>
Date.prototype.toJSON does not execute steps 1-2
https://bugs.webkit.org/show_bug.cgi?id=105282
Reviewed by Ross Kirsling.
* test262/expectations.yaml: Mark 2 test cases as passing.
2019-09-12 Mark Lam <mark.lam@apple.com>
Harden JSC against the abuse of runtime options.
https://bugs.webkit.org/show_bug.cgi?id=201597
<rdar://problem/55167068>
Reviewed by Filip Pizlo.
Remove the call to forceGCSlowPaths(). This utility function will be removed.
The modern way to set the required option is to use //@ requireOptions.
* stress/ftl-try-catch-oom-error-lazy-slow-path.js:
2019-09-11 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Add StringCodePointAt intrinsic
https://bugs.webkit.org/show_bug.cgi?id=201673
Reviewed by Michael Saboff.
* stress/string-char-at-constant-index-out-of-range.js: Added.
(shouldBe):
(test):
* stress/string-char-code-at-constant-index-out-of-range.js: Added.
(shouldBe):
(test):
* stress/string-code-point-at--out-of-range.js: Added.
(shouldBe):
(test):
* stress/string-code-point-at-basic.js: Added.
(test):
* stress/string-code-point-at-constant-index-out-of-range.js: Added.
(shouldBe):
(test):
* stress/string-code-point-at-constant-int32-max-index-out-of-range.js: Added.
(shouldBe):
(test):
* stress/string-code-point-at-constant-surrogate-pair.js: Added.
(shouldBe):
(test):
(breaking):
* stress/string-code-point-at-surrogate-pair.js: Added.
(shouldBe):
* stress/string-code-point-at.js: Added.
(shouldBe):
2019-09-10 Michael Saboff <msaboff@apple.com>
JSC crashes due to stack overflow while building RegExp
https://bugs.webkit.org/show_bug.cgi?id=201649
Reviewed by Yusuke Suzuki.
New regression test.
* stress/regexp-bol-optimize-out-of-stack.js: Added.
(test):
(catch):
2019-09-10 Yusuke Suzuki <ysuzuki@apple.com>
[WebAssembly] Use StreamingParser in existing Wasm::BBQPlan
https://bugs.webkit.org/show_bug.cgi?id=189043
Reviewed by Keith Miller.
The offset performing the validation becomes a bit different.
The offset 0 is nice since it is the starting offset of the Module header signature compared to the offset 8.
* wasm/js-api/version.js:
2019-09-07 Keith Miller <keith_miller@apple.com>
OSR entry into wasm misses some contexts
https://bugs.webkit.org/show_bug.cgi?id=201569
Reviewed by Yusuke Suzuki.
Add a new harness and wast and the generated wasm file for
testing. The idea long term is to make it easy to test by creating
a C file and converting it to a wast then modify that to produce a
test.
* wasm.yaml:
* wasm/wast-tests/harness.js: Added.
(async.runWasmFile):
* wasm/wast-tests/osr-entry-inner-loop-branch-above-no-consts.wasm: Added.
* wasm/wast-tests/osr-entry-inner-loop-branch-above-no-consts.wast: Added.
* wasm/wast-tests/osr-entry-inner-loop-branch-above.wasm: Added.
* wasm/wast-tests/osr-entry-inner-loop-branch-above.wast: Added.
* wasm/wast-tests/osr-entry-inner-loop.wasm: Added.
* wasm/wast-tests/osr-entry-inner-loop.wast: Added.
* wasm/wast-tests/osr-entry-multiple-enclosed-contexts.wasm: Added.
* wasm/wast-tests/osr-entry-multiple-enclosed-contexts.wast: Added.
2019-09-09 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Promise resolve/reject functions should be created more efficiently
https://bugs.webkit.org/show_bug.cgi?id=201488
Reviewed by Mark Lam.
* microbenchmarks/promise-creation-many.js: Added.
(executor):
2019-09-09 Zan Dobersek <zdobersek@igalia.com>
Unreviewed JSC test gardening.
* stress/constructFunctionSkippingEvalEnabledCheck-should-throw-out-of-memory-error.js:
This test allocates a 2GB string before it goes out and tests
out-of-memory exception when appending other strings to it. As such,
skip the test on memory-limited platforms.
2019-09-07 Mark Lam <mark.lam@apple.com>
The jsc shell should allow disabling of the Gigacage for testing purposes.
https://bugs.webkit.org/show_bug.cgi?id=201579
Reviewed by Michael Saboff.
Unskip the tests now.
* stress/disable-gigacage-arrays.js:
* stress/disable-gigacage-strings.js:
* stress/disable-gigacage-typed-arrays.js:
2019-09-07 Mark Lam <mark.lam@apple.com>
Gardening: temporarily skipping these tests until the fix can be reviewed and landed.
Not reviewed.
See https://bugs.webkit.org/show_bug.cgi?id=201579 for the fix.
* stress/disable-gigacage-arrays.js:
* stress/disable-gigacage-strings.js:
* stress/disable-gigacage-typed-arrays.js:
2019-09-07 Mark Lam <mark.lam@apple.com>
Gardening: speculative test fix to green bots [attempt #2].
https://bugs.webkit.org/show_bug.cgi?id=201529
<rdar://problem/53935772>
Not reviewed.
* stress/test-out-of-memory.js:
2019-09-06 Mark Lam <mark.lam@apple.com>
Gardening: speculative test fix to green bots.
https://bugs.webkit.org/show_bug.cgi?id=201529
<rdar://problem/53935772>
Not reviewed.
* stress/test-out-of-memory.js:
2019-09-06 Ross Kirsling <ross.kirsling@sony.com>
Math.round() produces wrong result for value prior to 0.5
https://bugs.webkit.org/show_bug.cgi?id=185115
Reviewed by Saam Barati.
* stress/math-round-basics.js:
Add positive/negative test cases.
* test262/expectations.yaml:
Mark test passing.
2019-09-06 Mark Lam <mark.lam@apple.com>
Move web-assembly-constructors-should-not-override-global-object-property.js below JSTests/wasm/stress.
https://bugs.webkit.org/show_bug.cgi?id=201551
Reviewed by Tadeu Zagallo.
Ports that don't support WASM will always fail this test if it stays in JSTests/stress.
* stress/web-assembly-constructors-should-not-override-global-object-property.js: Removed.
* wasm/stress/web-assembly-constructors-should-not-override-global-object-property.js: Copied from JSTests/stress/web-assembly-constructors-should-not-override-global-object-property.js.
2019-09-06 Mark Lam <mark.lam@apple.com>
Fix bmalloc::Allocator:tryAllocate() to return null on failure to allocate.
https://bugs.webkit.org/show_bug.cgi?id=201529
<rdar://problem/53935772>
Reviewed by Yusuke Suzuki.
* stress/test-out-of-memory.js: Added.
2019-09-05 Tadeu Zagallo <tzagallo@apple.com>
LazyClassStructure::setConstructor should not store the constructor to the global object
https://bugs.webkit.org/show_bug.cgi?id=201484
<rdar://problem/50400451>
Reviewed by Yusuke Suzuki.
* stress/web-assembly-constructors-should-not-override-global-object-property.js: Added.
2019-09-05 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Do not use FTLOutput::weakPointer directly
https://bugs.webkit.org/show_bug.cgi?id=201495
Reviewed by Filip Pizlo.
* stress/create-promise-weak-pointer.js: Added.
(foo):
2019-09-04 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Make Promise implementation faster
https://bugs.webkit.org/show_bug.cgi?id=200898
Reviewed by Saam Barati.
* ChakraCore/test/UnitTestFramework/UnitTestFramework.js:
(assert.assert.return.throws):
* modules/breaking-builtin-promise-then-does-not-break-internal-promise.js: Added.
* modules/breaking-builtin-promise-then-does-not-break-internal-promise/test.js: Added.
* stress/constructor-kind-naked-should-not-be-applied-to-inner-functions.js: Added.
(shouldThrow):
(new.Promise):
(shouldThrow.Promise):
* stress/create-promise-should-respect-promise-realm.js: Added.
(shouldBe):
(other.new.OtherPromise):
(DerivedOtherPromise):
(i.promise.new.DerivedOtherPromise):
(createPromise):
* stress/derived-promise-constructor-class-syntax-prototype-replace-attempt.js: Added.
(shouldBe):
(DerivedPromise):
(i.array.push.new.DerivedPromise):
(promise.new.DerivedPromise):
* stress/derived-promise-constructor-inlined.js: Added.
(shouldBe):
(DerivedPromise):
(i.array.push.new.DerivedPromise):
(DerivedPromise.all.array.then):
* stress/derived-promise-prototype-replaced.js: Added.
(shouldBe):
(DerivedPromise):
(i.array.push.new.DerivedPromise):
(promise.new.DerivedPromise):
* stress/internal-promise-constructor-not-confusing.js: Added.
(shouldBe):
(InternalPromise.vm.createBuiltin):
(DerivedPromise):
* stress/internal-promise-is-not-exposed.js: Added.
(shouldBe):
* stress/new-promise-should-respect-promise-realm.js: Added.
(shouldBe):
(other.new.OtherPromise):
(createPromise):
* stress/promise-cannot-be-called.js:
(shouldThrow):
* stress/promise-capability-fast-path.js: Added.
(shouldBe):
(i.array.push.new.Promise):
(i.array.i.then):
* stress/promise-capability-slow-path.js: Added.
(shouldBe):
(Promise.prototype.then):
(i.array.push.new.Promise):
(i.array.i.then):
* stress/promise-capability-then-slow-path.js: Added.
(shouldBe):
(DerivedPromise):
(DerivedPromise.prototype.then):
(i.array.push.new.DerivedPromise):
(i.array.i.then):
* stress/promise-constructor-inlined.js: Added.
(shouldBe):
(i.array.push.new.Promise):
(Promise.all.array.then):
* stress/promise-constructor-transition-from-new-promise-to-create-promise.js: Added.
(shouldBe):
(DerivedPromise):
(DerivedPromise2):
(i.array.push.new.DerivedPromise):
(i.array2.push.new.DerivedPromise2):
* stress/without-promise-functions.js: Added.
(shouldBe):
(async):
2019-09-03 Mark Lam <mark.lam@apple.com>
Assertions in JSArrayBufferView::byteOffset() are only valid for the mutator thread.
https://bugs.webkit.org/show_bug.cgi?id=201309
<rdar://problem/54832121>
Reviewed by Yusuke Suzuki.
* stress/JSArrayBufferView-byteOffset-is-racy-from-compiler-thread.js: Added.
2019-08-30 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Generate new.target register only when it is used
https://bugs.webkit.org/show_bug.cgi?id=201335
Reviewed by Mark Lam.
* stress/ensure-new-register-allocated.js: Added.
(shouldBe):
(basic):
(arrow):
(Base):
(Derived):
(evaluate):
2019-08-30 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] DFG ByteCodeParser should not copy JIT-related part of SimpleJumpTable
https://bugs.webkit.org/show_bug.cgi?id=201331
Reviewed by Mark Lam.
* stress/simple-jump-table-copy.js: Added.
(let.code):
(g2):
2019-08-30 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] DFG inlining CheckBadCell slow path does not assume result VirtualRegister can be invalid
https://bugs.webkit.org/show_bug.cgi?id=201332
Reviewed by Mark Lam.
This test is very flaky, it is hard to reproduce.
* stress/setter-inlining-resulting-bad-cell-result-virtual-register-should-be-invalid.js: Added.
(code):
2019-08-29 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Repatch should construct CallCases and CasesValue at the same time
https://bugs.webkit.org/show_bug.cgi?id=201325
Reviewed by Saam Barati.
* stress/repatch-switch.js: Added.
(main.f2.f0):
(main.f2.f3):
(main.f2.f1):
(main.f2):
(main):
2019-08-29 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] ObjectAllocationSinkingPhase wrongly deals with always-taken branches during interpretation
https://bugs.webkit.org/show_bug.cgi?id=198650
Reviewed by Saam Barati.
* stress/object-allocation-sinking-interpretation-can-interpret-edges-that-can-be-proven-unreachable-in-ai.js:
(main.v0):
(main):
2019-08-28 Mark Lam <mark.lam@apple.com>
DFG/FTL: We should prefetch structures and do a loadLoadFence before doing PrototypeChainIsSane checks.
https://bugs.webkit.org/show_bug.cgi?id=201281
<rdar://problem/54028228>
Reviewed by Yusuke Suzuki and Saam Barati.
* stress/structure-storedPrototype-should-only-assert-on-the-mutator-thread.js: Added.
2019-08-28 Mark Lam <mark.lam@apple.com>
Placate exception check validation in DFG's operationHasGenericProperty().
https://bugs.webkit.org/show_bug.cgi?id=201245
<rdar://problem/54777512>
Reviewed by Robin Morisset.
* stress/missing-exception-check-in-operationHasGenericProperty.js: Added.
2019-08-27 Mark Lam <mark.lam@apple.com>
constructFunctionSkippingEvalEnabledCheck() should use tryMakeString() and check for OOM.
https://bugs.webkit.org/show_bug.cgi?id=201196
<rdar://problem/54703775>
Reviewed by Yusuke Suzuki.
* stress/constructFunctionSkippingEvalEnabledCheck-should-throw-out-of-memory-error.js: Added.
2019-08-26 Ross Kirsling <ross.kirsling@sony.com>
[JSC] Ensure x?.y ?? z is fast
https://bugs.webkit.org/show_bug.cgi?id=200875
Reviewed by Yusuke Suzuki.
* stress/nullish-coalescing.js:
2019-08-23 Tadeu Zagallo <tzagallo@apple.com>
Remove MaximalFlushInsertionPhase
https://bugs.webkit.org/show_bug.cgi?id=201036
Reviewed by Saam Barati.
Remove all the references to maximal flush
* stress/arith-ceil-on-various-types.js:
(checkCompileCountForUselessNegativeZero):
* stress/arith-floor-on-various-types.js:
(checkCompileCountForUselessNegativeZero):
* stress/arith-negate-on-various-types.js:
(checkCompileCountForUselessNegativeZero):
* stress/arith-round-on-various-types.js:
(checkCompileCountForUselessNegativeZero):
* stress/arith-trunc-on-various-types.js:
(checkCompileCountForUselessNegativeZero):
* stress/dfg-compare-eq-via-nonSpeculativeNonPeepholeCompareNullOrUndefined.js:
* stress/has-indexed-property-should-accept-non-int32.js:
* stress/has-indexed-property-with-worsening-array-mode.js:
* stress/known-int32-cant-be-used-across-bytecode-boundary.js:
* stress/read-dead-bytecode-locals-in-must-handle-values1.js:
* stress/read-dead-bytecode-locals-in-must-handle-values2.js:
* stress/rest-parameter-many-arguments.js:
* stress/set-argument-maybe-maximal-flush-should-not-extend-liveness-2.js:
* stress/set-argument-maybe-maximal-flush-should-not-extend-liveness.js:
* stress/to-index-string-should-not-assume-incoming-value-is-uint32.js:
2019-08-23 Justin Michaud <justin_michaud@apple.com>
[WASM-References] Do not overwrite argument registers in jsCallEntrypoint
https://bugs.webkit.org/show_bug.cgi?id=200952
Reviewed by Saam Barati.
* wasm/references/func_ref.js:
(assert.throws):
2019-08-22 Justin Michaud <justin_michaud@apple.com>
Add missing exception check in canonicalizeLocaleList
https://bugs.webkit.org/show_bug.cgi?id=201021
Reviewed by Mark Lam.
* stress/missing-exception-check-in-canonicalizeLocaleList.js: Added.
(catch):
2019-08-21 Mark Lam <mark.lam@apple.com>
Wasm::FunctionParser is failing to enforce maxFunctionLocals.
https://bugs.webkit.org/show_bug.cgi?id=201016
<rdar://problem/54579911>
Reviewed by Yusuke Suzuki.
* wasm/stress/too-many-locals.js: Added.
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.catch):
2019-08-21 Ross Kirsling <ross.kirsling@sony.com>
JSTests/stress/optional-chaining should not call shouldThrowTypeError in a loop
https://bugs.webkit.org/show_bug.cgi?id=200965
Reviewed by Saam Barati.
This has nothing to do with ?. in particular, but throwing >1M type errors takes 100s in Debug on my machine.
The main idea here was to JITify the simple success cases, so let's not run the simple failures so many times.
* stress/optional-chaining.js:
2019-08-21 Michael Saboff <msaboff@apple.com>
[JSC] incorrent JIT lead to StackOverflow
https://bugs.webkit.org/show_bug.cgi?id=197823
Reviewed by Tadeu Zagallo.
New test.
* stress/bound-function-stack-overflow.js: Added.
(foo):
(catch):
2019-08-20 Justin Michaud <justin_michaud@apple.com>
Identify memcpy loops in b3
https://bugs.webkit.org/show_bug.cgi?id=200181
Reviewed by Saam Barati.
* microbenchmarks/memcpy-loop.js: Added.
(doTest):
(let.arr1):
* microbenchmarks/memcpy-typed-loop-large.js: Added.
(doTest):
(let.arr1.new.Int32Array.1000000.let.arr2.new.Int32Array.1000000):
(arr2):
* microbenchmarks/memcpy-typed-loop-small.js: Added.
(doTest):
(16.let.arr1.new.Int32Array.size.let.arr2.new.Int32Array.size):
(16.arr2):
* microbenchmarks/memcpy-typed-loop-speculative.js: Added.
(doTest):
(let.arr1.new.Int32Array.10.let.arr2.new.Int32Array.10):
(arr2):
* microbenchmarks/memcpy-wasm-large.js: Added.
(typeof.WebAssembly.string_appeared_here.eq):
(typeof.WebAssembly.string_appeared_here.const.1.new.WebAssembly.Instance.new.WebAssembly.Module.new.Uint8Array):
* microbenchmarks/memcpy-wasm-medium.js: Added.
(typeof.WebAssembly.string_appeared_here.eq):
(typeof.WebAssembly.string_appeared_here.const.1.new.WebAssembly.Instance.new.WebAssembly.Module.new.Uint8Array):
* microbenchmarks/memcpy-wasm-small.js: Added.
(typeof.WebAssembly.string_appeared_here.eq):
(typeof.WebAssembly.string_appeared_here.const.1.new.WebAssembly.Instance.new.WebAssembly.Module.new.Uint8Array):
* microbenchmarks/memcpy-wasm.js: Added.
(typeof.WebAssembly.string_appeared_here.eq):
(typeof.WebAssembly.string_appeared_here.const.1.new.WebAssembly.Instance.new.WebAssembly.Module.new.Uint8Array):
* stress/memcpy-typed-loops.js: Added.
(noLoop):
(invalidStart):
(const.size.10.let.arr1.new.Int32Array.size.let.arr2.new.Int32Array.size):
(arr2):
* wasm/function-tests/memcpy-wasm-loop.js: Added.
(0.GetLocal.3.I32Const.1.I32Add.SetLocal.3.Br.1.End.End.End.WebAssembly):
(string_appeared_here):
2019-08-20 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Array.prototype.toString should not get "join" function each time
https://bugs.webkit.org/show_bug.cgi?id=200905
Reviewed by Mark Lam.
* stress/array-prototype-join-change.js: Added.
(shouldBe):
(array2.join):
(DerivedArray):
(DerivedArray.prototype.join):
(array3.__proto__.join):
(Array.prototype.join):
2019-08-20 Justin Michaud <justin_michaud@apple.com>
Fix InBounds speculation of typed array PutByVal and add extra step to integer range optimization to search for equality relationships on the RHS value
https://bugs.webkit.org/show_bug.cgi?id=200782
Reviewed by Saam Barati.
Skip long memcpy test on debug, and try to fix flakiness for recompilation count tests by disabling cjit.
* microbenchmarks/memcpy-typed-loop.js:
* stress/int8-repeat-in-then-out-of-bounds.js:
2019-08-19 Alexey Shvayka <shvaikalesh@gmail.com>
Proxy constructor should throw if handler is revoked Proxy
https://bugs.webkit.org/show_bug.cgi?id=198755
Reviewed by Saam Barati.
* stress/proxy-revoke.js: Adjust error message.
* test262/expectations.yaml: Mark 2 test cases as passing.
2019-08-19 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] OSR entry to Wasm OMG
https://bugs.webkit.org/show_bug.cgi?id=200362
Reviewed by Michael Saboff.
* wasm/stress/osr-entry-basic.js: Added.
(instance.exports.loop):
* wasm/stress/osr-entry-many-locals-f32.js: Added.
* wasm/stress/osr-entry-many-locals-f64.js: Added.
* wasm/stress/osr-entry-many-locals-i32.js: Added.
* wasm/stress/osr-entry-many-locals-i64.js: Added.
* wasm/stress/osr-entry-many-stacks-f32.js: Added.
* wasm/stress/osr-entry-many-stacks-f64.js: Added.
* wasm/stress/osr-entry-many-stacks-i32.js: Added.
* wasm/stress/osr-entry-many-stacks-i64.js: Added.
2019-08-19 Alexey Shvayka <shvaikalesh@gmail.com>
Date.prototype.toJSON throws if toISOString returns an object
https://bugs.webkit.org/show_bug.cgi?id=198495
Reviewed by Ross Kirsling.
* test262/expectations.yaml: Mark 6 test cases as passing.
2019-08-19 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] DFG DataView get/set optimization should take care of the case little-endian flag is JSEmpty
https://bugs.webkit.org/show_bug.cgi?id=200899
<rdar://problem/54073341>
Reviewed by Mark Lam.
* stress/data-view-get-dfg-should-handle-empty-constant.js: Added.
(i.new.Promise):
* stress/data-view-set-dfg-should-handle-empty-constant.js: Added.
(i.new.Promise):
2019-08-19 Michael Saboff <msaboff@apple.com>
Webkit jsc Crash in RegExp::matchInline (this=<optimized out>
https://bugs.webkit.org/show_bug.cgi?id=197090
Reviewed by Yusuke Suzuki.
New test.
* stress/regexp-nonconsuming-counted-parens.js: Added.
2019-08-18 Ross Kirsling <ross.kirsling@sony.com>
[JSC] Correct a->an in error messages and API docblocks
https://bugs.webkit.org/show_bug.cgi?id=200833
Reviewed by Don Olmstead.
* ChakraCore/test/UnitTestFramework/UnitTestFramework.js:
(assert.assert.return.throws):
* stress/promise-finally-should-accept-non-promise-objects.js:
* wasm/js-api/table.js:
(assert.throws):
2019-08-17 Ross Kirsling <ross.kirsling@sony.com>
[ESNext] Implement optional chaining
https://bugs.webkit.org/show_bug.cgi?id=200199
Reviewed by Yusuke Suzuki.
* stress/nullish-coalescing.js:
* stress/optional-chaining.js: Added.
* stress/tail-call-recognize.js:
2019-08-17 Ross Kirsling <ross.kirsling@sony.com>
[ESNext] Support hashbang.
https://bugs.webkit.org/show_bug.cgi?id=200865
Reviewed by Mark Lam.
* stress/hashbang.js: Added.
* test262/expectations.yaml: Mark 6 cases as passing.
2019-08-17 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] DFG ToNumber should support Boolean in fixup
https://bugs.webkit.org/show_bug.cgi?id=200864
Reviewed by Mark Lam.
* microbenchmarks/to-number-boolean.js: Added.
(test):
* stress/to-number-boolean-int32.js: Added.
(shouldBe):
(test):
(check):
* stress/to-number-boolean.js: Added.
(shouldBe):
(test):
(check):
* stress/to-number-int32.js: Added.
(shouldBe):
(test):
(check):
2019-08-16 Mark Lam <mark.lam@apple.com>
More missing exception checks in string comparison operators.
https://bugs.webkit.org/show_bug.cgi?id=200844
<rdar://problem/54378684>
Reviewed by Saam Barati.
* stress/missing-exception-check-in-string-greater-than-compare.js: Added.
* stress/missing-exception-check-in-string-greater-than-or-equal-compare.js: Added.
* stress/missing-exception-check-in-string-less-than-compare.js: Added.
* stress/missing-exception-check-in-string-less-than-or-equal-compare.js: Added.
2019-08-16 Mark Lam <mark.lam@apple.com>
CodeBlock destructor should clear all of its watchpoints.
https://bugs.webkit.org/show_bug.cgi?id=200792
<rdar://problem/53947800>
Reviewed by Yusuke Suzuki.
* stress/codeblock-should-clear-watchpoints-on-destruction.js: Added.
2019-08-16 Justin Michaud <justin_michaud@apple.com>
Fix InBounds speculation of typed array PutByVal and add extra step to integer range optimization to search for equality relationships on the RHS value
https://bugs.webkit.org/show_bug.cgi?id=200782
Reviewed by Saam Barati.
* microbenchmarks/int8-out-of-bounds.js: Added.
(foo):
* microbenchmarks/memcpy-typed-loop.js: Added.
(doTest):
(let.arr1.new.Int32Array.1000.let.arr2.new.Int32Array.1000):
(arr2):
* stress/int8-repeat-in-then-out-of-bounds.js: Added.
(foo):
2019-08-16 Mark Lam <mark.lam@apple.com>
[Re-land] ProxyObject should not be allow to access its target's private properties.
https://bugs.webkit.org/show_bug.cgi?id=200739
<rdar://problem/53972768>
Reviewed by Yusuke Suzuki.
* stress/proxy-should-not-be-allowed-to-access-private-properties-of-target.js: Copied from JSTests/stress/proxy-should-not-be-allowed-to-access-private-properties-of-target.js.
* stress/proxy-with-private-symbols.js:
2019-08-16 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Promise.prototype.finally should accept non-promise objects
https://bugs.webkit.org/show_bug.cgi?id=200829
Reviewed by Mark Lam.
* stress/promise-finally-should-accept-non-promise-objects.js: Added.
(shouldBe):
(Thenable):
(Thenable.prototype.then):
2019-08-16 Alexey Shvayka <shvaikalesh@gmail.com>
Promise constructor should check argument before [[Construct]]
https://bugs.webkit.org/show_bug.cgi?id=198976
Reviewed by Ross Kirsling.
* stress/create-subclass-structure-may-throw-exception-when-getting-prototype.js: Fix test.
* stress/create-subclass-structure-might-throw.js: Fix test.
* test262/expectations.yaml: Mark 2 test cases as passing.
2019-08-16 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed, rolling out r248709.
Caused test/built-ins/Promise/prototype/finally/this-value-
non-promise.js to fail on test262 bot
Reverted changeset:
"ProxyObject should not be allow to access its target's
private properties."
https://bugs.webkit.org/show_bug.cgi?id=200739
https://trac.webkit.org/changeset/248709
2019-08-15 Alexey Shvayka <shvaikalesh@gmail.com>
DateConversion::formatDateTime incorrectly formats negative years
https://bugs.webkit.org/show_bug.cgi?id=199964
Reviewed by Ross Kirsling.
* test262/expectations.yaml: Mark 6 test cases as passing.
2019-08-15 Mark Lam <mark.lam@apple.com>
More missing exception checks in String.prototype.
https://bugs.webkit.org/show_bug.cgi?id=200762
<rdar://problem/54333896>
Reviewed by Michael Saboff.
* stress/missing-exception-check-in-string-lastIndexOf.js: Added.
* stress/missing-exception-check-in-string-toLower.js: Added.
* stress/missing-exception-check-in-string-toUpper.js: Added.
2019-08-14 Mark Lam <mark.lam@apple.com>
ProxyObject should not be allow to access its target's private properties.
https://bugs.webkit.org/show_bug.cgi?id=200739
<rdar://problem/53972768>
Reviewed by Yusuke Suzuki.
* stress/proxy-should-not-be-allowed-to-access-private-properties-of-target.js: Added.
* stress/proxy-with-private-symbols.js: Rebased.
2019-08-14 Mark Lam <mark.lam@apple.com>
Missing exception check in string compare.
https://bugs.webkit.org/show_bug.cgi?id=200743
<rdar://problem/53975356>
Reviewed by Michael Saboff.
* stress/missing-exception-check-in-string-compare.js: Added.
2019-08-08 Ross Kirsling <ross.kirsling@sony.com>
[JSC] Add "jump if (not) undefined or null" bytecode ops
https://bugs.webkit.org/show_bug.cgi?id=200480
Reviewed by Saam Barati.
* stress/destructuring-assignment-require-object-coercible.js:
* stress/nullish-coalescing.js:
2019-08-05 Michael Saboff <msaboff@apple.com>
JSC: assertion failure in SpeculativeJIT::compileGetByValOnIntTypedArray
https://bugs.webkit.org/show_bug.cgi?id=199997
Reviewed by Saam Barati.
New test.
* stress/typedarray-no-alreadyChecked-assert.js: Added.
(checkIntArray):
(checkFloatArray):
2019-08-02 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Support WebAssembly in SamplingProfiler
https://bugs.webkit.org/show_bug.cgi?id=200329
Reviewed by Saam Barati.
* stress/sampling-profiler-wasm-name-section.js: Added.
(const.compile):
(platformSupportsSamplingProfiler.vm.isWasmSupported.wasmEntry):
(platformSupportsSamplingProfiler.vm.isWasmSupported):
* stress/sampling-profiler-wasm.js: Added.
(platformSupportsSamplingProfiler.vm.isWasmSupported.wasmEntry):
(platformSupportsSamplingProfiler.vm.isWasmSupported):
* stress/sampling-profiler/loop.wasm: Added.
* stress/sampling-profiler/loop.wast: Added.
* stress/sampling-profiler/nameSection.wasm: Added.
2019-08-02 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] LazyJSValue should be robust for empty JSValue
https://bugs.webkit.org/show_bug.cgi?id=200388
Reviewed by Saam Barati.
* stress/switch-constant-child-becomes-empty.js: Added.
(foo):
2019-08-01 Yusuke Suzuki <ysuzuki@apple.com>
GetterSetter type confusion during DFG compilation
https://bugs.webkit.org/show_bug.cgi?id=199903
Reviewed by Mark Lam.
* stress/cse-propagated-constant-may-not-follow-structure-restrictions.js: Added.
2019-08-01 Ross Kirsling <ross.kirsling@sony.com>
Update Test262 (2019.08.01)
https://bugs.webkit.org/show_bug.cgi?id=200351
Reviewed by Keith Miller.
* test262/expectations.yaml:
* test262/harness/testIntl.js:
* test262/latest-changes-summary.txt:
* test262/test/:
* test262/test262-Revision.txt:
2019-07-30 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Make StructureChain less-tricky by using Auxiliary Buffer
https://bugs.webkit.org/show_bug.cgi?id=200192
Reviewed by Saam Barati.
* stress/structure-chain-stress.js: Added.
(keys):
2019-07-29 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Increment bytecode age only when SlotVisitor is first-visit
https://bugs.webkit.org/show_bug.cgi?id=200196
Reviewed by Robin Morisset.
* stress/reparsing-unlinked-codeblock.js:
2019-07-29 Justin Michaud <justin_michaud@apple.com>
[X86] Emit BT instruction for shift + mask in B3
https://bugs.webkit.org/show_bug.cgi?id=199891
Reviewed by Robin Morisset.
Lower the number of iterations to fix debug timeouts.
* microbenchmarks/bit-test-load.js:
(i):
2019-07-27 Justin Michaud <justin_michaud@apple.com>
[X86] Emit BT instruction for shift + mask in B3
https://bugs.webkit.org/show_bug.cgi?id=199891
Reviewed by Keith Miller.
* microbenchmarks/bit-test-constant.js: Added.
(let.glob.0.doTest):
* microbenchmarks/bit-test-load.js: Added.
(let.glob.0.let.arr.new.Int32Array.8.doTest):
(i):
* microbenchmarks/bit-test-nonconstant.js: Added.
(let.glob.0.doTest):
2019-07-26 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Potential GC fix for JSPropertyNameEnumerator
https://bugs.webkit.org/show_bug.cgi?id=200151
Reviewed by Mark Lam.
* stress/for-in-stress.js: Added.
(keys):
2019-07-25 Ross Kirsling <ross.kirsling@sony.com>
Legacy numeric literals should not permit separators or BigInt
https://bugs.webkit.org/show_bug.cgi?id=199984
Reviewed by Keith Miller.
* stress/big-int-literals.js:
* stress/numeric-literal-separators.js:
2019-07-25 Ross Kirsling <ross.kirsling@sony.com>
[ESNext] Implement nullish coalescing
https://bugs.webkit.org/show_bug.cgi?id=200072
Reviewed by Darin Adler.
* stress/nullish-coalescing.js: Added.
2019-07-24 Alexey Shvayka <shvaikalesh@gmail.com>
Three checks are missing in Proxy internal methods
https://bugs.webkit.org/show_bug.cgi?id=198630
Reviewed by Darin Adler.
* stress/proxy-delete.js: Assert isExtensible is called in correct order.
* test262/expectations.yaml: Mark 6 test cases as passing.
2019-07-23 Justin Michaud <justin_michaud@apple.com>
Sometimes we miss removable CheckInBounds
https://bugs.webkit.org/show_bug.cgi?id=200018
Reviewed by Saam Barati.
* microbenchmarks/typed-array-sum.js: Added.
(doTest):
2019-07-16 Mark Lam <mark.lam@apple.com>
ArgumentsEliminationPhase should insert KillStack nodes before PutStack nodes that it adds.
https://bugs.webkit.org/show_bug.cgi?id=199821
<rdar://problem/52452328>
Reviewed by Filip Pizlo.
* stress/arguments-elimination-should-insert-KillStacks-before-added-PutStacks.js: Added.
2019-07-16 Keith Miller <keith_miller@apple.com>
Unreviewed, test262 gardening.
* test262/expectations.yaml:
2019-07-15 Keith Miller <keith_miller@apple.com>
A Possible Issue of Object.create method
https://bugs.webkit.org/show_bug.cgi?id=199744
Reviewed by Yusuke Suzuki.
* stress/object-create-non-object-properties-parameter.js: Added.
(catch):
2019-07-15 Keith Miller <keith_miller@apple.com>
Update test262
https://bugs.webkit.org/show_bug.cgi?id=199801
Rubber-stamped by Yusuke Suzuki.
* test262/expectations.yaml:
* test262/latest-changes-summary.txt:
* test262/test/built-ins/FinalizationGroup/FinalizationGroupCleanupIteratorPrototype/Symbol.toStringTag.js: Added.
(fg.new.FinalizationGroup):
(callback):
* test262/test/built-ins/FinalizationGroup/FinalizationGroupCleanupIteratorPrototype/next-job-not-active-throws.js: Added.
(fg.new.FinalizationGroup):
(callback):
* test262/test/built-ins/FinalizationGroup/FinalizationGroupCleanupIteratorPrototype/next-length.js: Added.
(fg.new.FinalizationGroup):
(callback):
* test262/test/built-ins/FinalizationGroup/FinalizationGroupCleanupIteratorPrototype/next-missing-internal-throws.js: Added.
(fg.new.FinalizationGroup):
(callback):
* test262/test/built-ins/FinalizationGroup/FinalizationGroupCleanupIteratorPrototype/next-name.js: Added.
(fg.new.FinalizationGroup):
(callback):
* test262/test/built-ins/FinalizationGroup/FinalizationGroupCleanupIteratorPrototype/next-not-object-throws.js: Added.
(fg.new.FinalizationGroup):
(callback):
* test262/test/built-ins/FinalizationGroup/FinalizationGroupCleanupIteratorPrototype/next-prop-desc.js: Added.
(fg.new.FinalizationGroup):
(callback):
* test262/test/built-ins/FinalizationGroup/FinalizationGroupCleanupIteratorPrototype/proto.js: Added.
(callback):
(fg.new.FinalizationGroup):
* test262/test/built-ins/FinalizationGroup/constructor.js: Added.
* test262/test/built-ins/FinalizationGroup/gc-has-one-chance-to-call-cleanupCallback.js: Added.
(cb):
(fg.new.FinalizationGroup):
(emptyCells):
(async.fn):
(fn.then.async):
* test262/test/built-ins/FinalizationGroup/instance-extensible.js: Added.
(fg.new.FinalizationGroup):
* test262/test/built-ins/FinalizationGroup/length.js: Added.
* test262/test/built-ins/FinalizationGroup/name.js: Added.
* test262/test/built-ins/FinalizationGroup/newtarget-prototype-is-not-object.js: Added.
(newTarget):
(fn):
* test262/test/built-ins/FinalizationGroup/prop-desc.js: Added.
* test262/test/built-ins/FinalizationGroup/proto-from-ctor-realm.js: Added.
(fn):
* test262/test/built-ins/FinalizationGroup/proto.js: Added.
* test262/test/built-ins/FinalizationGroup/prototype-from-newtarget-abrupt.js: Added.
(newTarget):
* test262/test/built-ins/FinalizationGroup/prototype-from-newtarget-custom.js: Added.
(newTarget):
* test262/test/built-ins/FinalizationGroup/prototype-from-newtarget.js: Added.
(fg.new.FinalizationGroup):
* test262/test/built-ins/FinalizationGroup/prototype/Symbol.toStringTag.js: Added.
* test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/callback-iterator-proto.js: Added.
(callback):
(fg.new.FinalizationGroup):
* test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/callback-not-callable-throws.js: Added.
(fg.new.FinalizationGroup):
* test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/cleanup-prevented-with-reference.js: Added.
(cb):
(fg.new.FinalizationGroup):
(emptyCells):
* test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/cleanup-prevented-with-unregister.js: Added.
(fg.new.FinalizationGroup):
(fg.cleanupSome.cb):
* test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/cleanupcallback-iterator-proto.js: Added.
(callback):
* test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/custom-this.js: Added.
(fn):
(cb):
* test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/gc-cleanup-not-prevented-with-wr-deref.js: Added.
(cb):
(fg.new.FinalizationGroup):
(emptyCells):
* test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/iterator-dynamic.js: Added.
(fg.new.FinalizationGroup):
(callback):
* test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/iterator-holdings-multiple-values.js: Added.
(fg.new.FinalizationGroup):
(callback):
* test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/length.js: Added.
* test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/name.js: Added.
* test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/poisoned-callback-throws.js: Added.
(poisoned):
(fg.new.FinalizationGroup):
(emptyCells):
* test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/poisoned-cleanup-callback-throws.js: Added.
(poisoned):
(emptyCells):
* test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/prop-desc.js: Added.
* test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/return-undefined-with-gc.js: Added.
(fn):
(cb):
(emptyCells):
(prototype.assert.sameValue.fg.cleanupSome):
* test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/return-undefined.js: Added.
(fn):
(cb):
(poisoned):
(assert.sameValue.fg.cleanupSome):
(prototype.assert.sameValue.fg.cleanupSome):
* test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/this-does-not-have-internal-cells-throws.js: Added.
(cb):
* test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/this-not-object-throws.js: Added.
(cb):
* test262/test/built-ins/FinalizationGroup/prototype/constructor.js: Added.
* test262/test/built-ins/FinalizationGroup/prototype/prop-desc.js: Added.
* test262/test/built-ins/FinalizationGroup/prototype/proto.js: Added.
* test262/test/built-ins/FinalizationGroup/prototype/register/custom-this.js: Added.
(fn):
* test262/test/built-ins/FinalizationGroup/prototype/register/holdings-any-value-type.js: Added.
(fn):
* test262/test/built-ins/FinalizationGroup/prototype/register/holdings-same-as-target.js: Added.
(fg.new.FinalizationGroup):
* test262/test/built-ins/FinalizationGroup/prototype/register/length.js: Added.
* test262/test/built-ins/FinalizationGroup/prototype/register/name.js: Added.
* test262/test/built-ins/FinalizationGroup/prototype/register/prop-desc.js: Added.
* test262/test/built-ins/FinalizationGroup/prototype/register/return-undefined-register-itself.js: Added.
(fn):
* test262/test/built-ins/FinalizationGroup/prototype/register/return-undefined.js: Added.
(fn):
* test262/test/built-ins/FinalizationGroup/prototype/register/target-not-object-throws.js: Added.
(fg.new.FinalizationGroup):
* test262/test/built-ins/FinalizationGroup/prototype/register/this-does-not-have-internal-target-throws.js: Added.
* test262/test/built-ins/FinalizationGroup/prototype/register/this-not-object-throws.js: Added.
* test262/test/built-ins/FinalizationGroup/prototype/register/unregisterToken-not-object-or-undefined-throws.js: Added.
(fg.new.FinalizationGroup):
* test262/test/built-ins/FinalizationGroup/prototype/register/unregisterToken-same-as-holdings-and-target.js: Added.
(fg.new.FinalizationGroup):
* test262/test/built-ins/FinalizationGroup/prototype/register/unregisterToken-same-as-holdings.js: Added.
(fg.new.FinalizationGroup):
* test262/test/built-ins/FinalizationGroup/prototype/register/unregisterToken-same-as-target.js: Added.
(fg.new.FinalizationGroup):
* test262/test/built-ins/FinalizationGroup/prototype/unregister/custom-this.js: Added.
(fn):
* test262/test/built-ins/FinalizationGroup/prototype/unregister/length.js: Added.
* test262/test/built-ins/FinalizationGroup/prototype/unregister/name.js: Added.
* test262/test/built-ins/FinalizationGroup/prototype/unregister/prop-desc.js: Added.
* test262/test/built-ins/FinalizationGroup/prototype/unregister/this-does-not-have-internal-cells-throws.js: Added.
* test262/test/built-ins/FinalizationGroup/prototype/unregister/this-not-object-throws.js: Added.
* test262/test/built-ins/FinalizationGroup/prototype/unregister/unregister.js: Added.
(fn):
* test262/test/built-ins/FinalizationGroup/prototype/unregister/unregisterToken-not-object-throws.js: Added.
(fg.new.FinalizationGroup):
* test262/test/built-ins/FinalizationGroup/returns-new-object-from-constructor.js: Added.
(cleanupCallback):
(let.key.of.Object.getOwnPropertyNames):
(set for):
* test262/test/built-ins/FinalizationGroup/target-not-callable-throws.js: Added.
* test262/test/built-ins/FinalizationGroup/undefined-newtarget-throws.js: Added.
(FinalizationGroup):
* test262/test/built-ins/FinalizationGroup/unnaffected-by-poisoned-cleanupCallback.js: Added.
(cleanupCallback):
(let.key.of.Object.getOwnPropertyNames):
(set for):
* test262/test/built-ins/Function/StrictFunction_restricted-properties.js:
* test262/test/built-ins/Function/prototype/bind/BoundFunction_restricted-properties.js:
* test262/test/built-ins/Function/prototype/restricted-property-arguments.js:
* test262/test/built-ins/Function/prototype/restricted-property-caller.js:
* test262/test/built-ins/Object/prototype/toString/proxy-function-async.js: Added.
(asyncProxy.new.Proxy.async):
* test262/test/built-ins/Object/prototype/toString/proxy-function.js:
(asyncProxy.new.Proxy.async):
* test262/test/built-ins/Object/prototype/toString/symbol-tag-non-str-builtin.js: Added.
(setIter.set Symbol):
(set defaultTag):
(gen):
(get return):
(set new):
* test262/test/built-ins/Object/prototype/toString/symbol-tag-non-str-proxy-function.js: Added.
(generatorProxy.new.Proxy):
(asyncProxy.new.Proxy.async):
* test262/test/built-ins/Object/subclass-object-arg.js:
* test262/test/built-ins/Promise/all/invoke-resolve-get-error-close.js:
* test262/test/built-ins/Promise/all/resolve-element-function-name.js:
* test262/test/built-ins/Promise/allSettled/invoke-resolve-get-error-close.js:
* test262/test/built-ins/Promise/allSettled/reject-element-function-name.js:
* test262/test/built-ins/Promise/allSettled/resolve-element-function-name.js:
* test262/test/built-ins/Promise/executor-function-name.js:
* test262/test/built-ins/Promise/race/invoke-resolve-get-error-close.js:
* test262/test/built-ins/Promise/reject-function-name.js:
* test262/test/built-ins/Promise/resolve-function-name.js:
* test262/test/built-ins/Set/prototype/values/does-not-have-setdata-internal-slot-weakset.js:
* test262/test/built-ins/WeakRef/constructor.js: Added.
* test262/test/built-ins/WeakRef/instance-extensible.js: Added.
* test262/test/built-ins/WeakRef/length.js: Added.
* test262/test/built-ins/WeakRef/name.js: Added.
* test262/test/built-ins/WeakRef/newtarget-prototype-is-not-object.js: Added.
(newTarget):
* test262/test/built-ins/WeakRef/prop-desc.js: Added.
* test262/test/built-ins/WeakRef/proto-from-ctor-realm.js: Added.
* test262/test/built-ins/WeakRef/proto.js: Added.
* test262/test/built-ins/WeakRef/prototype-from-newtarget-abrupt.js: Added.
(newTarget):
* test262/test/built-ins/WeakRef/prototype-from-newtarget-custom.js: Added.
(newTarget):
* test262/test/built-ins/WeakRef/prototype-from-newtarget.js: Added.
* test262/test/built-ins/WeakRef/prototype/Symbol.toStringTag.js: Added.
* test262/test/built-ins/WeakRef/prototype/constructor.js: Added.
* test262/test/built-ins/WeakRef/prototype/deref/custom-this.js: Added.
* test262/test/built-ins/WeakRef/prototype/deref/gc-cleanup-not-prevented-with-wr-deref.js: Added.
(emptyCells):
* test262/test/built-ins/WeakRef/prototype/deref/length.js: Added.
* test262/test/built-ins/WeakRef/prototype/deref/name.js: Added.
* test262/test/built-ins/WeakRef/prototype/deref/prop-desc.js: Added.
* test262/test/built-ins/WeakRef/prototype/deref/return-target.js: Added.
* test262/test/built-ins/WeakRef/prototype/deref/this-does-not-have-internal-target-throws.js: Added.
(fg.new.FinalizationGroup):
* test262/test/built-ins/WeakRef/prototype/deref/this-not-object-throws.js: Added.
* test262/test/built-ins/WeakRef/prototype/prop-desc.js: Added.
* test262/test/built-ins/WeakRef/prototype/proto.js: Added.
* test262/test/built-ins/WeakRef/returns-new-object-from-constructor.js: Added.
(let.key.of.Object.getOwnPropertyNames):
(set for):
* test262/test/built-ins/WeakRef/target-not-object-throws.js: Added.
* test262/test/built-ins/WeakRef/undefined-newtarget-throws.js: Added.
* test262/test/intl402/BigInt/prototype/toLocaleString/builtin.js:
* test262/test/intl402/BigInt/prototype/toLocaleString/default-options-object-prototype.js:
* test262/test/intl402/BigInt/prototype/toLocaleString/length.js:
* test262/test/intl402/BigInt/prototype/toLocaleString/returns-same-results-as-NumberFormat.js:
* test262/test/intl402/BigInt/prototype/toLocaleString/taint-Intl-NumberFormat.js:
* test262/test/intl402/BigInt/prototype/toLocaleString/this-value-invalid.js:
* test262/test/intl402/BigInt/prototype/toLocaleString/throws-same-exceptions-as-NumberFormat.js:
* test262/test/intl402/DateTimeFormat/constructor-options-order-quarter.js: Removed.
* test262/test/intl402/DateTimeFormat/constructor-options-quarter-invalid.js: Removed.
* test262/test/intl402/DateTimeFormat/constructor-options-quarter-valid.js: Removed.
* test262/test/intl402/DateTimeFormat/prototype/format/dayPeriod-long-en.js: Added.
* test262/test/intl402/DateTimeFormat/prototype/format/dayPeriod-narrow-en.js: Added.
* test262/test/intl402/DateTimeFormat/prototype/format/dayPeriod-short-en.js: Added.
* test262/test/intl402/DateTimeFormat/prototype/format/fractionalSecondDigits.js: Added.
* test262/test/intl402/DateTimeFormat/prototype/formatRange/argument-date-string.js:
* test262/test/intl402/DateTimeFormat/prototype/formatRange/argument-near-time-boundaries.js:
* test262/test/intl402/DateTimeFormat/prototype/formatRange/argument-to-integer.js:
* test262/test/intl402/DateTimeFormat/prototype/formatRange/builtin.js:
* test262/test/intl402/DateTimeFormat/prototype/formatRange/prop-desc.js:
* test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/argument-date-string.js:
* test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/argument-near-time-boundaries.js:
* test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/argument-to-integer.js:
* test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/builtin.js:
* test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/prop-desc.js:
* test262/test/intl402/DateTimeFormat/prototype/formatToParts/dayPeriod-long-en.js: Added.
(assertParts):
(assertPartsNumeric):
* test262/test/intl402/DateTimeFormat/prototype/formatToParts/dayPeriod-narrow-en.js: Added.
(assertParts):
(assertPartsNumeric):
* test262/test/intl402/DateTimeFormat/prototype/formatToParts/dayPeriod-short-en.js: Added.
(assertParts):
(assertPartsNumeric):
* test262/test/intl402/DateTimeFormat/prototype/formatToParts/fractionalSecondDigits.js: Added.
(assertParts):
* test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/order-quarter.js: Removed.
* test262/test/intl402/DateTimeFormat/taint-Object-prototype-quarter.js: Removed.
* test262/test/intl402/RelativeTimeFormat/prototype/format/en-us-numeric-auto.js:
* test262/test/intl402/RelativeTimeFormat/prototype/formatToParts/en-us-numeric-auto.js:
* test262/test/language/expressions/arrow-function/ArrowFunction_restricted-properties.js:
* test262/test/language/expressions/class/elements/private-field-access-on-inner-arrow-function.js: Added.
(C.prototype.method):
* test262/test/language/expressions/class/elements/private-field-access-on-inner-function.js: Added.
(C.prototype.method.innerFunction):
(C.prototype.method):
* test262/test/language/expressions/class/elements/private-getter-access-on-inner-arrow-function.js: Added.
(C):
(C.method):
* test262/test/language/expressions/class/elements/private-getter-access-on-inner-function.js: Added.
(C):
(C.method.innerFunction):
(C.method):
* test262/test/language/expressions/class/elements/private-getter-is-not-a-own-property.js: Added.
(C):
(C.checkPrivateGetter):
* test262/test/language/expressions/class/elements/private-method-access-on-inner-arrow-function.js: Added.
(C):
(C.method):
* test262/test/language/expressions/class/elements/private-method-access-on-inner-function.js: Added.
(C):
(C.method.innerFunction):
(C.method):
* test262/test/language/expressions/class/elements/private-method-is-not-a-own-property.js: Added.
(C):
(C.checkPrivateMethod):
* test262/test/language/expressions/class/elements/private-setter-access-on-inner-arrow-function.js: Added.
(C):
(C.method):
* test262/test/language/expressions/class/elements/private-setter-access-on-inner-function.js: Added.
(C):
(C.method.innerFunction):
(C.method):
* test262/test/language/expressions/class/elements/private-setter-is-not-a-own-property.js: Added.
(C):
(C.checkPrivateSetter):
* test262/test/language/expressions/class/elements/prod-private-getter-before-super-return-in-field-initializer.js:
* test262/test/language/expressions/class/elements/prod-private-method-before-super-return-in-field-initializer.js:
* test262/test/language/expressions/class/elements/prod-private-setter-before-super-return-in-field-initializer.js:
* test262/test/language/expressions/class/poisoned-underscore-proto.js: Added.
* test262/test/language/expressions/class/private-getter-brand-check-multiple-evaluations-of-class-eval-indirect.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js.
(let.classStringExpression):
(let.classStringExpression.access):
(let.createAndInstantiateClass):
* test262/test/language/expressions/class/private-getter-brand-check-multiple-evaluations-of-class-eval.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js.
(let.classStringExpression):
(let.classStringExpression.access):
(let.createAndInstantiateClass):
* test262/test/language/expressions/class/private-getter-brand-check-multiple-evaluations-of-class-factory.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js.
(const.C):
(let.createAndInstantiateClass):
* test262/test/language/expressions/class/private-getter-brand-check-multiple-evaluations-of-class-function-ctor.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js.
(let.classStringExpression.return.prototype.m):
(let.classStringExpression.return.prototype.access):
(let.createAndInstantiateClass):
* test262/test/language/expressions/class/private-getter-brand-check-multiple-evaluations-of-class-realm-function-ctor.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js.
(let.classStringExpression.return.prototype.m):
(let.classStringExpression.return.prototype.access):
(let.createAndInstantiateClass):
* test262/test/language/expressions/class/private-getter-brand-check-multiple-evaluations-of-class-realm.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js.
(let.classStringExpression):
(let.classStringExpression.access):
(let.createAndInstantiateClass):
* test262/test/language/expressions/class/private-method-brand-check-multiple-evaluations-of-class-eval-indirect.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js.
(let.classStringExpression.prototype.m):
(let.classStringExpression.prototype.access):
(let.classStringExpression):
(let.createAndInstantiateClass):
* test262/test/language/expressions/class/private-method-brand-check-multiple-evaluations-of-class-eval.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js.
(let.classStringExpression.prototype.m):
(let.classStringExpression.prototype.access):
(let.classStringExpression):
(let.createAndInstantiateClass):
* test262/test/language/expressions/class/private-method-brand-check-multiple-evaluations-of-class-factory.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js.
(const.C):
(let.createAndInstantiateClass):
* test262/test/language/expressions/class/private-method-brand-check-multiple-evaluations-of-class-function-ctor.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js.
(let.classStringExpression.return.C.prototype.m):
(let.classStringExpression.return.C.prototype.access):
(let.classStringExpression.return.C):
(let.createAndInstantiateClass):
* test262/test/language/expressions/class/private-method-brand-check-multiple-evaluations-of-class-realm-function-ctor.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js.
(let.classStringExpression.return.C.prototype.m):
(let.classStringExpression.return.C.prototype.access):
(let.classStringExpression.return.C):
(let.createAndInstantiateClass):
* test262/test/language/expressions/class/private-method-brand-check-multiple-evaluations-of-class-realm.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js.
(let.classStringExpression):
(let.classStringExpression.access):
(let.createAndInstantiateClass):
* test262/test/language/expressions/class/private-setter-brand-check-multiple-evaluations-of-class-eval-indirect.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js.
(let.classStringExpression):
(let.classStringExpression.access):
(let.createAndInstantiateClass):
* test262/test/language/expressions/class/private-setter-brand-check-multiple-evaluations-of-class-eval.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js.
(let.classStringExpression):
(let.classStringExpression.access):
(let.createAndInstantiateClass):
* test262/test/language/expressions/class/private-setter-brand-check-multiple-evaluations-of-class-factory.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js.
(const.C):
(let.createAndInstantiateClass):
* test262/test/language/expressions/class/private-setter-brand-check-multiple-evaluations-of-class-function-ctor.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js.
(let.classStringExpression.return.prototype.m):
(let.classStringExpression.return.prototype.access):
(let.createAndInstantiateClass):
* test262/test/language/expressions/class/private-setter-brand-check-multiple-evaluations-of-class-realm-function-ctor.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js.
(let.classStringExpression.return.prototype.m):
(let.classStringExpression.return.prototype.access):
(let.createAndInstantiateClass):
* test262/test/language/expressions/class/private-setter-brand-check-multiple-evaluations-of-class-realm.js: Copied from JSTests/test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js.
(let.classStringExpression):
(let.classStringExpression.access):
(let.createAndInstantiateClass):
* test262/test/language/expressions/new.target/unary-expr.js: Added.
(new):
(async):
* test262/test/language/expressions/super/call-poisoned-underscore-proto.js: Added.
(A):
* test262/test/language/expressions/super/prop-poisoned-underscore-proto.js: Added.
* test262/test/language/identifiers/vals-cjk-escaped.js: Added.
* test262/test/language/identifiers/vals-cjk.js: Added.
* test262/test/language/statements/class/elements/private-class-field-on-frozen-objects.js:
* test262/test/language/statements/class/elements/private-field-access-on-inner-arrow-function.js: Added.
(C.prototype.method):
(C):
* test262/test/language/statements/class/elements/private-field-access-on-inner-function.js: Added.
(C.prototype.method.innerFunction):
(C.prototype.method):
(C):
* test262/test/language/statements/class/elements/private-field-is-not-clobbered-by-computed-property.js: Added.
(C.prototype.checkPrivateField):
(C):
* test262/test/language/statements/class/elements/private-field-visible-to-direct-eval-on-initializer.js: Added.
(C):
* test262/test/language/statements/class/elements/private-field-visible-to-direct-eval.js: Added.
(C.prototype.getWithEval):
(C):
(D):
* test262/test/language/statements/class/elements/private-getter-access-on-inner-arrow-function.js: Added.
(C.prototype.get m):
(C.prototype.method):
(C):
* test262/test/language/statements/class/elements/private-getter-access-on-inner-function.js: Added.
(C.prototype.get m):
(C.prototype.method.innerFunction):
(C.prototype.method):
(C):
* test262/test/language/statements/class/elements/private-getter-brand-check-multiple-evaluations-of-class.js:
(let.createAndInstantiateClass):
* test262/test/language/statements/class/elements/private-getter-is-not-a-own-property.js: Added.
(C.prototype.get m):
(C.prototype.checkPrivateGetter):
(C):
* test262/test/language/statements/class/elements/private-getter-is-not-clobbered-by-computed-property.js: Added.
(C.prototype.get m):
(C.prototype.checkPrivateGetter):
(C):
* test262/test/language/statements/class/elements/private-getter-visible-to-direct-eval-on-initializer.js: Added.
(C.prototype.get m):
(C):
* test262/test/language/statements/class/elements/private-getter-visible-to-direct-eval.js: Added.
(C.prototype.get m):
(C.prototype.getWithEval):
(C):
(D.prototype.get m):
(D):
* test262/test/language/statements/class/elements/private-method-access-on-inner-arrow-function.js: Added.
(C.prototype.m):
(C.prototype.method):
(C):
* test262/test/language/statements/class/elements/private-method-access-on-inner-function.js: Added.
(C.prototype.m):
(C.prototype.method.innerFunction):
(C.prototype.method):
(C):
* test262/test/language/statements/class/elements/private-method-is-not-a-own-property.js: Added.
(C.prototype.m):
(C.prototype.checkPrivateMethod):
(C):
* test262/test/language/statements/class/elements/private-method-is-not-clobbered-by-computed-property.js: Added.
(C.prototype.m):
(C.prototype.checkPrivateMethod):
(C):
* test262/test/language/statements/class/elements/private-method-visible-to-direct-eval-on-initializer.js: Added.
(C.prototype.m):
(C):
* test262/test/language/statements/class/elements/private-method-visible-to-direct-eval.js: Added.
(C.prototype.m):
(C.prototype.getWithEval):
(C):
(D.prototype.m):
(D):
* test262/test/language/statements/class/elements/private-setter-access-on-inner-arrow-function.js: Added.
(C.prototype.set m):
(C.prototype.method):
(C):
* test262/test/language/statements/class/elements/private-setter-access-on-inner-function.js: Added.
(C.prototype.set m):
(C.prototype.method.innerFunction):
(C.prototype.method):
(C):
* test262/test/language/statements/class/elements/private-setter-is-not-a-own-property.js: Added.
(C.prototype.set m):
(C.prototype.checkPrivateSetter):
(C):
* test262/test/language/statements/class/elements/private-setter-is-not-clobbered-by-computed-property.js: Added.
(C.prototype.set m):
(C.prototype.checkPrivateSetter):
(C):
* test262/test/language/statements/class/elements/private-setter-visible-to-direct-eval-on-initializer.js: Added.
(C.prototype.set m):
(C):
* test262/test/language/statements/class/elements/private-setter-visible-to-direct-eval.js: Added.
(C.prototype.set m):
(C.prototype.setWithEval):
(C):
(D.prototype.set m):
(D):
* test262/test/language/statements/class/elements/prod-private-getter-before-super-return-in-field-initializer.js:
* test262/test/language/statements/class/elements/prod-private-method-before-super-return-in-field-initializer.js:
* test262/test/language/statements/class/elements/prod-private-setter-before-super-return-in-field-initializer.js:
* test262/test/language/statements/class/elements/super-access-inside-a-private-getter.js: Added.
(A.prototype.method):
(A):
(C.prototype.get m):
(C.prototype.access):
(C):
* test262/test/language/statements/class/elements/super-access-inside-a-private-method.js: Added.
(A.prototype.method):
(A):
(C.prototype.m):
(C.prototype.access):
(C):
* test262/test/language/statements/class/elements/super-access-inside-a-private-setter.js: Added.
(A.prototype.method):
(A):
(C.prototype.set m):
(C.prototype.access):
(C):
* test262/test/language/statements/class/poisoned-underscore-proto.js: Added.
(A):
* test262/test/language/statements/function/13.2-30-s.js:
* test262/test262-Revision.txt:
2019-07-15 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Improve wasm wpt test results by fixing miscellaneous issues
https://bugs.webkit.org/show_bug.cgi?id=199783
Reviewed by Mark Lam.
Fix our spec tests.
* wasm/js-api/Module-compile.js:
* wasm/js-api/test_basic_api.js:
(const.c.in.constructorProperties.switch):
* wasm/js-api/validate.js:
* wasm/js-api/web-assembly-instantiate.js:
* wasm/spec-tests/jsapi.js:
(testJSAPI.get test):
(testJSAPI.set test):
2019-07-15 Michael Catanzaro <mcatanzaro@igalia.com>
Unreviewed, rolling out r247440.
Broke builds
Reverted changeset:
"[JSC] Improve wasm wpt test results by fixing miscellaneous
issues"
https://bugs.webkit.org/show_bug.cgi?id=199783
https://trac.webkit.org/changeset/247440
2019-07-15 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Improve wasm wpt test results by fixing miscellaneous issues
https://bugs.webkit.org/show_bug.cgi?id=199783
Reviewed by Mark Lam.
Fix our spec tests.
* wasm/js-api/Module-compile.js:
* wasm/js-api/test_basic_api.js:
(const.c.in.constructorProperties.switch):
* wasm/js-api/validate.js:
* wasm/js-api/web-assembly-instantiate.js:
* wasm/spec-tests/jsapi.js:
(testJSAPI.get test):
(testJSAPI.set test):
2019-07-12 Justin Michaud <justin_michaud@apple.com>
B3 should reduce (integer) Sub(Neg(x), y) to Neg(Add(x, y))
https://bugs.webkit.org/show_bug.cgi?id=196371
Reviewed by Keith Miller.
* microbenchmarks/mul-immediate-sub.js: Added.
(doTest):
2019-07-12 Caio Lima <ticaiolima@gmail.com>
[BigInt] Add ValueBitLShift into DFG
https://bugs.webkit.org/show_bug.cgi?id=192664
Reviewed by Saam Barati.
We are adding tests to cover ValueBitwise operations AI changes.
* stress/big-int-left-shift-untyped.js: Added.
* stress/bit-op-with-object-returning-int32.js:
* stress/value-bit-and-ai-rule.js: Added.
* stress/value-bit-lshift-ai-rule.js: Added.
* stress/value-bit-or-ai-rule.js: Added.
* stress/value-bit-xor-ai-rule.js: Added.
2019-07-11 Justin Michaud <justin_michaud@apple.com>
Add b3 macro lowering for CheckMul on arm64
https://bugs.webkit.org/show_bug.cgi?id=199251
Reviewed by Robin Morisset.
* microbenchmarks/check-mul-constant.js: Added.
(doTest):
* microbenchmarks/check-mul-no-constant.js: Added.
(doTest):
* microbenchmarks/check-mul-power-of-two.js: Added.
(doTest):
2019-07-10 Tadeu Zagallo <tzagallo@apple.com>
Optimize join of large empty arrays
https://bugs.webkit.org/show_bug.cgi?id=199636
Reviewed by Mark Lam.
* microbenchmarks/large-empty-array-join.js: Added.
* microbenchmarks/large-empty-array-join-resolve-rope.js: Added.
2019-07-06 Michael Saboff <msaboff@apple.com>
switch(String) needs to check for exceptions when resolving the string
https://bugs.webkit.org/show_bug.cgi?id=199541
Reviewed by Mark Lam.
New tests.
* stress/switch-string-oom.js: Added.
(test):
(testLowerTiers):
(testFTL):
2019-07-05 Mark Lam <mark.lam@apple.com>
ArgumentsEliminationPhase::eliminateCandidatesThatInterfere() should not decrement nodeIndex pass zero.
https://bugs.webkit.org/show_bug.cgi?id=199533
<rdar://problem/52669111>
Reviewed by Filip Pizlo.
* stress/ArgumentsEliminationPhase-eliminateCandidatesThatEscape-should-not-decrement-nodeIndex-pass-zero.js: Added.
2019-07-05 Alexey Shvayka <shvaikalesh@gmail.com>
[JSC] Clean up ArraySpeciesCreate
https://bugs.webkit.org/show_bug.cgi?id=182434
Reviewed by Yusuke Suzuki.
Adjusts error message expectations in stress tests.
* stress/array-flatmap.js:
* stress/array-flatten.js:
* stress/array-species-create-should-handle-masquerader.js:
* test262/expectations.yaml: Mark 4 test cases as passing.
2019-07-02 Michael Saboff <msaboff@apple.com>
Exception from For..of loop assignment eliminates TDZ checks in subsequent code
https://bugs.webkit.org/show_bug.cgi?id=199395
Reviewed by Filip Pizlo.
New regession test.
* stress/for-of-tdz-with-try-catch.js: Added.
(test):
(i.catch):
2019-07-02 Keith Miller <keith_miller@apple.com>
Frozen Arrays length assignment should throw in strict mode
https://bugs.webkit.org/show_bug.cgi?id=199365
Reviewed by Yusuke Suzuki.
* stress/frozen-array-length-should-throw-strict.js: Added.
(test):
2019-07-01 Justin Michaud <justin_michaud@apple.com>
[Wasm-References] Disable references by default
https://bugs.webkit.org/show_bug.cgi?id=199390
Reviewed by Saam Barati.
* wasm/references-spec-tests/ref_is_null.js:
* wasm/references-spec-tests/ref_null.js:
* wasm/references/anyref_globals.js:
* wasm/references/anyref_modules.js:
* wasm/references/anyref_table.js:
* wasm/references/anyref_table_import.js:
* wasm/references/element_parsing.js:
* wasm/references/func_ref.js:
* wasm/references/is_null.js:
* wasm/references/multitable.js:
* wasm/references/table_misc.js:
* wasm/references/validation.js:
2019-07-01 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed, rolling out r246946.
Caused JSC test crashes on arm64
Reverted changeset:
"Add b3 macro lowering for CheckMul on arm64"
https://bugs.webkit.org/show_bug.cgi?id=199251
https://trac.webkit.org/changeset/246946
2019-06-28 Justin Michaud <justin_michaud@apple.com>
Add b3 macro lowering for CheckMul on arm64
https://bugs.webkit.org/show_bug.cgi?id=199251
Reviewed by Robin Morisset.
* microbenchmarks/check-mul-constant.js: Added.
(doTest):
* microbenchmarks/check-mul-no-constant.js: Added.
(doTest):
* microbenchmarks/check-mul-power-of-two.js: Added.
(doTest):
2019-06-26 Keith Miller <keith_miller@apple.com>
speciesConstruct needs to throw if the result is a DataView
https://bugs.webkit.org/show_bug.cgi?id=199231
Reviewed by Mark Lam.
* stress/typedarray-filter.js:
(subclasses.forEach):
* stress/typedarray-map.js:
(subclasses.forEach):
* stress/typedarray-slice.js:
(typedArrays.forEach):
* stress/typedarray-subarray.js:
(subclasses.forEach):
2019-06-24 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r246714.
https://bugs.webkit.org/show_bug.cgi?id=199179
revert to do patch in a different way. (Requested by keith_mi_
on #webkit).
Reverted changeset:
"All prototypes should call didBecomePrototype()"
https://bugs.webkit.org/show_bug.cgi?id=196315
https://trac.webkit.org/changeset/246714
2019-06-24 Alexey Shvayka <shvaikalesh@gmail.com>
Add Array.prototype.{flat,flatMap} to unscopables
https://bugs.webkit.org/show_bug.cgi?id=194322
Reviewed by Keith Miller.
* stress/unscopables.js: Fix test.
* test262/expectations.yaml: Mark 2 test cases as passing.
2019-06-21 Mark Lam <mark.lam@apple.com>
ArraySlice needs to keep the source array alive.
https://bugs.webkit.org/show_bug.cgi?id=197374
<rdar://problem/50304429>
Reviewed by Michael Saboff and Filip Pizlo.
* stress/array-slice-must-keep-source-array-alive.js: Added.
2019-06-22 Robin Morisset <rmorisset@apple.com> and Yusuke Suzuki <ysuzuki@apple.com>
All prototypes should call didBecomePrototype()
https://bugs.webkit.org/show_bug.cgi?id=196315
Reviewed by Saam Barati.
* stress/function-prototype-indexed-accessor.js: Added.
2019-06-22 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Strict, Sloppy and Arrow functions should have different classInfo
https://bugs.webkit.org/show_bug.cgi?id=197631
Reviewed by Saam Barati.
* stress/has-own-property-arguments.js: Added.
(shouldBe):
(A):
2019-06-22 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] ClassExpr should not store result in the middle of evaluation
https://bugs.webkit.org/show_bug.cgi?id=199106
Reviewed by Tadeu Zagallo.
* stress/class-expression-should-store-result-at-last.js: Added.
(shouldThrow):
(shouldThrow.let.a):
2019-06-20 Justin Michaud <justin_michaud@apple.com>
[WASM-References] Add extra tests for Wasm references + fix element parsing and subtyping bugs
https://bugs.webkit.org/show_bug.cgi?id=199044
Reviewed by Saam Barati.
Add wasm references spec tests as well as a worker test.
* wasm.yaml:
* wasm/Builder_WebAssemblyBinary.js:
(const.emitters.Element):
* wasm/js-api/element.js:
(assert.throws.new.WebAssembly.Module.builder.WebAssembly):
* wasm/references-spec-tests/ref_is_null.js: Added.
(hostref):
(is_hostref):
(is_funcref):
(eq_ref):
(let.handler.get target):
(register):
(module):
(instance):
(call):
(get instance):
(exports):
(run):
(assert_malformed):
(assert_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(try.f):
(catch):
(assert_exhaustion):
(assert_return):
(assert_return_canonical_nan):
(assert_return_arithmetic_nan):
(assert_return_ref):
(assert_return_func):
* wasm/references-spec-tests/ref_null.js: Added.
(hostref):
(is_hostref):
(is_funcref):
(eq_ref):
(let.handler.get target):
(register):
(module):
(instance):
(call):
(get instance):
(exports):
(run):
(assert_malformed):
(assert_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(try.f):
(catch):
(assert_exhaustion):
(assert_return):
(assert_return_canonical_nan):
(assert_return_arithmetic_nan):
(assert_return_ref):
(assert_return_func):
* wasm/references/element_parsing.js: Added.
(module):
* wasm/references/func_ref.js:
* wasm/references/multitable.js:
* wasm/references/table_misc.js:
(TableSize.0.End.End.WebAssembly):
* wasm/references/validation.js:
(assert.throws):
2019-06-19 Alexey Shvayka <shvaikalesh@gmail.com>
Optimize `resolve` method lookup in Promise static methods
https://bugs.webkit.org/show_bug.cgi?id=198864
Reviewed by Yusuke Suzuki.
* test262/expectations.yaml: Mark 18 test cases as passing.
2019-06-19 Justin Michaud <justin_michaud@apple.com>
[WASM-References] Rename anyfunc to funcref
https://bugs.webkit.org/show_bug.cgi?id=198983
Reviewed by Yusuke Suzuki.
* wasm/function-tests/basic-element.js:
* wasm/function-tests/context-switch.js:
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance):
(makeInstance):
(assert.eq.makeInstance):
* wasm/function-tests/exceptions.js:
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance):
* wasm/function-tests/grow-memory-2.js:
(assert.eq.instance.exports.foo):
* wasm/function-tests/nameSection.js:
(const.compile):
* wasm/function-tests/stack-overflow.js:
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance):
(assertOverflows.makeInstance):
* wasm/function-tests/table-basic-2.js:
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance):
* wasm/function-tests/table-basic.js:
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance):
* wasm/function-tests/trap-from-start-async.js:
* wasm/function-tests/trap-from-start.js:
* wasm/js-api/Module.exports.js:
(assert.truthy):
* wasm/js-api/Module.imports.js:
(assert.truthy):
* wasm/js-api/call-indirect.js:
(const.oneTable):
(const.multiTable):
(multiTable.const.makeTable):
(multiTable):
(multiTable.Polyphic2Import):
(multiTable.VirtualImport):
* wasm/js-api/element-data.js:
* wasm/js-api/element.js:
(assert.throws.new.WebAssembly.Module.builder.WebAssembly):
(assert.throws):
(badInstantiation.makeModule):
(badInstantiation.test):
(badInstantiation):
* wasm/js-api/extension-MemoryMode.js:
* wasm/js-api/table.js:
(new.WebAssembly.Module):
(assert.throws):
(assertBadTableImport):
(assert.throws.WebAssembly.Table.prototype.grow):
(new.WebAssembly.Table):
(assertBadTable):
(assert.truthy):
* wasm/js-api/test_basic_api.js:
(const.c.in.constructorProperties.switch):
* wasm/js-api/unique-signature.js:
(CallIndirectWithDuplicateSignatures):
* wasm/js-api/wrapper-function.js:
* wasm/modules/table.wat:
* wasm/modules/wasm-imports-js-re-exports-wasm-exports/imports.wat:
* wasm/modules/wasm-imports-js-re-exports-wasm-exports/sum.wat:
* wasm/modules/wasm-imports-wasm-exports/imports.wat:
* wasm/modules/wasm-imports-wasm-exports/sum.wat:
* wasm/references/anyref_table.js:
* wasm/references/anyref_table_import.js:
(doSet):
(assert.throws):
* wasm/references/func_ref.js:
(makeFuncrefIdent):
(assert.eq.instance.exports.fix):
(GetLocal.0.I32Const.0.TableSet.0.End.End.WebAssembly.assert.throws):
(GetLocal.0.I32Const.0.TableSet.0.End.End.WebAssembly):
(let.importedFun.of):
(makeAnyfuncIdent): Deleted.
(makeAnyfuncIdent.fun): Deleted.
* wasm/references/multitable.js:
(assert.eq):
(assert.throws):
* wasm/references/table_misc.js:
(GetLocal.0.TableFill.0.End.End.WebAssembly):
* wasm/references/validation.js:
(assert.throws.new.WebAssembly.Module.bin):
(assert.throws):
* wasm/spec-harness/index.js:
* wasm/spec-harness/wasm-constants.js:
* wasm/spec-harness/wasm-module-builder.js:
(WasmModuleBuilder.prototype.toArray):
* wasm/spec-harness/wast.js:
(elem_type):
(string_of_elem_type):
(string_of_table_type):
* wasm/spec-tests/jsapi.js:
* wasm/stress/wasm-table-grow-initialize.js:
* wasm/wasm.json:
2019-06-18 Justin Michaud <justin_michaud@apple.com>
[WASM-References] Add support for Table.size, grow and fill instructions
https://bugs.webkit.org/show_bug.cgi?id=198761
Reviewed by Yusuke Suzuki.
* wasm/Builder_WebAssemblyBinary.js:
(const.putOp):
* wasm/references/table_misc.js: Added.
(TableSize.End.End.WebAssembly):
(GetLocal.0.GetLocal.1.TableGrow.End.End.WebAssembly):
* wasm/wasm.json:
2019-06-18 Justin Michaud <justin_michaud@apple.com>
[WASM-References] Add support for multiple tables
https://bugs.webkit.org/show_bug.cgi?id=198760
Reviewed by Saam Barati.
* wasm/Builder.js:
* wasm/js-api/call-indirect.js:
(const.oneTable):
(const.multiTable):
(multiTable):
(multiTable.Polyphic2Import):
(multiTable.VirtualImport):
(const.wasmModuleWhichImportJS): Deleted.
(const.makeTable): Deleted.
(): Deleted.
(Polyphic2Import): Deleted.
(VirtualImport): Deleted.
* wasm/js-api/table.js:
(new.WebAssembly.Module):
(assert.throws):
(assertBadTableImport):
(assert.truthy):
(assert.throws.new.WebAssembly.Module.builder.WebAssembly): Deleted.
* wasm/references/anyref_table.js:
* wasm/references/anyref_table_import.js:
(makeImport):
(string_appeared_here.fullGC.assert.eq.1.exports.get_tbl.makeImport):
(string_appeared_here.fullGC.assert.eq.1.exports.get_tbl):
* wasm/references/multitable.js: Added.
(assert.throws.1.exports.set_tbl0):
(assert.throws):
(assert.eq):
* wasm/references/validation.js:
(assert.throws.new.WebAssembly.Module.bin):
(assert.throws):
* wasm/spec-tests/imports.wast.js:
* wasm/wasm.json:
* wasm/Builder.js:
* wasm/js-api/call-indirect.js:
(const.oneTable):
(const.multiTable):
(multiTable):
(multiTable.Polyphic2Import):
(multiTable.VirtualImport):
(const.wasmModuleWhichImportJS): Deleted.
(const.makeTable): Deleted.
(): Deleted.
(Polyphic2Import): Deleted.
(VirtualImport): Deleted.
* wasm/js-api/table.js:
(new.WebAssembly.Module):
(assert.throws):
(assertBadTableImport):
(assert.truthy):
(assert.throws.new.WebAssembly.Module.builder.WebAssembly): Deleted.
* wasm/references/anyref_table.js:
* wasm/references/anyref_table_import.js:
(makeImport):
(string_appeared_here.fullGC.assert.eq.1.exports.get_tbl.makeImport):
(string_appeared_here.fullGC.assert.eq.1.exports.get_tbl):
* wasm/references/func_ref.js:
(GetLocal.0.I32Const.0.TableSet.End.End.WebAssembly.fun): Deleted.
(GetLocal.0.I32Const.0.TableSet.End.End.WebAssembly.assert.throws): Deleted.
(GetLocal.0.I32Const.0.TableSet.End.End.WebAssembly): Deleted.
* wasm/references/multitable.js: Added.
(assert.throws.1.exports.set_tbl0):
(assert.throws):
(assert.eq):
(string_appeared_here.tableInsanity):
(I32Const.0.GetLocal.0.TableSet.1.End.End.WebAssembly.):
(I32Const.0.GetLocal.0.TableSet.1.End.End.WebAssembly):
* wasm/references/validation.js:
(assert.throws.new.WebAssembly.Module.bin):
(assert.throws):
* wasm/spec-tests/imports.wast.js:
* wasm/wasm.json:
2019-06-18 Alexey Shvayka <shvaikalesh@gmail.com>
[ESNExt] String.prototype.matchAll
https://bugs.webkit.org/show_bug.cgi?id=186694
Reviewed by Yusuke Suzuki.
Implement String.prototype.matchAll.
(https://tc39.es/ecma262/#sec-string.prototype.matchall)
* test262/config.yaml:
2019-06-18 Tadeu Zagallo <tzagallo@apple.com>
DFG code should not reify the names of builtin functions with private names
https://bugs.webkit.org/show_bug.cgi?id=198849
<rdar://problem/51733890>
Reviewed by Filip Pizlo.
* stress/builtin-private-function-name.js: Added.
(then):
(PromiseLike):
2019-06-18 Keith Miller <keith_miller@apple.com>
MaybeParseAsGeneratorForScope sometimes loses track of its scope ref
https://bugs.webkit.org/show_bug.cgi?id=198969
<rdar://problem/51620714>
Reviewed by Tadeu Zagallo.
* stress/nested-yield-in-arrow-function-should-be-a-syntax-error.js: Added.
(catch):
2019-06-17 Justin Michaud <justin_michaud@apple.com>
Validate that table element type is funcref if using an element section
https://bugs.webkit.org/show_bug.cgi?id=198910
Reviewed by Yusuke Suzuki.
* wasm/references/anyref_table.js:
2019-06-17 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Introduce DisposableCallSiteIndex to enforce type-safety
https://bugs.webkit.org/show_bug.cgi?id=197378
Reviewed by Saam Barati.
* stress/disposable-call-site-index-with-call-and-this.js: Added.
(foo):
(bar):
* stress/disposable-call-site-index.js: Added.
(foo):
(bar):
2019-06-17 Justin Michaud <justin_michaud@apple.com>
[WASM-References] Add support for Funcref in parameters and return types
https://bugs.webkit.org/show_bug.cgi?id=198157
Reviewed by Yusuke Suzuki.
* wasm/Builder.js:
(export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):
* wasm/references/anyref_globals.js:
* wasm/references/func_ref.js: Added.
(fullGC.gc.makeExportedFunction):
(makeExportedIdent):
(makeAnyfuncIdent):
(fun):
(assert.eq.instance.exports.fix.fun):
(assert.eq.instance.exports.fix):
(string_appeared_here.End.End.Function.End.Code.End.WebAssembly.imp.ref):
(string_appeared_here.End.End.Function.End.Code.End.WebAssembly):
(GetLocal.0.I32Const.0.TableSet.End.End.WebAssembly.fun):
(GetLocal.0.I32Const.0.TableSet.End.End.WebAssembly.assert.throws):
(GetLocal.0.I32Const.0.TableSet.End.End.WebAssembly):
(assert.throws):
(assert.throws.doTest):
(let.importedFun.of):
(makeAnyfuncIdent.fun):
* wasm/references/validation.js:
(assert.throws):
* wasm/wasm.json:
2019-06-17 Ross Kirsling <ross.kirsling@sony.com>
Update test262 tests (2019.06.13)
https://bugs.webkit.org/show_bug.cgi?id=198821
Reviewed by Konstantin Tokarev.
* test262/expectations.yaml:
* test262/harness/:
* test262/latest-changes-summary.txt:
* test262/test/:
* test262/test262-Revision.txt:
2019-06-16 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Grown region of WasmTable should be initialized with null
https://bugs.webkit.org/show_bug.cgi?id=198903
Reviewed by Saam Barati.
* wasm/stress/wasm-table-grow-initialize.js: Added.
(shouldBe):
2019-06-13 Yusuke Suzuki <ysuzuki@apple.com>
Yarr bytecode compilation failure should be gracefully handled
https://bugs.webkit.org/show_bug.cgi?id=198700
Reviewed by Michael Saboff.
* stress/regexp-bytecode-compilation-fail.js: Added.
(shouldThrow):
2019-06-12 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Polymorphic call stub's slow path should restore callee saves before performing tail call
https://bugs.webkit.org/show_bug.cgi?id=198770
Reviewed by Saam Barati.
* stress/poly-call-stub-slow-path-should-restore-callee-saves-when-doing-tail-call.js: Added.
(test):
2019-06-11 Alexey Shvayka <shvaikalesh@gmail.com>
JSC should throw if proxy set returns falsish in strict mode context
https://bugs.webkit.org/show_bug.cgi?id=177398
Reviewed by Yusuke Suzuki.
1. Add coverage for Proxy `set` trap returning falsy value in strict mode.
2. RegExp methods throw unless [[Set]] succeeds. Return `true` from Proxy `set` traps to fix the tests.
* stress/proxy-set.js: Add 2 test cases.
* stress/regexp-match-proxy.js: Fix test.
* stress/regexp-replace-proxy.js: Fix test.
2019-06-11 Alexey Shvayka <shvaikalesh@gmail.com>
Error message for non-callable Proxy `construct` trap is misleading
https://bugs.webkit.org/show_bug.cgi?id=198637
Reviewed by Saam Barati.
* stress/proxy-construct.js:
2019-06-10 Tadeu Zagallo <tzagallo@apple.com>
AI BitURShift's result should not be unsigned
https://bugs.webkit.org/show_bug.cgi?id=198689
<rdar://problem/51550063>
Reviewed by Saam Barati.
* stress/urshift-int32-overflow.js: Added.
(foo.):
(foo):
2019-06-11 Guillaume Emont <guijemont@igalia.com>
Skip stress/ftl-gettypedarrayoffset-wasteful.js on Arm/Linux
Unreviewed gardening.
* stress/ftl-gettypedarrayoffset-wasteful.js:
Skipped on arm/linux as it always times out on the bot since a change
between r246270 and r246278 inclusive.
2019-06-10 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] UnlinkedCodeBlock should be eventually jettisoned in VM mini mode
https://bugs.webkit.org/show_bug.cgi?id=198023
Reviewed by Saam Barati.
* stress/reparsing-unlinked-codeblock.js: Added.
(shouldBe):
(hello):
2019-06-09 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Use mergePrediction in ValuePow prediction propagation
https://bugs.webkit.org/show_bug.cgi?id=198648
Reviewed by Saam Barati.
* stress/prediction-propagation-should-use-merge-prediction-for-value-pow.js: Added.
2019-06-07 Tadeu Zagallo <tzagallo@apple.com>
AI should get GetterSetter structure from the base's GlobalObject for GetGetterSetterByOffset
https://bugs.webkit.org/show_bug.cgi?id=198581
<rdar://problem/51099753>
Reviewed by Saam Barati.
* stress/global-object-proto-getter.js: Added.
(f):
(test):
2019-06-05 Justin Michaud <justin_michaud@apple.com>
[WASM-References] Add support for Anyref tables, Table.get and Table.set (for Anyref only).
https://bugs.webkit.org/show_bug.cgi?id=198398
Reviewed by Saam Barati.
* wasm/references/anyref_table.js: Added.
(string_appeared_here.doGCSet):
(doGCTest):
(doGCSet.doGCTest.let.count.0.doBarrierSet):
* wasm/references/anyref_table_import.js: Added.
(makeImport):
(string_appeared_here.fullGC.assert.eq.1.exports.get_tbl.makeImport):
(string_appeared_here.fullGC.assert.eq.1.exports.get_tbl):
* wasm/references/is_null_error.js: Removed.
* wasm/references/validation.js: Added.
(assert.throws.new.WebAssembly.Module.bin):
(assert.throws):
* wasm/wasm.json:
2019-06-05 Justin Michaud <justin_michaud@apple.com>
WebAssembly: pow functions returns 0 when exponent 1.0 or -1.0
https://bugs.webkit.org/show_bug.cgi?id=198106
Reviewed by Saam Barati.
* wasm/regress/selectf64.js: Added.
* wasm/regress/selectf64.wasm: Added.
* wasm/regress/selectf64.wat: Added.
2019-06-04 Tadeu Zagallo <tzagallo@apple.com>
Argument elimination should check transitive dependents for interference
https://bugs.webkit.org/show_bug.cgi?id=198520
<rdar://problem/50863343>
Reviewed by Filip Pizlo.
* stress/argument-elimination-inline-rest-past-kill.js: Added.
(f2):
(f3):
2019-06-04 Tadeu Zagallo <tzagallo@apple.com>
Argument elimination should check for negative indices in GetByVal
https://bugs.webkit.org/show_bug.cgi?id=198302
<rdar://problem/51188095>
Reviewed by Filip Pizlo.
* stress/eliminate-arguments-negative-rest-access.js: Added.
(inlinee):
(opt):
2019-06-03 Caio Lima <ticaiolima@gmail.com>
[ESNext][BigInt] Implement support for "**"
https://bugs.webkit.org/show_bug.cgi?id=190799
Reviewed by Saam Barati.
* stress/big-int-exp-basic.js: Added.
* stress/big-int-exp-jit-osr.js: Added.
* stress/big-int-exp-jit-untyped.js: Added.
* stress/big-int-exp-jit.js: Added.
* stress/big-int-exp-negative-exponent.js: Added.
* stress/big-int-exp-to-primitive.js: Added.
* stress/big-int-exp-type-error.js: Added.
* stress/big-int-exp-wrapped-value.js: Added.
* stress/value-pow-ai-rule.js: Added.
2019-05-30 Tadeu Zagallo <tzagallo@apple.com> and Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Implement op_wide16 / op_wide32 and introduce 16bit version bytecode
https://bugs.webkit.org/show_bug.cgi?id=197979
Reviewed by Filip Pizlo.
* stress/16bit-code.js: Added.
(shouldBe):
* stress/32bit-code.js: Added.
(shouldBe):
2019-05-30 Justin Michaud <justin_michaud@apple.com>
oss-fuzz: jsc: Issue 15016: jsc: Abrt in JSC::Wasm::AirIRGenerator::addLocal (15016)
https://bugs.webkit.org/show_bug.cgi?id=198355
Reviewed by Saam Barati.
* wasm/references/is_null.js:
2019-05-30 Stephan Szabo <stephan.szabo@sony.com>
[PlayStation] Skip additional tests on PlayStation
https://bugs.webkit.org/show_bug.cgi?id=198352
Reviewed by Don Olmstead.
Skip pow test on PlayStation due to behavior difference in standard library.
Skip incremental marking test due to OOM on PlayStation systems.
* stress/incremental-marking-should-not-dead-lock-in-new-property-transition.js:
* stress/math-pow-with-constants.js:
* stress/pow-with-constants.js:
2019-05-28 Dean Jackson <dino@apple.com>
Implement Promise.allSettled
https://bugs.webkit.org/show_bug.cgi?id=197600
<rdar://problem/50483885>
Reviewed by Keith Miller.
Start testing Promise.allSettled. We pass most of the tests.
The ones that fail are similar to the Promise.all tests we already fail.
* test262/config.yaml: Remove Promise.allSettled from skipped tests.
* test262/expectations.yaml: Add new expectations for allSettled tests.
2019-05-28 Michael Saboff <msaboff@apple.com>
[YARR] Properly handle RegExp's that require large ParenContext space
https://bugs.webkit.org/show_bug.cgi?id=198065
Reviewed by Keith Miller.
New test.
* stress/regexp-large-paren-context.js: Added.
(testLargeRegExp):
2019-05-28 Tadeu Zagallo <tzagallo@apple.com>
JITOperations putByVal should mark negative array indices as out-of-bounds
https://bugs.webkit.org/show_bug.cgi?id=198271
Reviewed by Saam Barati.
* microbenchmarks/get-by-val-negative-array-index.js:
(foo):
Update the getByVal microbenchmark added in r245769. This now shows that r245769
is 4.2x faster than the previous commit.
* microbenchmarks/put-by-val-negative-array-index.js: Added.
(foo):
2019-05-25 Tadeu Zagallo <tzagallo@apple.com>
JITOperations getByVal should mark negative array indices as out-of-bounds
https://bugs.webkit.org/show_bug.cgi?id=198229
Reviewed by Saam Barati.
* microbenchmarks/get-by-val-negative-array-index.js: Added.
(foo):
2019-05-24 Justin Michaud <justin_michaud@apple.com>
[WASM-References] Support Anyref in globals
https://bugs.webkit.org/show_bug.cgi?id=198102
Reviewed by Saam Barati.
Add test for anyrefs in globals, as well as adding a new RefNull initExpr for Builder.
* wasm/Builder.js:
(export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):
* wasm/Builder_WebAssemblyBinary.js:
(const.putInitExpr):
* wasm/references/anyref_globals.js: Added.
(GetGlobal.0.End.End.WebAssembly):
(5.doGCSet):
(doGCTest):
(doGCSet.doGCTest.let.count.0.doBarrierSet):
2019-05-23 Tadeu Zagallo <tzagallo@apple.com>
DFG::OSREntry should not perform arity check
https://bugs.webkit.org/show_bug.cgi?id=198189
Reviewed by Saam Barati.
* microbenchmarks/loop-osr-with-arity-mismatch.js: Added.
(foo):
2019-05-23 Stephan Szabo <stephan.szabo@sony.com>
[PlayStation] Skip additional tests on PlayStation
https://bugs.webkit.org/show_bug.cgi?id=198145
Reviewed by Ross Kirsling.
* exceptionFuzz.yaml:
Add skip on hostOS playstation
* executableAllocationFuzz.yaml:
Add skip on hostOS playstation
2019-05-23 Tadeu Zagallo <tzagallo@apple.com>
createListFromArrayLike should throw if value is not an object
https://bugs.webkit.org/show_bug.cgi?id=198138
Reviewed by Yusuke Suzuki.
* stress/create-list-from-array-like-not-object.js: Added.
(testValid):
(testInvalid):
* stress/proxy-get-own-property-names-should-not-clear-previous-results.js:
(opt):
* stress/proxy-proto-enumerator.js: Added.
(main):
* stress/proxy-proto-own-keys.js: Added.
(assert):
(ownKeys):
2019-05-22 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] ArrayAllocationProfile should not access to butterfly in concurrent compiler
https://bugs.webkit.org/show_bug.cgi?id=197809
Reviewed by Michael Saboff.
* stress/array-allocation-profile-should-not-update-itself-in-concurrent-compiler.js: Added.
(foo):
2019-05-22 Ross Kirsling <ross.kirsling@sony.com>
[ESNext] Implement support for Numeric Separators
https://bugs.webkit.org/show_bug.cgi?id=196351
Reviewed by Keith Miller.
* stress/numeric-literal-separators.js: Added.
Add tests for feature.
* test262/expectations.yaml:
Mark 60 test cases as passing.
2019-05-22 Tadeu Zagallo <tzagallo@apple.com>
llint_slow_path_get_by_id needs to hold the CodeBlock's to update the metadata's mode
https://bugs.webkit.org/show_bug.cgi?id=198120
<rdar://problem/49668795>
Reviewed by Michael Saboff.
* stress/get-array-length-concurrently-change-mode.js: Added.
(main):
2019-05-22 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r245634.
https://bugs.webkit.org/show_bug.cgi?id=198140
'This patch makes JSC crash on launch in debug builds'
(Requested by tadeuzagallo on #webkit).
Reverted changeset:
"[ESNext] Implement support for Numeric Separators"
https://bugs.webkit.org/show_bug.cgi?id=196351
https://trac.webkit.org/changeset/245634
2019-05-22 Tadeu Zagallo <tzagallo@apple.com>
Stack-buffer-overflow in decodeURIComponent
https://bugs.webkit.org/show_bug.cgi?id=198109
<rdar://problem/50397550>
Reviewed by Michael Saboff.
* stress/decode-uri-icu-count-trail-bytes.js: Added.
(i.j.try.i.toString):
(i.j.catch):
2019-05-22 Yusuke Suzuki <ysuzuki@apple.com>
Don't clear PropertyNameArray in Proxy code
https://bugs.webkit.org/show_bug.cgi?id=197691
Reviewed by Saam Barati.
* stress/proxy-get-own-property-names-should-not-clear-previous-results.js: Added.
(shouldBe):
(opt):
2019-05-22 Ross Kirsling <ross.kirsling@sony.com>
[ESNext] Implement support for Numeric Separators
https://bugs.webkit.org/show_bug.cgi?id=196351
Reviewed by Keith Miller.
* stress/numeric-literal-separators.js: Added.
Add tests for feature.
* test262/expectations.yaml:
Mark 60 test cases as passing.
2019-05-22 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] ArrayBufferContents::tryAllocate signs the pointer with allocation size and authenticates it with sizeInBytes
https://bugs.webkit.org/show_bug.cgi?id=198101
Reviewed by Michael Saboff.
* stress/zero-sized-array-buffer-pointer-should-be-signed-with-zero.js: Added.
(shouldBe):
2019-05-20 Keith Miller <keith_miller@apple.com>
Cleanup Yarr regexp code around paren contexts.
https://bugs.webkit.org/show_bug.cgi?id=198063
Reviewed by Yusuke Suzuki.
* stress/regexp-many-named-sequential-capture-groups.js: Added.
(i.s):
* stress/regexp-many-unnamed-sequential-capture-groups.js: Added.
2019-05-17 Justin Michaud <justin_michaud@apple.com>
[WASM-References] Add support for Anyref in parameters and return types, Ref.null and Ref.is_null for Anyref values.
https://bugs.webkit.org/show_bug.cgi?id=197969
Reviewed by Keith Miller.
Support the anyref type in Builder.js, plus add some extra error logging.
Add new folder for wasm references tests.
* wasm.yaml:
* wasm/Builder.js:
(const._isValidValue):
* wasm/references/anyref_modules.js: Added.
(Call.3.RefIsNull.End.End.WebAssembly.js.ident):
(Call.3.RefIsNull.End.End.WebAssembly.js.make_null):
(Call.3.RefIsNull.End.End.WebAssembly):
(undefined):
* wasm/references/is_null.js: Added.
* wasm/references/is_null_error.js: Added.
* wasm/spec-harness/index.js:
* wasm/wasm.json:
2019-05-16 Ross Kirsling <ross.kirsling@sony.com>
[JSC] Invalid AssignmentTargetType should be an early error.
https://bugs.webkit.org/show_bug.cgi?id=197603
Reviewed by Keith Miller.
* test262/expectations.yaml:
Update expectations to reflect new SyntaxErrors.
(Ideally, these should all be viewed as passing in the near future.)
* stress/async-await-basic.js:
* stress/big-int-literals.js:
Update tests to reflect new SyntaxErrors.
* ChakraCore.yaml:
* ChakraCore/test/EH/try6.baseline-jsc:
* ChakraCore/test/Error/variousErrors3.baseline-jsc: Added.
Update baselines to reflect new SyntaxErrors.
2019-05-15 Saam Barati <sbarati@apple.com>
Bound liveness of SetArgumentMaybe nodes when maximal flush insertion phase is enabled
https://bugs.webkit.org/show_bug.cgi?id=197855
<rdar://problem/50236506>
Reviewed by Michael Saboff.
* stress/set-argument-maybe-maximal-flush-should-not-extend-liveness-2.js: Added.
(f0):
(bar):
(foo):
* stress/set-argument-maybe-maximal-flush-should-not-extend-liveness.js: Added.
(f1):
(f2):
(foo):
2019-05-14 Keith Miller <keith_miller@apple.com>
Fix issue with byteOffset on ARM64E
https://bugs.webkit.org/show_bug.cgi?id=197884
Reviewed by Saam Barati.
We didn't have any tests that run with non-byte/non-zero offset
typed arrays.
* stress/ftl-gettypedarrayoffset-wasteful.js:
2019-05-14 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Shrink sizeof(UnlinkedFunctionExecutable) more
https://bugs.webkit.org/show_bug.cgi?id=197833
Reviewed by Darin Adler.
* stress/generator-name.js: Added.
(shouldBe):
(gen):
(catch):
2019-05-13 Tadeu Zagallo <tzagallo@apple.com>
JSObject::getOwnPropertyDescriptor is missing an exception check
https://bugs.webkit.org/show_bug.cgi?id=197693
<rdar://problem/50441784>
Reviewed by Saam Barati.
* stress/proxy-spread.js: Added.
(foo):
2019-05-10 Saam barati <sbarati@apple.com>
Call to JSToWasmICCallee::createStructure passes in wrong prototype value
https://bugs.webkit.org/show_bug.cgi?id=197807
<rdar://problem/50530400>
Reviewed by Yusuke Suzuki.
* stress/js-to-wasm-callee-has-correct-prototype.js: Added.
(test.getInstance):
(test):
2019-05-10 Ross Kirsling <ross.kirsling@sony.com>
[Test262] Unreviewed expectations update following r245188.
* test262/config.yaml:
* test262/expectations.yaml:
* test262/test/intl402/DateTimeFormat/prototype/formatRange/date-is-infinity-throws.js:
* test262/test/intl402/DateTimeFormat/prototype/formatRange/date-is-nan-throws.js:
* test262/test/intl402/DateTimeFormat/prototype/formatRange/date-undefined-throws.js:
* test262/test/intl402/DateTimeFormat/prototype/formatRange/date-x-greater-than-y-throws.js:
* test262/test/intl402/DateTimeFormat/prototype/formatRange/this-is-not-object-throws.js:
* test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/date-is-infinity-throws.js:
* test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/date-is-nan-throws.js:
* test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/date-undefined-throws.js:
* test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/date-x-greater-than-y-throws.js:
* test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/this-is-not-object-throws.js:
These files have invalid YAML comments. Will also submit corrections back to Test262.
2019-05-10 Keith Miller <keith_miller@apple.com>
Update test262 tests.
Rubber-stamped by Yusuke Suzuki.
* test262/*: mega-patch too many things to list individually.
2019-05-09 Keith Miller <keith_miller@apple.com>
Unreview, fix test to have a try-catch.
* stress/many-nested-functions-parser-stack-overflow.js:
(catch):
2019-05-09 Keith Miller <keith_miller@apple.com>
parseStatementListItem needs a stack overflow check
https://bugs.webkit.org/show_bug.cgi?id=197749
Reviewed by Saam Barati.
* stress/many-nested-functions-parser-stack-overflow.js: Added.
2019-05-08 Saam barati <sbarati@apple.com>
AccessGenerationState::emitExplicitExceptionHandler can clobber an in use register
https://bugs.webkit.org/show_bug.cgi?id=197715
<rdar://problem/50399252>
Reviewed by Filip Pizlo.
* stress/polymorphic-access-exception-handler-should-not-clobber-used-register.js: Added.
(foo):
(bar):
2019-05-08 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed, rolling out r245068.
Caused debug layout tests to exit early due to an assertion
failure.
Reverted changeset:
"All prototypes should call didBecomePrototype()"
https://bugs.webkit.org/show_bug.cgi?id=196315
https://trac.webkit.org/changeset/245068
2019-05-08 Yusuke Suzuki <ysuzuki@apple.com>
Invalid DFG JIT genereation in high CPU usage state
https://bugs.webkit.org/show_bug.cgi?id=197453
Reviewed by Saam Barati.
* stress/string-ident-use-clears-abstract-value-if-rope-string-constant-is-held.js: Added.
(trigger):
(main):
2019-05-08 Robin Morisset <rmorisset@apple.com>
All prototypes should call didBecomePrototype()
https://bugs.webkit.org/show_bug.cgi?id=196315
Reviewed by Saam Barati.
This changelog already landed, but the commit was missing the actual changes.
* stress/function-prototype-indexed-accessor.js: Added.
2019-05-08 Caio Lima <ticaiolima@gmail.com>
[BigInt] Add ValueMod into DFG
https://bugs.webkit.org/show_bug.cgi?id=186174
Reviewed by Saam Barati.
* microbenchmarks/mod-untyped.js: Added.
* stress/big-int-mod-osr.js: Added.
* stress/value-div-ai-rule.js: Added.
* stress/value-mod-ai-rule.js: Added.
2019-05-07 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] DFG_ASSERT failed in lowInt52
https://bugs.webkit.org/show_bug.cgi?id=197569
Reviewed by Saam Barati.
* stress/getstack-int52.js: Added.
(opt):
(main):
2019-05-07 Yusuke Suzuki <ysuzuki@apple.com>
JSC: A bug in BytecodeGenerator::emitEqualityOpImpl
https://bugs.webkit.org/show_bug.cgi?id=197479
Reviewed by Saam Barati.
* stress/do-not-perform-bytecode-peephole-optimization-in-jump-target.js: Added.
(shouldBe):
2019-05-07 Yusuke Suzuki <ysuzuki@apple.com>
TemplateObject passed to template literal tags are not always identical for the same source location.
https://bugs.webkit.org/show_bug.cgi?id=190756
Reviewed by Saam Barati.
* complex.yaml:
* complex/tagged-template-regeneration-after.js: Added.
(shouldBe):
* complex/tagged-template-regeneration.js: Added.
(call):
(test):
* modules/tagged-template-inside-module.js: Added.
(from.string_appeared_here.call):
* modules/tagged-template-inside-module/other-tagged-templates.js: Added.
(call):
(export.otherTaggedTemplates):
* stress/call-and-construct-should-return-same-tagged-templates.js: Added.
(shouldBe):
(call):
(poly):
* stress/tagged-templates-in-direct-eval-should-not-produce-same-site-object.js: Added.
(shouldBe):
(call):
* stress/tagged-templates-in-function-in-direct-eval.js: Added.
(shouldBe):
(call):
(test):
* stress/tagged-templates-in-global-function-should-not-produce-same-site-object.js: Added.
(shouldBe):
(call):
* stress/tagged-templates-in-indirect-eval-should-not-produce-same-site-object.js: Added.
(shouldBe):
(call):
* stress/tagged-templates-in-multiple-functions.js: Added.
(shouldBe):
(call):
(a):
(b):
(c):
* stress/tagged-templates-with-same-start-offset.js: Added.
(shouldBe):
2019-05-07 Robin Morisset <rmorisset@apple.com>
All prototypes should call didBecomePrototype()
https://bugs.webkit.org/show_bug.cgi?id=196315
Reviewed by Saam Barati.
* stress/function-prototype-indexed-accessor.js: Added.
2019-05-07 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r244978.
https://bugs.webkit.org/show_bug.cgi?id=197671
TemplateObject map should use start/end offsets (Requested by
yusukesuzuki on #webkit).
Reverted changeset:
"TemplateObject passed to template literal tags are not always
identical for the same source location."
https://bugs.webkit.org/show_bug.cgi?id=190756
https://trac.webkit.org/changeset/244978
2019-05-07 Tadeu Zagallo <tzagallo@apple.com>
tryCachePutByID should not crash if target offset changes
https://bugs.webkit.org/show_bug.cgi?id=197311
<rdar://problem/48033612>
Reviewed by Filip Pizlo.
Add a series of tests related tryCachePutByID. Two of these tests used to crash and were fixed
by this patch: `cache-put-by-id-different-attributes.js` and `cache-put-by-id-different-offset.js`
* stress/cache-put-by-id-delete-prototype.js: Added.
(A.prototype.set y):
(A):
(B.prototype.set y):
(B):
(C):
* stress/cache-put-by-id-different-__proto__.js: Added.
(A.prototype.set y):
(A):
(B1):
(B2.prototype.set y):
(B2):
(C):
(D):
* stress/cache-put-by-id-different-attributes.js: Added.
(Foo):
(set x):
* stress/cache-put-by-id-different-offset.js: Added.
(Foo):
(set x):
* stress/cache-put-by-id-insert-prototype.js: Added.
(A.prototype.set y):
(A):
(C):
* stress/cache-put-by-id-poly-proto.js: Added.
(Foo):
(set _):
(createBar.Bar):
(createBar):
2019-05-07 Saam Barati <sbarati@apple.com>
Don't OSR enter into an FTL CodeBlock that has been jettisoned
https://bugs.webkit.org/show_bug.cgi?id=197531
<rdar://problem/50162379>
Reviewed by Yusuke Suzuki.
* stress/dont-osr-enter-into-jettisoned-ftl-code-block.js: Added.
2019-05-06 Dean Jackson <dino@apple.com>
Update test262 expectations for Proxy passes
https://bugs.webkit.org/show_bug.cgi?id=197628
Reviewed by Yusuke Suzuki.
There are two consistent passes in Proxy.ownKeys.
* test262/expectations.yaml:
2019-05-06 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] We should check OOM for description string of Symbol
https://bugs.webkit.org/show_bug.cgi?id=197634
Reviewed by Keith Miller.
* stress/check-symbol-description-oom.js: Added.
(shouldThrow):
2019-05-06 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, land one more test
https://bugs.webkit.org/show_bug.cgi?id=197587
* stress/setter-frame-flush.js: Added.
(setter):
(foo):
(bar):
2019-05-06 Yusuke Suzuki <ysuzuki@apple.com>
TemplateObject passed to template literal tags are not always identical for the same source location.
https://bugs.webkit.org/show_bug.cgi?id=190756
Reviewed by Saam Barati.
* complex.yaml:
* complex/tagged-template-regeneration-after.js: Added.
(shouldBe):
* complex/tagged-template-regeneration.js: Added.
(call):
(test):
* modules/tagged-template-inside-module.js: Added.
(from.string_appeared_here.call):
* modules/tagged-template-inside-module/other-tagged-templates.js: Added.
(call):
(export.otherTaggedTemplates):
* stress/call-and-construct-should-return-same-tagged-templates.js: Added.
(shouldBe):
(call):
(poly):
* stress/tagged-templates-in-direct-eval-should-not-produce-same-site-object.js: Added.
(shouldBe):
(call):
* stress/tagged-templates-in-global-function-should-not-produce-same-site-object.js: Added.
(shouldBe):
(call):
* stress/tagged-templates-in-indirect-eval-should-not-produce-same-site-object.js: Added.
(shouldBe):
(call):
* stress/tagged-templates-in-multiple-functions.js: Added.
(shouldBe):
(call):
(a):
(b):
(c):
2019-05-06 Stephan Szabo <stephan.szabo@sony.com>
[PlayStation] JSC Stress tests failing due to timezone printing
https://bugs.webkit.org/show_bug.cgi?id=197615
PlayStation's strftime does not give timezone strings, which
results in time strings like "Wed Oct 23 1974 11:45:01 GMT-0700"
rather than "Wed Oct 23 1974 11:45:01 GMT-0700 (Pacific Daylight Time)"
which causes diff failures with the expectations. Add expectations
without the timezone string and use those on playstation.
Reviewed by Ross Kirsling.
* ChakraCore.yaml: Update these tests to use alternate expectation file on PlayStation
* ChakraCore/test/GlobalFunctions/InternalToString.baseline-jsc-playstation: Added.
* ChakraCore/test/Operators/equals.baseline-jsc-playstation: Added.
* ChakraCore/test/fieldopts/objtypespec-newobj.2.baseline-jsc-playstation: Added.
2019-05-06 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Add more tests for DFG SetLocal emission for adhoc SetterCall frame
https://bugs.webkit.org/show_bug.cgi?id=197587
Reviewed by Sam Weinig.
This patch adds more tests to r244939. It also inlines setter calls, and eventually see that no PutStack is emitted because MovHint's KillStack kills it.
* stress/adhoc-setter-frame-should-not-be-killed.js: Added.
2019-05-04 Tadeu Zagallo <tzagallo@apple.com>
TypedArrays should not store properties that are canonical numeric indices
https://bugs.webkit.org/show_bug.cgi?id=197228
<rdar://problem/49557381>
Reviewed by Saam Barati.
* stress/array-species-config-array-constructor.js:
(test):
* stress/put-direct-index-broken-2.js:
* stress/typed-array-canonical-numeric-index-string.js: Added.
(makeTest.assert):
(makeTest):
(const.testInvalidIndices.makeTest.set assert):
(const.testInvalidIndices.makeTest):
(const.makeTestValidIndex.configurable.set assert):
(const.makeTestValidIndex.configurable):
* stress/typedarray-access-monomorphic-neutered.js:
(checkNoException):
(testNoException):
(testFTLNoException):
* stress/typedarray-access-neutered.js:
(testNoException):
* stress/typedarray-getownproperty-not-configurable.js:
(foo):
* test262/expectations.yaml:
2019-05-03 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Need to emit SetLocal if we emit MovHint in DFGByteCodeParser
https://bugs.webkit.org/show_bug.cgi?id=197584
Reviewed by Saam Barati.
* stress/adhoc-setter-frame-should-emit-setlocal-again.js: Added.
(X):
(foo):
2019-05-03 Michael Saboff <msaboff@apple.com>
iOS JSC tests frequently exiting with execption after stress/json-stringify-string-builder-overflow.js.no-cjit-validate-phases
https://bugs.webkit.org/show_bug.cgi?id=197586
Reviewed by Keith Miller.
We should only run one config of this test and only when we think we'll have the memory.
* stress/json-stringify-string-builder-overflow.js:
2019-05-03 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Generator CodeBlock generation should be idempotent
https://bugs.webkit.org/show_bug.cgi?id=197552
Reviewed by Keith Miller.
Add complex.yaml, which controls how to run JSC shell more.
We split test files into two to run macro task between them which allows debugger to be attached to VM.
* complex.yaml: Added.
* complex/generator-regeneration-after.js: Added.
* complex/generator-regeneration.js: Added.
(gen):
2019-05-02 Michael Saboff <msaboff@apple.com>
Unreviewed rollout of r244862.
* stress/proxy-getOwnPropertySlots-exceptionChecks.js:
2019-05-01 Saam barati <sbarati@apple.com>
Baseline JIT should do argument value profiling after checking for stack overflow
https://bugs.webkit.org/show_bug.cgi?id=197052
<rdar://problem/50009602>
Reviewed by Yusuke Suzuki.
* stress/check-stack-overflow-before-value-profiling-arguments.js: Added.
2019-05-01 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Inlining Getter/Setter should care availability of ad-hocly constructed frame
https://bugs.webkit.org/show_bug.cgi?id=197405
Reviewed by Saam Barati.
* stress/getter-setter-inlining-should-emit-movhint.js: Added.
(foo):
(test):
(i.o.get f):
(i.o.set f):
2019-05-01 Michael Saboff <msaboff@apple.com>
ASSERTION FAILED: !m_needExceptionCheck with --validateExceptionChecks=1; ProxyObject.getOwnPropertySlotCommon/JSFunction.callerGetter
https://bugs.webkit.org/show_bug.cgi?id=197485
Reviewed by Saam Barati.
New test.
* stress/proxy-getOwnPropertySlots-exceptionChecks.js: Added.
(foo):
2019-05-01 Ross Kirsling <ross.kirsling@sony.com>
Unreviewed correction to Test262 expectations following r244828.
* test262/expectations.yaml:
2019-05-01 Stephan Szabo <stephan.szabo@sony.com>
Add memory-limited skipping to some tests generating very large strings
https://bugs.webkit.org/show_bug.cgi?id=197437
Reviewed by Ross Kirsling.
* stress/StringObject-define-length-getter-rope-string-oom.js:
* stress/create-error-out-of-memory-rope-string.js:
* stress/string-16bit-repeat-overflow.js:
2019-04-30 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r244806.
https://bugs.webkit.org/show_bug.cgi?id=197446
Causing Test262 and JSC test failures on multiple builds
(Requested by ShawnRoberts on #webkit).
Reverted changeset:
"TypeArrays should not store properties that are canonical
numeric indices"
https://bugs.webkit.org/show_bug.cgi?id=197228
https://trac.webkit.org/changeset/244806
2019-04-30 Tadeu Zagallo <tzagallo@apple.com>
TypeArrays should not store properties that are canonical numeric indices
https://bugs.webkit.org/show_bug.cgi?id=197228
<rdar://problem/49557381>
Reviewed by Darin Adler.
* stress/typed-array-canonical-numeric-index-string.js: Added.
(makeTest.assert):
(makeTest):
(const.testInvalidIndices.makeTest.set assert):
(const.testInvalidIndices.makeTest):
(const.testValidIndices.makeTest.set assert):
(const.testValidIndices.makeTest):
2019-04-29 Yusuke Suzuki <ysuzuki@apple.com>
normalizeMapKey should normalize NaN to one PureNaN bit pattern to make MapHash same
https://bugs.webkit.org/show_bug.cgi?id=197362
Reviewed by Saam Barati.
* stress/map-with-nan.js: Added.
(shouldBe):
(div):
(NaN1):
(NaN2):
(NaN3):
(NaN4):
(NaN1NoInline):
(NaN2NoInline):
(NaN3NoInline):
(NaN4NoInline):
(test1):
(test2):
(test3):
(test4):
* stress/set-with-nan.js: Added.
(shouldBe):
(div):
(NaN1):
(NaN2):
(NaN3):
(NaN4):
(NaN1NoInline):
(NaN2NoInline):
(NaN3NoInline):
(NaN4NoInline):
(test2):
(test4):
2019-04-26 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r244708.
https://bugs.webkit.org/show_bug.cgi?id=197334
"Broke the debug build" (Requested by rmorisset on #webkit).
Reverted changeset:
"All prototypes should call didBecomePrototype()"
https://bugs.webkit.org/show_bug.cgi?id=196315
https://trac.webkit.org/changeset/244708
2019-04-25 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] linkPolymorphicCall now does GC
https://bugs.webkit.org/show_bug.cgi?id=197306
Reviewed by Saam Barati.
* stress/link-polymorphic-call-can-gc.js: Added.
(module):
(instance):
2019-04-26 Robin Morisset <rmorisset@apple.com>
All prototypes should call didBecomePrototype()
https://bugs.webkit.org/show_bug.cgi?id=196315
Reviewed by Saam Barati.
* stress/function-prototype-indexed-accessor.js: Added.
2019-04-23 Saam Barati <sbarati@apple.com>
LICM incorrectly assumes it'll never insert a node which provably OSR exits
https://bugs.webkit.org/show_bug.cgi?id=196721
<rdar://problem/49556479>
Reviewed by Filip Pizlo.
* stress/licm-should-handle-if-a-hoist-causes-a-provable-osr-exit.js: Added.
(foo):
2019-04-19 Saam Barati <sbarati@apple.com>
AbstractValue can represent more than int52
https://bugs.webkit.org/show_bug.cgi?id=197118
<rdar://problem/49969960>
Reviewed by Michael Saboff.
* stress/abstract-value-can-include-int52.js: Added.
(foo):
(index.index.8.index.60.index.65.index.1234.index.1234.parseInt.string_appeared_here.String.fromCharCode):
2019-04-18 Yusuke Suzuki <ysuzuki@apple.com>
[WTF] StringBuilder should set correct m_is8Bit flag when merging
https://bugs.webkit.org/show_bug.cgi?id=197053
Reviewed by Saam Barati.
* stress/merge-string-builder-in-dfg.js: Added.
(foo):
2019-04-16 Caitlin Potter <caitp@igalia.com>
[JSC] Filter DontEnum properties in ProxyObject::getOwnPropertyNames()
https://bugs.webkit.org/show_bug.cgi?id=176810
Reviewed by Saam Barati.
Add tests for the DontEnum filtering, and variations of other tests
take the DontEnum-filtering path.
* stress/proxy-own-keys.js:
(i.catch):
(set assert):
(set add):
(let.set new):
(get let):
2019-04-15 Saam barati <sbarati@apple.com>
Modify how we do SetArgument when we inline varargs calls
https://bugs.webkit.org/show_bug.cgi?id=196712
<rdar://problem/49605012>
Reviewed by Michael Saboff.
* stress/get-stack-wrong-type-when-inline-varargs.js: Added.
(foo):
2019-04-15 Saam barati <sbarati@apple.com>
SafeToExecute for GetByOffset/GetGetterByOffset/PutByOffset is using the wrong child for the base
https://bugs.webkit.org/show_bug.cgi?id=196945
<rdar://problem/49802750>
Reviewed by Filip Pizlo.
* stress/get-by-offset-should-use-correct-child.js: Added.
(foo.bar):
(foo):
2019-04-15 Robin Morisset <rmorisset@apple.com>
DFG should be able to constant fold Object.create() with a constant prototype operand
https://bugs.webkit.org/show_bug.cgi?id=196886
Reviewed by Yusuke Suzuki.
Note that this new benchmark does not currently see a speedup with inlining removed.
The reason is that we do not yet have inline caching for Object.create(), we only optimize it when the DFG can see statically the prototype being passed.
* microbenchmarks/object-create-constant-prototype.js: Added.
(test):
2019-04-15 Tadeu Zagallo <tzagallo@apple.com>
Incremental bytecode cache should not append function updates when loaded from memory
https://bugs.webkit.org/show_bug.cgi?id=196865
Reviewed by Filip Pizlo.
* stress/bytecode-cache-shared-code-block.js: Added.
(b):
(program):
2019-04-13 Tadeu Zagallo <tzagallo@apple.com>
CodeCache should check that the UnlinkedCodeBlock was successfully created before caching it
https://bugs.webkit.org/show_bug.cgi?id=196880
Reviewed by Yusuke Suzuki.
* stress/bytecode-cache-syntax-error.js: Added.
(catch):
2019-04-12 Saam barati <sbarati@apple.com>
r244079 logically broke shouldSpeculateInt52
https://bugs.webkit.org/show_bug.cgi?id=196884
Reviewed by Yusuke Suzuki.
* microbenchmarks/int52-rand-function.js: Added.
(Math.random):
2019-04-11 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] op_has_indexed_property should not assume subscript part is Uint32
https://bugs.webkit.org/show_bug.cgi?id=196850
Reviewed by Saam Barati.
* stress/has-indexed-property-should-accept-non-int32.js: Added.
(foo):
2019-04-11 Saam barati <sbarati@apple.com>
Remove invalid assertion in operationInstanceOfCustom
https://bugs.webkit.org/show_bug.cgi?id=196842
<rdar://problem/49725493>
Reviewed by Michael Saboff.
* stress/operationInstanceOfCustom-bad-assertion.js: Added.
2019-04-10 Saam Barati <sbarati@apple.com>
AbstractValue::validateOSREntryValue is wrong for Int52 constants
https://bugs.webkit.org/show_bug.cgi?id=196801
<rdar://problem/49771122>
Reviewed by Yusuke Suzuki.
* stress/abstract-value-int52-constant-validation-should-not-care-about-representation.js: Added.
2019-04-10 Robin Morisset <rmorisset@apple.com>
We should clear m_needsOverflowCheck when hitting an exception in defineProperties in ObjectConstructor.cpp
https://bugs.webkit.org/show_bug.cgi?id=196746
Reviewed by Yusuke Suzuki.
* stress/cyclic-define-properties.js: Added.
(foo):
2019-04-09 Saam barati <sbarati@apple.com>
Clean up Int52 code and some bugs in it
https://bugs.webkit.org/show_bug.cgi?id=196639
<rdar://problem/49515757>
Reviewed by Yusuke Suzuki.
* stress/spec-any-int-as-double-produces-any-int52-from-int52-rep.js: Added.
2019-04-09 Tadeu Zagallo <tzagallo@apple.com>
ASSERTION FAILED: !scope.exception() || !hasProperty in JSObject::get
https://bugs.webkit.org/show_bug.cgi?id=196708
<rdar://problem/49556803>
Reviewed by Yusuke Suzuki.
* stress/proxy-getter-stack-overflow.js: Added.
(const.handler.get target):
(const.handler.has):
(try.with):
(catch):
2019-04-08 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] DFG should respect node's strict flag
https://bugs.webkit.org/show_bug.cgi?id=196617
Reviewed by Saam Barati.
* stress/put-by-val-direct-should-respect-strict-mode-of-inlining-codeblock.js: Added.
(shouldEqual):
(makeUnwriteableUnconfigurableObject):
(runTest):
* stress/put-dynamic-var-strict-and-sloppy.js: Added.
(shouldBe):
(shouldThrow):
(with.result):
(with.putValueStrict):
(with.putValueSloppy):
2019-04-08 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] isRope jump in StringSlice should not jump over register allocations
https://bugs.webkit.org/show_bug.cgi?id=196716
Reviewed by Saam Barati.
* stress/is-rope-check-in-string-slice-should-not-jump-over-register-allocations.js: Added.
(foo.bar):
(foo):
2019-04-08 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] to_index_string should not assume incoming value is Uint32
https://bugs.webkit.org/show_bug.cgi?id=196713
Reviewed by Saam Barati.
* stress/to-index-string-should-not-assume-incoming-value-is-uint32.js: Added.
(foo):
2019-04-08 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Add more tests for r243966
https://bugs.webkit.org/show_bug.cgi?id=196711
Reviewed by Saam Barati.
Adding one more test for r243966 fix. The added test will not crash after r243966.
* stress/stress-cleared-calllinkinfo.js: Added.
(runNearStackLimit.t):
(runNearStackLimit):
(repeat):
(cls):
(let.item.of.array.runNearStackLimit):
2019-04-08 Saam Barati <sbarati@apple.com>
WebAssembly.RuntimeError missing exception check
https://bugs.webkit.org/show_bug.cgi?id=196700
<rdar://problem/49693932>
Reviewed by Yusuke Suzuki.
* wasm/js-api/runtime-error-should-exception-check.js: Added.
2019-04-08 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, rolling in r243948 with test fix
https://bugs.webkit.org/show_bug.cgi?id=196486
* stress/arrow-function-and-use-strict-directive.js: Added.
* stress/arrow-function-syntax.js: Added.
(checkSyntax):
(checkSyntaxError):
2019-04-08 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed, rolling out r243948.
Caused inspector/runtime/parse.html to fail
Reverted changeset:
"SIGSEGV in JSC::BytecodeGenerator::addStringConstant"
https://bugs.webkit.org/show_bug.cgi?id=196486
https://trac.webkit.org/changeset/243948
2019-04-08 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed, rolling out r243943.
Caused test262 failures.
Reverted changeset:
"[JSC] Filter DontEnum properties in
ProxyObject::getOwnPropertyNames()"
https://bugs.webkit.org/show_bug.cgi?id=176810
https://trac.webkit.org/changeset/243943
2019-04-07 Michael Saboff <msaboff@apple.com>
REGRESSION (r243642): Crash in reddit.com page
https://bugs.webkit.org/show_bug.cgi?id=196684
Reviewed by Geoffrey Garen.
New regression test.
* stress/regexp-nongreedy-charclass-backtracks.js: Added.
2019-04-07 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] CallLinkInfo should clear Callee or CodeBlock even if it is unlinked by jettison
https://bugs.webkit.org/show_bug.cgi?id=196683
Reviewed by Saam Barati.
* stress/clear-callee-or-codeblock-in-calllinkinfo-even-cleared-by-jettison.js: Added.
(foo):
2019-04-05 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] OSRExit recovery for SpeculativeAdd does not consier "A = A + A" pattern
https://bugs.webkit.org/show_bug.cgi?id=196582
Reviewed by Saam Barati.
* stress/add-overflow-check-with-three-same-registers.js: Added.
(foo):
(Number.prototype.valueOf):
(runWithNumber):
2019-04-05 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed, rolling out r243665.
Caused iOS JSC tests to exit with an exception.
Reverted changeset:
"Assertion failed in JSC::createError"
https://bugs.webkit.org/show_bug.cgi?id=196305
https://trac.webkit.org/changeset/243665
2019-04-05 Yusuke Suzuki <ysuzuki@apple.com>
SIGSEGV in JSC::BytecodeGenerator::addStringConstant
https://bugs.webkit.org/show_bug.cgi?id=196486
Reviewed by Saam Barati.
* stress/arrow-function-and-use-strict-directive.js: Added.
* stress/arrow-function-syntax.js: Added. Checking EOF token handling.
(checkSyntax):
(checkSyntaxError): Currently not using it. But it is useful for testing more things related to arrow function syntax.
2019-04-05 Caitlin Potter <caitp@igalia.com>
[JSC] Filter DontEnum properties in ProxyObject::getOwnPropertyNames()
https://bugs.webkit.org/show_bug.cgi?id=176810
Reviewed by Saam Barati.
Add tests for the DontEnum filtering, and variations of other tests
take the DontEnum-filtering path.
* stress/proxy-own-keys.js:
(i.catch):
(set assert):
(set add):
(let.set new):
(get let):
2019-04-05 Caitlin Potter <caitp@igalia.com>
[JSC] throw if 'ownKeys' Proxy trap result contains duplicate keys
https://bugs.webkit.org/show_bug.cgi?id=185211
Reviewed by Saam Barati.
This is for the normative spec change in https://github.com/tc39/ecma262/pull/833
This changes several assertions to expect a TypeError to be thrown (in some cases,
changing thee expected message).
* es6/Proxy_ownKeys_duplicates.js:
(handler):
(shouldThrow):
(test):
* stress/Object_static_methods_Object.getOwnPropertyDescriptors-proxy.js:
(shouldThrow):
* stress/proxy-own-keys.js:
(i.catch):
(assert):
2019-04-04 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] makeBoundFunction should not assume incoming "length" value is Int32 because it performs some calculation in bytecode
https://bugs.webkit.org/show_bug.cgi?id=196631
Reviewed by Saam Barati.
* stress/make-bound-function-should-not-assume-int32-length.js: Added.
(assert):
(test):
(foo):
2019-04-04 Saam Barati <sbarati@apple.com>
Unreviewed. Make the test from r243906 catch the thrown exceptions.
* stress/inferred-types-regex-matches-array.js:
2019-04-04 Saam Barati <sbarati@apple.com>
createRegExpMatchesArray does not respect inferred types
https://bugs.webkit.org/show_bug.cgi?id=193287
Reviewed by Yusuke Suzuki.
This checks in the test case for 193287. This issue was discovered by
Samuel Groß of Google Project Zero.
* stress/inferred-types-regex-matches-array.js: Added.
2019-04-04 Saam barati <sbarati@apple.com>
Teach Call ICs how to call Wasm
https://bugs.webkit.org/show_bug.cgi?id=196387
Reviewed by Filip Pizlo.
* wasm/function-tests/stack-trace.js:
2019-04-04 Caio Lima <ticaiolima@gmail.com>
[JSC] We should consider moving UnlinkedFunctionExecutable::m_parentScopeTDZVariables to RareData
https://bugs.webkit.org/show_bug.cgi?id=194944
Reviewed by Keith Miller.
* stress/verify-bytecode-generator-cached-variables-under-tdz.js: Added.
2019-04-04 Tadeu Zagallo <tzagallo@apple.com>
Cache bytecode for jsc.cpp helpers and fix CachedStringImpl
https://bugs.webkit.org/show_bug.cgi?id=196409
Reviewed by Saam Barati.
* stress/bytecode-cache-cached-string-impl.js: Added.
(f):
(g):
* stress/bytecode-cache-run-string.js: Added.
2019-04-03 Robin Morisset <rmorisset@apple.com>
B3 should use associativity to optimize expression trees
https://bugs.webkit.org/show_bug.cgi?id=194081
Reviewed by Filip Pizlo.
Added three microbenchmarks:
- add-tree should be the ideal case, but there is no speedup because we are currently unable to prove that the CheckAdd won't overflow
- bit-xor-tree most closely matches the situation where the optimization triggers on the JetStream2 subtests where it triggers:
an unbalanced expression tree of size 8 that can be balanced, with no other optimizations being unlocked. 16% speedup
- bit-or-tree is an ideal case, where the reassociation also enables a ton of further simplifications. 42% speedup
* microbenchmarks/add-tree.js: Added.
* microbenchmarks/bit-or-tree.js: Added.
* microbenchmarks/bit-xor-tree.js: Added.
2019-04-03 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Exception verification crash on operationArrayIndexOfValueInt32OrContiguous
https://bugs.webkit.org/show_bug.cgi?id=196574
Reviewed by Saam Barati.
* stress/string-index-of-exception-check.js: Added.
(blurType):
(1.forEach):
2019-03-29 Tadeu Zagallo <tzagallo@apple.com>
Assertion failed in JSC::createError
https://bugs.webkit.org/show_bug.cgi?id=196305
<rdar://problem/49387382>
Reviewed by Saam Barati.
* stress/create-error-out-of-memory-rope-string-2.js: Added.
(assert):
(catch):
2019-03-28 Saam Barati <sbarati@apple.com>
BackwardsGraph needs to consider back edges as the backward's root successor
https://bugs.webkit.org/show_bug.cgi?id=195991
Reviewed by Filip Pizlo.
* stress/map-b3-licm-infinite-loop.js: Added.
2019-03-28 Tadeu Zagallo <tzagallo@apple.com>
CodeBlock::jettison() should disallow repatching its own calls
https://bugs.webkit.org/show_bug.cgi?id=196359
<rdar://problem/48973663>
Reviewed by Saam Barati.
* stress/call-link-info-osrexit-repatch.js: Added.
(foo):
2019-03-28 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] imports-oom.js intermittently fails
https://bugs.webkit.org/show_bug.cgi?id=196373
Reviewed by Saam Barati.
imports-oom.js ensures that a wasm module compilation / instantiation throws an OOM error instead of crashing when compiling / instantiating their entry points
with extremely low executable memory amount. And this test expects we at least once successfully compile, instantiate, and execute a wasm module to test that
wasm implementation is always throwing an OOM error. However, maybe due to wasm changes, the amount of executable memory consumed by wasm compilation is changed,
and now we may encounter an OOM error at the first compilation. Since imports-oom.js randomize the amount of executable memory used by the generated wasm module,
imports-oom.js intermittently fails when it first generates large wasm module which cannot be compiled.
This patch reduces the maxParams from 32 to 8 to reduce the size of randomly generated wasm module. Since we repeatedly generate wasm modules, this test soon encounter
an expected OOM error. But this avoids the situation that we get an OOM error when we compile a first wasm module.
* wasm/lowExecutableMemory/imports-oom.js:
2019-03-27 Saam Barati <sbarati@apple.com>
validateOSREntryValue with Int52 should box the value being checked into double format
https://bugs.webkit.org/show_bug.cgi?id=196313
<rdar://problem/49306703>
Reviewed by Yusuke Suzuki.
* stress/validate-int-52-ai-state.js: Added.
2019-03-27 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Owner of watchpoints should validate at GC finalizing phase
https://bugs.webkit.org/show_bug.cgi?id=195827
Reviewed by Filip Pizlo.
* stress/gc-should-reap-dead-watchpoints.js: Added.
(foo):
(A.prototype.y):
(A):
2019-03-26 Dominik Infuehr <dinfuehr@igalia.com>
Skip WebAssembly test on 32-bit systems
https://bugs.webkit.org/show_bug.cgi?id=196206
Reviewed by Saam Barati.
Invoking runDefault executes test immediately even though
that test should be skipped due to missing WASM support.
Therefore remove runDefault.
* wasm/regress/web-assembly-link-error-exception-check.js:
2019-03-26 Tadeu Zagallo <tzagallo@apple.com>
WebAssembly: Fix f32.min, f64.min and f64.max operations on NaN
https://bugs.webkit.org/show_bug.cgi?id=196217
Reviewed by Saam Barati.
Re-enable all NaN tests for f32.min, f64.min and f64.max.
* wasm/spec-tests/f32.wast.js:
* wasm/spec-tests/f64.wast.js:
* wasm/wasm.json:
2019-03-25 Keith Miller <keith_miller@apple.com>
ASSERTION FAILED: m_op == CompareStrictEq in JSC::DFG::Node::convertToCompareEqPtr(JSC::DFG::FrozenValue *, JSC::DFG::Edge)
https://bugs.webkit.org/show_bug.cgi?id=196176
Reviewed by Saam Barati.
* stress/object-is-fold-to-compare-eq-ptr.js: Added.
(main.v10):
(main):
2019-03-25 Tadeu Zagallo <tzagallo@apple.com>
WebAssembly: f32.max with NaN generates incorrect result
https://bugs.webkit.org/show_bug.cgi?id=175691
<rdar://problem/33952228>
Reviewed by Saam Barati.
Enable all f32.max NaN tests
* wasm/spec-tests/f32.wast.js:
* wasm/wasm.json:
2019-03-24 Dominik Infuehr <dinfuehr@igalia.com>
[JSC] Move test into directory for WASM tests
https://bugs.webkit.org/show_bug.cgi?id=196187
Reviewed by Mark Lam.
Move Test into wasm-directory. Otherwise this test
is also executed on systems without WASM support.
* wasm/regress/web-assembly-link-error-exception-check.js: Renamed from JSTests/stress/web-assembly-link-error-exception-check.js.
2019-03-23 Mark Lam <mark.lam@apple.com>
Rolling out r243032 and r243071 because the fix is incorrect.
https://bugs.webkit.org/show_bug.cgi?id=195892
<rdar://problem/48981239>
Not reviewed.
* stress/check-object-property-condition-liveness-before-accessing-it-when-watchpoints-fire.js: Removed.
2019-03-22 Mark Lam <mark.lam@apple.com>
Placate exception check validation in genericTypedArrayViewProtoFuncLastIndexOf().
https://bugs.webkit.org/show_bug.cgi?id=196154
<rdar://problem/49145307>
Reviewed by Filip Pizlo.
Also added //@ runDefault constraint to web-assembly-link-error-exception-check.js.
There's no need to run this test on more than 1 test configuration.
* stress/typed-array-lastIndexOf-exception-check.js: Added.
* stress/web-assembly-link-error-exception-check.js:
2019-03-22 Mark Lam <mark.lam@apple.com>
Placate exception check validation in constructJSWebAssemblyLinkError().
https://bugs.webkit.org/show_bug.cgi?id=196152
<rdar://problem/49145257>
Reviewed by Michael Saboff.
* stress/web-assembly-link-error-exception-check.js: Added.
2019-03-22 Dominik Infuehr <dinfuehr@igalia.com>
Skip tests running out of memory on ARM/MIPS
https://bugs.webkit.org/show_bug.cgi?id=196131
Unreviewed. Skip test if memory is limited.
* microbenchmarks/put-by-val-direct-large-index.js:
2019-03-21 Mark Lam <mark.lam@apple.com>
Remove an invalid assertion in DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNullOrUndefined().
https://bugs.webkit.org/show_bug.cgi?id=196116
<rdar://problem/48976951>
Reviewed by Filip Pizlo.
* stress/dfg-compare-eq-via-nonSpeculativeNonPeepholeCompareNullOrUndefined.js: Added.
2019-03-21 Tadeu Zagallo <tzagallo@apple.com>
JSObject::putDirectIndexSlowOrBeyondVectorLength should check if indexIsSufficientlyBeyondLengthForSparseMap
https://bugs.webkit.org/show_bug.cgi?id=196078
<rdar://problem/35925380>
Reviewed by Mark Lam.
Add a new benchmark that allocates several objects and invokes put_by_val_direct
with a large index. run-jsc-benchmarks says "definitely 1.6178x faster".
* microbenchmarks/put-by-val-direct-large-index.js: Added.
2019-03-21 Mark Lam <mark.lam@apple.com>
Placate exception check validation in operationArrayIndexOfString().
https://bugs.webkit.org/show_bug.cgi?id=196067
<rdar://problem/49056572>
Reviewed by Michael Saboff.
* stress/string-equal-exception-check.js: Added.
2019-03-21 Mark Lam <mark.lam@apple.com>
Cap length of an array with spread to MIN_ARRAY_STORAGE_CONSTRUCTION_LENGTH.
https://bugs.webkit.org/show_bug.cgi?id=196055
<rdar://problem/49067448>
Reviewed by Yusuke Suzuki.
* stress/new_array_with_spread-should-cap-array-size-to-MIN_ARRAY_STORAGE_CONSTRUCTION_LENGTH.js: Added.
2019-03-20 Saam Barati <sbarati@apple.com>
typeOfDoubleSum is wrong for when NaN can be produced
https://bugs.webkit.org/show_bug.cgi?id=196030
Reviewed by Filip Pizlo.
* stress/double-add-sub-mul-can-produce-nan.js: Added.
(assert):
(noInline.sub):
(noInline):
(assert.mul):
(assert.add):
2019-03-20 Yusuke Suzuki <ysuzuki@apple.com>
Update the test to ensure OutOfMemoryError is thrown as intended
https://bugs.webkit.org/show_bug.cgi?id=196032
<rdar://problem/46842740>
Rubber stamped by Saam Barati.
* stress/create-error-out-of-memory-rope-string.js:
(assert):
(catch):
2019-03-20 Tadeu Zagallo <tzagallo@apple.com>
JSC::createError needs to check for OOM in errorDescriptionForValue
https://bugs.webkit.org/show_bug.cgi?id=196032
<rdar://problem/46842740>
Reviewed by Mark Lam.
* stress/create-error-out-of-memory-rope-string.js: Added.
2019-03-19 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, reduce # of iterations to avoid timing out after r242991
https://bugs.webkit.org/show_bug.cgi?id=195791
To avoid timing out, this patch reduces it from 3e7 to 1e7. 1e7 iteration counts still reproduce the issue at 60%.
* stress/symbol-is-destructed-before-refing-underlying-symbol-impl.js:
2019-03-19 Caio Lima <ticaiolima@gmail.com>
[JSC] microbenchmarks/generate-multiple-llint-entrypoints.js is running out of executable memory on ARMv7
https://bugs.webkit.org/show_bug.cgi?id=195950
Unreviewed, reducing the amount of memory used on this test to avoid
OOM on devices with memory restrictions.
* microbenchmarks/generate-multiple-llint-entrypoints.js:
2019-03-19 Caio Lima <ticaiolima@gmail.com>
[JSC] LLIntEntryPoint creates same DirectJITCode for all functions
https://bugs.webkit.org/show_bug.cgi?id=194648
Reviewed by Keith Miller.
* microbenchmarks/generate-multiple-llint-entrypoints.js: Added.
2019-03-18 Mark Lam <mark.lam@apple.com>
Missing a ThrowScope release in JSObject::toString().
https://bugs.webkit.org/show_bug.cgi?id=195893
<rdar://problem/48970986>
Reviewed by Michael Saboff.
* stress/to-string-exception-check-release.js: Added.
2019-03-18 Mark Lam <mark.lam@apple.com>
Structure::flattenDictionary() should clear unused property slots.
https://bugs.webkit.org/show_bug.cgi?id=195871
<rdar://problem/48959497>
Reviewed by Michael Saboff.
* stress/structure-flattenDictionary-should-clear-unused-property-slots.js: Added.
2019-03-15 Mark Lam <mark.lam@apple.com>
Need to check ObjectPropertyCondition liveness before accessing it when firing watchpoints.
https://bugs.webkit.org/show_bug.cgi?id=195827
<rdar://problem/48845513>
Reviewed by Filip Pizlo.
* stress/check-object-property-condition-liveness-before-accessing-it-when-watchpoints-fire.js: Added.
2019-03-15 Dominik Infuehr <dinfuehr@igalia.com>
[ARM,MIPS] Skip slow tests
https://bugs.webkit.org/show_bug.cgi?id=195799
Unreviewed, test does not finish on ARM and MIPS within the
timeout limit.
* stress/symbol-is-destructed-before-refing-underlying-symbol-impl.js:
2019-03-14 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Retain PrivateName of Symbol before passing it to operations potentially incurring GC
https://bugs.webkit.org/show_bug.cgi?id=195791
<rdar://problem/48806130>
Reviewed by Mark Lam.
* stress/symbol-is-destructed-before-refing-underlying-symbol-impl.js: Added.
(foo):
2019-03-14 Saam barati <sbarati@apple.com>
We can't remove code after ForceOSRExit until after FixupPhase
https://bugs.webkit.org/show_bug.cgi?id=186916
<rdar://problem/41396612>
Reviewed by Yusuke Suzuki.
* stress/movhint-backwards-propagation-must-merge-use-as-value-add.js: Added.
(foo):
* stress/movhint-backwards-propagation-must-merge-use-as-value.js: Added.
(foo):
2019-03-13 Michael Saboff <msaboff@apple.com>
ASSERTION FAILED: regexp->isValid() or ASSERTION FAILED: !isCompilationThread()
https://bugs.webkit.org/show_bug.cgi?id=195735
Reviewed by Mark Lam.
New regression test.
* stress/dont-strength-reduce-regexp-with-compile-error.js: Added.
(foo):
(bar):
2019-03-14 Saam barati <sbarati@apple.com>
Fixup uses KnownInt32 incorrectly in some nodes
https://bugs.webkit.org/show_bug.cgi?id=195279
<rdar://problem/47915654>
Reviewed by Yusuke Suzuki.
* stress/known-int32-cant-be-used-across-bytecode-boundary.js: Added.
(foo):
2019-03-14 Keith Miller <keith_miller@apple.com>
DFG liveness can't skip tail caller inline frames
https://bugs.webkit.org/show_bug.cgi?id=195715
Reviewed by Saam Barati.
* stress/dfg-scan-inlined-tail-caller-frames-liveness.js:
(i.foo):
2019-03-13 Mark Lam <mark.lam@apple.com>
Gardening: reducing the variants on 2 tests to avoid timing out on JSC Debug queue.
https://bugs.webkit.org/show_bug.cgi?id=195415
Not reviewed.
Changed these tests to only run the default configuration.
The ftl-no-cjit-validate-sampling-profiler variant was timing out.
There's no strong need to run this test on that variant.
* stress/dfg-to-string-on-int-does-gc.js:
* stress/dfg-to-string-on-string-or-string-object-does-not-gc.js:
2019-03-13 Dominik Infuehr <dinfuehr@igalia.com>
String overflow when using StringBuilder in JSC::createError
https://bugs.webkit.org/show_bug.cgi?id=194957
Reviewed by Mark Lam.
Add test string-overflow-createError-bulder.js that overflows
StringBuilder in notAFunctionSourceAppender. The second new test
string-overflow-createError-fit.js has an error message that doesn't
overflow, it still failed since the String's capacity can't be doubled.
Run test string-overflow-createError.js only in the default
configuration to reduce memory consumption when running the test
in all configurations on multiple CPUs in parallel.
* stress/string-overflow-createError-builder.js: Copied from JSTests/stress/string-overflow-createError.js.
(catch):
* stress/string-overflow-createError-fit.js: Copied from JSTests/stress/string-overflow-createError.js.
(catch):
* stress/string-overflow-createError.js:
2019-03-12 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] OSR entry should respect abstract values in addition to flush formats
https://bugs.webkit.org/show_bug.cgi?id=195653
Reviewed by Mark Lam.
* stress/osr-entry-locals-none.js: Added.
2019-03-12 Michael Saboff <msaboff@apple.com>
REGRESSION (iOS 12.2): Webpage using CoffeeScript crashes
https://bugs.webkit.org/show_bug.cgi?id=195613
Reviewed by Mark Lam.
New regression test.
* stress/regexp-backref-inbounds.js: Added.
(testRegExp):
2019-03-12 Mark Lam <mark.lam@apple.com>
The HasIndexedProperty node does GC.
https://bugs.webkit.org/show_bug.cgi?id=195559
<rdar://problem/48767923>
Reviewed by Yusuke Suzuki.
* stress/HasIndexedProperty-does-gc.js: Added.
2019-03-11 Caio Lima <ticaiolima@gmail.com>
[ESNext][BigInt] Implement "~" unary operation
https://bugs.webkit.org/show_bug.cgi?id=182216
Reviewed by Keith Miller.
* stress/big-int-bit-not-general.js: Added.
* stress/big-int-bitwise-not-jit.js: Added.
* stress/big-int-bitwise-not-wrapped-value.js: Added.
* stress/bit-op-with-object-returning-int32.js:
* stress/bitwise-not-fixup-rules.js: Added.
* stress/value-bit-not-ai-rule.js: Added.
2019-03-10 Ross Kirsling <ross.kirsling@sony.com>
Invalid flags in a RegExp literal should be an early SyntaxError
https://bugs.webkit.org/show_bug.cgi?id=195514
Reviewed by Darin Adler.
* test262/expectations.yaml:
Mark 4 test cases as passing.
* stress/regexp-syntax-error-invalid-flags.js:
* stress/regress-161995.js: Removed.
Update existing test, merging in an older test for the same behavior.
2019-03-08 Mark Lam <mark.lam@apple.com>
Stack overflow crash in JSC::JSObject::hasInstance.
https://bugs.webkit.org/show_bug.cgi?id=195458
<rdar://problem/48710195>
Reviewed by Yusuke Suzuki.
* stress/stack-overflow-in-custom-hasInstance.js: Added.
2019-03-08 Tadeu Zagallo <tzagallo@apple.com>
op_check_tdz does not def its argument
https://bugs.webkit.org/show_bug.cgi?id=192880
<rdar://problem/46221598>
Reviewed by Saam Barati.
* microbenchmarks/let-for-in.js: Added.
(foo):
2019-03-07 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] StringFromCharCode fast path should accept 0xff in DFG and FTL
https://bugs.webkit.org/show_bug.cgi?id=195429
Reviewed by Saam Barati.
* stress/must-handled-values-should-not-be-used-as-proven-constants-in-cfa.js: Added.
(foo):
* stress/string-from-char-code-255.js: Added.
2019-03-06 Mark Lam <mark.lam@apple.com>
Fix incorrect handling of try-finally completion values.
https://bugs.webkit.org/show_bug.cgi?id=195131
<rdar://problem/46222079>
Reviewed by Saam Barati and Yusuke Suzuki.
Added many permutations of new test case to test-finally.js. test-finally.js has
been run on Chrome and Firefox as a sanity check, and we confirmed that all the
tests passes there as well.
* stress/test-finally.js:
2019-03-06 Saam Barati <sbarati@apple.com>
Air::reportUsedRegisters must padInterference
https://bugs.webkit.org/show_bug.cgi?id=195303
<rdar://problem/48270343>
Reviewed by Keith Miller.
* stress/optional-def-arg-width-should-be-both-early-and-late-use.js: Added.
2019-03-06 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] AI should not propagate AbstractValue relying on constant folding phase
https://bugs.webkit.org/show_bug.cgi?id=195375
Reviewed by Saam Barati.
* stress/make-rope-should-not-propagate-constant-folded-value-in-ai.js: Added.
(let.array):
2019-03-05 Saam barati <sbarati@apple.com>
op_switch_char broken for rope strings after JSRopeString layout rewrite
https://bugs.webkit.org/show_bug.cgi?id=195339
<rdar://problem/48592545>
Reviewed by Yusuke Suzuki.
* stress/switch-on-char-llint-rope.js: Added.
2019-03-04 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Store bits for JSRopeString in 3 stores
https://bugs.webkit.org/show_bug.cgi?id=195234
Reviewed by Saam Barati.
* stress/null-rope-and-collectors.js: Added.
2019-03-01 Dominik Infuehr <dinfuehr@igalia.com>
Unskip test read-dead-bytecode-locals-in-must-have-handle-values2.js on ARM/MIPS
https://bugs.webkit.org/show_bug.cgi?id=195207
Unreviewed. After test runtime was reduced in r242213, test can be
run again on ARM/MIPS.
* stress/read-dead-bytecode-locals-in-must-handle-values2.js:
2019-02-28 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] sizeof(JSString) should be 16
https://bugs.webkit.org/show_bug.cgi?id=194375
Reviewed by Saam Barati.
* microbenchmarks/make-rope.js: Added.
(makeRope):
* stress/to-lower-case-intrinsic-on-empty-rope.js: We no longer allow 0 length JSString except for jsEmptyString singleton per VM.
(returnRope.helper): Deleted.
(returnRope): Deleted.
2019-02-28 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, reduce the count in the stress/read-dead-bytecode-locals-in-must-handle-values2.js
https://bugs.webkit.org/show_bug.cgi?id=195144
1e8 takes too much time in the Debug build. I tried 1e5 with the old Debug build and it successfully reproduced the issue.
Change the number from 1e8 to 1e5.
* stress/read-dead-bytecode-locals-in-must-handle-values2.js:
(foo):
2019-02-28 Dominik Infuehr <dinfuehr@igalia.com>
Test times out on ARM/MIPS
https://bugs.webkit.org/show_bug.cgi?id=195168
Unreviewed. Skip test on ARM/MIPS.
* stress/read-dead-bytecode-locals-in-must-handle-values2.js:
2019-02-27 Mark Lam <mark.lam@apple.com>
The parser is failing to record the token location of new in new.target.
https://bugs.webkit.org/show_bug.cgi?id=195127
<rdar://problem/39645578>
Reviewed by Yusuke Suzuki.
* stress/parser-should-record-token-location-of-new-dot-target.js: Added.
2019-02-27 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] mustHandleValues for dead bytecode locals should be ignored in DFG phases
https://bugs.webkit.org/show_bug.cgi?id=195144
<rdar://problem/47595961>
Reviewed by Mark Lam.
* stress/read-dead-bytecode-locals-in-must-handle-values1.js: Added.
(bar):
(foo):
* stress/read-dead-bytecode-locals-in-must-handle-values2.js: Added.
(bar):
(foo):
2019-02-27 Robin Morisset <rmorisset@apple.com>
DFG: Loop-invariant code motion (LICM) should not hoist dead code
https://bugs.webkit.org/show_bug.cgi?id=194945
<rdar://problem/48311657>
Reviewed by Mark Lam.
* stress/licm-dead-code.js: Added.
2019-02-26 Yusuke Suzuki <ysuzuki@apple.com>
REGRESSION: stress/regress-178386.js is timing out on JSC debug bot
https://bugs.webkit.org/show_bug.cgi?id=194677
<rdar://problem/48112492>
Reviewed by Mark Lam.
Before r241233, String.fromCharCode (except for an empty string) always returns 16bit string.
This makes the rope generated by padEnd 16bit. When we resolve the rope inside JSON.stringify,
it immediately fails due the large size.
After r241233, String.fromCharCode starts returning 8bit string if possible. So the rope becomes
8bit, and we successfully resolve the rope in this case. Resolving such a large rope takes long
time and that is why stress/regress-178386.js starts timing out. Note that, the test fails with
OOM error anyway because JSON.stringify's builder overflows with such a large string input.
This patch changes the test to produce 16bit string from String.fromCharCode.
* stress/regress-178386.js:
2019-02-26 Mark Lam <mark.lam@apple.com>
wasmToJS() should purify incoming NaNs.
https://bugs.webkit.org/show_bug.cgi?id=194807
<rdar://problem/48189132>
Reviewed by Saam Barati.
* wasm/regress/wasmToJS-should-purify-NaNs.js: Added.
2019-02-26 Guillaume Emont <guijemont@igalia.com>
[JSC] Repeat string created from Array.prototype.join() take too much memory
https://bugs.webkit.org/show_bug.cgi?id=193912
Reviewed by Saam Barati.
Added a test and a microbenchmark for corner cases of
Array.prototype.join() with an uninitialized array.
* microbenchmarks/array-prototype-join-uninitialized.js: Added.
* stress/array-prototype-join-uninitialized.js: Added.
(testArray):
(testABC):
(B):
(C):
2019-02-22 Robin Morisset <rmorisset@apple.com>
DFGBytecodeParser should not declare that a node won't clobberExit if DFGFixupPhase can later declare it does clobberExit
https://bugs.webkit.org/show_bug.cgi?id=194953
<rdar://problem/47595253>
Reviewed by Saam Barati.
I could not make this work without the infinite loop, so I am using a watchdog to be able to use it as a regression test.
* stress/has-indexed-property-with-worsening-array-mode.js: Added.
2019-02-19 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Improve ES6 Class instances in Heap Snapshot instances view
https://bugs.webkit.org/show_bug.cgi?id=172848
<rdar://problem/25709212>
Reviewed by Mark Lam.
* typeProfiler/inheritance.js:
Rewrite the test slightly for clarity. The hoisting was confusing.
* heapProfiler/class-names.js: Added.
(MyES5Class):
(MyES6Class):
(MyES6Subclass):
Test object types and improved class names.
* heapProfiler/driver/driver.js:
(CheapHeapSnapshotNode):
(CheapHeapSnapshot):
(createCheapHeapSnapshot):
(HeapSnapshot):
(createHeapSnapshot):
Update snapshot parsing from version 1 to version 2.
2019-02-19 Truitt Savell <tsavell@apple.com>
Unreviewed, rolling out r241784.
Broke all OpenSource builds.
Reverted changeset:
"Web Inspector: Improve ES6 Class instances in Heap Snapshot
instances view"
https://bugs.webkit.org/show_bug.cgi?id=172848
https://trac.webkit.org/changeset/241784
2019-02-19 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Improve ES6 Class instances in Heap Snapshot instances view
https://bugs.webkit.org/show_bug.cgi?id=172848
<rdar://problem/25709212>
Reviewed by Mark Lam.
* typeProfiler/inheritance.js:
Rewrite the test slightly for clarity. The hoisting was confusing.
* heapProfiler/class-names.js: Added.
(MyES5Class):
(MyES6Class):
(MyES6Subclass):
Test object types and improved class names.
* heapProfiler/driver/driver.js:
(CheapHeapSnapshotNode):
(CheapHeapSnapshot):
(createCheapHeapSnapshot):
(HeapSnapshot):
(createHeapSnapshot):
Update snapshot parsing from version 1 to version 2.
2019-02-18 Dominik Infuehr <dinfuehr@igalia.com>
[ARM] Fix crash with sampling profiler
https://bugs.webkit.org/show_bug.cgi?id=194772
Reviewed by Mark Lam.
Do not skip test since crash with sampling profiler is now fixed.
* stress/sampling-profiler-richards.js:
2019-02-18 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Add LazyClassStructure::getInitializedOnMainThread
https://bugs.webkit.org/show_bug.cgi?id=194784
<rdar://problem/48154820>
Reviewed by Mark Lam.
* stress/lazy-initialization-done-a-priori-if-jit-enabled.js: Added.
(getProperties):
(getRandomProperty):
(i.catch):
2019-02-18 Dominik Infuehr <dinfuehr@igalia.com>
[ARM] Test gardening: Test running out of executable memory
https://bugs.webkit.org/show_bug.cgi?id=194771
Unreviewed. Do not run test without LLInt, test is running out of executable
memory on ARM otherwise.
* stress/tagged-template-object-collect.js:
2019-02-18 Tomas Popela <tpopela@redhat.com>
Unreviewed, skip the test on platforms without sampling profiler
* stress/sampling-profiler-stack-trace-with-double-quote-in-function-name.js:
(platformSupportsSamplingProfiler.foo):
(platformSupportsSamplingProfiler.test):
(platformSupportsSamplingProfiler):
(foo): Deleted.
(test): Deleted.
2019-02-17 Saam Barati <sbarati@apple.com>
Deadlock when adding a Structure property transition and then doing incremental marking
https://bugs.webkit.org/show_bug.cgi?id=194767
Reviewed by Mark Lam.
* stress/incremental-marking-should-not-dead-lock-in-new-property-transition.js: Added.
2019-02-15 Michael Saboff <msaboff@apple.com>
RELEASE_ASSERT at com.apple.JavaScriptCore: JSC::jsSubstringOfResolved
https://bugs.webkit.org/show_bug.cgi?id=194558
Reviewed by Saam Barati.
New regression test.
* stress/regexp-unicode-within-string.js: Added.
2019-02-15 Mark Lam <mark.lam@apple.com>
SamplingProfiler::stackTracesAsJSON() should escape strings.
https://bugs.webkit.org/show_bug.cgi?id=194649
<rdar://problem/48072386>
Reviewed by Saam Barati.
* stress/sampling-profiler-stack-trace-with-double-quote-in-function-name.js: Added.
* stress/type-profiler-with-double-quote-in-constructor-name.js: Added.
* stress/type-profiler-with-double-quote-in-field-name.js: Added.
* stress/type-profiler-with-double-quote-in-optional-field-name.js: Added.
2019-02-15 Robin Morisset <rmorisset@apple.com>
CodeBlock::jettison should clear related watchpoints
https://bugs.webkit.org/show_bug.cgi?id=194544
Reviewed by Mark Lam.
* stress/regexp-replace-double-watchpoint.js: Added.
(foo):
2019-02-15 Saam barati <sbarati@apple.com>
[WebAssembly] Write a new register allocator for Air O0 and make BBQ use it
https://bugs.webkit.org/show_bug.cgi?id=194036
Reviewed by Yusuke Suzuki.
* stress/tail-call-many-arguments.js: Added.
(foo):
(bar):
2019-02-14 Saam Barati <sbarati@apple.com>
Cache the results of BytecodeGenerator::getVariablesUnderTDZ
https://bugs.webkit.org/show_bug.cgi?id=194583
<rdar://problem/48028140>
Reviewed by Yusuke Suzuki.
* microbenchmarks/cache-get-variables-under-tdz-in-bytecode-generator.js: Added.
2019-02-08 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] String.fromCharCode's slow path always generates 16bit string
https://bugs.webkit.org/show_bug.cgi?id=194466
Reviewed by Keith Miller.
* stress/string-from-char-code-slow-path.js: Added.
(shouldBe):
(testWithLength):
2019-02-08 Saam barati <sbarati@apple.com>
Nodes that rely on being dominated by CheckInBounds should have a child edge to it
https://bugs.webkit.org/show_bug.cgi?id=194334
<rdar://problem/47844327>
Reviewed by Mark Lam.
* stress/check-in-bounds-should-be-a-child-use.js: Added.
(func):
2019-02-06 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] InitializeEntrypointArguments should produce SpecCellCheck if FlushFormat is FlushedCell
https://bugs.webkit.org/show_bug.cgi?id=194369
<rdar://problem/47813087>
Reviewed by Saam Barati.
* stress/initialize-entrypoint-arguments-with-tdz.js: Added.
(A):
2019-02-06 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] PrivateName to PublicName hash table is wasteful
https://bugs.webkit.org/show_bug.cgi?id=194277
Reviewed by Michael Saboff.
This test depends on the order of JSSegmentedVariableObjects' variables, which is not guaranteed in JSC. Skipped.
* ChakraCore.yaml:
2019-02-05 Dominik Infuehr <dinfuehr@igalia.com>
[ARM] Test running out of executable memory
https://bugs.webkit.org/show_bug.cgi?id=194285
Unreviewed. Do no execute test with LLInt disabled, test runs out of
executable memory otherwise.
* stress/class-subclassing-function.js:
2019-02-04 Robin Morisset <rmorisset@apple.com>
when lowering AssertNotEmpty, create the value before creating the patchpoint
https://bugs.webkit.org/show_bug.cgi?id=194231
Reviewed by Saam Barati.
This test is painfully fragile: it tries to test that AssertNotEmpty on a constant produces valid B3 IR.
The problem is that AssertNotEmpty is only created by DFGConstantFolding when it can simplify a CheckStructure, and constant folding is a bit capricious (https://bugs.webkit.org/show_bug.cgi?id=133947)
So even tiny changes to this test can change the path code taken.
* stress/assert-not-empty.js: Added.
(foo):
2019-02-01 Mark Lam <mark.lam@apple.com>
Remove invalid assertion in DFG's compileDoubleRep().
https://bugs.webkit.org/show_bug.cgi?id=194130
<rdar://problem/47699474>
Reviewed by Saam Barati.
* stress/constant-fold-double-rep-into-double-constant.js: Added.
2019-01-30 Ross Kirsling <ross.kirsling@sony.com>
Import latest Test262 updates.
Rubber-stamped by Keith Miller.
* test262.yaml: Deleted.
* test262/config.yaml:
* test262/expectations.yaml:
* test262/latest-changes-summary.txt:
* test262/test/:
* test262/test262-Revision.txt:
2019-01-30 Robin Morisset <rmorisset@apple.com>
Object.keys can now lead to a PhantomNewArrayBuffer, OSR exit from the FTL should know how to materialize a NewArrayBuffer in that case
https://bugs.webkit.org/show_bug.cgi?id=194050
<rdar://problem/47595592>
Reviewed by Yusuke Suzuki.
* stress/object-keys-osr-exit.js: Added.
(foo):
(catch):
2019-01-29 Mark Lam <mark.lam@apple.com>
ValueRecovery::recover() should purify NaN values it recovers.
https://bugs.webkit.org/show_bug.cgi?id=193978
<rdar://problem/47625488>
Reviewed by Saam Barati.
* stress/value-recovery-of-double-displaced-in-jsstack-should-be-purified.js: Added.
2019-01-28 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, fix the test after r240543 not to use @Error / Error in builtins
https://bugs.webkit.org/show_bug.cgi?id=193713
* stress/try-get-by-id-should-spill-registers-dfg.js:
(let.f.createBuiltin):
2019-01-28 Mark Lam <mark.lam@apple.com>
ToString node actually does GC.
https://bugs.webkit.org/show_bug.cgi?id=193920
<rdar://problem/46695900>
Reviewed by Yusuke Suzuki.
* stress/dfg-to-string-on-int-does-gc.js: Added.
* stress/dfg-to-string-on-string-object-does-not-gc.js: Added.
* stress/dfg-to-string-on-string-or-string-object-does-not-gc.js: Added.
2019-01-25 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] NativeErrorConstructor should not have own IsoSubspace
https://bugs.webkit.org/show_bug.cgi?id=193713
Reviewed by Saam Barati.
Remove @Error use.
* stress/try-get-by-id-should-spill-registers-dfg.js:
(let.f.createBuiltin):
2019-01-24 Yusuke Suzuki <ysuzuki@apple.com>
stress/const-semantics.js fails a dfg-eager / ftl-eager run with an ASAN release build.
https://bugs.webkit.org/show_bug.cgi?id=190693
Reviewed by Michael Saboff.
* stress/regress-190693.js: Added.
(truth):
(assert):
(shouldThrowInvalidConstAssignment):
(taz):
2019-01-24 Saam Barati <sbarati@apple.com>
Object Allocation Sinking phase can move a node that walks the stack into a place where the InlineCallFrame is no longer valid
https://bugs.webkit.org/show_bug.cgi?id=193751
<rdar://problem/47280215>
Reviewed by Michael Saboff.
* stress/object-allocation-sinking-phase-must-only-move-allocations-if-stack-trace-is-still-valid.js: Added.
(let.thing):
(foo.let.hello):
(foo):
2019-01-24 Guillaume Emont <guijemont@igalia.com>
[JSC] Reenable baseline JIT on mips
https://bugs.webkit.org/show_bug.cgi?id=192983
Reviewed by Mark Lam.
Added a new test for a case that was triggering a RELEASE_ASSERT when
testing.
Disable some slow tests that were already disabled for arm and x86.
* stress/json-parse-big-object.js: Added.
* stress/new-largeish-contiguous-array-with-size.js:
* stress/op_add.js:
* stress/op_bitand.js:
* stress/op_bitor.js:
* stress/op_bitxor.js:
* stress/op_lshift-ConstVar.js:
* stress/op_lshift-VarConst.js:
* stress/op_lshift-VarVar.js:
* stress/op_mod-ConstVar.js:
* stress/op_mod-VarConst.js:
* stress/op_mod-VarVar.js:
* stress/op_mul-ConstVar.js:
* stress/op_mul-VarConst.js:
* stress/op_mul-VarVar.js:
* stress/op_rshift-ConstVar.js:
* stress/op_rshift-VarConst.js:
* stress/op_rshift-VarVar.js:
* stress/op_sub-ConstVar.js:
* stress/op_sub-VarConst.js:
* stress/op_sub-VarVar.js:
* stress/op_urshift-ConstVar.js:
* stress/op_urshift-VarConst.js:
* stress/op_urshift-VarVar.js:
* stress/sampling-profiler-richards.js:
* stress/spread-forward-call-varargs-stack-overflow.js:
2019-01-23 Yusuke Suzuki <ysuzuki@apple.com>
[DFG] AvailabilityMap::pruneByLiveness should make non-live operands Availability::unavailable instead of Availability()
https://bugs.webkit.org/show_bug.cgi?id=193711
<rdar://problem/47250262>
Reviewed by Saam Barati.
* stress/availability-was-cleared-when-locals-are-not-live.js: Added.
(shouldBe):
(foo):
(bar):
(baz):
2019-01-22 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, fix initial global lexical binding epoch
https://bugs.webkit.org/show_bug.cgi?id=193603
<rdar://problem/47380869>
* stress/global-lexical-binding-epoch-should-be-correct-one.js: Added.
(f1.f2.f3.f4):
(f1.f2.f3):
(f1.f2):
(f1):
2019-01-22 Yusuke Suzuki <ysuzuki@apple.com>
REGRESSION(r239612) Crash at runtime due to broken DFG assumption
https://bugs.webkit.org/show_bug.cgi?id=193709
<rdar://problem/47363838>
Unreviewed, rollout to watch the tests.
* stress/object-tostring-changed-proto.js: Removed.
* stress/object-tostring-changed.js: Removed.
* stress/object-tostring-misc.js: Removed.
* stress/object-tostring-other.js: Removed.
* stress/object-tostring-untyped.js: Removed.
2019-01-22 Saam Barati <sbarati@apple.com>
Unreviewed. Rollout r240223. It regressed JetStream2 by 1%.
* stress/arith-abs-to-arith-negate-range-optimizaton.js:
(testUncheckedBetweenIntMinInclusiveAndZeroExclusive):
(testUncheckedLessThanZero):
(testUncheckedLessThanOrEqualZero):
* stress/movhint-backwards-propagation-must-merge-use-as-value-add.js: Removed.
* stress/movhint-backwards-propagation-must-merge-use-as-value.js: Removed.
2019-01-22 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Invalidate old scope operations using global lexical binding epoch
https://bugs.webkit.org/show_bug.cgi?id=193603
<rdar://problem/47380869>
Reviewed by Saam Barati.
* stress/let-lexical-binding-shadow-existing-global-property-ftl.js:
* stress/scope-operation-cache-global-property-before-deleting.js: Added.
(shouldThrow):
(bar):
* stress/scope-operation-cache-global-property-bump-counter.js: Added.
(shouldBe):
(get1):
(get2):
(get1If):
(get2If):
* stress/scope-operation-cache-global-property-even-if-it-fails.js: Added.
(shouldThrow):
(foo):
2019-01-21 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, roll out r240220 due to date-format-xparb regression
https://bugs.webkit.org/show_bug.cgi?id=193603
* stress/let-lexical-binding-shadow-existing-global-property-ftl.js:
* stress/scope-operation-cache-global-property-before-deleting.js: Removed.
* stress/scope-operation-cache-global-property-bump-counter.js: Removed.
* stress/scope-operation-cache-global-property-even-if-it-fails.js: Removed.
2019-01-21 Caio Lima <ticaiolima@gmail.com>
DoesGC rule is wrong for nodes with BigIntUse
https://bugs.webkit.org/show_bug.cgi?id=193652
Reviewed by Saam Barati.
* stress/big-int-value-op-update-gc-rules.js: Added.
(assert):
(doesGCAdd):
(doesGCSub):
(doesGCDiv):
(doesGCMul):
(doesGCBitAnd):
(doesGCBitOr):
(doesGCBitXor):
2019-01-20 Saam Barati <sbarati@apple.com>
DFG: When inlining DataView set* intrinsics we need to set undefined as our result
https://bugs.webkit.org/show_bug.cgi?id=193644
<rdar://problem/46209745>
Reviewed by Yusuke Suzuki.
* stress/data-view-set-intrinsic-undefined-result-2.js: Added.
(foo):
* stress/data-view-set-intrinsic-undefined-result.js: Added.
(foo):
(bar):
2019-01-20 Saam Barati <sbarati@apple.com>
MovHint must merge NodeBytecodeUsesAsValue for its child
https://bugs.webkit.org/show_bug.cgi?id=186916
<rdar://problem/41396612>
Reviewed by Yusuke Suzuki.
* stress/arith-abs-to-arith-negate-range-optimizaton.js:
* stress/movhint-backwards-propagation-must-merge-use-as-value.js: Added.
2019-01-20 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Invalidate old scope operations using global lexical binding epoch
https://bugs.webkit.org/show_bug.cgi?id=193603
<rdar://problem/47380869>
Reviewed by Saam Barati.
* stress/let-lexical-binding-shadow-existing-global-property-ftl.js:
* stress/scope-operation-cache-global-property-before-deleting.js: Added.
(shouldThrow):
(bar):
* stress/scope-operation-cache-global-property-bump-counter.js: Added.
(shouldBe):
(get1):
(get2):
(get1If):
(get2If):
* stress/scope-operation-cache-global-property-even-if-it-fails.js: Added.
(shouldThrow):
(foo):
2019-01-17 Saam barati <sbarati@apple.com>
StringObjectUse should not be a structure check for the original string object structure
https://bugs.webkit.org/show_bug.cgi?id=193483
<rdar://problem/47280522>
Reviewed by Yusuke Suzuki.
* stress/cant-eliminate-string-object-structure-check-when-string-object-is-proven.js: Added.
(foo):
(a.valueOf.0):
2019-01-17 Yusuke Suzuki <yusukesuzuki@slowstart.org>
[JSC] ToThis omission in DFGByteCodeParser is wrong
https://bugs.webkit.org/show_bug.cgi?id=193513
<rdar://problem/45842236>
Reviewed by Saam Barati.
* stress/to-this-omission-with-different-strict-modes.js: Added.
(thisA):
(thisAStrictWrapper):
2019-01-15 Mark Lam <mark.lam@apple.com>
JSFunction::canUseAllocationProfile() should account for builtin functions with no own prototypes.
https://bugs.webkit.org/show_bug.cgi?id=193423
<rdar://problem/46209355>
Reviewed by Saam Barati.
* microbenchmarks/sinkable-new-object-with-builtin-constructor.js: Added.
* stress/constructing-builtin-functions-with-getter-prototype-should-only-call-getter-once-per-new-1.js: Added.
* stress/constructing-builtin-functions-with-getter-prototype-should-only-call-getter-once-per-new-2.js: Added.
* stress/jsfunction-cannot-use-allocation-profile-with-builtin-functions-with-no-prototype.js: Added.
2019-01-15 Yusuke Suzuki <yusukesuzuki@slowstart.org>
[JSC] Use KnownStringUse for GetByVal(Array::String) since AI would offer wider type information and offer non-string type after removing Check(String)
https://bugs.webkit.org/show_bug.cgi?id=193438
<rdar://problem/45581249>
Reviewed by Saam Barati and Keith Miller.
Under the heavy load (like, compiling WebKit), AI in this code can broaden type information after the 1st run.
Then, GetByVal(String) crashed.
* stress/string-get-by-val-lowering.js: Added.
(shouldBe):
(test):
* stress/type-for-get-by-val-can-be-widen-after-ai.js: Added.
(Hello):
(foo):
2019-01-15 Tomas Popela <tpopela@redhat.com>
Unreviewed, skip JIT tests if it's not enabled
* stress/bit-op-with-object-returning-int32.js:
2019-01-15 Caio Lima <ticaiolima@gmail.com>
DFGByteCodeParser rules for bitwise operations should consider type of their operands
https://bugs.webkit.org/show_bug.cgi?id=192966
Reviewed by Yusuke Suzuki.
* stress/bit-op-with-object-returning-int32.js: Added.
2019-01-15 Guillaume Emont <guijemont@igalia.com>
Skip a slow test and a flakey test on arm
Unreviewed gardening.
* typeProfiler/getter-richards.js:
this test always times out, it used to be always skipped on arm and
mips, but got accidentally enabled by r237919 now that we have DFG on
arm. Also skipping on mips as we plan to soon enable DFG for it too.
2019-01-14 Keith Miller <keith_miller@apple.com>
Skip type-check-hoisting-phase-hoist... with no jit
https://bugs.webkit.org/show_bug.cgi?id=193421
Reviewed by Mark Lam.
It's timing out the 32-bit bots and takes 330 seconds
on my machine when run by itself.
* stress/type-check-hoisting-phase-hoist-check-structure-on-tdz-this-value.js:
2019-01-14 Yusuke Suzuki <yusukesuzuki@slowstart.org>
[JSC] AI should check the given constant's array type when folding GetByVal into constant
https://bugs.webkit.org/show_bug.cgi?id=193413
<rdar://problem/46092389>
Reviewed by Keith Miller.
This test is super flaky. It causes crash in r238109, but it does not crash with `--useConcurrentJIT=false`.
It does not cause any crashes on the latest revision too. Basically, it highly depends on the timing, and
without this patch, the root cause is not fixed yet. If GetLocal is turned into JSConstant in AI,
but GetByVal does not have appropriate ArrayModes, JSC crashes.
* stress/ai-should-perform-array-check-on-get-by-val-constant-folding.js: Added.
(compareArray):
2019-01-14 Caio Lima <ticaiolima@gmail.com>
[BigInt] Literal parsing is crashing when used inside a Object Literal
https://bugs.webkit.org/show_bug.cgi?id=193404
Reviewed by Yusuke Suzuki.
* stress/big-int-literal-inside-literal-object.js: Added.
2019-01-14 Yusuke Suzuki <yusukesuzuki@slowstart.org>
[JSC] Do not use asArrayModes() with Structures because it discards TypedArray information
https://bugs.webkit.org/show_bug.cgi?id=193372
Reviewed by Saam Barati.
* stress/typed-array-array-modes-profile.js: Added.
(foo):
2019-01-14 Mark Lam <mark.lam@apple.com>
Fix all CLoop JSC test failures (including some LLInt bugs due to recent bytecode format change).
https://bugs.webkit.org/show_bug.cgi?id=193402
<rdar://problem/46012309>
Reviewed by Keith Miller.
* stress/regexp-compile-oom.js:
- Skip this test for !$jitTests because it is tuned for stack usage when the JIT
is enabled. As a result, it will fail on cloop builds though there is no bug.
2019-01-11 Saam barati <sbarati@apple.com>
DFG combined liveness can be wrong for terminal basic blocks
https://bugs.webkit.org/show_bug.cgi?id=193304
<rdar://problem/45268632>
Reviewed by Yusuke Suzuki.
* stress/dfg-combined-liveness-consider-terminal-blocks-bytecode-liveness.js: Added.
2019-01-11 Yusuke Suzuki <yusukesuzuki@slowstart.org>
[JSC] Global lexical bindings can shadow global variables if it is `configurable = true`
https://bugs.webkit.org/show_bug.cgi?id=193308
<rdar://problem/45546542>
Reviewed by Saam Barati.
* stress/const-lexical-binding-shadow-existing-global-property-ftl.js: Added.
(shouldThrow):
(shouldBe):
(foo):
(get shouldThrow):
* stress/const-lexical-binding-shadow-existing-global-property-tdz-ftl.js: Added.
(shouldThrow):
(shouldBe):
(foo):
(get shouldBe):
(get shouldThrow):
(get return):
* stress/const-lexical-binding-shadow-existing-global-property-tdz.js: Added.
(shouldThrow):
(shouldBe):
(foo):
(get shouldBe):
(get shouldThrow):
* stress/const-lexical-binding-shadow-existing-global-property.js: Added.
(shouldThrow):
(shouldBe):
(foo):
* stress/const-lexical-binding-shadowing-global-properties-and-eval-injection.js: Added.
(shouldThrow):
(shouldBe):
(foo):
* stress/global-add-function-should-not-be-shadowed-by-lexical-bindings.js: Added.
(shouldThrow):
* stress/global-static-variables-should-not-be-shadowed-by-lexical-bindings.js: Added.
(shouldThrow):
* stress/let-lexical-binding-shadow-existing-global-property-ftl.js: Added.
(shouldThrow):
(shouldBe):
(foo):
* stress/let-lexical-binding-shadow-existing-global-property-tdz-ftl.js: Added.
(shouldThrow):
(shouldBe):
(foo):
(get shouldBe):
(get shouldThrow):
(get return):
* stress/let-lexical-binding-shadow-existing-global-property-tdz.js: Added.
(shouldThrow):
(shouldBe):
(foo):
(get shouldBe):
(get shouldThrow):
* stress/let-lexical-binding-shadow-existing-global-property.js: Added.
(shouldThrow):
(shouldBe):
(foo):
* stress/let-lexical-binding-shadowing-global-properties-and-eval-injection.js: Added.
(shouldThrow):
(shouldBe):
(foo):
2019-01-11 Dominik Infuehr <dinfuehr@igalia.com>
Enable DFG on ARM/Linux again
https://bugs.webkit.org/show_bug.cgi?id=192496
Reviewed by Yusuke Suzuki.
Test wasn't really skipped before moving the line with skip
to the top.
* stress/regress-192717.js:
2019-01-10 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r239825.
https://bugs.webkit.org/show_bug.cgi?id=193330
Broke tests on armv7/linux bots (Requested by guijemont on
#webkit).
Reverted changeset:
"Enable DFG on ARM/Linux again"
https://bugs.webkit.org/show_bug.cgi?id=192496
https://trac.webkit.org/changeset/239825
2019-01-10 Dominik Infuehr <dinfuehr@igalia.com>
Enable DFG on ARM/Linux again
https://bugs.webkit.org/show_bug.cgi?id=192496
Reviewed by Yusuke Suzuki.
Test wasn't really skipped before moving the line with skip
to the top.
* stress/regress-192717.js:
2019-01-08 Yusuke Suzuki <yusukesuzuki@slowstart.org>
Array.prototype.flat/flatMap have a minor bug in ArraySpeciesCreate
https://bugs.webkit.org/show_bug.cgi?id=193127
Reviewed by Saam Barati.
* stress/array-species-create-should-handle-masquerader.js: Added.
(shouldThrow):
* stress/is-undefined-or-null-builtin.js: Added.
(shouldBe):
(isUndefinedOrNull.vm.createBuiltin):
2019-01-08 Tadeu Zagallo <tzagallo@apple.com>
LLInt put_by_id uses the wrong load instruction for loading flags from the metadata
https://bugs.webkit.org/show_bug.cgi?id=193221
Reviewed by Mark Lam.
* stress/put-by-id-flags.js: Added.
(f):
(g):
(numberOfDFGCompiles):
2019-01-04 Tadeu Zagallo <tzagallo@apple.com>
Baseline version of get_by_id may corrupt metadata
https://bugs.webkit.org/show_bug.cgi?id=193085
<rdar://problem/23453006>
Reviewed by Saam Barati.
* stress/get-by-id-change-mode.js: Added.
(forEach):
2019-01-02 Yusuke Suzuki <yusukesuzuki@slowstart.org>
[JSC] Optimize Object.prototype.toString
https://bugs.webkit.org/show_bug.cgi?id=193031
Reviewed by Saam Barati.
* stress/object-tostring-changed-proto.js: Added.
(shouldBe):
(test):
* stress/object-tostring-changed.js: Added.
(shouldBe):
(test):
* stress/object-tostring-misc.js: Added.
(shouldBe):
(test):
(i.switch):
* stress/object-tostring-other.js: Added.
(shouldBe):
(test):
* stress/object-tostring-untyped.js: Added.
(shouldBe):
(test):
(i.switch):
2019-01-03 Ross Kirsling <ross.kirsling@sony.com>
test262-runner misbehaves when test file YAML has a trailing space
https://bugs.webkit.org/show_bug.cgi?id=193053
Reviewed by Yusuke Suzuki.
* test262/expectations.yaml:
Mark two dozen tests as passing (and correct the output of another).
2018-12-30 Yusuke Suzuki <yusukesuzuki@slowstart.org>
Unreviewed, JSTests gardening with memoryLimited
* stress/string-overflow-createError.js:
2018-12-30 Ross Kirsling <ross.kirsling@sony.com>
[JSC] Identifier validity should be based on ID_Start / ID_Continue properties
https://bugs.webkit.org/show_bug.cgi?id=193050
Reviewed by Yusuke Suzuki.
* test262.yaml:
* test262/expectations.yaml:
Mark 16 tests as passing.
2018-12-13 Yusuke Suzuki <yusukesuzuki@slowstart.org>
[BigInt] Support BigInt in JSON.stringify
https://bugs.webkit.org/show_bug.cgi?id=192624
Reviewed by Saam Barati.
* stress/big-int-json-stringify-to-json.js: Added.
(shouldBe):
(shouldThrow):
(BigInt.prototype.toJSON):
(shouldBe.JSON.stringify):
* stress/big-int-json-stringify.js: Added.
(shouldBe):
(shouldThrow):
2018-12-20 Yusuke Suzuki <yusukesuzuki@slowstart.org>
[JSC] Implement "well-formed JSON.stringify" proposal
https://bugs.webkit.org/show_bug.cgi?id=191677
Reviewed by Darin Adler.
* stress/json-surrogate-pair.js: Added.
(shouldBe):
* test262/expectations.yaml:
2018-12-20 Keith Miller <keith_miller@apple.com>
Add support for globalThis
https://bugs.webkit.org/show_bug.cgi?id=165171
Reviewed by Mark Lam.
* test262/config.yaml:
2018-12-19 Keith Miller <keith_miller@apple.com>
Update test262 configuration to not run tests dependent on ICU version.
https://bugs.webkit.org/show_bug.cgi?id=192920
Reviewed by Saam Barati.
* test262/expectations.yaml:
2018-12-20 Mark Lam <mark.lam@apple.com>
Fix a typo in slow_path_construct_arityCheck and operationConstructArityCheck.
https://bugs.webkit.org/show_bug.cgi?id=192939
<rdar://problem/46869516>
Reviewed by Keith Miller.
* stress/stack-overflow-frame-for-construct-arityCheck-should-use-construct-codeBlock.js: Added.
2018-12-20 Tadeu Zagallo <tzagallo@apple.com>
WTF::String and StringImpl overflow MaxLength
https://bugs.webkit.org/show_bug.cgi?id=192853
<rdar://problem/45726906>
Reviewed by Mark Lam.
* stress/string-16bit-repeat-overflow.js: Added.
(catch):
2018-12-19 Ross Kirsling <ross.kirsling@sony.com>
Unreviewed follow-up to r192914.
* test262/expectations.yaml:
Add the last 20 missing expectations.
2018-12-19 Keith Miller <keith_miller@apple.com>
Fix test262 expectations
https://bugs.webkit.org/show_bug.cgi?id=192914
Unreviewed, when I imported the latest round of test262 tests I must have failed to update the test expectations.
* test262/expectations.yaml:
2018-12-19 Keith Miller <keith_miller@apple.com>
Update test262 tests.
https://bugs.webkit.org/show_bug.cgi?id=192907
Rubber stamped by Mark Lam.
* test262/*: Omitted because prepare-changelog crashes.
2018-12-19 Mark Lam <mark.lam@apple.com>
JSPropertyNameEnumerator should cache the iterated object's structure only after getting its property names.
https://bugs.webkit.org/show_bug.cgi?id=192464
<rdar://problem/46519455>
Reviewed by Saam Barati.
This patch is about a 10% speed up on the new for-in-on-object-with-lazily-materialized-properties.js
microbenchmark.
* microbenchmarks/for-in-on-object-with-lazily-materialized-properties.js: Added.
* stress/property-name-enumerator-should-cache-structure-after-getting-property-names.js: Added.
2018-12-19 Tadeu Zagallo <tzagallo@apple.com>
String overflow in JSC::createError results in ASSERT in WTF::makeString
https://bugs.webkit.org/show_bug.cgi?id=192833
<rdar://problem/45706868>
Reviewed by Mark Lam.
* stress/string-overflow-createError.js: Added.
2018-12-18 Ross Kirsling <ross.kirsling@sony.com>
Error message for `-x ** y` contains a typo.
https://bugs.webkit.org/show_bug.cgi?id=192832
Reviewed by Saam Barati.
* ChakraCore/test/UnitTestFramework/UnitTestFramework.js:
(assert.assert.return.throws):
* stress/pow-expects-update-expression-on-lhs.js:
(throw.new.Error):
Update test expectations which match against the exact error message.
2018-12-18 Mark Lam <mark.lam@apple.com>
Gardening: test options fix.
https://bugs.webkit.org/show_bug.cgi?id=192822
Unreviewed.
* stress/json-stringify-string-builder-overflow.js:
2018-12-18 Mark Lam <mark.lam@apple.com>
JSON.stringify() should throw OOM on StringBuilder overflows.
https://bugs.webkit.org/show_bug.cgi?id=192822
<rdar://problem/46670577>
Reviewed by Saam Barati.
* stress/json-stringify-string-builder-overflow.js: Added.
2018-12-18 Ross Kirsling <ross.kirsling@sony.com>
Redeclaration of var over let/const/class should be a syntax error.
https://bugs.webkit.org/show_bug.cgi?id=192298
Reviewed by Keith Miller.
* test262.yaml:
* test262/expectations.yaml:
Mark 46 tests as passing.
* stress/block-scope-redeclarations.js:
Add some new tests.
* stress/for-in-invalidate-context-weird-assignments.js:
* stress/for-in-tests.js:
Replace tests for outdated behavior with tests for SyntaxError.
* ChakraCore/test/LetConst/defer3.baseline-jsc:
* ChakraCore/test/LetConst/letvar.baseline-jsc:
Update expectations.
2018-12-18 Mark Lam <mark.lam@apple.com>
Skip the stress/elidable-new-object-roflcopter-then-exit.js test on 32-bit.
https://bugs.webkit.org/show_bug.cgi?id=191374
<rdar://problem/46525447>
Reviewed by Yusuke Suzuki.
This test runs too slow on 32-bit, and is not relevant for non-JIT builds.
* stress/elidable-new-object-roflcopter-then-exit.js:
2018-12-17 Mark Lam <mark.lam@apple.com>
Skip the stress/materialized-regexp-has-correct-last-index-set-by-match.js test on 32-bit.
https://bugs.webkit.org/show_bug.cgi?id=192019
<rdar://problem/46525456>
Reviewed by Yusuke Suzuki.
The test runs too slow on 32-bit.
* stress/materialized-regexp-has-correct-last-index-set-by-match.js:
2018-12-17 Mark Lam <mark.lam@apple.com>
Skip the stress/materialize-regexp-cyclic-regexp.js test on 32-bit.
https://bugs.webkit.org/show_bug.cgi?id=191373
<rdar://problem/46525458>
Reviewed by Yusuke Suzuki.
The test is already slow running with a JIT on 64-bit. It will always timeout
on 32-bit without a JIT.
* stress/materialize-regexp-cyclic-regexp.js:
2018-12-17 Mark Lam <mark.lam@apple.com>
Array unshift/shift should not race against the AI in the compiler thread.
https://bugs.webkit.org/show_bug.cgi?id=192795
<rdar://problem/46724263>
Reviewed by Saam Barati.
* stress/array-unshift-should-not-race-against-compiler-thread.js: Added.
2018-12-16 Yusuke Suzuki <yusukesuzuki@slowstart.org>
[JSC] Optimize Object.keys by caching own keys results in StructureRareData
https://bugs.webkit.org/show_bug.cgi?id=190047
Reviewed by Saam Barati.
* stress/object-keys-cached-zero.js: Added.
(shouldBe):
(test):
* stress/object-keys-changed-attribute.js: Added.
(shouldBe):
(test):
* stress/object-keys-changed-index.js: Added.
(shouldBe):
(test):
* stress/object-keys-changed.js: Added.
(shouldBe):
(test):
* stress/object-keys-indexed-non-cache.js: Added.
(shouldBe):
(test):
* stress/object-keys-overrides-get-property-names.js: Added.
(shouldBe):
(test):
(noInline):
2018-12-17 Mark Lam <mark.lam@apple.com>
SamplingProfiler's isValidFramePointer() should reject address at stack origin.
https://bugs.webkit.org/show_bug.cgi?id=192779
<rdar://problem/46775869>
Reviewed by Saam Barati.
* stress/sampling-profiler-should-not-sample-beyond-stack-bounds.js: Added.
2018-12-17 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed test gardening, address a syntax error in a new test.
* stress/out-of-frame-stack-accesses-due-to-probe-based-osr-exits.js:
2018-12-17 Mark Lam <mark.lam@apple.com>
Suppress ASAN on valid stack accesses in Probe-based OSRExit::executeOSRExit().
https://bugs.webkit.org/show_bug.cgi?id=192776
<rdar://problem/46772368>
Reviewed by Keith Miller.
* stress/out-of-frame-stack-accesses-due-to-probe-based-osr-exits.js: Added.
2018-12-17 Mark Lam <mark.lam@apple.com>
Fix stale assertion in attemptToForceStringArrayModeByToStringConversion().
https://bugs.webkit.org/show_bug.cgi?id=192770
<rdar://problem/46449037>
Reviewed by Keith Miller.
* stress/force-string-arrayMode-on-originalNonArray-array-class.js: Added.
2018-12-14 Mark Lam <mark.lam@apple.com>
CallFrame::convertToStackOverflowFrame() needs to keep the top CodeBlock alive.
https://bugs.webkit.org/show_bug.cgi?id=192717
<rdar://problem/46660677>
Reviewed by Saam Barati.
* stress/regress-192717.js: Added.
2018-12-14 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r239153, r239154, and r239155.
https://bugs.webkit.org/show_bug.cgi?id=192715
Caused flaky GC-related crashes seen with layout tests
(Requested by ryanhaddad on #webkit).
Reverted changesets:
"[JSC] Optimize Object.keys by caching own keys results in
StructureRareData"
https://bugs.webkit.org/show_bug.cgi?id=190047
https://trac.webkit.org/changeset/239153
"Unreviewed, build fix after r239153"
https://bugs.webkit.org/show_bug.cgi?id=190047
https://trac.webkit.org/changeset/239154
"Unreviewed, build fix after r239153, part 2"
https://bugs.webkit.org/show_bug.cgi?id=190047
https://trac.webkit.org/changeset/239155
2018-12-14 Keith Miller <keith_miller@apple.com>
Callers of JSString::getIndex should check for OOM exceptions
https://bugs.webkit.org/show_bug.cgi?id=192709
Reviewed by Mark Lam.
* stress/StringObject-define-length-getter-rope-string-oom.js: Added.
2018-12-13 Mark Lam <mark.lam@apple.com>
Add a missing exception check.
https://bugs.webkit.org/show_bug.cgi?id=192626
<rdar://problem/46662163>
Reviewed by Keith Miller.
* stress/regress-192626.js: Added.
2018-12-13 Caio Lima <ticaiolima@gmail.com>
[BigInt] Add ValueDiv into DFG
https://bugs.webkit.org/show_bug.cgi?id=186178
Reviewed by Yusuke Suzuki.
* stress/big-int-div-jit-osr.js: Added.
* stress/big-int-div-jit-untyped.js: Added.
* stress/value-div-fixup-int32-big-int.js: Added.
2018-12-10 Yusuke Suzuki <yusukesuzuki@slowstart.org>
[JSC] Optimize Object.keys by caching own keys results in StructureRareData
https://bugs.webkit.org/show_bug.cgi?id=190047
Reviewed by Keith Miller.
* stress/object-keys-cached-zero.js: Added.
(shouldBe):
(test):
* stress/object-keys-changed-attribute.js: Added.
(shouldBe):
(test):
* stress/object-keys-changed-index.js: Added.
(shouldBe):
(test):
* stress/object-keys-changed.js: Added.
(shouldBe):
(test):
* stress/object-keys-indexed-non-cache.js: Added.
(shouldBe):
(test):
* stress/object-keys-overrides-get-property-names.js: Added.
(shouldBe):
(test):
(noInline):
2018-12-12 Yusuke Suzuki <yusukesuzuki@slowstart.org>
[DFG][FTL] Add NewSymbol
https://bugs.webkit.org/show_bug.cgi?id=192620
Reviewed by Saam Barati.
* microbenchmarks/symbol-creation.js: Added.
(test):
* stress/symbol-description-identity.js: Added.
(shouldBe):
(test):
* stress/symbol-identity.js: Added.
(shouldBe):
(test):
* stress/symbol-with-description-throw-error.js: Added.
(shouldBe):
(shouldThrow):
(test):
(object.toString):
2018-12-12 Yusuke Suzuki <yusukesuzuki@slowstart.org>
[BigInt] Implement DFG/FTL typeof for BigInt
https://bugs.webkit.org/show_bug.cgi?id=192619
Reviewed by Keith Miller.
* stress/big-int-boolean-proven-type.js: Added.
(assert):
(bool):
* stress/big-int-type-of-proven-type-non-constant-including-symbol.js: Added.
(assert):
(typeOf):
(i.switch):
* stress/big-int-type-of-proven-type-non-constant.js: Added.
(assert):
(typeOf):
* stress/big-int-type-of.js:
(typeOf):
(func):
2018-12-10 Mark Lam <mark.lam@apple.com>
PropertyAttribute needs a CustomValue bit.
https://bugs.webkit.org/show_bug.cgi?id=191993
<rdar://problem/46264467>
Reviewed by Saam Barati.
* stress/regress-191993.js: Added.
2018-12-10 Caio Lima <ticaiolima@gmail.com>
[BigInt] Add ValueMul into DFG
https://bugs.webkit.org/show_bug.cgi?id=186175
Reviewed by Yusuke Suzuki.
* stress/big-int-mul-jit-osr.js: Added.
* stress/big-int-mul-jit-untyped.js: Added.
* stress/value-mul-fixup-int32-big-int.js: Added.
2018-12-06 Keith Miller <keith_miller@apple.com>
stress/big-wasm-memory tests failing on 32-bit JSC bot
https://bugs.webkit.org/show_bug.cgi?id=192020
Reviewed by Saam Barati.
Not every platform has WebAssembly, e.g. 32-bit, so we should exit
the wasm stress tests if the WebAssembly object does not exist.
* stress/big-wasm-memory-grow-no-max.js:
(test.foo):
(test):
(foo): Deleted.
(catch): Deleted.
* stress/big-wasm-memory-grow.js:
(test.foo):
(test):
(foo): Deleted.
(catch): Deleted.
* stress/big-wasm-memory.js:
(test.foo):
(test):
(foo): Deleted.
(catch): Deleted.
2018-12-05 Mark Lam <mark.lam@apple.com>
speculationFromCell() should speculate non-Identifier strings as SpecString instead of SpecStringVar.
https://bugs.webkit.org/show_bug.cgi?id=192441
<rdar://problem/46480355>
Reviewed by Saam Barati.
* stress/regress-192441.js: Added.
2018-12-04 Mark Lam <mark.lam@apple.com>
DFG's StrengthReduction phase should not reduce Construct into DirectContruct when the executable does not have constructAbility.
https://bugs.webkit.org/show_bug.cgi?id=192386
<rdar://problem/46445516>
Reviewed by Saam Barati.
* stress/regress-192386.js: Added.
2018-12-04 Caio Lima <ticaiolima@gmail.com>
[ESNext][BigInt] Support logic operations
https://bugs.webkit.org/show_bug.cgi?id=179903
Reviewed by Yusuke Suzuki.
* stress/big-int-branch-usage.js: Added.
* stress/big-int-logical-and.js: Added.
* stress/big-int-logical-not.js: Added.
* stress/big-int-logical-or.js: Added.
2018-12-03 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed, rolling out r238833.
Breaks macOS and iOS debug builds.
Reverted changeset:
"[ESNext][BigInt] Support logic operations"
https://bugs.webkit.org/show_bug.cgi?id=179903
https://trac.webkit.org/changeset/238833
2018-12-03 Caio Lima <ticaiolima@gmail.com>
[ESNext][BigInt] Support logic operations
https://bugs.webkit.org/show_bug.cgi?id=179903
Reviewed by Yusuke Suzuki.
* stress/big-int-branch-usage.js: Added.
* stress/big-int-logical-and.js: Added.
* stress/big-int-logical-not.js: Added.
* stress/big-int-logical-or.js: Added.
2018-12-02 Caio Lima <ticaiolima@gmail.com>
[ESNext][BigInt] Implement support for "<<" and ">>"
https://bugs.webkit.org/show_bug.cgi?id=186233
Reviewed by Yusuke Suzuki.
* stress/big-int-left-shift-general.js: Added.
* stress/big-int-left-shift-range-error.js: Added.
* stress/big-int-left-shift-type-error.js: Added.
* stress/big-int-left-shift-wrapped-value.js: Added.
* stress/big-int-right-shift-general.js: Added.
* stress/big-int-right-shift-type-error.js: Added.
* stress/big-int-right-shift-wrapped-value.js: Added.
* stress/left-shift-to-primitive-precedence.js: Added.
* stress/right-shift-to-primitive-precedence.js: Added.
2018-11-30 Dean Jackson <dino@apple.com>
Add first-class support for .mjs files in jsc binary
https://bugs.webkit.org/show_bug.cgi?id=192190
<rdar://problem/46375715>
Reviewed by Keith Miller.
* stress/simple-module.mjs: Added.
* stress/simple-script.js: Added.
2018-11-30 Caio Lima <ticaiolima@gmail.com>
[BigInt] Implement ValueBitXor into DFG
https://bugs.webkit.org/show_bug.cgi?id=190264
Reviewed by Yusuke Suzuki.
* stress/big-int-bitwise-xor-jit.js: Added.
* stress/big-int-bitwise-xor-memory-stress.js: Added.
* stress/big-int-bitwise-xor-untyped.js: Added.
2018-11-27 Saam barati <sbarati@apple.com>
r238510 broke scopes of size zero
https://bugs.webkit.org/show_bug.cgi?id=192033
<rdar://problem/46281734>
Reviewed by Keith Miller.
* stress/r238510-bad-loop.js: Added.
(foo):
2018-11-27 Mark Lam <mark.lam@apple.com>
[Re-landing] NaNs read from Wasm code needs to be be purified.
https://bugs.webkit.org/show_bug.cgi?id=191056
<rdar://problem/45660341>
Reviewed by Filip Pizlo.
* wasm/regress/regress-191056.js: Added.
2018-11-27 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed, rolling out r238509.
Causes JSC tests to fail on iOS.
Reverted changeset:
"NaNs read from Wasm code needs to be be purified."
https://bugs.webkit.org/show_bug.cgi?id=191056
https://trac.webkit.org/changeset/238509
2018-11-26 Caio Lima <ticaiolima@gmail.com>
Re-introduce op_bitnot
https://bugs.webkit.org/show_bug.cgi?id=190923
Reviewed by Yusuke Suzuki.
* stress/bit-not-must-generate.js: Added.
* stress/bitwise-not-no-int32.js: Added.
2018-11-26 Saam barati <sbarati@apple.com>
InPlaceAbstractState::endBasicBlock rule for SetLocal should filter the value based on the flush format
https://bugs.webkit.org/show_bug.cgi?id=191956
<rdar://problem/45665806>
Reviewed by Yusuke Suzuki.
* stress/end-basic-block-set-local-should-filter-type.js: Added.
(bar):
(foo):
2018-11-26 Saam barati <sbarati@apple.com>
Object allocation sinking phase needs to iterate each scope offset instead of just iterating the symbol table's hashmap when handling an activation
https://bugs.webkit.org/show_bug.cgi?id=191958
<rdar://problem/46221877>
Reviewed by Yusuke Suzuki.
* stress/object-allocation-sinking-phase-needs-to-write-to-each-scope-offset.js: Added.
(x):
(foo):
2018-11-26 Mark Lam <mark.lam@apple.com>
NaNs read from Wasm code needs to be be purified.
https://bugs.webkit.org/show_bug.cgi?id=191056
<rdar://problem/45660341>
Reviewed by Filip Pizlo.
* wasm/regress/regress-191056.js: Added.
2018-11-26 Michael Saboff <msaboff@apple.com>
32-bit JSC test failure: stress/regexp-compile-oom.js
https://bugs.webkit.org/show_bug.cgi?id=191375
Reviewed by Mark Lam.
Disabled the test for 32 bit platforms.
* stress/regexp-compile-oom.js:
2018-11-26 Tadeu Zagallo <tzagallo@apple.com>
ASSERTION FAILED: m_outOfLineJumpTargets.contains(bytecodeOffset)
https://bugs.webkit.org/show_bug.cgi?id=191716
<rdar://problem/45723878>
Reviewed by Saam Barati.
* stress/regress-187373.js: Added.
(async.fn):
2018-11-21 Saam barati <sbarati@apple.com>
DFGSpeculativeJIT should not &= exitOK with mayExit(node)
https://bugs.webkit.org/show_bug.cgi?id=191897
<rdar://problem/45871998>
Reviewed by Mark Lam.
* stress/exitok-is-not-the-same-as-mayExit.js: Added.
(bar):
(foo):
2018-11-21 Saam barati <sbarati@apple.com>
Fix assertion in KnownCellUse inside SpeculativeJIT::speculate
https://bugs.webkit.org/show_bug.cgi?id=191895
<rdar://problem/46167406>
Reviewed by Mark Lam.
* stress/known-cell-use-needs-type-check-assertion.js: Added.
(foo):
(bar):
2018-11-21 Mark Lam <mark.lam@apple.com>
Creating a wasm memory that is bigger than the ArrayBuffer limit but smaller than the spec limit should throw OOME not RangeError.
https://bugs.webkit.org/show_bug.cgi?id=191776
<rdar://problem/46152851>
Reviewed by Saam Barati.
* stress/big-wasm-memory-grow-no-max.js:
* stress/big-wasm-memory-grow.js:
* stress/big-wasm-memory.js:
- updated these to expect an OutOfMemoryError.
* wasm/regress/wasm-memory-requested-more-than-MAX_ARRAY_BUFFER_SIZE-2.js: Added.
(Binary.prototype.emit_u8):
(Binary.prototype.emit_u32v):
(Binary.prototype.emit_header):
(Binary.prototype.emit_section):
(Binary):
(WasmModuleBuilder):
(WasmModuleBuilder.prototype.addMemory):
(WasmModuleBuilder.prototype.toArray):
(WasmModuleBuilder.prototype.toBuffer):
(WasmModuleBuilder.prototype.instantiate):
(catch):
* wasm/regress/wasm-memory-requested-more-than-MAX_ARRAY_BUFFER_SIZE.js: Added.
(catch):
2018-11-21 Caio Lima <ticaiolima@gmail.com>
[BigInt] JSBigInt::createWithLength should throw when length is greater than JSBigInt::maxLength
https://bugs.webkit.org/show_bug.cgi?id=190836
Reviewed by Saam Barati and Yusuke Suzuki.
* stress/big-int-out-of-memory-tests.js: Added.
2018-11-20 Mark Lam <mark.lam@apple.com>
Remove invalid assertion in VMTraps::SignalSender's SignalAction.
https://bugs.webkit.org/show_bug.cgi?id=191856
<rdar://problem/46089992>
Reviewed by Yusuke Suzuki.
* stress/regress-191856.js: Added.
- this test is skipped for now until we have a fix for webkit.org/b/191855.
2018-11-21 Dominik Infuehr <dinfuehr@igalia.com>
Enable JIT on ARM/Linux
https://bugs.webkit.org/show_bug.cgi?id=191548
Reviewed by Yusuke Suzuki.
Disable test on system with limited memory. Program was killed by
the OS before the exception was thrown.
* slowMicrobenchmarks/function-constructor-with-huge-strings.js:
2018-11-20 Saam barati <sbarati@apple.com>
Merging an IC variant may lead to the IC status containing overlapping structure sets
https://bugs.webkit.org/show_bug.cgi?id=191869
<rdar://problem/45403453>
Reviewed by Mark Lam.
* stress/merging-ic-variants-should-bail-if-structures-overlap.js: Added.
2018-11-19 Mark Lam <mark.lam@apple.com>
globalFuncImportModule() should return a promise when it clears exceptions.
https://bugs.webkit.org/show_bug.cgi?id=191792
<rdar://problem/46090763>
Reviewed by Michael Saboff.
* stress/global-import-function-should-return-a-promise-when-clearing-exceptions.js: Added.
2018-11-19 Guillaume Emont <guijemont@igalia.com>
Skip new memory-hungry tests on memory limited devices
Unreviewed gardening.
* stress/big-wasm-memory-grow-no-max.js:
* stress/big-wasm-memory-grow.js:
* stress/big-wasm-memory.js:
2018-11-18 Yusuke Suzuki <yusukesuzuki@slowstart.org>
Unreviewed, rolling in the rest of r237254
https://bugs.webkit.org/show_bug.cgi?id=190340
* ChakraCore/test/Function/FuncBodyES5.baseline-jsc:
* stress/function-cache-with-parameters-end-position.js: Added.
(shouldBe):
(shouldThrow):
(i.anonymous):
* stress/function-constructor-name.js: Added.
(shouldBe):
(GeneratorFunction):
(AsyncFunction.async):
(AsyncGeneratorFunction.async):
(anonymous):
(async.anonymous):
* test262/expectations.yaml:
2018-11-16 Filip Pizlo <fpizlo@apple.com>
All users of ArrayBuffer should agree on the same max size
https://bugs.webkit.org/show_bug.cgi?id=191771
Reviewed by Mark Lam.
* stress/big-wasm-memory-grow-no-max.js: Added.
(foo):
(catch):
* stress/big-wasm-memory-grow.js: Added.
(foo):
(catch):
* stress/big-wasm-memory.js: Added.
(foo):
(catch):
2018-11-16 Filip Pizlo <fpizlo@apple.com>
Unreviewed, make some more tests not crash my computer by only running on instance of it. These tests do not need to
run for each JSC config since they're regression tests for runtime bugs.
* stress/json-stringified-overflow-2.js:
* stress/json-stringified-overflow.js:
2018-11-16 Filip Pizlo <fpizlo@apple.com>
Unreviewed, make some tests not crash my computer by only running on instance of it. These tests do not need to run for each JSC
config since they're regression tests for runtime bugs.
* stress/large-unshift-splice.js:
* stress/regress-185888.js:
2018-11-16 Saam Barati <sbarati@apple.com>
KnownCellUse should also have SpecCellCheck as its type filter
https://bugs.webkit.org/show_bug.cgi?id=191729
<rdar://problem/45872852>
Reviewed by Filip Pizlo.
* stress/known-cell-type-check-should-allow-empty-value-to-flow-through.js: Added.
(C):
2018-11-16 Tadeu Zagallo <tzagallo@apple.com>
Fix assertion failure on BytecodeGenerator::recordOpcode
https://bugs.webkit.org/show_bug.cgi?id=191724
<rdar://problem/45724395>
Reviewed by Saam Barati.
* stress/regress-187373-2.js: Added.
(foo):
2018-11-15 Mark Lam <mark.lam@apple.com>
RegExpObject's collectMatches should not be using JSArray::push to fill in its match results.
https://bugs.webkit.org/show_bug.cgi?id=191730
<rdar://problem/46048517>
Reviewed by Saam Barati.
* stress/regress-187006.js: Removed.
- this test is invalid because its sole purpose is to test for the non-spec
compliant behavior that we just fixed.
* stress/regress-191730.js: Added.
2018-11-15 Mark Lam <mark.lam@apple.com>
RegExp operations should not take fast patch if lastIndex is not numeric.
https://bugs.webkit.org/show_bug.cgi?id=191731
<rdar://problem/46017305>
Reviewed by Saam Barati.
* stress/regress-191731.js: Added.
2018-11-13 Saam Barati <sbarati@apple.com>
TypeProfileLog::processLogEntries should stash away any pending exceptions and re-apply them to the VM
https://bugs.webkit.org/show_bug.cgi?id=191600
Reviewed by Mark Lam.
* stress/type-profiler-log-should-defer-pending-exceptions.js: Added.
(foo):
(test):
(bar):
2018-11-13 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed, rolling out r238132.
The test added with this change is timing out on Debug JSC
bots.
Reverted changeset:
"[BigInt] JSBigInt::createWithLength should throw when length
is greater than JSBigInt::maxLength"
https://bugs.webkit.org/show_bug.cgi?id=190836
https://trac.webkit.org/changeset/238132
2018-11-13 Mark Lam <mark.lam@apple.com>
Add OOM detection to StringPrototype's substituteBackreferences().
https://bugs.webkit.org/show_bug.cgi?id=191563
<rdar://problem/45720428>
Reviewed by Saam Barati.
* stress/regress-191563.js: Added.
2018-11-13 Mark Lam <mark.lam@apple.com>
LLIntSlowPath's llint_loop_osr and llint_replace should set the topCallFrame.
https://bugs.webkit.org/show_bug.cgi?id=191579
<rdar://problem/45942472>
Reviewed by Saam Barati.
* stress/regress-191579.js: Added.
2018-11-13 Caio Lima <ticaiolima@gmail.com>
[BigInt] JSBigInt::createWithLength should throw when length is greater than JSBigInt::maxLength
https://bugs.webkit.org/show_bug.cgi?id=190836
Reviewed by Saam Barati.
* stress/big-int-out-of-memory-tests.js: Added.
2018-11-08 Ross Kirsling <ross.kirsling@sony.com>
U+180E is no longer a whitespace character
https://bugs.webkit.org/show_bug.cgi?id=191415
Reviewed by Saam Barati.
* ChakraCore/test/es5/regexSpace.baseline:
* ChakraCore/test/es6/unicode_whitespace.js:
Update tests to latest version.
(See https://github.com/Microsoft/ChakraCore/commit/7c097b698de1e400286f9b957597b2a81fc6f80b.)
* test262.yaml:
* test262/config.yaml:
* test262/expectations.yaml:
Update expectations.
2018-11-07 Caio Lima <ticaiolima@gmail.com>
[BigInt] Add support to BigInt into ValueAdd
https://bugs.webkit.org/show_bug.cgi?id=186177
Reviewed by Keith Miller.
* stress/big-int-negate-jit.js:
* stress/value-add-big-int-and-string.js: Added.
* stress/value-add-big-int-prediction-propagation.js: Added.
* stress/value-add-big-int-untyped.js: Added.
2018-11-07 Tadeu Zagallo <tzagallo@apple.com>
REGRESSION(r237547): Test failures on 32-bit JSC since the JIT was disabled
https://bugs.webkit.org/show_bug.cgi?id=191184
Reviewed by Saam Barati.
Most tests were failing due to timeouts, since they are too slow to
run on CLoop. The exceptions are:
proxy-get-set-correct-receiver.js: Had to reduce the recursion depth not to overflow on CLoop
dont-crash-on-stack-overflow-when-parsing-builtin.js and
dont-crash-on-stack-overflow-when-parsing-default-constructor.js: had
to change the stack size since CLoop requires it to be page aligned.
* microbenchmarks/array-push-1.js:
* microbenchmarks/array-push-2.js:
* microbenchmarks/elidable-new-object-dag.js:
* microbenchmarks/elidable-new-object-roflcopter.js:
* microbenchmarks/elidable-new-object-tree.js:
* microbenchmarks/getter-richards.js:
* microbenchmarks/sinkable-new-object-dag.js:
* microbenchmarks/string-concat-long-convert.js:
* microbenchmarks/typed-array-get-set-by-val-profiling.js:
* slowMicrobenchmarks/array-push-3.js:
* slowMicrobenchmarks/large-map-iteration-with-additions.js:
* slowMicrobenchmarks/spread-small-array.js:
* slowMicrobenchmarks/undefined-property-access.js:
* stress/activation-sink-default-value-tdz-error.js:
* stress/activation-sink-default-value.js:
* stress/activation-sink-osrexit-default-value-tdz-error.js:
* stress/activation-sink-osrexit-default-value.js:
* stress/activation-sink-osrexit.js:
* stress/activation-sink.js:
* stress/allow-math-ic-b3-code-duplication.js:
* stress/array-push-multiple-int32.js:
* stress/arrowfunction-activation-sink-osrexit-default-value-tdz-error.js:
* stress/arrowfunction-lexical-this-activation-sink-osrexit.js:
* stress/arrowfunction-lexical-this-activation-sink.js:
* stress/dont-crash-on-stack-overflow-when-parsing-builtin.js:
* stress/dont-crash-on-stack-overflow-when-parsing-default-constructor.js:
* stress/elide-new-object-dag-then-exit.js:
* stress/materialize-regexp-cyclic.js:
* stress/new-regex-inline.js:
* stress/op_add.js:
* stress/op_bitand.js:
* stress/op_bitor.js:
* stress/op_bitxor.js:
* stress/op_div-ConstVar.js:
* stress/op_div-VarConst.js:
* stress/op_div-VarVar.js:
* stress/op_lshift-ConstVar.js:
* stress/op_lshift-VarConst.js:
* stress/op_lshift-VarVar.js:
* stress/op_mod-ConstVar.js:
* stress/op_mod-VarConst.js:
* stress/op_mod-VarVar.js:
* stress/op_mul-ConstVar.js:
* stress/op_mul-VarConst.js:
* stress/op_mul-VarVar.js:
* stress/op_rshift-ConstVar.js:
* stress/op_rshift-VarConst.js:
* stress/op_rshift-VarVar.js:
* stress/op_sub-ConstVar.js:
* stress/op_sub-VarConst.js:
* stress/op_sub-VarVar.js:
* stress/op_urshift-ConstVar.js:
* stress/op_urshift-VarConst.js:
* stress/op_urshift-VarVar.js:
* stress/proxy-get-set-correct-receiver.js:
* stress/regress-179562.js:
* stress/rest-parameter-many-arguments.js:
* stress/sampling-profiler-richards.js:
* stress/splay-flash-access-1ms.js:
* stress/tailCallForwardArguments.js:
* stress/typed-array-get-by-val-profiling.js:
* typeProfiler/getter-richards.js:
2018-11-06 Michael Saboff <msaboff@apple.com>
Multiple stress/regexp-compile-oom.js tests are failing on High Sierra Debug and Release JSC testers.
https://bugs.webkit.org/show_bug.cgi?id=191271
Reviewed by Saam Barati.
Added more test cases and made all test cases run with the same deeply recursive stack
instead of finding that same point for each test case.
* stress/regexp-compile-oom.js:
(prototype.runTest):
(recurseAndTest):
(testList.push.new.TestAndExpectedException):
2018-11-05 Michael Saboff <msaboff@apple.com>
Unreviewed build fix for linux.
* stress/regexp-compile-oom.js: Disabled for non-darwin OSes.
2018-11-02 Michael Saboff <msaboff@apple.com>
Rolling in r237753 with unreviewed build fix.
Fixed issues with DECLARE_THROW_SCOPE placement.
2018-11-02 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed, rolling out r237753.
Introduced JSC test failures
Reverted changeset:
"Running out of stack space not properly handled in
RegExp::compile() and its callers"
https://bugs.webkit.org/show_bug.cgi?id=191206
https://trac.webkit.org/changeset/237753
2018-11-02 Michael Saboff <msaboff@apple.com>
Running out of stack space not properly handled in RegExp::compile() and its callers
https://bugs.webkit.org/show_bug.cgi?id=191206
Reviewed by Filip Pizlo.
New regression test.
* stress/regexp-compile-oom.js: Added.
(recurseAndTest):
2018-11-01 Guillaume Emont <guijemont@igalia.com>
Skip tests on arm/mips that time out now we're running on CLoop
Unreviewed gardening.
Since the JIT is temporarily disabled on 32-bit platforms, these tests
time out on the bots and need to be disabled. There's more tests
disabled on arm because the timeout is longer on the mips bot (as the
device is slower to start with), so many of the tests don't time out
there.
* microbenchmarks/getter-richards.js: disable on arm and mips.
* stress/op_add.js: disable on arm.
* stress/op_bitand.js: disable on arm.
* stress/op_bitor.js: disable on arm.
* stress/op_bitxor.js: disable on arm.
* stress/op_lshift-ConstVar.js: disable on arm.
* stress/op_lshift-VarConst.js: disable on arm.
* stress/op_lshift-VarVar.js: disable on arm.
* stress/op_mod-ConstVar.js: disable on arm.
* stress/op_mod-VarConst.js: disable on arm.
* stress/op_mod-VarVar.js: disable on arm.
* stress/op_mul-ConstVar.js: disable on arm.
* stress/op_mul-VarConst.js: disable on arm.
* stress/op_mul-VarVar.js: disable on arm.
* stress/op_rshift-ConstVar.js: disable on arm.
* stress/op_rshift-VarConst.js: disable on arm.
* stress/op_rshift-VarVar.js: disable on arm.
* stress/op_sub-ConstVar.js: disable on arm.
* stress/op_sub-VarConst.js: disable on arm.
* stress/op_sub-VarVar.js: disable on arm.
* stress/op_urshift-ConstVar.js: disable on arm.
* stress/op_urshift-VarConst.js: disable on arm.
* stress/op_urshift-VarVar.js: disable on arm.
* stress/spread-forward-call-varargs-stack-overflow.js: disable on arm.
* stress/value-to-boolean.js: disable on arm and mips.
2018-10-31 Tadeu Zagallo <tzagallo@apple.com>
REGRESSION(r237547): Exception handlers should be aware of wide opcodes
https://bugs.webkit.org/show_bug.cgi?id=191108
<rdar://problem/45690700>
Reviewed by Saam Barati.
* stress/wide-op_catch.js: Added.
(catch):
2018-10-29 Mark Lam <mark.lam@apple.com>
Correctly detect string overflow when using the 'Function' constructor.
https://bugs.webkit.org/show_bug.cgi?id=184883
<rdar://problem/36320331>
Reviewed by Saam Barati.
I've verified that this passes on 32-bit as well.
* slowMicrobenchmarks/function-constructor-with-huge-strings.js: Added.
2018-10-29 Tadeu Zagallo <tzagallo@apple.com>
Add support for GetStack FlushedDouble
https://bugs.webkit.org/show_bug.cgi?id=191012
<rdar://problem/45265141>
Reviewed by Saam Barati.
* stress/get-stack-double.js: Added.
(bar):
(noInline):
2018-10-29 Tadeu Zagallo <tzagallo@apple.com>
New bytecode format for JSC
https://bugs.webkit.org/show_bug.cgi?id=187373
<rdar://problem/44186758>
Reviewed by Filip Pizlo.
Add tests to ensure that the inferred inline capacity for a narrow op_new_object will be capped at 255.
* stress/maximum-inline-capacity.js: Added.
(test1):
(test3.Foo):
(test3):
2018-10-26 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r237479 and r237484.
https://bugs.webkit.org/show_bug.cgi?id=190978
broke JSC on iOS (Requested by tadeuzagallo on #webkit).
Reverted changesets:
"New bytecode format for JSC"
https://bugs.webkit.org/show_bug.cgi?id=187373
https://trac.webkit.org/changeset/237479
"Gardening: Build fix after r237479."
https://bugs.webkit.org/show_bug.cgi?id=187373
https://trac.webkit.org/changeset/237484
2018-10-26 Tadeu Zagallo <tzagallo@apple.com>
New bytecode format for JSC
https://bugs.webkit.org/show_bug.cgi?id=187373
<rdar://problem/44186758>
Reviewed by Filip Pizlo.
Add tests to ensure that the inferred inline capacity for a narrow op_new_object will be capped at 255.
* stress/maximum-inline-capacity.js: Added.
(test1):
(test3.Foo):
(test3):
2018-10-26 Mark Lam <mark.lam@apple.com>
Fix missing edge cases with JSGlobalObjects having a bad time.
https://bugs.webkit.org/show_bug.cgi?id=189028
<rdar://problem/45204939>
Reviewed by Saam Barati.
* stress/regress-189028.js: Added.
2018-10-22 Mark Lam <mark.lam@apple.com>
DFGAbstractValue::m_arrayModes expects IndexingMode values, not IndexingType.
https://bugs.webkit.org/show_bug.cgi?id=190515
<rdar://problem/45222379>
Rubber-stamped by Saam Barati.
Adding another test.
* stress/regress-190515-2.js: Added.
2018-10-22 Mark Lam <mark.lam@apple.com>
DFGAbstractValue::m_arrayModes expects IndexingMode values, not IndexingType.
https://bugs.webkit.org/show_bug.cgi?id=190515
<rdar://problem/45222379>
Reviewed by Saam Barati.
* stress/regress-190515.js: Added.
2018-10-19 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r237254.
https://bugs.webkit.org/show_bug.cgi?id=190760
"It regresses JetStream 2 by 5% on some iOS devices"
(Requested by saamyjoon on #webkit).
Reverted changeset:
"[JSC] JSC should have "parseFunction" to optimize Function
constructor"
https://bugs.webkit.org/show_bug.cgi?id=190340
https://trac.webkit.org/changeset/237254
2018-10-19 Saam Barati <sbarati@apple.com>
vmCall should check if we exit before emitting an OSR exit due to exceptions
https://bugs.webkit.org/show_bug.cgi?id=190740
<rdar://problem/45220139>
Reviewed by Mark Lam.
* stress/dont-emit-osr-exits-for-every-call-ftl.js: Added.
(foo):
2018-10-19 Caio Lima <ticaiolima@gmail.com>
[ESNext][BigInt] Implement support for "^"
https://bugs.webkit.org/show_bug.cgi?id=186235
Reviewed by Yusuke Suzuki.
* stress/big-int-bitwise-xor-general.js: Added.
* stress/big-int-bitwise-xor-to-primitive-precedence.js: Added.
* stress/big-int-bitwise-xor-type-error.js: Added.
* stress/big-int-bitwise-xor-wrapped-value.js: Added.
2018-10-19 Caio Lima <ticaiolima@gmail.com>
[BigInt] Add ValueSub into DFG
https://bugs.webkit.org/show_bug.cgi?id=186176
Reviewed by Yusuke Suzuki.
* stress/big-int-subtraction-jit.js:
* stress/value-sub-big-int-prediction-propagation.js: Added.
* stress/value-sub-big-int-untyped.js: Added.
* stress/value-sub-spec-none-case.js: Added.
2018-10-18 Yusuke Suzuki <yusukesuzuki@slowstart.org>
[JSC] JSC should have "parseFunction" to optimize Function constructor
https://bugs.webkit.org/show_bug.cgi?id=190340
Reviewed by Mark Lam.
This patch fixes the line number of syntax errors raised by the Function constructor,
since we now parse the final code only once. And we no longer use block statement
for Function constructor's parsing.
* ChakraCore/test/Function/FuncBodyES5.baseline-jsc:
* stress/function-cache-with-parameters-end-position.js: Added.
(shouldBe):
(shouldThrow):
(i.anonymous):
* stress/function-constructor-name.js: Added.
(shouldBe):
(GeneratorFunction):
(AsyncFunction.async):
(AsyncGeneratorFunction.async):
(anonymous):
(async.anonymous):
* test262/expectations.yaml:
2018-10-18 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r237242.
https://bugs.webkit.org/show_bug.cgi?id=190701
it breaks "stress/sampling-profiler-basic.js" (Requested by
caiolima on #webkit).
Reverted changeset:
"[BigInt] Add ValueSub into DFG"
https://bugs.webkit.org/show_bug.cgi?id=186176
https://trac.webkit.org/changeset/237242
2018-10-17 Keith Miller <keith_miller@apple.com>
AI does not clear Phantom allocation nodes.
https://bugs.webkit.org/show_bug.cgi?id=190694
Reviewed by Saam Barati.
* stress/ftl-ai-filter-phantoms-should-clear-clear-value.js: Added.
(Day):
(DaysInYear):
(TimeInYear):
(TimeFromYear):
(DayFromYear):
(InLeapYear):
(YearFromTime):
(WeekDay):
(DaylightSavingTA):
(GetSecondSundayInMarch):
(TimeInMonth):
2018-10-17 Caio Lima <ticaiolima@gmail.com>
[BigInt] Add ValueSub into DFG
https://bugs.webkit.org/show_bug.cgi?id=186176
Reviewed by Yusuke Suzuki.
* stress/big-int-subtraction-jit.js:
* stress/value-sub-big-int-prediction-propagation.js: Added.
* stress/value-sub-big-int-untyped.js: Added.
2018-10-16 Dominik Infuehr <dinfuehr@igalia.com>
[JSC] stress/array-prototype-concat-of-long-spliced-arrays2.js times out on arm and mips
https://bugs.webkit.org/show_bug.cgi?id=190611
Reviewed by Saam Barati.
Reduce array length just like in array-prototype-concat-of-long-spliced-arrays.js
to improve test runtime. On ARM/MIPS this test even timed out when running all
tests.
* stress/array-prototype-concat-of-long-spliced-arrays2.js:
(test):
2018-10-15 Guillaume Emont <guijemont@igalia.com>
Skip stress/array-prototype-concat-of-long-spliced-arrays2.js on arm and mips/linux
Unreviewed gardening.
* stress/array-prototype-concat-of-long-spliced-arrays2.js:
2018-10-15 Saam barati <sbarati@apple.com>
Emit fjcvtzs on ARM64E on Darwin
https://bugs.webkit.org/show_bug.cgi?id=184023
Reviewed by Yusuke Suzuki and Filip Pizlo.
* stress/double-to-int32-NaN.js: Added.
(assert):
(foo):
2018-10-15 Saam Barati <sbarati@apple.com>
JSArray::shiftCountWithArrayStorage is wrong when an array has holes
https://bugs.webkit.org/show_bug.cgi?id=190262
<rdar://problem/44986241>
Reviewed by Mark Lam.
* stress/array-prototype-concat-of-long-spliced-arrays.js:
(test):
* stress/slice-array-storage-with-holes.js: Added.
(main):
2018-10-15 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r237054.
https://bugs.webkit.org/show_bug.cgi?id=190593
"this regressed JetStream 2 by 6% on iOS" (Requested by
saamyjoon on #webkit).
Reverted changeset:
"[JSC] JSC should have "parseFunction" to optimize Function
constructor"
https://bugs.webkit.org/show_bug.cgi?id=190340
https://trac.webkit.org/changeset/237054
2018-10-13 Yusuke Suzuki <yusukesuzuki@slowstart.org>
[JSC] JSON.stringify can accept call-with-no-arguments
https://bugs.webkit.org/show_bug.cgi?id=190343
Reviewed by Mark Lam.
* stress/json-stringify-no-arguments.js: Added.
(shouldBe):
2018-10-08 Yusuke Suzuki <yusukesuzuki@slowstart.org>
[JSC] JSC should have "parseFunction" to optimize Function constructor
https://bugs.webkit.org/show_bug.cgi?id=190340
Reviewed by Mark Lam.
This patch fixes the line number of syntax errors raised by the Function constructor,
since we now parse the final code only once. And we no longer use block statement
for Function constructor's parsing.
* ChakraCore/test/Function/FuncBodyES5.baseline-jsc:
* stress/function-cache-with-parameters-end-position.js: Added.
(shouldBe):
(shouldThrow):
(i.anonymous):
* stress/function-constructor-name.js: Added.
(shouldBe):
(GeneratorFunction):
(AsyncFunction.async):
(AsyncGeneratorFunction.async):
(anonymous):
(async.anonymous):
* test262/expectations.yaml:
2018-10-10 Guillaume Emont <guijemont@igalia.com>
Skip JSC test stress/sampling-profiler-richards.js on armv7/linux
https://bugs.webkit.org/show_bug.cgi?id=190426
Unreviewed gardening.
* stress/sampling-profiler-richards.js:
2018-10-06 Caio Lima <ticaiolima@gmail.com>
[ESNext][BigInt] Implement support for "|"
https://bugs.webkit.org/show_bug.cgi?id=186229
Reviewed by Yusuke Suzuki.
* stress/big-int-bitwise-and-jit.js:
* stress/big-int-bitwise-or-general.js: Added.
* stress/big-int-bitwise-or-jit-untyped.js: Added.
* stress/big-int-bitwise-or-jit.js: Added.
* stress/big-int-bitwise-or-memory-stress.js: Added.
* stress/big-int-bitwise-or-to-primitive-precedence.js: Added.
* stress/big-int-bitwise-or-type-error.js: Added.
* stress/big-int-bitwise-or-wrapped-value.js: Added.
2018-10-05 Dominik Infuehr <dominik.infuehr@gmail.com>
Skip test on systems with limited memory
https://bugs.webkit.org/show_bug.cgi?id=190310
Invoking runDefault adds test to runlist, skipping the test in the next
line does not prevent the test from executing. Change order of lines such
that runDefault is only executed if test is not executed.
Reviewed by Mark Lam.
* stress/regress-190187.js:
2018-10-03 Saam barati <sbarati@apple.com>
lowXYZ in FTLLower should always filter the type of the incoming edge
https://bugs.webkit.org/show_bug.cgi?id=189939
<rdar://problem/44407030>
Reviewed by Michael Saboff.
* stress/ftl-should-always-filter-for-low-type-check-functions.js: Added.
(foo):
(test):
2018-10-03 Mark Lam <mark.lam@apple.com>
Make string MaxLength for all WTF and JS strings consistently equal to INT_MAX.
https://bugs.webkit.org/show_bug.cgi?id=190187
<rdar://problem/42512909>
Reviewed by Michael Saboff.
* stress/regress-190187.js: Added.
2018-10-02 Caio Lima <ticaiolima@gmail.com>
[BigInt] BigInt.proptotype.toString is broken when radix is power of 2
https://bugs.webkit.org/show_bug.cgi?id=190033
Reviewed by Yusuke Suzuki.
* stress/big-int-to-string.js:
2018-10-01 Mark Lam <mark.lam@apple.com>
Function.toString() should also copy the source code Functions that are class definitions.
https://bugs.webkit.org/show_bug.cgi?id=190186
<rdar://problem/44733360>
Reviewed by Saam Barati.
* stress/regress-190186.js: Added.
2018-10-01 Dominik Infuehr <dinfuehr@igalia.com>
Split NaN-check into separate test
https://bugs.webkit.org/show_bug.cgi?id=190010
Reviewed by Saam Barati.
DataView exposes NaN-representation, which is not necessarily the same on each
architecture. Therefore move the check of the NaN-representation into its own
file such that we can disable this test on MIPS where NaN-representation can be
different on older CPUs.
* stress/dataview-jit-set-nan.js: Added.
(assert):
(test.storeLittleEndian):
(test.storeBigEndian):
(test.store):
(test):
* stress/dataview-jit-set.js:
(test5):
2018-10-01 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r236647.
https://bugs.webkit.org/show_bug.cgi?id=190124
Breaking test stress/big-int-to-string.js (Requested by
caiolima_ on #webkit).
Reverted changeset:
"[BigInt] BigInt.proptotype.toString is broken when radix is
power of 2"
https://bugs.webkit.org/show_bug.cgi?id=190033
https://trac.webkit.org/changeset/236647
2018-09-30 Caio Lima <ticaiolima@gmail.com>
[BigInt] BigInt.proptotype.toString is broken when radix is power of 2
https://bugs.webkit.org/show_bug.cgi?id=190033
Reviewed by Yusuke Suzuki.
* stress/big-int-to-string.js:
2018-09-28 Caio Lima <ticaiolima@gmail.com>
[ESNext][BigInt] Implement support for "&"
https://bugs.webkit.org/show_bug.cgi?id=186228
Reviewed by Yusuke Suzuki.
* stress/big-int-bitwise-and-general.js: Added.
(assert):
(assert.sameValue):
* stress/big-int-bitwise-and-jit.js: Added.
(let.assert.sameValue):
(bigIntBitAnd):
* stress/big-int-bitwise-and-memory-stress.js: Added.
(assert):
* stress/big-int-bitwise-and-to-primitive-precedence.js: Added.
(assert.sameValue):
(let.o.Symbol.toPrimitive):
(catch):
* stress/big-int-bitwise-and-type-error.js: Added.
(assert):
(assertThrowTypeError):
(let.o.valueOf):
(o.valueOf):
(o.toString):
(o.Symbol.toPrimitive):
* stress/big-int-bitwise-and-wrapped-value.js: Added.
(assert.sameValue):
(testBitAnd):
(let.o.Symbol.toPrimitive):
(o.valueOf):
(o.toString):
2018-09-28 Ross Kirsling <ross.kirsling@sony.com>
JSC test stress/jsc-read.js doesn't support CRLF
https://bugs.webkit.org/show_bug.cgi?id=190063
Reviewed by Yusuke Suzuki.
In order to run this test via Windows command prompt, we can't assume that the final newline will be LF.
* stress/jsc-read.js:
(test):
2018-09-27 Saam barati <sbarati@apple.com>
Verify the contents of AssemblerBuffer on arm64e
https://bugs.webkit.org/show_bug.cgi?id=190057
<rdar://problem/38916630>
Reviewed by Mark Lam.
* stress/regress-189132.js:
2018-09-27 Dominik Infuehr <dinfuehr@igalia.com>
Disable test without LLInt on ARMv7
https://bugs.webkit.org/show_bug.cgi?id=190037
Reviewed by Mark Lam.
Test runs out of executable memory on ARMv7, do not run
this test without LLInt enabled.
* stress/regress-169445.js:
2018-09-26 Keith Miller <keith_miller@apple.com>
We should zero unused property storage when rebalancing array storage.
https://bugs.webkit.org/show_bug.cgi?id=188151
Reviewed by Michael Saboff.
* stress/splice-should-zero-property-storage-when-rebalancing.js: Added.
2018-09-20 Yusuke Suzuki <yusukesuzuki@slowstart.org>
[JSC] Optimize Array#lastIndexOf
https://bugs.webkit.org/show_bug.cgi?id=189780
Reviewed by Saam Barati.
* stress/array-lastindexof-array-prototype-trap.js: Added.
(shouldBe):
(AncestorArray.prototype.get 2):
(AncestorArray):
* stress/array-lastindexof-have-a-bad-time-c-runtime.js: Added.
(shouldBe):
* stress/array-lastindexof-hole-nan.js: Added.
(shouldBe):
(throw.new.Error):
* stress/array-lastindexof-infinity.js: Added.
(shouldBe):
(throw.new.Error):
* stress/array-lastindexof-negative-zero.js: Added.
(shouldBe):
(throw.new.Error):
* stress/array-lastindexof-own-getter.js: Added.
(shouldBe):
(throw.new.Error.get array):
(get array):
* stress/array-lastindexof-prototype-trap.js: Added.
(shouldBe):
(DerivedArray.prototype.get 2):
(DerivedArray):
2018-09-25 Saam Barati <sbarati@apple.com>
Calls to baselineCodeBlockForOriginAndBaselineCodeBlock in operationMaterializeObjectInOSR should actually pass in the baseline CodeBlock
https://bugs.webkit.org/show_bug.cgi?id=189940
<rdar://problem/43640987>
Reviewed by Mark Lam.
* stress/use-baseline-codeblock-materialize-osr-exit.js: Added.
2018-09-24 Saam Barati <sbarati@apple.com>
Array.prototype.indexOf fast path needs to ensure the length is still valid after performing effects
https://bugs.webkit.org/show_bug.cgi?id=189922
<rdar://problem/44651275>
Reviewed by Mark Lam.
* stress/array-indexof-fast-path-effects.js: Added.
* stress/array-indexof-cached-length.js: Added.
2018-09-24 Saam barati <sbarati@apple.com>
ArgumentsEliminationPhase should snip basic blocks after proven OSR exits
https://bugs.webkit.org/show_bug.cgi?id=189682
<rdar://problem/43557315>
Reviewed by Mark Lam.
* stress/arguments-elimination-will-generate-edge-without-result.js: Added.
(foo):
2018-09-22 Saam barati <sbarati@apple.com>
The sampling should not use Strong<CodeBlock> in its machineLocation field
https://bugs.webkit.org/show_bug.cgi?id=189319
Reviewed by Filip Pizlo.
* stress/sampling-profiler-richards.js: Added.
2018-09-19 Yusuke Suzuki <yusukesuzuki@slowstart.org>
[JSC] Optimize Array#indexOf in C++ runtime
https://bugs.webkit.org/show_bug.cgi?id=189507
Reviewed by Saam Barati.
* stress/array-indexof-array-prototype-trap.js: Added.
(shouldBe):
(AncestorArray.prototype.get 2):
(AncestorArray):
* stress/array-indexof-have-a-bad-time-c-runtime.js: Added.
(shouldBe):
* stress/array-indexof-hole-nan.js: Added.
(shouldBe):
(throw.new.Error):
* stress/array-indexof-infinity.js: Added.
(shouldBe):
(throw.new.Error):
* stress/array-indexof-negative-zero.js: Added.
(shouldBe):
(throw.new.Error):
* stress/array-indexof-own-getter.js: Added.
(shouldBe):
(throw.new.Error.get array):
(get array):
* stress/array-indexof-prototype-trap.js: Added.
(shouldBe):
(DerivedArray.prototype.get 2):
(DerivedArray):
2018-09-19 Saam barati <sbarati@apple.com>
AI rule for MultiPutByOffset executes its effects in the wrong order
https://bugs.webkit.org/show_bug.cgi?id=189757
<rdar://problem/43535257>
Reviewed by Michael Saboff.
* stress/multi-put-by-offset-must-filter-value-before-filtering-base.js: Added.
(foo):
(Foo):
(g):
2018-09-17 Mark Lam <mark.lam@apple.com>
Ensure that ForInContexts are invalidated if their loop local is over-written.
https://bugs.webkit.org/show_bug.cgi?id=189571
<rdar://problem/44402277>
Reviewed by Saam Barati.
* stress/regress-189571.js: Added.
2018-09-17 Saam barati <sbarati@apple.com>
We must convert ProfileType to CheckStructureOrEmpty instead of CheckStructure
https://bugs.webkit.org/show_bug.cgi?id=189676
<rdar://problem/39682897>
Reviewed by Michael Saboff.
* typeProfiler/check-structure-or-empty-in-fixup.js: Added.
(A):
(K):
(i.catch):
2018-09-14 Saam barati <sbarati@apple.com>
Don't dump OSRAvailabilityData in Graph::dump because a stale Availability may point to a Node that is already freed
https://bugs.webkit.org/show_bug.cgi?id=189628
<rdar://problem/39481690>
Reviewed by Mark Lam.
* stress/verbose-failure-dont-graph-dump-availability-already-freed.js: Added.
(foo):
2018-09-11 Mark Lam <mark.lam@apple.com>
Test for array initialization in arrayProtoFuncSplice.
https://bugs.webkit.org/show_bug.cgi?id=170253
<rdar://problem/31328773>
Rubber-stamped by Saam Barati.
* stress/regress-170253.js: Added.
2018-09-11 Mark Lam <mark.lam@apple.com>
Test for IntlObject initialization.
https://bugs.webkit.org/show_bug.cgi?id=170251
<rdar://problem/31328419>
Rubber-stamped by Saam Barati.
* stress/regress-170251.js: Added.
2018-09-11 Mark Lam <mark.lam@apple.com>
Test for array memcpy'ing when JSGlobalObject::haveABadTime.
https://bugs.webkit.org/show_bug.cgi?id=169889
<rdar://problem/31155607>
Reviewed by Saam Barati.
* stress/regress-169889-array-concat.js: Added.
* stress/regress-169889-array-concat1.js: Added.
* stress/regress-169889-array-slice.js: Added.
2018-09-11 Mark Lam <mark.lam@apple.com>
Test for incorrect check in emitPutDerivedConstructorToArrowFunctionContextScope.
https://bugs.webkit.org/show_bug.cgi?id=169445
<rdar://problem/30957435>
Reviewed by Saam Barati.
* stress/regress-169445.js: Added.
(let.gun.eval.A):
(let.gun.eval.B.C):
(let.gun.eval.B.C.prototype.trigger):
(let.gun.eval.B.C.prototype.triggerWithRestParameters):
(let.gun.eval.B):
(let.gun.eval):
== Rolled over to ChangeLog-2018-09-11 ==