2018-09-10 Michael Saboff Test262 failure with Named Capture Groups - using a reference before the group is defined https://bugs.webkit.org/show_bug.cgi?id=189407 Reviewed by Alex Christensen. Re-enabled previously failing test. * test262.yaml: * test262/expectations.yaml: 2018-09-08 Yusuke Suzuki [JSC] Remove loadModule function in jsc.cpp https://bugs.webkit.org/show_bug.cgi?id=184808 Reviewed by Darin Adler. Use `import` expression instead. * modules/different-view.js: (from.string_appeared_here.shouldThrow): Deleted. * modules/fallback-ambiguous.js: (from.string_appeared_here.shouldThrow): Deleted. * modules/import-error.js: (from.string_appeared_here.shouldThrow): Deleted. (shouldThrow): Deleted. * modules/indirect-export-error.js: (from.string_appeared_here.shouldThrow): Deleted. (shouldThrow): Deleted. * modules/namespace-error.js: (from.string_appeared_here.shouldThrow): Deleted. 2018-09-07 Mark Lam Ensure that handleIntrinsicCall() is only applied on op_call shaped instructions. https://bugs.webkit.org/show_bug.cgi?id=189317 Reviewed by Filip Pizlo. * stress/regress-189317.js: Added. (testGetter): (testSetter): 2018-09-06 Yusuke Suzuki [DFG] DFG should handle String#toString https://bugs.webkit.org/show_bug.cgi?id=189151 Reviewed by Saam Barati. The error message in String#toString and String#valueOf is poor, which will be handled in a separate bug[1]. [1]: https://bugs.webkit.org/show_bug.cgi?id=189357 * microbenchmarks/string-object-to-string.js: Added. (test): * microbenchmarks/string-object-value-of.js: Added. (test): * stress/string-to-string-error.js: Added. (shouldThrow): (test): * stress/string-to-string.js: Added. (shouldBe): (test1): (test2): (test3): * stress/string-value-of-error.js: Added. (shouldThrow): (test): * stress/string-value-of.js: Added. (shouldBe): (test1): (test2): (test3): 2018-09-06 Michael Saboff Improper speculation type for Math.pow(NaN, 0) in Abstract Interpreter https://bugs.webkit.org/show_bug.cgi?id=189380 Reviewed by Saam Barati. New test. * stress/math-pow-nan-to-zero-spec-type.js: Added. (func): (test): 2018-09-06 Mark Lam Gardening: Move regress-189185.js under JSTests/wasm. https://bugs.webkit.org/show_bug.cgi?id=189347 Unreviewed. * stress/regress-189185.js: Removed. * wasm/regress/regress-189185.js: Copied from JSTests/stress/regress-189185.js. 2018-09-05 Mark Lam JSPropertyNameEnumerator::visitChildren() needs to visit its m_cachedStructureID. https://bugs.webkit.org/show_bug.cgi?id=189124 Reviewed by Filip Pizlo. * stress/regress-189124.js: Added. 2018-09-05 Ross Kirsling [ESNext] Symbol.prototype.description https://bugs.webkit.org/show_bug.cgi?id=186686 Reviewed by Keith Miller. * stress/symbol-description.js: Add tests for empty and null symbol cases. * test262/config.yaml: Enable Symbol.prototype.description tests. 2018-09-05 David Fenton [32-bit JSC tests] Exception: ReferenceError: Can't find variable: WebAssembly. https://bugs.webkit.org/show_bug.cgi?id=189312. Unreviewed test gardening. * stress/regress-189185.js: 2018-09-05 Mark Lam isAsyncGeneratorMethodParseMode() should check for SourceParseMode::AsyncGeneratorWrapperMethodMode. https://bugs.webkit.org/show_bug.cgi?id=189292 Reviewed by Saam Barati. * stress/regress-189292.js: Added. 2018-09-04 David Fenton Skip Test on 32-bit platforms. https://bugs.webkit.org/show_bug.cgi?id=189185. Unreviewed test gardening. * stress/regress-189185.js: 2018-09-03 Mark Lam The watchdog sometimes fails to terminate a script. https://bugs.webkit.org/show_bug.cgi?id=189227 Reviewed by Saam Barati. * stress/regress-189227-watchdog-on-infinite-loop.js: Added. 2018-09-02 Yusuke Suzuki Implement Object.fromEntries https://bugs.webkit.org/show_bug.cgi?id=188481 Reviewed by Darin Adler. * stress/object-from-entries.js: Added. (shouldBe): (shouldThrow): (shouldBe.JSON.stringify.Object.getOwnPropertyDescriptor): (shouldBe.set get shouldThrow): 2018-08-24 Yusuke Suzuki Function object should convert params to string before throw a parsing error https://bugs.webkit.org/show_bug.cgi?id=188874 Reviewed by Darin Adler. * stress/function-body-to-string-before-parameter-syntax-check.js: Added. (shouldThrow): 2018-08-31 Mark Lam Fix exception check accounting in constructJSWebAssemblyCompileError(). https://bugs.webkit.org/show_bug.cgi?id=189185 Reviewed by Michael Saboff. * stress/regress-189185.js: Added. (new.WebAssembly.CompileError.valueOf): 2018-08-31 Mark Lam Fix exception check accounting in JSDataView::defineOwnProperty(). https://bugs.webkit.org/show_bug.cgi?id=189186 Reviewed by Michael Saboff. * stress/regress-189186.js: Added. 2018-08-31 Mark Lam Add missing exception check in arrayProtoFuncLastIndexOf(). https://bugs.webkit.org/show_bug.cgi?id=189184 Reviewed by Yusuke Suzuki. * stress/regress-189184.js: Added. 2018-08-31 Saam barati convertToRegExpMatchFastGlobal must use KnownString as the child use kind https://bugs.webkit.org/show_bug.cgi?id=189173 Reviewed by Michael Saboff. * stress/may-exit-should-be-false-regexp-constant-folding.js: Added. (foo): (bar): 2018-08-30 Saam barati CSE DataViewGet* DFG nodes https://bugs.webkit.org/show_bug.cgi?id=188768 Reviewed by Yusuke Suzuki. * microbenchmarks/dataview-cse.js: Added. (assert): (test): * stress/dataview-get-cse.js: Added. (assert): (test1.foo): (test1): (test2.foo): (test2): (test3.foo): (test3): (test4.foo): (test4): (test5.foo): (test5): (test6.foo): (test6): 2018-08-30 Yusuke Suzuki output of toString() of Generator is wrong https://bugs.webkit.org/show_bug.cgi?id=188952 Reviewed by Saam Barati. * stress/function-to-string.js: Added. (shouldBe): (shouldBe.test): (test): (shouldBe.async.test): (async.test): (shouldBe.async): (async): * test262/expectations.yaml: 2018-08-29 Mark Lam Add some missing exception checks in JSRopeString::resolveRopeToAtomicString(). https://bugs.webkit.org/show_bug.cgi?id=189132 Reviewed by Saam Barati. * stress/regress-189132.js: Added. 2018-08-27 Yusuke Suzuki [WebAssembly] Parse wasm modules in a streaming fashion https://bugs.webkit.org/show_bug.cgi?id=188943 Reviewed by Mark Lam. Wasm parsing error should not report the total byte size since streaming parsing does not want to load all the bytes. Add a simple test wasm/stress/streaming-basic.js for initial streaming parsing implementation. * wasm/function-tests/invalid-duplicate-export.js: * wasm/function-tests/memory-alignment.js: (const.op.of.WASM.opcodes): * wasm/function-tests/memory-section-and-import.js: * wasm/function-tests/void-argument-type-should-be-a-validation-error.js: * wasm/js-api/Module-compile.js: (async.testPromiseAPI): * wasm/js-api/element.js: (assert.throws.new.WebAssembly.Module.builder.WebAssembly): (assert.throws): * wasm/js-api/global-error.js: (assert.throws.new.WebAssembly.Module.bin): (assert.throws): * wasm/js-api/table.js: (new.WebAssembly.Module): (assert.throws): (assertBadTableImport): * wasm/js-api/test_Data.js: (DataSectionWithoutMemory): * wasm/js-api/test_Start.js: (InvalidStartFunctionIndex): * wasm/js-api/test_basic_api.js: (const.c.in.constructorProperties.switch): * wasm/js-api/version.js: * wasm/stress/nameSection.wasm: Added. * wasm/stress/streaming-basic.js: Added. (check): 2018-08-27 Mark Lam Fix exception throwing code so that topCallFrame and topEntryFrame stay true to their names. https://bugs.webkit.org/show_bug.cgi?id=188577 Reviewed by Saam Barati. * stress/regress-188577.js: Added. 2018-08-24 Yusuke Suzuki [JSC] Array.prototype.reverse modifies JSImmutableButterfly https://bugs.webkit.org/show_bug.cgi?id=188794 Reviewed by Saam Barati. * stress/reverse-with-immutable-butterfly.js: Added. (shouldBe): (reverseInt): (reverseDouble): (reverseContiguous): 2018-08-22 Saam barati Make data-view-access.js run less time to prevent timeouts on 32-bit * microbenchmarks/data-view-accesses.js: 2018-08-22 Mark Lam The DFG CFGSimplification phase shouldn’t jettison a block when it’s the target of both branch directions. https://bugs.webkit.org/show_bug.cgi?id=188298 Reviewed by Saam Barati. * stress/bug-188298.js: Added. 2018-08-20 Saam barati Inline DataView accesses into DFG/FTL https://bugs.webkit.org/show_bug.cgi?id=188573 Reviewed by Michael Saboff. * microbenchmarks/data-view-accesses-2.js: Added. (assert): (let.p.of.Object.keys.let.str): (let.p.of.Object.keys): (test): * microbenchmarks/data-view-accesses.js: Added. (assert): (let.p.of.Object.keys.let.str): (let.p.of.Object.keys): * stress/dataview-jit-bounds-checks.js: Added. (assert): (let.p.of.Object.keys.let.str): (let.p.of.Object.keys): * stress/dataview-jit-get.js: Added. (assert): (test1.bigEndian): (test1.littleEndian): (test1.biEndian): (test1): (test2.bigEndian): (test2.littleEndian): (test2.biEndian): (test2): (test3.bigEndian): (test3.littleEndian): (test3.biEndian): (test3): (test4.bigEndian): (test4.littleEndian): (test4.biEndian): (test4): (test5.bigEndian): (test5.littleEndian): (test5.biEndian): (test5): (test6.bigEndian): (test6.littleEndian): (test6.biEndian): (test6): (test7.load): (test7): (test8.load): (test8): * stress/dataview-jit-neuter.js: Added. (assert): (test.load): (test): (test2.load): (test2): * stress/dataview-jit-set.js: Added. (assert): (isLittleEndian): (readByte): (readHex): (test.storeLittleEndian): (test.storeBigEndian): (test.store): (test): (test2.storeLittleEndian): (test2.storeBigEndian): (test2.store): (test2): (test3.storeLittleEndian): (test3.storeBigEndian): (test3.store): (test3): (test4.storeLittleEndian): (test4.storeBigEndian): (test4.store): (test4): (test5.storeLittleEndian): (test5.storeBigEndian): (test5.store): (test5): (test6.storeLittleEndian): (test6.storeBigEndian): (test6.store): (test6): (test7.store): (test7): (test8.store): (test8): * stress/dataview-jit-unaligned-accesses.js: Added. (assert): (let.p.of.Object.keys.let.str): (let.p.of.Object.keys): 2018-08-20 Yusuke Suzuki [YARR] Extend size of fixed characters bulk matching in 64bit platform https://bugs.webkit.org/show_bug.cgi?id=181989 Reviewed by Michael Saboff. * stress/characters-regexp-ignore-case.js: Added. (shouldBe): (testH): (testHe): (testHel): (testHell): (testHello): (testHelloW): (testHelloWo): (testHelloWor): (testHelloWorl): (testHelloWorld): * stress/characters-regexp.js: Added. (shouldBe): (testH): (testHe): (testHel): (testHell): (testHello): (testHelloW): (testHelloWo): (testHelloWor): (testHelloWorl): (testHelloWorld): 2018-08-17 Saam barati intersectionOfPastValuesAtHead must filter values after they've observed an invalidation point https://bugs.webkit.org/show_bug.cgi?id=188707 Reviewed by Mark Lam. * stress/cfa-expected-values-must-set-clobbered-to-false.js: Added. (foo): (let.comp.valueOf): (result): 2018-08-10 Keith Miller Slicing an ArrayBuffer with a long number returns an ArrayBuffer with byteLength zero https://bugs.webkit.org/show_bug.cgi?id=185127 Reviewed by Saam Barati. Rebaseline the expectations. * test262/expectations.yaml: 2018-08-10 Yusuke Suzuki Date.UTC should not return NaN with only Year param https://bugs.webkit.org/show_bug.cgi?id=188378 Reviewed by Keith Miller. * ChakraCore.yaml: * ChakraCore/test/Date/dateutc.baseline-jsc: Added. * stress/date-utc-optional.js: Added. (shouldBe): * test262/expectations.yaml: 2018-08-08 Keith Miller Array.prototype.sort should call @toLength instead of ">>> 0" https://bugs.webkit.org/show_bug.cgi?id=188430 Reviewed by Saam Barati. * test262/expectations.yaml: 2018-08-08 Keith Miller Array.prototype.sort should throw TypeError if param is a not callable object https://bugs.webkit.org/show_bug.cgi?id=188382 Reviewed by Saam Barati. * test262/expectations.yaml: 2018-08-01 Andy VanWagoner [INTL] Implement hourCycle in DateTimeFormat https://bugs.webkit.org/show_bug.cgi?id=188006 Reviewed by Darin Adler. Removed fixed hourCycle expectations. * test262/expectations.yaml: 2018-07-25 Yusuke Suzuki [JSC] Record CoW status in ArrayProfile correctly https://bugs.webkit.org/show_bug.cgi?id=187949 Reviewed by Saam Barati. * stress/array-profile-should-record-copy-on-write.js: Added. (shouldBe): (test1): (test2): (test3): 2018-07-26 Mark Lam arrayProtoPrivateFuncConcatMemcpy() should handle copying from an Undecided type array. https://bugs.webkit.org/show_bug.cgi?id=188065 Reviewed by Saam Barati. * stress/regress-188065.js: Added. 2018-07-25 Andy VanWagoner [INTL] Call Typed Array elements toLocaleString with locale and options https://bugs.webkit.org/show_bug.cgi?id=185796 Reviewed by Keith Miller. Remove now passing TypedArray toLocaleString expectation. * test262/expectations.yaml: 2018-07-25 Andy VanWagoner [INTL] Intl constructor lengths should be configurable https://bugs.webkit.org/show_bug.cgi?id=187960 Reviewed by Saam Barati. Removed fixed length expectations, and updated Intl.Locale expectations that error differently since r234127. * test262/expectations.yaml: 2018-07-24 Commit Queue Unreviewed, rolling out r234183. https://bugs.webkit.org/show_bug.cgi?id=187983 cause regression in Kraken gaussian blur and desaturate (Requested by yusukesuzuki on #webkit). Reverted changeset: "[JSC] Record CoW status in ArrayProfile" https://bugs.webkit.org/show_bug.cgi?id=187949 https://trac.webkit.org/changeset/234183 2018-07-24 Yusuke Suzuki [JSC] Record CoW status in ArrayProfile https://bugs.webkit.org/show_bug.cgi?id=187949 Reviewed by Saam Barati. * stress/array-profile-should-record-copy-on-write.js: Added. (shouldBe): (test1): (test2): (test3): 2018-07-23 Saam Barati need to didFoldClobberWorld when we constant fold GetByVal https://bugs.webkit.org/show_bug.cgi?id=187917 Reviewed by Yusuke Suzuki. * stress/get-by-val-fold-did-clobber-world.js: Added. (__f_443): 2018-07-23 Andy VanWagoner [INTL] Language tags are not canonicalized https://bugs.webkit.org/show_bug.cgi?id=185836 Reviewed by Keith Miller. Remove expected failures that have been fixed. * test262/expectations.yaml: 2018-07-22 Yusuke Suzuki [JSC] GetByIdVariant and InByIdVariant do not need slot base if they are not "hit" variants https://bugs.webkit.org/show_bug.cgi?id=187891 Reviewed by Saam Barati. * stress/in-miss-variant-merge.js: Added. (shouldBe): (test): * stress/miss-variant-merge.js: Added. (shouldBe): (test): 2018-07-22 Yusuke Suzuki [DFG] Fold GetByVal if the indexed value is non configurable and non writable https://bugs.webkit.org/show_bug.cgi?id=186462 Reviewed by Saam Barati. * stress/folding-get-by-val-with-read-only-dont-delete-object.js: Added. (shouldBe): (test1): (test2): (test3): (test4): (test5): * stress/folding-get-by-val-with-read-only-dont-delete-runtime-array.js: Added. (shouldBe): (test1): (test2): (test5): * stress/folding-get-by-val-with-read-only-dont-delete.js: Added. (shouldBe): (test1): (test2): (test3): (test4): (test5): 2018-06-02 Filip Pizlo We should support CreateThis in the FTL https://bugs.webkit.org/show_bug.cgi?id=164904 Reviewed by Yusuke Suzuki. * microbenchmarks/polyvariant-get-by-id-shorter-tower.js: Added. (polyvariant): (Foo.prototype.func): (Foo): (foo): (Bar.prototype.func): (Bar): (bar): * microbenchmarks/polyvariant-get-by-id-tower.js: Added. (polyvariant): (Foo.prototype.func): (Foo): (foo): (Bar.prototype.func): (Bar): (bar): (Baz.prototype.func): (Baz): (baz): 2018-07-20 Michael Saboff DFG AbstractInterpreter: CheckArray filters array modes for DirectArguments/ScopedArguments using only NonArray https://bugs.webkit.org/show_bug.cgi?id=187827 rdar://problem/42146858 Reviewed by Saam Barati. New regression tests. * stress/direct-arguments-check-array.js: Added. (setup.f2): (setup): (forOfArray): (forOfArgs): (callEveryOnArgs): * stress/scoped-arguments-check-array.js: Added. (setup.foo): (setup.f2): (setup): (forOfArray): (forOfArgs): (callEveryOnArgs): 2018-07-20 Yusuke Suzuki [DFG] Fold GetByVal if Array is CoW https://bugs.webkit.org/show_bug.cgi?id=186459 Reviewed by Saam Barati. * stress/folding-get-by-val-with-immutable-butterfly-out-of-bounds-foldable.js: Added. (shouldBe): (test0): (test1): (test2): (test3): (test4): (test5): * stress/folding-get-by-val-with-immutable-butterfly-out-of-bounds.js: Added. (shouldBe): (test0): (test1): (test2): (test3): (test4): (test5): * stress/folding-get-by-val-with-immutable-butterfly-with-types.js: Added. (shouldBe): (test0): (test1): (test2): (test3): (test4): (test5): * stress/folding-get-by-val-with-immutable-butterfly.js: Added. (shouldBe): (checking): (test): 2018-07-20 Saam Barati CompareEq should be using KnownOtherUse instead of OtherUse https://bugs.webkit.org/show_bug.cgi?id=186814 Reviewed by Filip Pizlo. * stress/compare-eq-should-use-known-other-use.js: Added. (bar): (i.func): 2018-07-20 David Fenton stress/spread-forward-varargs-stack-overflow.js is timing out in 32 bit JSC tests. https://bugs.webkit.org/show_bug.cgi?id=187698 Unreviewed test gardening, skipped test in 32 Bit JSC. * stress/spread-forward-varargs-stack-overflow.js: 2018-07-18 Yusuke Suzuki JSON.stringify should emit non own properties if second array argument includes https://bugs.webkit.org/show_bug.cgi?id=187724 Reviewed by Mark Lam. * stress/json-stringify-getter-call.js: Added. (shouldBe): (A.prototype.get cocoa): (A.prototype.get cappuccino): (A): (shouldBe.JSON.stringify): 2018-07-18 Yusuke Suzuki [JSC] JSON.stringify's replacer should use `isArray` instead of JSArray checks https://bugs.webkit.org/show_bug.cgi?id=187755 Reviewed by Mark Lam. * stress/json-stringify-gap-calculation-should-be-after-replacer-check.js: Added. (shouldThrow): (shouldThrow.string.toString): * test262/expectations.yaml: 2018-07-12 Yusuke Suzuki [JSC] Generator and AsyncGeneratorMethod's prototype is incorrect https://bugs.webkit.org/show_bug.cgi?id=187585 Reviewed by Darin Adler. * stress/default-proto-for-async-generator.js: Added. (shouldBe): (async.asyncGenerator): * stress/default-proto-for-generator.js: Added. (shouldBe): (generator): * stress/prototype-for-async-generator.js: Added. (shouldBe): (async.asyncGenerator): (A.prototype.async.asyncGenerator): (A): * test262/expectations.yaml: 2018-07-11 Ryan Haddad Skip JSC test stress/keep-checks-when-converting-to-lazy-js-constant-in-strength-reduction.js https://bugs.webkit.org/show_bug.cgi?id=187559 Unreviewed test gardening. * stress/keep-checks-when-converting-to-lazy-js-constant-in-strength-reduction.js: 2018-07-11 Yusuke Suzuki Iterator of Array.keys() returns object in wrong order https://bugs.webkit.org/show_bug.cgi?id=185197 Reviewed by Keith Miller. We align the shape of our iterator result to the spec: {value,done} instead of {done,value}. * stress/iterator-field-order.js: Added. (shouldBe): (shouldBe.JSON.stringify.array.values.next): (shouldBe.JSON.stringify.array.keys.next): (shouldBe.JSON.stringify.array.entries.next): (async.asyncIterator): (iterator.next.then): (generator): (shouldBe.JSON.stringify.generator.next): (shouldBe.JSON.stringify.map.keys.next): (shouldBe.JSON.stringify.map.values.next): (shouldBe.JSON.stringify.map.entries.next): (set new): 2018-07-11 Yusuke Suzuki Unreviewed, clean up test262 expectations * test262/expectations.yaml: 2018-07-10 Mark Lam constructArray() should always allocate the requested length. https://bugs.webkit.org/show_bug.cgi?id=187543 Reviewed by Saam Barati. * stress/regress-187543-2.js: Added. * stress/regress-187543-3.js: Added. * stress/regress-187543.js: Added. 2018-07-10 Keith Miller hasOwnProperty returns true for out of bounds property index on TypedArray https://bugs.webkit.org/show_bug.cgi?id=187520 Reviewed by Saam Barati. getOwnPropertySlot returns true on out of bounds indicies for TypedArrays, which is incorrect. * stress/typedarray-hasOwnProperty-out-of-bounds.js: Added. (test): 2018-07-10 Michael Saboff DFG JIT: compileMathIC produces incorrect machine code https://bugs.webkit.org/show_bug.cgi?id=187537 Reviewed by Saam Barati. Added new test case. * stress/arith-mul-with-constants.js: (testArithMulWithTypeConfusedConstant.testMult): (testArithMulWithTypeConfusedConstant): 2018-07-10 Michael Saboff YARR: . doesn't match non-BMP Unicode characters in some cases https://bugs.webkit.org/show_bug.cgi?id=187248 Reviewed by Geoffrey Garen. New regression test. * stress/regexp-with-nonBMP-any.js: Added. 2018-07-09 Michael Saboff REGRESSION (ICU-62100.0.1): JSC test mozilla-tests.yaml/ecma/String/15.5.4.12-3.js is failing https://bugs.webkit.org/show_bug.cgi?id=187495 Reviewed by Saam Barati. Commented out the Georgian section of this toUpper() test since Unicode 11 added new upper case characters for most of this range. * mozilla/ecma/String/15.5.4.12-3.js: (getTestCases): (DecimalToHexString): 2018-07-02 Sukolsak Sakshuwong RegExp.exec returns wrong value with a long integer quantifier https://bugs.webkit.org/show_bug.cgi?id=187042 Reviewed by Saam Barati. * stress/regexp-large-quantifier.js: Added. (testRegExp): * stress/regress-159744.js: 2018-07-02 Ryosuke Niwa Repository fix after r233427 and r233443. Added back the test which got erroneously deleted in r233443. * stress/instanceof-non-object-prototype.js: 2018-07-02 Keith Miller InstanceOf IC should do generic if the prototype is not an object. https://bugs.webkit.org/show_bug.cgi?id=187250 Reviewed by Mark Lam. * stress/instanceof-non-object-prototype.js: Added. (let): (test): (i.catch): 2018-06-30 Mark Lam Builtins and host functions should get their own structures. https://bugs.webkit.org/show_bug.cgi?id=187211 Reviewed by Saam Barati. * stress/regress-187211.js: Added. 2018-06-29 Saam Barati We shouldn't recurse into the parser when gathering metadata about various function offsets https://bugs.webkit.org/show_bug.cgi?id=184074 Reviewed by Mark Lam. * microbenchmarks/try-get-by-id-basic.js: (const.bench.f.const.fooPlusBar.createBuiltin): * microbenchmarks/try-get-by-id-polymorphic.js: (fooPlusBar.createBuiltin): * stress/array-push-with-force-exit.js: * stress/dont-crash-on-stack-overflow-when-parsing-builtin.js: Added. (f): * stress/dont-crash-on-stack-overflow-when-parsing-default-constructor.js: Added. (foo): (prototype.runNearStackLimit): * stress/is-constructor.js: * stress/tailCallForwardArguments.js: (putFuncToPrivateName.createBuiltin): 2018-06-27 Mark Lam DFG's compileReallocatePropertyStorage() and compileAllocatePropertyStorage() slow paths should also clear unused properties. https://bugs.webkit.org/show_bug.cgi?id=187091 Reviewed by Yusuke Suzuki. * stress/regress-187091.js: Added. 2018-06-27 Yusuke Suzuki [JSC] ArrayPatternNode::emitDirectBinding does not return assignment target value if dst is nullptr https://bugs.webkit.org/show_bug.cgi?id=185943 Reviewed by Mark Lam. * stress/direct-binding-return-result.js: Added. (shouldBe): (test): 2018-06-26 Mark Lam eval() is wrong about the LiteralParser never throwing any exceptions. https://bugs.webkit.org/show_bug.cgi?id=187074 Reviewed by Saam Barati. * stress/regress-187074.js: Added. 2018-06-26 Mark Lam ASSERTION FAILED: length > butterfly->vectorLength() in JSObject::ensureLengthSlow(). https://bugs.webkit.org/show_bug.cgi?id=187060 Reviewed by Keith Miller. * stress/regress-187060.js: Added. 2018-06-25 Mark Lam constructArray() should set m_numValuesInVector to the specified length. https://bugs.webkit.org/show_bug.cgi?id=187010 Reviewed by Filip Pizlo. * stress/regress-187010.js: Added. 2018-06-25 Mark Lam Add missing exception check in RegExpObjectInlines.h's collectMatches. https://bugs.webkit.org/show_bug.cgi?id=187006 Reviewed by Keith Miller. * stress/regress-187006.js: Added. 2018-06-22 Keith Miller unshift should zero unused property storage https://bugs.webkit.org/show_bug.cgi?id=186960 Reviewed by Saam Barati. * stress/array-unshift-zero-property-storage.js: Added. (run): (test): 2018-06-22 Mark Lam PropertyCondition::isValidValueForAttributes() should also consider deleted values. https://bugs.webkit.org/show_bug.cgi?id=186943 Reviewed by Saam Barati. * stress/regress-186943.js: Added. 2018-06-22 Keith Miller performProxyCall should toThis the value passed to its handler https://bugs.webkit.org/show_bug.cgi?id=186951 Reviewed by Mark Lam. * stress/proxy-call-apply-handler-to-this.js: Added. (applyHandler): (let.f.new.Proxy): (withScope): (lexicalScope): (strictEvalScope): (BigInt): 2018-06-20 Keith Miller flattenDictionaryStruture needs to zero inline storage. https://bugs.webkit.org/show_bug.cgi?id=186869 Reviewed by Saam Barati. * stress/flatten-object-zero-unused-inline-properties.js: Added. 2018-06-19 Saam Barati DirectArguments::create needs to initialize to undefined instead of the empty value https://bugs.webkit.org/show_bug.cgi?id=186818 Reviewed by Filip Pizlo. * stress/create-direct-arguments-in-osr-should-initialize-to-undefined.js: Added. (foo): (bar): 2018-06-19 Tadeu Zagallo ShadowChicken crashes with stack overflow in the LLInt https://bugs.webkit.org/show_bug.cgi?id=186540 Reviewed by Saam Barati. Add test that stack overflows and crashes on ShadowChicken when JIT is disabled and forceDebuggerBytecodeGeneration is enabled. * stress/llint-stack-overflow-debugging-opcodes.js: Added. (foo): (catch): 2018-06-19 Leo Balter [test262-runner] More updates to the skip list https://bugs.webkit.org/show_bug.cgi?id=186786 Reviewed by Michael Saboff. * test262/config.yaml: * test262/expectations.yaml: 2018-06-19 Saam Barati Wasm: Any function argument of type Void should be a validation error https://bugs.webkit.org/show_bug.cgi?id=186794 Reviewed by Keith Miller. * wasm/Builder.js: (const._normalizeFunctionSignature): * wasm/function-tests/void-argument-type-should-be-a-validation-error.js: Added. (getBinary): * wasm/self-test/test_BuilderJSON.js: 2018-06-18 Keith Miller Properly zero unused property storage offsets https://bugs.webkit.org/show_bug.cgi?id=186692 Reviewed by Filip Pizlo. * stress/butterfly-zero-unused-butterfly-properties.js: Added. 2018-06-18 Michael Saboff Support Unicode 11 in RegExp https://bugs.webkit.org/show_bug.cgi?id=186685 Reviewed by Mark Lam. * test262/config.yaml: Removed from skip list Unicode 11 property tests as they are now supported. Added new bug reference for still failing test/built-ins/RegExp/property-escapes/character-class.js test. * test262/test/built-ins/RegExp/property-escapes/unsupported-binary-properties.js: Removed "Extended_Pictographic" from unsupported properties since Unicode 11 now supports them. 2018-06-16 Leo Balter Update Test262 2018-06-15 https://bugs.webkit.org/show_bug.cgi?id=186695 Reviewed by Michael Saboff. Also update the skip list - in the config file - with new failures * test262/config.yaml: * test262/expectations.yaml: * test262/harness/testIntl.js: (getInvalidLanguageTags): * test262/latest-changes-summary.txt: * test262/test/built-ins/Date/parse/time-value-maximum-range.js: Added. * test262/test/built-ins/Date/parse/zero.js: Added. * test262/test/built-ins/JSON/stringify/bigint-cross-realm.js: Added. (other.BigInt.prototype.toJSON): * test262/test/built-ins/Object/prototype/toString/symbol-tag-non-str-bigint.js: Added. * test262/test/built-ins/Object/prototype/toString/symbol-tag-override-bigint.js: Added. * test262/test/built-ins/Reflect/ownKeys/return-on-corresponding-order-large-index.js: Added. * test262/test/built-ins/RegExp/property-escapes/character-class.js: * test262/test/built-ins/RegExp/property-escapes/generated/ASCII.js: * test262/test/built-ins/RegExp/property-escapes/generated/ASCII_Hex_Digit.js: * test262/test/built-ins/RegExp/property-escapes/generated/Alphabetic.js: * test262/test/built-ins/RegExp/property-escapes/generated/Any.js: * test262/test/built-ins/RegExp/property-escapes/generated/Assigned.js: * test262/test/built-ins/RegExp/property-escapes/generated/Bidi_Control.js: * test262/test/built-ins/RegExp/property-escapes/generated/Bidi_Mirrored.js: * test262/test/built-ins/RegExp/property-escapes/generated/Case_Ignorable.js: * test262/test/built-ins/RegExp/property-escapes/generated/Cased.js: * test262/test/built-ins/RegExp/property-escapes/generated/Changes_When_Casefolded.js: * test262/test/built-ins/RegExp/property-escapes/generated/Changes_When_Casemapped.js: * test262/test/built-ins/RegExp/property-escapes/generated/Changes_When_Lowercased.js: * test262/test/built-ins/RegExp/property-escapes/generated/Changes_When_NFKC_Casefolded.js: * test262/test/built-ins/RegExp/property-escapes/generated/Changes_When_Titlecased.js: * test262/test/built-ins/RegExp/property-escapes/generated/Changes_When_Uppercased.js: * test262/test/built-ins/RegExp/property-escapes/generated/Dash.js: * test262/test/built-ins/RegExp/property-escapes/generated/Default_Ignorable_Code_Point.js: * test262/test/built-ins/RegExp/property-escapes/generated/Deprecated.js: * test262/test/built-ins/RegExp/property-escapes/generated/Diacritic.js: * test262/test/built-ins/RegExp/property-escapes/generated/Emoji.js: * test262/test/built-ins/RegExp/property-escapes/generated/Emoji_Component.js: * test262/test/built-ins/RegExp/property-escapes/generated/Emoji_Modifier.js: * test262/test/built-ins/RegExp/property-escapes/generated/Emoji_Modifier_Base.js: * test262/test/built-ins/RegExp/property-escapes/generated/Emoji_Presentation.js: * test262/test/built-ins/RegExp/property-escapes/generated/Extended_Pictographic.js: Added. * test262/test/built-ins/RegExp/property-escapes/generated/Extender.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Cased_Letter.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Close_Punctuation.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Connector_Punctuation.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Control.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Currency_Symbol.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Dash_Punctuation.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Decimal_Number.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Enclosing_Mark.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Final_Punctuation.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Format.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Initial_Punctuation.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Letter.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Letter_Number.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Line_Separator.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Lowercase_Letter.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Mark.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Math_Symbol.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Modifier_Letter.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Modifier_Symbol.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Nonspacing_Mark.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Number.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Open_Punctuation.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Other.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Letter.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Number.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Punctuation.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Symbol.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Paragraph_Separator.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Private_Use.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Punctuation.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Separator.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Space_Separator.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Spacing_Mark.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Surrogate.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Symbol.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Titlecase_Letter.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Unassigned.js: * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Uppercase_Letter.js: * test262/test/built-ins/RegExp/property-escapes/generated/Grapheme_Base.js: * test262/test/built-ins/RegExp/property-escapes/generated/Grapheme_Extend.js: * test262/test/built-ins/RegExp/property-escapes/generated/Hex_Digit.js: * test262/test/built-ins/RegExp/property-escapes/generated/IDS_Binary_Operator.js: * test262/test/built-ins/RegExp/property-escapes/generated/IDS_Trinary_Operator.js: * test262/test/built-ins/RegExp/property-escapes/generated/ID_Continue.js: * test262/test/built-ins/RegExp/property-escapes/generated/ID_Start.js: * test262/test/built-ins/RegExp/property-escapes/generated/Ideographic.js: * test262/test/built-ins/RegExp/property-escapes/generated/Join_Control.js: * test262/test/built-ins/RegExp/property-escapes/generated/Logical_Order_Exception.js: * test262/test/built-ins/RegExp/property-escapes/generated/Lowercase.js: * test262/test/built-ins/RegExp/property-escapes/generated/Math.js: * test262/test/built-ins/RegExp/property-escapes/generated/Noncharacter_Code_Point.js: * test262/test/built-ins/RegExp/property-escapes/generated/Pattern_Syntax.js: * test262/test/built-ins/RegExp/property-escapes/generated/Pattern_White_Space.js: * test262/test/built-ins/RegExp/property-escapes/generated/Quotation_Mark.js: * test262/test/built-ins/RegExp/property-escapes/generated/Radical.js: * test262/test/built-ins/RegExp/property-escapes/generated/Regional_Indicator.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Adlam.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Ahom.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Anatolian_Hieroglyphs.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Arabic.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Armenian.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Avestan.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Balinese.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Bamum.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Bassa_Vah.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Batak.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Bengali.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Bhaiksuki.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Bopomofo.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Brahmi.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Braille.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Buginese.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Buhid.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Canadian_Aboriginal.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Carian.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Caucasian_Albanian.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Chakma.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Cham.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Cherokee.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Common.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Coptic.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Cuneiform.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Cypriot.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Cyrillic.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Deseret.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Devanagari.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Dogra.js: Copied from JSTests/test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Kaithi.js. * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Duployan.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Egyptian_Hieroglyphs.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Elbasan.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Ethiopic.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Georgian.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Glagolitic.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Gothic.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Grantha.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Greek.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Gujarati.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Gunjala_Gondi.js: Copied from JSTests/test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Chakma.js. * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Gurmukhi.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Han.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Hangul.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Hanifi_Rohingya.js: Copied from JSTests/test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Ahom.js. * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Hanunoo.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Hatran.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Hebrew.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Hiragana.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Imperial_Aramaic.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Inherited.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Inscriptional_Pahlavi.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Inscriptional_Parthian.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Javanese.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Kaithi.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Kannada.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Katakana.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Kayah_Li.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Kharoshthi.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Khmer.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Khojki.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Khudawadi.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Lao.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Latin.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Lepcha.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Limbu.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Linear_A.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Linear_B.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Lisu.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Lycian.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Lydian.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Mahajani.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Makasar.js: Copied from JSTests/test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Lycian.js. * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Malayalam.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Mandaic.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Manichaean.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Marchen.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Masaram_Gondi.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Medefaidrin.js: Copied from JSTests/test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Carian.js. * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Meetei_Mayek.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Mende_Kikakui.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Meroitic_Cursive.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Meroitic_Hieroglyphs.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Miao.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Modi.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Mongolian.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Mro.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Multani.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Myanmar.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Nabataean.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_New_Tai_Lue.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Newa.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Nko.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Nushu.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Ogham.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Ol_Chiki.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Old_Hungarian.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Old_Italic.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Old_North_Arabian.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Old_Permic.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Old_Persian.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Old_Sogdian.js: Copied from JSTests/test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Gothic.js. * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Old_South_Arabian.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Old_Turkic.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Oriya.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Osage.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Osmanya.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Pahawh_Hmong.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Palmyrene.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Pau_Cin_Hau.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Phags_Pa.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Phoenician.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Psalter_Pahlavi.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Rejang.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Runic.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Samaritan.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Saurashtra.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Sharada.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Shavian.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Siddham.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_SignWriting.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Sinhala.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Sogdian.js: Copied from JSTests/test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Lycian.js. * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Sora_Sompeng.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Soyombo.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Sundanese.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Syloti_Nagri.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Syriac.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Tagalog.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Tagbanwa.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Tai_Le.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Tai_Tham.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Tai_Viet.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Takri.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Tamil.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Tangut.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Telugu.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Thaana.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Thai.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Tibetan.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Tifinagh.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Tirhuta.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Ugaritic.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Vai.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Warang_Citi.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Yi.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Zanabazar_Square.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Adlam.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Ahom.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Anatolian_Hieroglyphs.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Arabic.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Armenian.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Avestan.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Balinese.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bamum.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bassa_Vah.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Batak.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bengali.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bhaiksuki.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bopomofo.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Brahmi.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Braille.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Buginese.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Buhid.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Canadian_Aboriginal.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Carian.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Caucasian_Albanian.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Chakma.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cham.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cherokee.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Common.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Coptic.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cuneiform.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cypriot.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cyrillic.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Deseret.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Devanagari.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Dogra.js: Copied from JSTests/test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mahajani.js. * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Duployan.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Egyptian_Hieroglyphs.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Elbasan.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Ethiopic.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Georgian.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Glagolitic.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Gothic.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Grantha.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Greek.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Gujarati.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Gunjala_Gondi.js: Added. * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Gurmukhi.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Han.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hangul.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hanifi_Rohingya.js: Added. * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hanunoo.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hatran.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hebrew.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hiragana.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Imperial_Aramaic.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Inherited.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Inscriptional_Pahlavi.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Inscriptional_Parthian.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Javanese.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Kaithi.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Kannada.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Katakana.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Kayah_Li.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Kharoshthi.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Khmer.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Khojki.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Khudawadi.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lao.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Latin.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lepcha.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Limbu.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Linear_A.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Linear_B.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lisu.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lycian.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lydian.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mahajani.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Makasar.js: Copied from JSTests/test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Adlam.js. * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Malayalam.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mandaic.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Manichaean.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Marchen.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Masaram_Gondi.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Medefaidrin.js: Copied from JSTests/test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Avestan.js. * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Meetei_Mayek.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mende_Kikakui.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Meroitic_Cursive.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Meroitic_Hieroglyphs.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Miao.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Modi.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mongolian.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mro.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Multani.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Myanmar.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Nabataean.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_New_Tai_Lue.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Newa.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Nko.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Nushu.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Ogham.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Ol_Chiki.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Hungarian.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Italic.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_North_Arabian.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Permic.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Persian.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Sogdian.js: Copied from JSTests/test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Khojki.js. * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_South_Arabian.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Turkic.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Oriya.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Osage.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Osmanya.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Pahawh_Hmong.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Palmyrene.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Pau_Cin_Hau.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Phags_Pa.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Phoenician.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Psalter_Pahlavi.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Rejang.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Runic.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Samaritan.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Saurashtra.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sharada.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Shavian.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Siddham.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_SignWriting.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sinhala.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sogdian.js: Copied from JSTests/test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Manichaean.js. * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sora_Sompeng.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Soyombo.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sundanese.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Syloti_Nagri.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Syriac.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tagalog.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tagbanwa.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tai_Le.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tai_Tham.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tai_Viet.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Takri.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tamil.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tangut.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Telugu.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Thaana.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Thai.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tibetan.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tifinagh.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tirhuta.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Ugaritic.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Vai.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Warang_Citi.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Yi.js: * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Zanabazar_Square.js: * test262/test/built-ins/RegExp/property-escapes/generated/Sentence_Terminal.js: * test262/test/built-ins/RegExp/property-escapes/generated/Soft_Dotted.js: * test262/test/built-ins/RegExp/property-escapes/generated/Terminal_Punctuation.js: * test262/test/built-ins/RegExp/property-escapes/generated/Unified_Ideograph.js: * test262/test/built-ins/RegExp/property-escapes/generated/Uppercase.js: * test262/test/built-ins/RegExp/property-escapes/generated/Variation_Selector.js: * test262/test/built-ins/RegExp/property-escapes/generated/White_Space.js: * test262/test/built-ins/RegExp/property-escapes/generated/XID_Continue.js: * test262/test/built-ins/RegExp/property-escapes/generated/XID_Start.js: * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/internal-regexp-lastindex-not-zero.js: Removed. * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/isregexp-called-once.js: Renamed from JSTests/test262/test/built-ins/RegExp/prototype/Symbol.matchAll/isregexp-internal-regexp-is-false.js. (o.get Symbol): * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/isregexp-internal-regexp-throws.js: Removed. * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/regexpcreate-this-throws.js: * test262/test/built-ins/Symbol/matchAll/prop-desc.js: * test262/test/built-ins/Symbol/prototype/description/description-symboldescriptivestring.js: Added. * test262/test/built-ins/Symbol/prototype/description/descriptor.js: Added. * test262/test/built-ins/Symbol/prototype/description/get.js: Added. * test262/test/built-ins/Symbol/prototype/description/is-not-own-property.js: Added. * test262/test/built-ins/Symbol/prototype/description/this-val-non-symbol.js: Added. * test262/test/built-ins/Symbol/prototype/description/this-val-symbol.js: Added. * test262/test/built-ins/Symbol/prototype/description/wrapper.js: Added. * test262/test/intl402/Intl/getCanonicalLocales/Locale-object.js: Added. * test262/test/intl402/Locale/constructor-options-collation-invalid.js: * test262/test/intl402/Locale/constructor-options-collation-valid.js: * test262/test/intl402/Locale/constructor-options-hourcycle-valid.js: * test262/test/intl402/Locale/constructor-options-language-invalid.js: * test262/test/intl402/Locale/constructor-options-numberingsystem-invalid.js: * test262/test/intl402/Locale/constructor-options-numberingsystem-valid.js: * test262/test/intl402/Locale/constructor-tag.js: Added. (canonical.of.Object.entries): * test262/test/intl402/Locale/likely-subtags.js: Added. (maximal.of.Object.entries): (minimal.of.Object.entries): * test262/test/intl402/Locale/prototype/baseName/branding.js: Added. * test262/test/intl402/Locale/prototype/baseName/name.js: Added. * test262/test/intl402/Locale/prototype/baseName/prop-desc.js: * test262/test/intl402/Locale/prototype/calendar/branding.js: Added. * test262/test/intl402/Locale/prototype/calendar/name.js: Added. * test262/test/intl402/Locale/prototype/calendar/prop-desc.js: * test262/test/intl402/Locale/prototype/caseFirst/branding.js: Added. * test262/test/intl402/Locale/prototype/caseFirst/name.js: Added. * test262/test/intl402/Locale/prototype/caseFirst/prop-desc.js: * test262/test/intl402/Locale/prototype/collation/branding.js: Added. * test262/test/intl402/Locale/prototype/collation/name.js: Added. * test262/test/intl402/Locale/prototype/collation/prop-desc.js: * test262/test/intl402/Locale/prototype/hourCycle/branding.js: Added. * test262/test/intl402/Locale/prototype/hourCycle/name.js: Added. * test262/test/intl402/Locale/prototype/hourCycle/prop-desc.js: * test262/test/intl402/Locale/prototype/language/branding.js: Added. * test262/test/intl402/Locale/prototype/language/name.js: Added. * test262/test/intl402/Locale/prototype/language/prop-desc.js: * test262/test/intl402/Locale/prototype/maximize/branding.js: Added. * test262/test/intl402/Locale/prototype/minimize/branding.js: Added. * test262/test/intl402/Locale/prototype/numberingSystem/branding.js: Added. * test262/test/intl402/Locale/prototype/numberingSystem/name.js: Added. * test262/test/intl402/Locale/prototype/numberingSystem/prop-desc.js: * test262/test/intl402/Locale/prototype/numeric/branding.js: Added. * test262/test/intl402/Locale/prototype/numeric/name.js: Added. * test262/test/intl402/Locale/prototype/numeric/prop-desc.js: * test262/test/intl402/Locale/prototype/region/branding.js: Added. * test262/test/intl402/Locale/prototype/region/name.js: Added. * test262/test/intl402/Locale/prototype/region/prop-desc.js: * test262/test/intl402/Locale/prototype/script/branding.js: Added. * test262/test/intl402/Locale/prototype/script/name.js: Added. * test262/test/intl402/Locale/prototype/script/prop-desc.js: * test262/test/intl402/Locale/prototype/toString/branding.js: Added. * test262/test/intl402/NumberFormat/length.js: * test262/test/intl402/PluralRules/prototype/resolvedOptions/pluralCategories.js: Added. * test262/test/language/expressions/tagged-template/template-object-template-map.js: Added. (tag): * test262/test/language/expressions/tagged-template/template-object.js: (templateObject.tag): * test262/test/language/literals/numeric/numeric-separator-literal-bil-bd-nsl-bd-err.js: * test262/test/language/literals/numeric/numeric-separator-literal-bil-nsl-bd-dunder-err.js: * test262/test/language/literals/numeric/numeric-separator-literal-bil-nsl-bd-err.js: * test262/test/language/literals/numeric/numeric-separator-literal-dd-nsl-dds-dunder-err.js: * test262/test/language/literals/numeric/numeric-separator-literal-dd-nsl-err.js: * test262/test/language/literals/numeric/numeric-separator-literal-dds-nsl-dds-dunder-err.js: * test262/test/language/literals/numeric/numeric-separator-literal-dds-nsl-err.js: * test262/test/language/literals/numeric/numeric-separator-literal-dil-dot-dds-nsl-ep-dd-err.js: * test262/test/language/literals/numeric/numeric-separator-literal-dil-dot-nsl-ep-err.js: * test262/test/language/literals/numeric/numeric-separator-literal-dil-dot-nsl-err.js: * test262/test/language/literals/numeric/numeric-separator-literal-dot-dds-nsl-ep-err.js: * test262/test/language/literals/numeric/numeric-separator-literal-dot-nsl-ep-err.js: * test262/test/language/literals/numeric/numeric-separator-literal-dot-nsl-err.js: * test262/test/language/literals/numeric/numeric-separator-literal-hil-hd-nsl-hd-err.js: * test262/test/language/literals/numeric/numeric-separator-literal-hil-nsl-hd-dunder-err.js: * test262/test/language/literals/numeric/numeric-separator-literal-hil-nsl-hd-err.js: * test262/test/language/literals/numeric/numeric-separator-literal-nzd-nsl-dds-dunder-err.js: * test262/test/language/literals/numeric/numeric-separator-literal-nzd-nsl-dds-leading-zero-err.js: * test262/test/language/literals/numeric/numeric-separator-literal-oil-nsl-od-dunder-err.js: * test262/test/language/literals/numeric/numeric-separator-literal-oil-nsl-od-err.js: * test262/test/language/literals/numeric/numeric-separator-literal-oil-od-nsl-od-err.js: * test262/test/language/literals/numeric/numeric-separator-literal-unicode-err.js: * test262/test262-Revision.txt: 2018-06-16 Yusuke Suzuki [DFG] Reduce OSRExit for Kraken/crypto-aes due to CoW array https://bugs.webkit.org/show_bug.cgi?id=186721 Reviewed by Keith Miller. * stress/array-slice-cow.js: Added. (shouldBe): (testInt32): (testDouble): (testContiguous): 2018-06-15 Yusuke Suzuki [DFG][FTL] Spread onto PhantomNewArrayBuffer assumes JSFixedArray, but JSImmutableButterfly is returned https://bugs.webkit.org/show_bug.cgi?id=186460 Reviewed by Saam Barati. * stress/spread-escapes-but-new-array-buffer-does-not-double.js: Added. (assert): (getProperties): (theFunc): (let.obj.valueOf): 2018-06-14 Leo Balter Test262-Runner: Update config list with some failing tests https://bugs.webkit.org/show_bug.cgi?id=185628 Reviewed by Michael Saboff. The config list is updated to match some slow / hanging tests that are currenctly failing due to the length used in Array or Array like objects. This also adds matching bugs for known features that are still in progress and not enabled yet. * test262/config.yaml: 2018-06-12 Yusuke Suzuki Update test262 for Array#sort https://bugs.webkit.org/show_bug.cgi?id=186458 * test262/expectations.yaml: 2018-06-10 Yusuke Suzuki [JSC] Array.prototype.sort should rejects null comparator https://bugs.webkit.org/show_bug.cgi?id=186458 Reviewed by Keith Miller. * ChakraCore/test/Array/array_sort.baseline-jsc: * stress/array-sort-bad-comparator.js: (test): * stress/sort-null-comparator.js: Removed. * test262/expectations.yaml: 2018-06-07 Saam Barati Make DFG to FTL OSR entry code more sane by removing bad RELEASE_ASSERTS and making it trigger compiles in outer loops before inner ones https://bugs.webkit.org/show_bug.cgi?id=186218 Reviewed by Filip Pizlo. * stress/dont-crash-ftl-osr-entry.js: Added. 2018-06-06 Yusuke Suzuki [DFG] Compare operations do not respect negative zeros https://bugs.webkit.org/show_bug.cgi?id=183729 Reviewed by Saam Barati. * stress/comparison-ignore-negative-zero.js: Added. (shouldBe): (zero): (negativeZero): (object.valueOf): (test): 2018-06-06 Saam Barati generateConditionsForInstanceOf needs to see if the object has a poly proto structure before assuming it has a constant prototype https://bugs.webkit.org/show_bug.cgi?id=186363 Rubber-stamped by Filip Pizlo. * stress/instance-of-on-poly-proto-opc-should-not-crash.js: Added. 2018-06-05 David Fenton Temporarily Skip JSC stress test failures that are consistently occurring. https://bugs.webkit.org/show_bug.cgi?id=186283 Unreviewed test gardening. * executableAllocationFuzz.yaml: * slowMicrobenchmarks/default-derived-constructor.js: * stress/put-direct-index-broken-2.js: * stress/splay-flash-access.js: * stress/spread-forward-call-varargs-stack-overflow.js: 2018-06-04 Keith Miller Add test for CoW conversions in the DFG/FTL https://bugs.webkit.org/show_bug.cgi?id=186295 Reviewed by Saam Barati. * stress/arrayprofile-should-not-convert-get-by-val-cow.js: Added. (assertEq): (withArrayArgInt32): (withArrayLiteralInt32): (withArrayArgDouble): (withArrayLiteralDouble): (withArrayArgContiguous): (withArrayLiteralContiguous): (test): 2018-06-02 Caio Lima [ESNext][BigInt] Implement support for addition operations https://bugs.webkit.org/show_bug.cgi?id=179002 Reviewed by Yusuke Suzuki. * bigIntTests.yaml: * stress/addition-order-evaluation.js: Added. * stress/big-int-add-wrapped-value.js: Added. * stress/big-int-addition-basic.js: Added. * stress/big-int-addition-jit.js: Added. * stress/big-int-addition-memory-stress.js: Added. * stress/big-int-addition-string-coercion.js: Added. * stress/big-int-addition-to-primitive-precedence.js: Added. * stress/big-int-addition-to-primitive.js: Added. * stress/big-int-addition-type-error.js: Added. * stress/big-int-no-conversion-to-number.js: * stress/big-int-sub-wrapped-value.js: Added. * stress/big-int-subtraction-basic.js: Added. * stress/big-int-subtraction-jit.js: Added. * stress/big-int-subtraction-type-error.js: Added. * stress/sub-order-evaluation.js: Added. 2018-06-02 Commit Queue Unreviewed, rolling out r232439. https://bugs.webkit.org/show_bug.cgi?id=186238 It breaks gtk-linux-32-release (Requested by caiolima on #webkit). Reverted changeset: "[ESNext][BigInt] Implement support for addition operations" https://bugs.webkit.org/show_bug.cgi?id=179002 https://trac.webkit.org/changeset/232439 2018-06-01 Yusuke Suzuki Baseline op_jtrue emits an insane amount of code https://bugs.webkit.org/show_bug.cgi?id=185708 Reviewed by Filip Pizlo. * stress/logical-not-masquerades-as-undefined.js: Added. (shouldBe): (test): * stress/logical-not.js: Added. (shouldBe): (test): 2018-06-02 Yusuke Suzuki [JSC] Remove WeakReferenceHarvester https://bugs.webkit.org/show_bug.cgi?id=186102 Reviewed by Filip Pizlo. * microbenchmarks/create-many-weak-map.js: Added. 2018-06-02 Yusuke Suzuki [JSC] Object.create should have intrinsic https://bugs.webkit.org/show_bug.cgi?id=186200 Reviewed by Filip Pizlo. * microbenchmarks/object-create-null.js: Added. (test): * microbenchmarks/object-create-unknown-object-prototype.js: Added. (test): * microbenchmarks/object-create-untyped-prototype.js: Added. (test): * stress/get-by-pname-only-prototype-properties.js: Added. (foo): * stress/object-create-define.js: Added. (shouldBe): (test): * stress/object-create-null-external.js: Added. (shouldBe): (test): * stress/object-create-null.js: Added. (shouldBe): (test): * stress/object-create-prototype.js: Added. (shouldBe): (test): * stress/object-create-undefined.js: Added. (shouldThrow): (i.shouldThrow): 2018-06-02 Caio Lima [ESNext][BigInt] Implement support for addition operations https://bugs.webkit.org/show_bug.cgi?id=179002 Reviewed by Yusuke Suzuki. * bigIntTests.yaml: * stress/addition-order-evaluation.js: Added. * stress/big-int-add-wrapped-value.js: Added. * stress/big-int-addition-basic.js: Added. * stress/big-int-addition-jit.js: Added. * stress/big-int-addition-memory-stress.js: Added. * stress/big-int-addition-string-coercion.js: Added. * stress/big-int-addition-to-primitive-precedence.js: Added. * stress/big-int-addition-to-primitive.js: Added. * stress/big-int-addition-type-error.js: Added. * stress/big-int-no-conversion-to-number.js: * stress/big-int-sub-wrapped-value.js: Added. * stress/big-int-subtraction-basic.js: Added. * stress/big-int-subtraction-jit.js: Added. * stress/big-int-subtraction-type-error.js: Added. * stress/sub-order-evaluation.js: Added. 2018-05-29 Yusuke Suzuki [JSC] Add Symbol.prototype.description getter https://bugs.webkit.org/show_bug.cgi?id=186053 Reviewed by Keith Miller. * stress/symbol-description.js: Added. (shouldBe): (shouldThrow): 2018-05-30 Yusuke Suzuki [DFG] InById should be converted to MatchStructure https://bugs.webkit.org/show_bug.cgi?id=185803 Reviewed by Keith Miller. * microbenchmarks/in-by-id-match.js: Added. (test): * microbenchmarks/in-by-id-removed.js: Added. (test): * stress/in-by-id-constant.js: Added. (shouldBe): (test1): * stress/in-by-id-match-invalid.js: Added. (shouldBe): (test1): * stress/in-by-id-match.js: Added. (shouldBe): (test1): 2018-05-31 Caio Lima [ESNext][BigInt] Implement support for "=<" and ">=" relational operation https://bugs.webkit.org/show_bug.cgi?id=185929 Reviewed by Yusuke Suzuki. * bigIntTests.yaml: * stress/big-int-greater-than-or-equal-jit.js: Added. * stress/big-int-greater-than-or-equal-order-of-evaluation.js: Added. * stress/big-int-greater-than-or-equal-wrapped-values.js: Added. * stress/big-int-greater-than-or-equal.js: Added. * stress/big-int-less-than-or-equal-general.js: Added. * stress/big-int-less-than-or-equal-jit.js: Added. * stress/big-int-less-than-or-equal-order-of-evaluation.js: Added. * stress/big-int-less-than-or-equal-wrapped-values.js: Added. 2018-05-31 Saam Barati Cache toString results for CoW arrays https://bugs.webkit.org/show_bug.cgi?id=186160 Reviewed by Keith Miller. * microbenchmarks/to-string-on-cow-array.js: Added. (foo): 2018-05-31 Keith Miller Rebaseline test for change in Error.stack behavior. * stress/error-stack-trace-limit.js: (numberOfFrames): 2018-05-30 Saam Barati DFG combined liveness needs to say that the machine CodeBlock's arguments are live https://bugs.webkit.org/show_bug.cgi?id=186121 Reviewed by Keith Miller. * stress/combined-liveness-needs-to-say-arguments-are-live.js: Added. (baz): (foo): 2018-05-30 Keith Miller Unreviewed, uncomment erroneously commented test code. * stress/error-stack-trace-limit.js: 2018-05-30 Keith Miller LLInt get_by_id prototype caching doesn't properly handle changes https://bugs.webkit.org/show_bug.cgi?id=186112 Reviewed by Filip Pizlo. * stress/llint-proto-get-by-id-cache-change-prototype.js: Added. (foo): * stress/llint-proto-get-by-id-cache-intercept-value.js: Added. (foo): 2018-05-30 Caio Lima [ESNext][BigInt] Implement support for "%" operation https://bugs.webkit.org/show_bug.cgi?id=184327 Reviewed by Yusuke Suzuki. * bigIntTests.yaml: * stress/big-int-mod-memory-stress.js: Added. * stress/big-int-mod-to-primitive-precedence.js: Added. * stress/big-int-mod-to-primitive.js: Added. * stress/big-int-mod-type-error.js: Added. * stress/big-int-mod-wrapped-value.js: Added. * stress/big-int-mod.js: Added. 2018-05-29 Caitlin Potter [JSTests] update test262 expectations after r232261 https://bugs.webkit.org/show_bug.cgi?id=184267 Reviewed by Saam Barati. * test262/expectations.yaml: 2018-05-29 Caio Lima [ESNext][BigInt] Implement support for "<" and ">" relational operation https://bugs.webkit.org/show_bug.cgi?id=185379 Reviewed by Yusuke Suzuki. * stress/big-int-greater-than-general.js: Added. * stress/big-int-greater-than-jit.js: Added. * stress/big-int-greater-than-order-of-evaluation.js: Added. * stress/big-int-greater-than-wrapped-values.js: Added. * stress/big-int-less-than-general.js: Added. * stress/big-int-less-than-jit.js: Added. * stress/big-int-less-than-order-of-evaluation.js: Added. * stress/big-int-less-than-wrapped-values.js: Added. 2018-05-29 Caitlin Potter [JSC] Fix Array.prototype.concat fast case when single argument is Proxy https://bugs.webkit.org/show_bug.cgi?id=184267 Reviewed by Saam Barati. * stress/array-concat-fast-spread-proxy.js: Copied from JSTests/stress/array-concat-spread-proxy.js. (arrayEq): (catch): * stress/array-concat-spread-proxy.js: 2018-05-27 Caio Lima [ESNext][BigInt] Implement "+" and "-" unary operation https://bugs.webkit.org/show_bug.cgi?id=182214 Reviewed by Yusuke Suzuki. * stress/big-int-negate-basic.js: Added. * stress/big-int-negate-jit.js: Added. * stress/big-int-unary-plus.js: Added. 2018-05-26 Yusuke Suzuki [JSC] Rename Array#flatten to flat https://bugs.webkit.org/show_bug.cgi?id=186012 Reviewed by Saam Barati. * stress/array-flatten.js: (shouldThrow): * test262/expectations.yaml: 2018-05-23 Yusuke Suzuki Upgrade test262 to May 24 version https://bugs.webkit.org/show_bug.cgi?id=185937 Reviewed by Darin Adler. * test262/expectations.yaml: * test262/harness/doneprintHandle.js: (DONE): * test262/latest-changes-summary.txt: * test262/test/annexB/language/eval-code/direct/global-block-decl-eval-global-existing-global-init.js: * test262/test/annexB/language/eval-code/direct/global-block-decl-eval-global-existing-non-enumerable-global-init.js: Added. * test262/test/annexB/language/eval-code/direct/global-if-decl-else-decl-a-eval-global-existing-global-init.js: * test262/test/annexB/language/eval-code/direct/global-if-decl-else-decl-a-eval-global-existing-non-enumerable-global-init.js: Copied from JSTests/test262/test/annexB/language/eval-code/direct/global-if-decl-else-decl-a-eval-global-existing-global-init.js. * test262/test/annexB/language/eval-code/direct/global-if-decl-else-decl-b-eval-global-existing-global-init.js: * test262/test/annexB/language/eval-code/direct/global-if-decl-else-decl-b-eval-global-existing-non-enumerable-global-init.js: Copied from JSTests/test262/test/annexB/language/eval-code/direct/global-if-decl-else-decl-b-eval-global-existing-global-init.js. * test262/test/annexB/language/eval-code/direct/global-if-decl-else-stmt-eval-global-existing-global-init.js: * test262/test/annexB/language/eval-code/direct/global-if-decl-else-stmt-eval-global-existing-non-enumerable-global-init.js: Copied from JSTests/test262/test/annexB/language/eval-code/direct/global-if-decl-else-stmt-eval-global-existing-global-init.js. * test262/test/annexB/language/eval-code/direct/global-if-decl-no-else-eval-global-existing-global-init.js: * test262/test/annexB/language/eval-code/direct/global-if-decl-no-else-eval-global-existing-non-enumerable-global-init.js: Copied from JSTests/test262/test/annexB/language/eval-code/direct/global-if-decl-no-else-eval-global-existing-global-init.js. * test262/test/annexB/language/eval-code/direct/global-if-stmt-else-decl-eval-global-existing-global-init.js: * test262/test/annexB/language/eval-code/direct/global-if-stmt-else-decl-eval-global-existing-non-enumerable-global-init.js: Copied from JSTests/test262/test/annexB/language/eval-code/direct/global-if-stmt-else-decl-eval-global-existing-global-init.js. * test262/test/annexB/language/eval-code/direct/global-switch-case-eval-global-existing-global-init.js: * test262/test/annexB/language/eval-code/direct/global-switch-case-eval-global-existing-non-enumerable-global-init.js: Added. * test262/test/annexB/language/eval-code/direct/global-switch-dflt-eval-global-existing-global-init.js: * test262/test/annexB/language/eval-code/direct/global-switch-dflt-eval-global-existing-non-enumerable-global-init.js: Added. * test262/test/annexB/language/eval-code/indirect/global-block-decl-eval-global-existing-global-init.js: * test262/test/annexB/language/eval-code/indirect/global-block-decl-eval-global-existing-non-enumerable-global-init.js: Added. * test262/test/annexB/language/eval-code/indirect/global-if-decl-else-decl-a-eval-global-existing-global-init.js: * test262/test/annexB/language/eval-code/indirect/global-if-decl-else-decl-a-eval-global-existing-non-enumerable-global-init.js: Copied from JSTests/test262/test/annexB/language/eval-code/indirect/global-if-decl-else-decl-a-eval-global-existing-global-init.js. * test262/test/annexB/language/eval-code/indirect/global-if-decl-else-decl-b-eval-global-existing-global-init.js: * test262/test/annexB/language/eval-code/indirect/global-if-decl-else-decl-b-eval-global-existing-non-enumerable-global-init.js: Copied from JSTests/test262/test/annexB/language/eval-code/indirect/global-if-decl-else-decl-b-eval-global-existing-global-init.js. * test262/test/annexB/language/eval-code/indirect/global-if-decl-else-stmt-eval-global-existing-global-init.js: * test262/test/annexB/language/eval-code/indirect/global-if-decl-else-stmt-eval-global-existing-non-enumerable-global-init.js: Copied from JSTests/test262/test/annexB/language/eval-code/indirect/global-if-decl-else-stmt-eval-global-existing-global-init.js. * test262/test/annexB/language/eval-code/indirect/global-if-decl-no-else-eval-global-existing-global-init.js: * test262/test/annexB/language/eval-code/indirect/global-if-decl-no-else-eval-global-existing-non-enumerable-global-init.js: Copied from JSTests/test262/test/annexB/language/eval-code/indirect/global-if-decl-no-else-eval-global-existing-global-init.js. * test262/test/annexB/language/eval-code/indirect/global-if-stmt-else-decl-eval-global-existing-global-init.js: * test262/test/annexB/language/eval-code/indirect/global-if-stmt-else-decl-eval-global-existing-non-enumerable-global-init.js: Copied from JSTests/test262/test/annexB/language/eval-code/indirect/global-if-stmt-else-decl-eval-global-existing-global-init.js. * test262/test/annexB/language/eval-code/indirect/global-switch-case-eval-global-existing-global-init.js: * test262/test/annexB/language/eval-code/indirect/global-switch-case-eval-global-existing-non-enumerable-global-init.js: Added. * test262/test/annexB/language/eval-code/indirect/global-switch-dflt-eval-global-existing-global-init.js: * test262/test/annexB/language/eval-code/indirect/global-switch-dflt-eval-global-existing-non-enumerable-global-init.js: Added. * test262/test/annexB/language/global-code/block-decl-global-existing-global-init.js: Added. (262.evalScript.f): * test262/test/annexB/language/global-code/block-decl-global-existing-non-enumerable-global-init.js: Added. (262.evalScript.f): * test262/test/annexB/language/global-code/if-decl-else-decl-a-global-existing-global-init.js: Added. (262.evalScript.true.f): (else._f): * test262/test/annexB/language/global-code/if-decl-else-decl-a-global-existing-non-enumerable-global-init.js: Added. (262.evalScript.true.f): (else._f): * test262/test/annexB/language/global-code/if-decl-else-decl-b-global-existing-global-init.js: Added. (262.evalScript.false._f): (else.f): * test262/test/annexB/language/global-code/if-decl-else-decl-b-global-existing-non-enumerable-global-init.js: Added. (262.evalScript.false._f): (else.f): * test262/test/annexB/language/global-code/if-decl-else-stmt-global-existing-global-init.js: Added. (262.evalScript.true.f): * test262/test/annexB/language/global-code/if-decl-else-stmt-global-existing-non-enumerable-global-init.js: Added. (262.evalScript.true.f): * test262/test/annexB/language/global-code/if-decl-no-else-global-existing-global-init.js: Added. (262.evalScript.true.f): * test262/test/annexB/language/global-code/if-decl-no-else-global-existing-non-enumerable-global-init.js: Added. (262.evalScript.true.f): * test262/test/annexB/language/global-code/if-stmt-else-decl-global-existing-global-init.js: Added. (else.f): * test262/test/annexB/language/global-code/if-stmt-else-decl-global-existing-non-enumerable-global-init.js: Added. (else.f): * test262/test/annexB/language/global-code/switch-case-global-existing-global-init.js: Added. (262.evalScript.switch.case.1): (262.evalScript.switch): * test262/test/annexB/language/global-code/switch-case-global-existing-non-enumerable-global-init.js: Added. (262.evalScript.switch.case.1): (262.evalScript.switch): * test262/test/annexB/language/global-code/switch-dflt-global-existing-global-init.js: Added. (262.evalScript.switch.default): (262.evalScript.switch): * test262/test/annexB/language/global-code/switch-dflt-global-existing-non-enumerable-global-init.js: Added. (262.evalScript.switch.default): (262.evalScript.switch): * test262/test/built-ins/Array/prototype/flat/array-like-objects.js: Renamed from JSTests/test262/test/built-ins/Array/prototype/flatten/array-like-objects.js. * test262/test/built-ins/Array/prototype/flat/bound-function-call.js: Renamed from JSTests/test262/test/built-ins/Array/prototype/flatten/bound-function-call.js. * test262/test/built-ins/Array/prototype/flat/empty-array-elements.js: Renamed from JSTests/test262/test/built-ins/Array/prototype/flatten/empty-array-elements.js. * test262/test/built-ins/Array/prototype/flat/empty-object-elements.js: Renamed from JSTests/test262/test/built-ins/Array/prototype/flatten/empty-object-elements.js. * test262/test/built-ins/Array/prototype/flat/length.js: Added. * test262/test/built-ins/Array/prototype/flat/name.js: Added. * test262/test/built-ins/Array/prototype/flat/non-numeric-depth-should-not-throw.js: Renamed from JSTests/test262/test/built-ins/Array/prototype/flatten/non-numeric-depth-should-not-throw.js. * test262/test/built-ins/Array/prototype/flat/non-object-ctor-throws.js: Renamed from JSTests/test262/test/built-ins/Array/prototype/flatten/non-object-ctor-throws.js. * test262/test/built-ins/Array/prototype/flat/null-undefined-elements.js: Added. * test262/test/built-ins/Array/prototype/flat/null-undefined-input-throws.js: Renamed from JSTests/test262/test/built-ins/Array/prototype/flatten/null-undefined-input-throws.js. * test262/test/built-ins/Array/prototype/flat/positive-infinity.js: Renamed from JSTests/test262/test/built-ins/Array/prototype/flatten/positive-infinity.js. * test262/test/built-ins/Array/prototype/flat/prop-desc.js: Renamed from JSTests/test262/test/built-ins/Array/prototype/flatten/prop-desc.js. * test262/test/built-ins/Array/prototype/flat/symbol-object-create-null-depth-throws.js: Renamed from JSTests/test262/test/built-ins/Array/prototype/flatten/symbol-object-create-null-depth-throws.js. * test262/test/built-ins/Array/prototype/flatten/length.js: Removed. * test262/test/built-ins/Array/prototype/flatten/name.js: Removed. * test262/test/built-ins/Array/prototype/flatten/null-undefined-elements.js: Removed. * test262/test/built-ins/AsyncGeneratorPrototype/next/name.js: * test262/test/built-ins/AsyncGeneratorPrototype/return/name.js: * test262/test/built-ins/AsyncGeneratorPrototype/throw/name.js: * test262/test/built-ins/Math/acosh/nan-returns.js: * test262/test/built-ins/Math/asinh/asinh-specialVals.js: * test262/test/built-ins/Math/atanh/atanh-specialVals.js: * test262/test/built-ins/Math/cbrt/cbrt-specialValues.js: * test262/test/built-ins/Math/cbrt/prop-desc.js: * test262/test/built-ins/Math/cosh/cosh-specialVals.js: * test262/test/built-ins/Math/expm1/expm1-specialVals.js: * test262/test/built-ins/Math/log10/Log10-specialVals.js: * test262/test/built-ins/Math/log2/log2-basicTests.js: * test262/test/built-ins/Math/sign/sign-specialVals.js: * test262/test/built-ins/Math/sinh/sinh-specialVals.js: * test262/test/built-ins/Math/tanh/tanh-specialVals.js: * test262/test/built-ins/Math/trunc/trunc-sampleTests.js: * test262/test/built-ins/Math/trunc/trunc-specialVals.js: * test262/test/built-ins/Object/internals/DefineOwnProperty/consistent-value-regexp-dollar1.js: Added. * test262/test/built-ins/Object/internals/DefineOwnProperty/consistent-writable-regexp-dollar1.js: Added. * test262/test/intl402/Intl/getCanonicalLocales/descriptor.js: * test262/test/intl402/Intl/getCanonicalLocales/duplicates.js: * test262/test/intl402/Locale/constructor-getter-order.js: Added. (new.Intl.Locale.toString): (get language): (get script): (get region): (get calendar): (get collation): (get hourCycle): (get caseFirst): (get numeric): (get numberingSystem): * test262/test/intl402/Locale/constructor-locale-object.js: Added. * test262/test/intl402/Locale/constructor-non-iana-canon.js: Added. * test262/test/intl402/Locale/constructor-options-casefirst-invalid.js: Added. (valueOf): (const.invalidCaseFirstOption.of.invalidCaseFirstOptions.new.Intl.Locale): * test262/test/intl402/Locale/constructor-options-casefirst-valid.js: Added. (toString): * test262/test/intl402/Locale/constructor-options-collation-invalid.js: Added. (const.invalidCollationOption.of.invalidCollationOptions.new.Intl.Locale): * test262/test/intl402/Locale/constructor-options-collation-valid.js: Added. * test262/test/intl402/Locale/constructor-options-hourcycle-invalid.js: Added. (const.invalidHourCycleOption.of.invalidHourCycleOptions.new.Intl.Locale): * test262/test/intl402/Locale/constructor-options-hourcycle-valid.js: Added. (toString): * test262/test/intl402/Locale/constructor-options-language-grandfathered.js: Added. * test262/test/intl402/Locale/constructor-options-language-valid.js: (toString): * test262/test/intl402/Locale/constructor-options-numberingsystem-invalid.js: Added. (const.invalidNumberingSystemOption.of.invalidNumberingSystemOptions.new.Intl.Locale): * test262/test/intl402/Locale/constructor-options-numberingsystem-valid.js: Added. * test262/test/intl402/Locale/constructor-options-numeric-valid.js: Added. (valueOf): * test262/test/intl402/Locale/constructor-options-region-valid.js: * test262/test/intl402/Locale/constructor-options-script-valid.js: (toString): * test262/test/intl402/Locale/constructor-parse-twice.js: Added. * test262/test/intl402/Locale/constructor-tag-tostring.js: Added. (CustomError): (WrongCustomError): (const.errors.get Symbol): (throw.new.CustomError): (throw.new.CustomError.get toString): (throw.new.CustomError.get valueOf): (throw.new.WrongCustomError.get valueOf): (throw.new.WrongCustomError): * test262/test/intl402/Locale/constructor-unicode-ext-invalid.js: Added. * test262/test/intl402/Locale/constructor-unicode-ext-valid.js: Added. (canonical.of.Object.entries): * test262/test/intl402/Locale/extensions-grandfathered.js: Added. (of.testData.value.of.Object.entries): * test262/test/intl402/Locale/extensions-private.js: Added. * test262/test/intl402/Locale/getters-grandfathered.js: Added. * test262/test/intl402/Locale/getters-missing.js: Added. * test262/test/intl402/Locale/getters-privateuse.js: Added. * test262/test/intl402/Locale/getters.js: Added. * test262/test/intl402/Locale/invalid-tag-throws-symbol.js: * test262/test/intl402/Locale/likely-subtags-grandfathered.js: Added. * test262/test/intl402/Locale/prop-desc.js: * test262/test/intl402/Locale/prototype/baseName/prop-desc.js: Added. * test262/test/intl402/Locale/prototype/calendar/prop-desc.js: Added. * test262/test/intl402/Locale/prototype/caseFirst/prop-desc.js: Added. * test262/test/intl402/Locale/prototype/collation/prop-desc.js: Added. * test262/test/intl402/Locale/prototype/constructor/prop-desc.js: Copied from JSTests/test262/test/intl402/Locale/prototype/constructor.js. * test262/test/intl402/Locale/prototype/hourCycle/prop-desc.js: Added. * test262/test/intl402/Locale/prototype/language/prop-desc.js: Added. * test262/test/intl402/Locale/prototype/maximize/length.js: * test262/test/intl402/Locale/prototype/maximize/prop-desc.js: * test262/test/intl402/Locale/prototype/minimize/length.js: Copied from JSTests/test262/test/intl402/Locale/prototype/maximize/length.js. * test262/test/intl402/Locale/prototype/minimize/name.js: Added. * test262/test/intl402/Locale/prototype/minimize/prop-desc.js: Copied from JSTests/test262/test/intl402/Locale/prototype/constructor.js. * test262/test/intl402/Locale/prototype/numberingSystem/prop-desc.js: Added. * test262/test/intl402/Locale/prototype/numeric/prop-desc.js: Added. * test262/test/intl402/Locale/prototype/region/prop-desc.js: Added. * test262/test/intl402/Locale/prototype/script/prop-desc.js: Added. * test262/test/intl402/Locale/prototype/toString/prop-desc.js: Renamed from JSTests/test262/test/intl402/Locale/prototype/constructor.js. * test262/test/intl402/Locale/prototype/toStringTag/toStringTag.js: Renamed from JSTests/test262/test/intl402/Locale/prototype/toStringTag.js. * test262/test/intl402/Number/prototype/toLocaleString/length.js: * test262/test/intl402/NumberFormat/length.js: * test262/test/intl402/NumberFormat/name.js: * test262/test/intl402/NumberFormat/prop-desc.js: * test262/test/intl402/PluralRules/length.js: * test262/test/intl402/PluralRules/name.js: * test262/test/intl402/PluralRules/prop-desc.js: Copied from JSTests/test262/test/intl402/NumberFormat/prop-desc.js. * test262/test/language/expressions/addition/bigint-and-number.js: * test262/test/language/expressions/addition/bigint-arithmetic.js: (testAdd): Deleted. * test262/test/language/expressions/addition/bigint-errors.js: (Symbol.toPrimitive): (0n.Symbol.toPrimitive): (valueOf): (0n.valueOf): (toString): (0n.toString): * test262/test/language/expressions/addition/bigint-toprimitive.js: * test262/test/language/expressions/addition/bigint-wrapped-values.js: * test262/test/language/expressions/bitwise-and/bigint-and-number.js: * test262/test/language/expressions/bitwise-and/bigint-errors.js: (Symbol.toPrimitive): (0n.Symbol.toPrimitive): (valueOf): (0n.valueOf): (toString): (0n.toString): * test262/test/language/expressions/bitwise-and/bigint-non-primitive.js: (assert.sameValue.Symbol.toPrimitive): (assert.sameValue.0b011n.Symbol.toPrimitive): (assert.sameValue.valueOf): (assert.sameValue.0b011n.valueOf): (assert.sameValue.toString): (assert.sameValue.0b011n.toString): * 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: (assert.sameValue.Symbol.toPrimitive): (assert.sameValue.valueOf): (assert.sameValue.toString): * test262/test/language/expressions/bitwise-or/bigint-and-number.js: * test262/test/language/expressions/bitwise-or/bigint-errors.js: (Symbol.toPrimitive): (0n.Symbol.toPrimitive): (valueOf): (0n.valueOf): (toString): (0n.toString): * test262/test/language/expressions/bitwise-or/bigint-non-primitive.js: (assert.sameValue.Symbol.toPrimitive): (assert.sameValue.0b011n.Symbol.toPrimitive): (assert.sameValue.valueOf): (assert.sameValue.0b011n.valueOf): (assert.sameValue.toString): (assert.sameValue.0b011n.toString): * 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: (Symbol.toPrimitive): (0n.Symbol.toPrimitive): (valueOf): (0n.valueOf): (toString): (0n.toString): * test262/test/language/expressions/bitwise-xor/bigint-non-primitive.js: (assert.sameValue.Symbol.toPrimitive): (assert.sameValue.0b011n.Symbol.toPrimitive): (assert.sameValue.valueOf): (assert.sameValue.0b011n.valueOf): (assert.sameValue.toString): (assert.sameValue.0b011n.toString): * test262/test/language/expressions/bitwise-xor/bigint-toprimitive.js: * test262/test/language/expressions/bitwise-xor/bigint-wrapped-values.js: * test262/test/language/expressions/division/bigint-and-number.js: * test262/test/language/expressions/division/bigint-arithmetic.js: (testDiv): Deleted. * test262/test/language/expressions/division/bigint-complex-infinity.js: * test262/test/language/expressions/division/bigint-errors.js: (Symbol.toPrimitive): (0n.Symbol.toPrimitive): (valueOf): (0n.valueOf): (toString): (0n.toString): * 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: (assert.sameValue.0n.valueOf): (assert.sameValue.valueOf): (assert.sameValue.0n.toString): (assert.sameValue.toString): (assert.sameValue.900719925474099101n.valueOf): (assert.sameValue.900719925474099101n.toString): * 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: (assert.sameValue.0n.valueOf): (assert.sameValue.valueOf): (assert.sameValue.0n.toString): (assert.sameValue.toString): (assert.sameValue.900719925474099101n.valueOf): (assert.sameValue.900719925474099101n.toString): * 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: (testExpt): Deleted. * test262/test/language/expressions/exponentiation/bigint-errors.js: (Symbol.toPrimitive): (0n.Symbol.toPrimitive): (valueOf): (0n.valueOf): (toString): (0n.toString): * test262/test/language/expressions/exponentiation/bigint-negative-exponent-throws.js: Renamed from JSTests/test262/test/language/expressions/exponentiation/bigint-exp-operator-negative-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/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/11.8.2-1.js: (obj1.valueOf): (obj2.valueOf): * test262/test/language/expressions/greater-than/11.8.2-2.js: (obj1.valueOf): (obj2.toString): * test262/test/language/expressions/greater-than/11.8.2-3.js: (obj1.toString): (obj2.valueOf): * test262/test/language/expressions/greater-than/11.8.2-4.js: (obj1.toString): (obj2.toString): * 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-string.js: * test262/test/language/expressions/greater-than/bigint-and-symbol.js: Added. * test262/test/language/expressions/left-shift/bigint-and-number.js: * test262/test/language/expressions/left-shift/bigint-errors.js: (Symbol.toPrimitive): (0n.Symbol.toPrimitive): (valueOf): (0n.valueOf): (toString): (0n.toString): * test262/test/language/expressions/left-shift/bigint-non-primitive.js: (assert.sameValue.Symbol.toPrimitive): (assert.sameValue.valueOf): (assert.sameValue.toString): (assert.sameValue.0b101n.Symbol.toPrimitive): (assert.sameValue.0b101n.valueOf): (assert.sameValue.0b101n.toString): (valueOf): * 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/11.8.3-1.js: (obj1.valueOf): (obj2.valueOf): * test262/test/language/expressions/less-than-or-equal/11.8.3-2.js: (obj1.valueOf): (obj2.toString): * test262/test/language/expressions/less-than-or-equal/11.8.3-3.js: (obj1.toString): (obj2.valueOf): * test262/test/language/expressions/less-than-or-equal/11.8.3-4.js: (obj1.toString): (obj2.toString): * test262/test/language/expressions/less-than-or-equal/11.8.3-5.js: Removed. * 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/less-than/bigint-and-string.js: * test262/test/language/expressions/less-than/bigint-and-symbol.js: Added. * test262/test/language/expressions/modulus/bigint-and-number.js: * test262/test/language/expressions/modulus/bigint-arithmetic.js: (testMod): Deleted. * test262/test/language/expressions/modulus/bigint-errors.js: (Symbol.toPrimitive): (0n.Symbol.toPrimitive): (valueOf): (0n.valueOf): (toString): (0n.toString): * 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: (testMul): Deleted. * test262/test/language/expressions/multiplication/bigint-errors.js: (Symbol.toPrimitive): (0n.Symbol.toPrimitive): (valueOf): (0n.valueOf): (toString): (0n.toString): * test262/test/language/expressions/multiplication/bigint-toprimitive.js: * test262/test/language/expressions/multiplication/bigint-wrapped-values.js: * test262/test/language/expressions/right-shift/bigint-and-number.js: * test262/test/language/expressions/right-shift/bigint-errors.js: (Symbol.toPrimitive): (0n.Symbol.toPrimitive): (valueOf): (0n.valueOf): (toString): (0n.toString): * test262/test/language/expressions/right-shift/bigint-non-primitive.js: (assert.sameValue.Symbol.toPrimitive): (assert.sameValue.valueOf): (assert.sameValue.toString): (assert.sameValue.0b101n.Symbol.toPrimitive): (assert.sameValue.0b101n.valueOf): (assert.sameValue.0b101n.toString): (valueOf): * 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: (assert.sameValue.0n.valueOf): (assert.sameValue.valueOf): (assert.sameValue.0n.toString): (assert.sameValue.toString): (assert.sameValue.900719925474099101n.valueOf): (assert.sameValue.900719925474099101n.toString): * 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: (assert.sameValue.0n.valueOf): (assert.sameValue.valueOf): (assert.sameValue.0n.toString): (assert.sameValue.toString): (assert.sameValue.900719925474099101n.valueOf): (assert.sameValue.900719925474099101n.toString): * 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: (testSub): Deleted. * test262/test/language/expressions/subtraction/bigint-errors.js: (Symbol.toPrimitive): (0n.Symbol.toPrimitive): (valueOf): (0n.valueOf): (toString): (0n.toString): * test262/test/language/expressions/subtraction/bigint-toprimitive.js: * test262/test/language/expressions/subtraction/bigint-wrapped-values.js: * test262/test/language/expressions/unary-minus/bigint-non-primitive.js: (assert.sameValue.Symbol.toPrimitive): (assert.sameValue.valueOf): (assert.sameValue.toString): * 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: (Symbol.toPrimitive): (0n.Symbol.toPrimitive): (valueOf): (0n.valueOf): (toString): (0n.toString): * test262/test/language/expressions/unsigned-right-shift/bigint-non-primitive.js: (Symbol.toPrimitive): (valueOf): (toString): (0b101n.Symbol.toPrimitive): (0b101n.valueOf): (0b101n.toString): (valueOf.valueOf): * test262/test/language/expressions/unsigned-right-shift/bigint-toprimitive.js: * test262/test/language/expressions/unsigned-right-shift/bigint-wrapped-values.js: * test262/test/language/literals/numeric/numeric-followed-by-ident.js: Added. * test262/test/language/literals/string/line-continuation-double.js: Added. * test262/test/language/literals/string/line-continuation-single.js: Added. * test262/test262-Revision.txt: 2018-05-25 Mark Lam for-in loops should preserve and restore the TDZ stack for each of its internal loops. https://bugs.webkit.org/show_bug.cgi?id=185995 Reviewed by Saam Barati. * stress/regress-185995.js: Added. 2018-05-23 Keith Miller Define length on CoW array should properly convert to writable https://bugs.webkit.org/show_bug.cgi?id=185927 Reviewed by Yusuke Suzuki. * stress/cow-define-length-as-value.js: Added. (test): 2018-05-23 Michael Saboff Date.parse() doesn't properly handle input outside of ES Spec limits https://bugs.webkit.org/show_bug.cgi?id=185868 Reviewed by Mark Lam. New test. * stress/date-parse-ranges.js: Added. (shouldBe): (throw.new.Error): (shouldBeNaN): 2018-05-23 Rick Waldron Conversion misspelled "Convertion" in error message string https://bugs.webkit.org/show_bug.cgi?id=185436 Reviewed by Saam Barati, Michael Saboff. * bigIntTests.yaml: 2018-05-23 Yusuke Suzuki Unreviewed, skip test if memoryLimited is specified https://bugs.webkit.org/show_bug.cgi?id=185888 * stress/regress-185888.js: 2018-05-22 Mark Lam BytecodeGeneratorification shouldn't add a ValueProfile if the JIT is disabled. https://bugs.webkit.org/show_bug.cgi?id=185896 Reviewed by Saam Barati. * stress/regress-185896.js: Added. 2018-05-22 Yusuke Suzuki [JSC] Fix CachedCall's argument count if RegExp has named captures https://bugs.webkit.org/show_bug.cgi?id=185587 Reviewed by Mark Lam. * test262/expectations.yaml: 2018-05-22 Mark Lam StringImpl utf8 conversion should not fail silently. https://bugs.webkit.org/show_bug.cgi?id=185888 Reviewed by Filip Pizlo. * stress/regress-185888.js: Added. 2018-05-22 Keith Miller We should have a CoW storage for NewArrayBuffer arrays. https://bugs.webkit.org/show_bug.cgi?id=185003 Reviewed by Filip Pizlo. * stress/cow-convert-contiguous-to-array-storage.js: Added. (createBuffer): (shouldBe): (test): * stress/cow-convert-double-to-array-storage.js: Added. (createBuffer): (shouldBe): (test): * stress/cow-convert-double-to-contiguous.js: Added. (createBuffer): (shouldBe): (test): * stress/cow-convert-int32-to-array-storage.js: Added. (createBuffer): (shouldBe): (test): * stress/cow-convert-int32-to-contiguous.js: Added. (createBuffer): (shouldBe): (test): * stress/cow-convert-int32-to-double.js: Added. (createBuffer): (shouldBe): (test): * stress/put-on-cow-prototype.js: Added. (putByVal): (putById): 2018-05-21 Yusuke Suzuki Unreviewed, reland InById cache https://bugs.webkit.org/show_bug.cgi?id=185682 * stress/in-by-id-accessors.js: Added. (shouldBe): (test): (protoGetter.__proto__.get hello): (protoSetter.__proto__.set hello): (i.shouldBe.test.get hello): (i.shouldBe.test.set hello): * stress/in-by-id-ai.js: Added. (shouldBe): (test): * stress/in-by-id-custom-accessors.js: Added. (shouldBe): (test1): (test2): * stress/in-by-id-custom-values.js: Added. (shouldBe): (test): * stress/in-by-id-operation.js: Added. (shouldBe): (test): (selfCache): * stress/in-by-id-proxy.js: Added. (shouldBe): (test): (handler.has): 2018-05-21 Commit Queue Unreviewed, rolling out r231998 and r232017. https://bugs.webkit.org/show_bug.cgi?id=185842 causes crashes on 32 JSC bot (Requested by realdawei on #webkit). Reverted changesets: "[JSC] JSC should have consistent InById IC" https://bugs.webkit.org/show_bug.cgi?id=185682 https://trac.webkit.org/changeset/231998 "Unreviewed, fix 32bit and scope release" https://bugs.webkit.org/show_bug.cgi?id=185682 https://trac.webkit.org/changeset/232017 2018-05-19 Yusuke Suzuki [JSC] JSC should have consistent InById IC https://bugs.webkit.org/show_bug.cgi?id=185682 Reviewed by Filip Pizlo. * stress/in-by-id-accessors.js: Added. (shouldBe): (test): (protoGetter.__proto__.get hello): (protoSetter.__proto__.set hello): (i.shouldBe.test.get hello): (i.shouldBe.test.set hello): * stress/in-by-id-ai.js: Added. (shouldBe): (test): * stress/in-by-id-custom-accessors.js: Added. (shouldBe): (test1): (test2): * stress/in-by-id-custom-values.js: Added. (shouldBe): (test): * stress/in-by-id-operation.js: Added. (shouldBe): (test): (selfCache): * stress/in-by-id-proxy.js: Added. (shouldBe): (test): (handler.has): 2018-05-18 Keith Miller op_in should mark if it sees out of bounds accesses https://bugs.webkit.org/show_bug.cgi?id=185792 Reviewed by Filip Pizlo. * stress/has-indexed-property-array-storage-ftl.js: (test2): * stress/has-indexed-property-slow-put-array-storage-ftl.js: (test2): 2018-05-18 Mark Lam Add missing exception check. https://bugs.webkit.org/show_bug.cgi?id=185786 Reviewed by Michael Saboff. * stress/regress-185786.js: Added. 2018-05-16 Filip Pizlo JSC should have InstanceOf inline caching https://bugs.webkit.org/show_bug.cgi?id=185652 Reviewed by Saam Barati. * microbenchmarks/instanceof-always-hit-one.js: Added. * microbenchmarks/instanceof-always-hit-two.js: Added. * microbenchmarks/instanceof-dynamic.js: Added. * microbenchmarks/instanceof-sometimes-hit.js: Added. * stress/instanceof-dynamic-proxy-check-structure.js: Added. * stress/instanceof-dynamic-proxy-loop.js: Added. * stress/instanceof-dynamic-proxy.js: Added. * stress/instanceof-hit-one-object-then-another.js: Added. * stress/instanceof-hit-two-objects-then-another.js: Added. * stress/instanceof-prototype-change.js: Added. * stress/instanceof-prototype-change-to-hit.js: Added. * stress/instanceof-prototype-change-to-null.js: Added. * stress/instanceof-prototype-change-watchpointable.js: Added. 2018-05-17 Michael Saboff We don't throw SyntaxErrors for runtime generated regular expressions with errors https://bugs.webkit.org/show_bug.cgi?id=185755 Reviewed by Keith Miller. New regression test. * stress/regexp-with-runtime-syntax-errors.js: Added. (testThrowsSyntaxtError): (fromExecWithBadUnicodeEscape): (fromTestWithBadUnicodeProperty): (fromSplitWithBadUnicodeIdentity): (fromMatchWithBadUnicodeBackReference): (fromReplaceWithBadUnicodeEscape): (fromSearchWithBadUnicodeEscape): 2018-05-16 Caio Lima [ESNext][BigInt] Implement support for "/" operation https://bugs.webkit.org/show_bug.cgi?id=183996 Reviewed by Yusuke Suzuki. * bigIntTests.yaml: * stress/big-int-div-jit.js: Added. * stress/big-int-div-memory-stress.js: Added. * stress/big-int-div-to-primitive-precedence.js: Added. * stress/big-int-div-to-primitive.js: Added. * stress/big-int-div-type-error.js: Added. * stress/big-int-div-wrapped-value.js: Added. * stress/big-int-division.js: Added. 2018-05-16 Saam Barati Constant fold CheckTypeInfoFlags on ImplementsDefaultHasInstance https://bugs.webkit.org/show_bug.cgi?id=185670 Reviewed by Yusuke Suzuki. * microbenchmarks/constant-fold-check-type-info-flags.js: Added. * stress/dont-constant-fold-check-type-info-on-bound-function.js: Added. 2018-05-16 Commit Queue Unreviewed, rolling out r231845. https://bugs.webkit.org/show_bug.cgi?id=185702 it is breaking Apple High Sierra 32-bit JSC bot (Requested by caiolima on #webkit). Reverted changeset: "[ESNext][BigInt] Implement support for "/" operation" https://bugs.webkit.org/show_bug.cgi?id=183996 https://trac.webkit.org/changeset/231845 2018-05-16 Filip Pizlo DFG models InstanceOf incorrectly https://bugs.webkit.org/show_bug.cgi?id=185694 Reviewed by Keith Miller. * stress/instanceof-proxy-check-structure.js: Added. (Foo): (Bar): (doBadThings): (getPrototypeOf): (foo): (i.new.Bar): (new.Bar): * stress/instanceof-proxy-loop.js: Added. (Foo): (Bar): (doBadThings): (getPrototypeOf): (foo): * stress/instanceof-proxy.js: Added. (Foo): (Bar): (doBadThings): (getPrototypeOf): (foo): 2018-05-16 Caio Lima [ESNext][BigInt] Implement support for "/" operation https://bugs.webkit.org/show_bug.cgi?id=183996 Reviewed by Yusuke Suzuki. * bigIntTests.yaml: * stress/big-int-div-jit.js: Added. * stress/big-int-div-memory-stress.js: Added. * stress/big-int-div-to-primitive-precedence.js: Added. * stress/big-int-div-to-primitive.js: Added. * stress/big-int-div-type-error.js: Added. * stress/big-int-div-wrapped-value.js: Added. * stress/big-int-division.js: Added. 2018-05-14 Leo Balter Fix a legacy CRLF eol from Test262 https://bugs.webkit.org/show_bug.cgi?id=185565 Reviewed by Yusuke Suzuki. * test262/config.yaml: * test262/test/built-ins/Math/cbrt/prop-desc.js: 2018-05-14 Yusuke Suzuki [JSC] timeClip(-0) should produce +0 https://bugs.webkit.org/show_bug.cgi?id=185589 Reviewed by Saam Barati. Fix several test262 failures. * stress/date-negative-zero.js: Added. (shouldBe): * test262/expectations.yaml: 2018-05-13 Caio Lima [BigInt] stress/big-int-spec-to-primitive.js test is failing https://bugs.webkit.org/show_bug.cgi?id=185582 Reviewed by Yusuke Suzuki. This patch is removing the use of ```numberOfDFGCompiles``` from stress/big-int-spec-to-primitive.js because it makes this est fail sometimes. * stress/big-int-spec-to-primitive.js: 2018-05-13 Andy VanWagoner [INTL] Improve spec & test262 compliance for Intl APIs https://bugs.webkit.org/show_bug.cgi?id=185578 Reviewed by Yusuke Suzuki. Remove intl402 failures that have been fixed. * test262/expectations.yaml: * stress/regress-178385.js: toStringTag is configurable, but not writable. 2018-05-11 Caio Lima [ESNext][BigInt] Implement support for "*" operation https://bugs.webkit.org/show_bug.cgi?id=183721 Reviewed by Yusuke Suzuki. * bigIntTests.yaml: * stress/big-int-mul-jit.js: Added. * stress/big-int-mul-to-primitive-precedence.js: Added. * stress/big-int-mul-to-primitive.js: Added. * stress/big-int-mul-type-error.js: Added. * stress/big-int-mul-wrapped-value.js: Added. * stress/big-int-multiplication.js: Added. * stress/big-int-multiply-memory-stress.js: Added. 2018-05-11 Michael Saboff [DFG] Compiler uses incorrect output register for NumberIsInteger operation https://bugs.webkit.org/show_bug.cgi?id=185328 Reviewed by Keith Miller. New regression test. * stress/isInteger-doesnt-overwrite-argument.js: Added. (testIsInteger): 2018-05-09 Yusuke Suzuki [JSC] Object.assign for final objects should be faster https://bugs.webkit.org/show_bug.cgi?id=185348 Reviewed by Saam Barati. * stress/object-assign-fast-path.js: Added. (shouldBe): (checkProperty): 2018-05-10 Leo Balter Update Test262 tests through the new import script - 20180509 https://bugs.webkit.org/show_bug.cgi?id=185482 Reviewed by Michael Saboff. Also update the test262/expecatations.yaml with the recent imported files. * test262/expectations.yaml: * test262/harness/compareIterator.js: Added. (assert.compareIterator): * test262/harness/nativeFunctionMatcher.js: (const.assertToStringOrNativeFunction): (const.assertNativeFunction): * test262/harness/regExpUtils.js: * test262/harness/testIntl.js: (getInvalidLanguageTags): * test262/harness/testTypedArray.js: * test262/harness/wellKnownIntrinsicObjects.js: Added. (WellKnownIntrinsicObjects.forEach.wkio.catch): * test262/latest-changes-summary.txt: Added. * test262/test/annexB/language/eval-code/direct/block-decl-nostrict.js: Copied from JSTests/test262/test/language/eval-code/direct/block-decl-strict-caller.js. (catch): * test262/test/annexB/language/eval-code/direct/switch-case-decl-nostrict.js: Copied from JSTests/test262/test/language/eval-code/direct/switch-case-decl-strict-source.js. (catch): * test262/test/annexB/language/eval-code/direct/switch-dflt-decl-nostrict.js: Copied from JSTests/test262/test/language/eval-code/direct/switch-dflt-decl-strict-caller.js. (catch): * test262/test/annexB/language/function-code/block-decl-nested-blocks-with-fun-decl.js: Added. (g.f): (g): * test262/test/annexB/language/function-code/block-decl-nostrict.js: Copied from JSTests/test262/test/language/function-code/block-decl-strict.js. (catch): (f): * test262/test/annexB/language/function-code/switch-case-decl-nostrict.js: Copied from JSTests/test262/test/language/function-code/switch-case-decl-strict.js. (catch): (switch.case.1): (switch): * test262/test/annexB/language/function-code/switch-dflt-decl-nostrict.js: Copied from JSTests/test262/test/language/function-code/switch-dflt-decl-strict.js. (catch): (switch.default): (switch): * test262/test/built-ins/Array/prototype/filter/target-array-with-non-writable-property.js: Added. (a.Symbol.species): (r.a.filter): * test262/test/built-ins/Array/prototype/indexOf/calls-only-has-on-prototype-after-length-zeroed.js: Added. (allowProxyTraps.has): (fromIndex.valueOf): * test262/test/built-ins/Array/prototype/lastIndexOf/calls-only-has-on-prototype-after-length-zeroed.js: Added. (allowProxyTraps.has): (fromIndex.valueOf): * test262/test/built-ins/Array/prototype/map/target-array-with-non-writable-property.js: Added. (a.Symbol.species): (r.a.map): * test262/test/built-ins/Array/prototype/slice/target-array-with-non-writable-property.js: Added. (a.Symbol.species): * test262/test/built-ins/Array/prototype/splice/property-traps-order-with-species.js: Added. (a.Symbol.species): * test262/test/built-ins/Array/prototype/splice/target-array-with-non-writable-property.js: Added. (a.Symbol.species): * test262/test/built-ins/Atomics/Symbol.toStringTag.js: * test262/test/built-ins/Atomics/add/bad-range.js: (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/add/good-views.js: (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/add/non-views.js: * test262/test/built-ins/Atomics/add/nonshared-int-views.js: (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/add/shared-nonint-views.js: (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/and/bad-range.js: (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/and/good-views.js: (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/and/non-views.js: * test262/test/built-ins/Atomics/and/nonshared-int-views.js: (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/and/shared-nonint-views.js: (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/compareExchange/bad-range.js: (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/compareExchange/good-views.js: (testWithTypedArrayConstructors): (view): Deleted. * test262/test/built-ins/Atomics/compareExchange/non-views.js: * test262/test/built-ins/Atomics/compareExchange/nonshared-int-views.js: (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/compareExchange/shared-nonint-views.js: (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/exchange/bad-range.js: (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/exchange/good-views.js: (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/exchange/non-views.js: * test262/test/built-ins/Atomics/exchange/nonshared-int-views.js: (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/exchange/shared-nonint-views.js: (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/isLockFree/corner-cases.js: (hide): * test262/test/built-ins/Atomics/isLockFree/value.js: (testIsLockFree): Deleted. * test262/test/built-ins/Atomics/load/bad-range.js: (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/load/good-views.js: (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/load/non-views.js: * test262/test/built-ins/Atomics/load/nonshared-int-views.js: (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/load/shared-nonint-views.js: (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/or/bad-range.js: (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/or/good-views.js: (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/or/non-views.js: * test262/test/built-ins/Atomics/or/nonshared-int-views.js: (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/or/shared-nonint-views.js: (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/prop-desc.js: * test262/test/built-ins/Atomics/proto.js: * test262/test/built-ins/Atomics/store/bad-range.js: (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/store/good-views.js: (testWithTypedArrayConstructors): (ToInteger): * test262/test/built-ins/Atomics/store/non-views.js: * test262/test/built-ins/Atomics/store/nonshared-int-views.js: (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/store/shared-nonint-views.js: (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/sub/bad-range.js: (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/sub/good-views.js: (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/sub/non-views.js: * test262/test/built-ins/Atomics/sub/nonshared-int-views.js: (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/sub/shared-nonint-views.js: (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/wait/bad-range.js: Copied from JSTests/test262/test/built-ins/Atomics/wake/bad-range.js. (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/wait/cannot-suspend-throws.js: * test262/test/built-ins/Atomics/wait/did-timeout.js: (getReport): * test262/test/built-ins/Atomics/wait/false-for-timeout-agent.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/false-for-timeout.js. (getReport): (262.agent.start.valueOf.valueOf): (toPrimitive.Symbol.toPrimitive): (262.agent.receiveBroadcast): * test262/test/built-ins/Atomics/wait/false-for-timeout.js: (valueOf.valueOf): (toPrimitive.Symbol.toPrimitive): (getReport): Deleted. (262.agent.start.262.agent.receiveBroadcast): Deleted. * test262/test/built-ins/Atomics/wait/good-views.js: (r.getReport): (getReport): * test262/test/built-ins/Atomics/wait/nan-for-timeout.js: (getReport): * test262/test/built-ins/Atomics/wait/negative-index-throws.js: * test262/test/built-ins/Atomics/wait/negative-timeout-agent.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/negative-timeout.js. (getReport): (262.agent.start.262.agent.receiveBroadcast): * test262/test/built-ins/Atomics/wait/negative-timeout.js: (262.agent.start.262.agent.receiveBroadcast): Deleted. (getReport): Deleted. * test262/test/built-ins/Atomics/wait/no-spurious-wakeup.js: (getReport): * test262/test/built-ins/Atomics/wait/non-int32-typedarray-throws.js: * test262/test/built-ins/Atomics/wait/non-shared-bufferdata-throws.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/nonshared-bufferdata-throws.js. * test262/test/built-ins/Atomics/wait/not-a-typedarray-throws.js: * test262/test/built-ins/Atomics/wait/not-an-object-throws.js: * test262/test/built-ins/Atomics/wait/null-bufferdata-throws.js: * test262/test/built-ins/Atomics/wait/null-for-timeout-agent.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/false-for-timeout.js. (getReport): (262.agent.start.valueOf.valueOf): (toPrimitive.Symbol.toPrimitive): (262.agent.receiveBroadcast): * test262/test/built-ins/Atomics/wait/null-for-timeout.js: (valueOf.valueOf): (toPrimitive.Symbol.toPrimitive): (getReport): Deleted. (262.agent.start.262.agent.receiveBroadcast): Deleted. * test262/test/built-ins/Atomics/wait/object-for-timeout-agent.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/false-for-timeout.js. (getReport): (262.agent.start.valueOf.valueOf): (toString.toString): (toPrimitive.Symbol.toPrimitive): (262.agent.receiveBroadcast): * test262/test/built-ins/Atomics/wait/object-for-timeout.js: (valueOf.valueOf): (toString.toString): (toPrimitive.Symbol.toPrimitive): (getReport): Deleted. (262.agent.start.262.agent.receiveBroadcast): Deleted. * test262/test/built-ins/Atomics/wait/out-of-range-index-throws.js: * test262/test/built-ins/Atomics/wait/poisoned-object-for-timeout-throws-agent.js: Added. (getReport): (262.agent.start.poisonedValueOf.valueOf): (poisonedToPrimitive.Symbol.toPrimitive): (262.agent.receiveBroadcast): * test262/test/built-ins/Atomics/wait/poisoned-object-for-timeout-throws.js: (poisonedValueOf.valueOf): (poisonedToPrimitive.Symbol.toPrimitive): (getReport): Deleted. (262.agent.start.262.agent.receiveBroadcast): Deleted. * test262/test/built-ins/Atomics/wait/symbol-for-index-throws-agent.js: Added. (getReport): (262.agent.start.poisonedValueOf.valueOf): (poisonedToPrimitive.Symbol.toPrimitive): (262.agent.receiveBroadcast): * test262/test/built-ins/Atomics/wait/symbol-for-index-throws.js: (poisonedToPrimitive.Symbol.toPrimitive): (poisoned.valueOf): Deleted. (poisonedWithString.get valueOf): Deleted. (poisonedToPrimitive.get Symbol): Deleted. * test262/test/built-ins/Atomics/wait/symbol-for-timeout-throws-agent.js: Added. (getReport): (262.agent.start.262.agent.receiveBroadcast): * test262/test/built-ins/Atomics/wait/symbol-for-timeout-throws.js: (poisonedValueOf.valueOf): (poisonedToPrimitive.Symbol.toPrimitive): (getReport): Deleted. (262.agent.start.262.agent.receiveBroadcast): Deleted. * test262/test/built-ins/Atomics/wait/symbol-for-value-throws-agent.js: Added. (getReport): (262.agent.start.poisonedValueOf.valueOf): (poisonedToPrimitive.Symbol.toPrimitive): (262.agent.receiveBroadcast): * test262/test/built-ins/Atomics/wait/symbol-for-value-throws.js: Added. (poisonedValueOf.valueOf): (poisonedToPrimitive.Symbol.toPrimitive): * test262/test/built-ins/Atomics/wait/true-for-timeout-agent.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/null-for-timeout.js. (getReport): (262.agent.start.valueOf.valueOf): (toPrimitive.Symbol.toPrimitive): (262.agent.receiveBroadcast): * test262/test/built-ins/Atomics/wait/true-for-timeout.js: (valueOf.valueOf): (toPrimitive.Symbol.toPrimitive): (getReport): Deleted. (262.agent.start.262.agent.receiveBroadcast): Deleted. * test262/test/built-ins/Atomics/wait/undefined-for-timeout.js: (getReport): * test262/test/built-ins/Atomics/wait/undefined-index-defaults-to-zero.js: (262.agent.start.262.agent.receiveBroadcast): (getReport): * test262/test/built-ins/Atomics/wait/value-not-equal.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/wait-index-value-not-equal.js. (getReport): (262.agent.start.262.agent.receiveBroadcast): * test262/test/built-ins/Atomics/wait/wait-index-value-not-equal.js: (262.agent.start.262.agent.receiveBroadcast): * test262/test/built-ins/Atomics/wait/waiterlist-block-indexedposition-wake.js: Added. (getReport): (262.agent.start.262.agent.receiveBroadcast): * test262/test/built-ins/Atomics/wait/waiterlist-order-of-operations-is-fifo.js: Added. (getReport): (262.agent.start.262.agent.receiveBroadcast): * test262/test/built-ins/Atomics/wait/was-woken-before-timeout.js: (getReport): (262.agent.start.262.agent.receiveBroadcast): * test262/test/built-ins/Atomics/wait/was-woken.js: (getReport): (262.agent.start.262.agent.receiveBroadcast): * test262/test/built-ins/Atomics/wake/bad-range.js: (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/wake/count-boundary-cases.js: Renamed from JSTests/test262/test/built-ins/Atomics/wake/counts.js. * test262/test/built-ins/Atomics/wake/count-defaults-to-infinity-missing.js: Added. (getReport): (262.agent.start.262.agent.receiveBroadcast): * test262/test/built-ins/Atomics/wake/count-defaults-to-infinity-undefined.js: Added. (getReport): (262.agent.start.262.agent.receiveBroadcast): * test262/test/built-ins/Atomics/wake/count-from-nans.js: Added. * test262/test/built-ins/Atomics/wake/count-symbol-throws.js: Added. * test262/test/built-ins/Atomics/wake/count-tointeger-throws-then-wake-throws.js: Added. (poisoned.valueOf): * test262/test/built-ins/Atomics/wake/good-views.js: * test262/test/built-ins/Atomics/wake/negative-count.js: Renamed from JSTests/test262/test/built-ins/Atomics/wake/wake-negative.js. * test262/test/built-ins/Atomics/wake/negative-index-throws.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/negative-index-throws.js. (poisoned.valueOf): * test262/test/built-ins/Atomics/wake/non-int32-typedarray-throws.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/non-int32-typedarray-throws.js. (poisoned.valueOf): * test262/test/built-ins/Atomics/wake/non-shared-bufferdata-throws.js: Renamed from JSTests/test262/test/built-ins/Atomics/wait/nonshared-bufferdata-throws.js. (poisoned.valueOf): * test262/test/built-ins/Atomics/wake/non-views.js: * test262/test/built-ins/Atomics/wake/nonshared-int-views.js: (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/wake/not-a-typedarray-throws.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/not-a-typedarray-throws.js. (poisoned.valueOf): * test262/test/built-ins/Atomics/wake/not-an-object-throws.js: Added. (poisoned.valueOf): * test262/test/built-ins/Atomics/wake/null-bufferdata-throws.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/null-bufferdata-throws.js. (poisoned.valueOf): * test262/test/built-ins/Atomics/wake/out-of-range-index-throws.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/out-of-range-index-throws.js. (poisoned.valueOf): * test262/test/built-ins/Atomics/wake/shared-nonint-views.js: (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/wake/symbol-for-index-throws.js: Added. (poisonedValueOf.valueOf): (poisonedToPrimitive.Symbol.toPrimitive): * test262/test/built-ins/Atomics/wake/undefined-index-defaults-to-zero.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/undefined-index-defaults-to-zero.js. (262.agent.start.262.agent.receiveBroadcast): (getReport): * test262/test/built-ins/Atomics/wake/wake-all-on-loc.js: (262.agent.start.262.agent.receiveBroadcast): (getReport): (waitUntil): * test262/test/built-ins/Atomics/wake/wake-all.js: (262.agent.start.262.agent.receiveBroadcast): (getReport): (waitUntil): * test262/test/built-ins/Atomics/wake/wake-in-order.js: (getReport): (waitUntil): * test262/test/built-ins/Atomics/wake/wake-nan.js: (getReport): * test262/test/built-ins/Atomics/wake/wake-one.js: (getReport): (waitUntil): * test262/test/built-ins/Atomics/wake/wake-rewake-noop.js: Added. (getReport): (waitUntil): (262.agent.start.262.agent.receiveBroadcast): * test262/test/built-ins/Atomics/wake/wake-two.js: (getReport): * test262/test/built-ins/Atomics/wake/wake-with-no-agents-waiting.js: Added. (262.agent.start.262.agent.receiveBroadcast): (waitUntil): * test262/test/built-ins/Atomics/wake/wake-with-no-matching-agents-waiting.js: Added. (262.agent.start.262.agent.receiveBroadcast): (waitUntil): * test262/test/built-ins/Atomics/wake/wake-zero.js: (i.262.agent.start.262.agent.receiveBroadcast): (getReport): (waitUntil): * test262/test/built-ins/Atomics/xor/bad-range.js: (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/xor/good-views.js: (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/xor/non-views.js: * test262/test/built-ins/Atomics/xor/nonshared-int-views.js: (testWithTypedArrayConstructors): * test262/test/built-ins/Atomics/xor/shared-nonint-views.js: (testWithTypedArrayConstructors): * test262/test/built-ins/BigInt/asIntN/bigint-tobigint-errors.js: * test262/test/built-ins/BigInt/asIntN/bigint-tobigint-toprimitive.js: * test262/test/built-ins/BigInt/asIntN/bigint-tobigint-wrapped-values.js: * test262/test/built-ins/BigInt/asIntN/bits-toindex-errors.js: * test262/test/built-ins/BigInt/asIntN/bits-toindex-toprimitive.js: * test262/test/built-ins/BigInt/asIntN/bits-toindex-wrapped-values.js: * test262/test/built-ins/BigInt/asUintN/bigint-tobigint-errors.js: * test262/test/built-ins/BigInt/asUintN/bigint-tobigint-toprimitive.js: * test262/test/built-ins/BigInt/asUintN/bigint-tobigint-wrapped-values.js: * test262/test/built-ins/BigInt/asUintN/bits-toindex-errors.js: * test262/test/built-ins/BigInt/asUintN/bits-toindex-toprimitive.js: * test262/test/built-ins/BigInt/asUintN/bits-toindex-wrapped-values.js: * test262/test/built-ins/BigInt/constructor-empty-string.js: * test262/test/built-ins/BigInt/constructor-from-binary-string.js: * test262/test/built-ins/BigInt/constructor-from-decimal-string.js: * test262/test/built-ins/BigInt/constructor-from-hex-string.js: * test262/test/built-ins/BigInt/constructor-from-octal-string.js: * test262/test/built-ins/BigInt/constructor-from-string-syntax-errors.js: * test262/test/built-ins/BigInt/constructor-integer.js: Added. * test262/test/built-ins/BigInt/constructor-trailing-leading-spaces.js: * test262/test/built-ins/BigInt/issafeinteger-true.js: Removed. * test262/test/built-ins/BigInt/out-of-bounds-integer-rangeerror.js: Removed. * test262/test/built-ins/BigInt/prototype/Symbol.toStringTag.js: * test262/test/built-ins/BigInt/prototype/toString/default-radix.js: Added. * test262/test/built-ins/BigInt/prototype/toString/thisbigintvalue-not-valid-throws.js: * test262/test/built-ins/BigInt/prototype/valueOf/cross-realm.js: Added. * test262/test/built-ins/BigInt/tostring-throws.js: Copied from JSTests/test262/test/built-ins/BigInt/value-of-throws.js. * test262/test/built-ins/BigInt/valueof-throws.js: Renamed from JSTests/test262/test/built-ins/BigInt/value-of-throws.js. (BigInt.valueOf): * test262/test/built-ins/DataView/prototype/setBigInt64/set-values-return-undefined.js: (values.forEach): * test262/test/built-ins/Function/prototype/bind/length-exceeds-int32.js: Added. (f): * test262/test/built-ins/Function/prototype/toString/anonymous-intrinsics.js: Removed. * test262/test/built-ins/Function/prototype/toString/bound-function.js: (assertNativeFunction): (let.f): Deleted. * test262/test/built-ins/Function/prototype/toString/built-in-function-object.js: Added. * test262/test/built-ins/Function/prototype/toString/intrinsics.js: Removed. * test262/test/built-ins/Function/prototype/toString/proxy-arrow-function.js: Added. (assertNativeFunction.new.Proxy): * test262/test/built-ins/Function/prototype/toString/proxy-async-function.js: Added. (assertNativeFunction.new.Proxy.async): * test262/test/built-ins/Function/prototype/toString/proxy-async-generator-function.js: Added. (assertNativeFunction.new.Proxy.async): * test262/test/built-ins/Function/prototype/toString/proxy-async-generator-method-definition.js: Added. (assertNativeFunction.new.Proxy.async.method): (apply): * test262/test/built-ins/Function/prototype/toString/proxy-async-method-definition.js: Added. (assertNativeFunction.new.Proxy.async.method): (apply): * test262/test/built-ins/Function/prototype/toString/proxy-bound-function.js: Added. (assertNativeFunction.new.Proxy): (bind): * test262/test/built-ins/Function/prototype/toString/proxy-class.js: Added. (assertNativeFunction): * test262/test/built-ins/Function/prototype/toString/proxy-function-expression.js: Added. (assertNativeFunction.new.Proxy): * test262/test/built-ins/Function/prototype/toString/proxy-generator-function.js: Added. (assertNativeFunction.new.Proxy): * test262/test/built-ins/Function/prototype/toString/proxy-method-definition.js: Added. (assertNativeFunction.new.Proxy.method): (apply): * test262/test/built-ins/Function/prototype/toString/proxy-non-callable-throws.js: Added. * test262/test/built-ins/Function/prototype/toString/proxy.js: Removed. * test262/test/built-ins/Function/prototype/toString/well-known-intrinsic-object-functions.js: Added. (WellKnownIntrinsicObjects.forEach): * test262/test/built-ins/JSON/prop-desc.js: Added. * test262/test/built-ins/Math/acosh/nan-returns.js: * test262/test/built-ins/Math/asinh/asinh-specialVals.js: * test262/test/built-ins/Math/atanh/atanh-specialVals.js: * test262/test/built-ins/Math/cbrt/cbrt-specialValues.js: * test262/test/built-ins/Math/cbrt/prop-desc.js: * test262/test/built-ins/Math/cosh/cosh-specialVals.js: * test262/test/built-ins/Math/expm1/expm1-specialVals.js: * test262/test/built-ins/Math/log10/Log10-specialVals.js: * test262/test/built-ins/Math/log2/log2-basicTests.js: * test262/test/built-ins/Math/prop-desc.js: * test262/test/built-ins/Math/sign/sign-specialVals.js: * test262/test/built-ins/Math/sinh/sinh-specialVals.js: * test262/test/built-ins/Math/tanh/tanh-specialVals.js: * test262/test/built-ins/Math/trunc/trunc-sampleTests.js: * test262/test/built-ins/Math/trunc/trunc-specialVals.js: * test262/test/built-ins/Object/assign/strings-and-symbol-order.js: Added. * test262/test/built-ins/Object/keys/property-traps-order-with-proxied-array.js: Added. (get t): * test262/test/built-ins/Reflect/Reflect.js: Removed. * test262/test/built-ins/Reflect/prop-desc.js: Added. * test262/test/built-ins/Reflect/properties.js: Removed. * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/internal-regexp-lastindex-not-zero.js: Added. * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/isregexp-internal-regexp-is-false.js: Added. * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/isregexp-internal-regexp-throws.js: Added. * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/isregexp-this-throws.js: Added. (obj.get Symbol): * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/length.js: Added. * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/name.js: Added. * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/prop-desc.js: Added. * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/regexpcreate-this-throws.js: Added. (obj.toString): * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-get-constructor-throws.js: Added. * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-get-species-throws.js: Added. (regexp.get Symbol): * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-is-not-object-throws.js: Added. * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-is-undefined.js: Added. * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-species-is-not-constructor.js: Added. (callMatchAll): * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-species-is-null-or-undefined.js: Added. (TestWithConstructor): * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-species-throws.js: Added. (regexp.Symbol.species): * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor.js: Added. (regexp.Symbol.species): * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-regexp-get-global-throws.js: Added. (regexp.Symbol.species): (get assert): * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-regexp-get-unicode-throws.js: Added. (regexp.Symbol.species): (get assert): * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/string-tostring-throws.js: Added. (obj.valueOf): (obj.toString): * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/string-tostring.js: Added. (obj.toString): * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/this-get-flags-throws.js: Added. * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/this-get-flags.js: Added. * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/this-lastindex-cached.js: Added. (regexp.lastIndex.valueOf): * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/this-not-object-throws.js: Added. (callMatchAll): * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/this-tolength-lastindex-throws.js: Added. (regexp.lastIndex.valueOf): * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/this-tostring-flags-throws.js: Added. (value.valueOf): (value.toString): * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/this-tostring-flags.js: Added. (value.toString): * test262/test/built-ins/RegExpStringIteratorPrototype/Symbol.toStringTag.js: Added. * test262/test/built-ins/RegExpStringIteratorPrototype/ancestry.js: Added. * test262/test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-call-throws.js: Added. (RegExp.prototype.exec): * test262/test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-get-throws.js: Added. * test262/test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-match-get-0-throws.js: Added. (return.get string_appeared_here): (RegExp.prototype.exec): * test262/test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-match-get-0-tostring-throws.js: Added. (return.toString): (RegExp.prototype.exec): * test262/test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-match-get-0-tostring.js: Added. (execResult.get string_appeared_here): (RegExp.prototype.exec): * test262/test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-not-callable.js: Added. (TestWithRegExpExec): * test262/test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec.js: Added. (callNextWithExecReturnValue.RegExp.prototype.exec): (callNextWithExecReturnValue): * test262/test/built-ins/RegExpStringIteratorPrototype/next/length.js: Added. * test262/test/built-ins/RegExpStringIteratorPrototype/next/name.js: Added. * test262/test/built-ins/RegExpStringIteratorPrototype/next/next-iteration-global.js: Added. * test262/test/built-ins/RegExpStringIteratorPrototype/next/next-iteration.js: Added. * test262/test/built-ins/RegExpStringIteratorPrototype/next/next-missing-internal-slots.js: Added. * test262/test/built-ins/RegExpStringIteratorPrototype/next/prop-desc.js: Added. * test262/test/built-ins/RegExpStringIteratorPrototype/next/regexp-tolength-lastindex-throws.js: Added. (RegExp.prototype.exec): * test262/test/built-ins/RegExpStringIteratorPrototype/next/this-is-not-object-throws.js: Added. (callNext): * test262/test/built-ins/String/prototype/matchAll/length.js: Added. * test262/test/built-ins/String/prototype/matchAll/name.js: Added. * test262/test/built-ins/String/prototype/matchAll/prop-desc.js: Added. * test262/test/built-ins/String/prototype/matchAll/regexp-get-matchAll-throws.js: Added. * test262/test/built-ins/String/prototype/matchAll/regexp-is-null.js: Added. * test262/test/built-ins/String/prototype/matchAll/regexp-is-undefined.js: Added. * test262/test/built-ins/String/prototype/matchAll/regexp-matchAll-invocation.js: Added. (obj.Symbol.matchAll): * test262/test/built-ins/String/prototype/matchAll/regexp-matchAll-throws.js: Added. (regexp.Symbol.matchAll): * test262/test/built-ins/String/prototype/matchAll/regexp-prototype-get-matchAll-throws.js: Added. * test262/test/built-ins/String/prototype/matchAll/regexp-prototype-has-no-matchAll.js: Added. * test262/test/built-ins/String/prototype/matchAll/regexp-prototype-matchAll-invocation.js: Added. (RegExp.prototype.Symbol.matchAll): * test262/test/built-ins/String/prototype/matchAll/regexp-prototype-matchAll-throws.js: Added. (RegExp.prototype.Symbol.matchAll): * test262/test/built-ins/String/prototype/matchAll/this-val-non-obj-coercible.js: Added. * test262/test/built-ins/Symbol/matchAll/cross-realm.js: Added. * test262/test/built-ins/Symbol/matchAll/prop-desc.js: Added. * test262/test/harness/testTypedArray.js: * test262/test/intl402/Array/prototype/toLocaleString/calls-toLocaleString-number-elements.js: Added. * test262/test/intl402/Intl/getCanonicalLocales/invalid-tags.js: * test262/test/intl402/Locale/constructor-newtarget-undefined.js: Added. * test262/test/intl402/Locale/constructor-options-calendar-invalid.js: Added. (const.invalidCalendarOption.of.invalidCalendarOptions.new.Intl.Locale): * test262/test/intl402/Locale/constructor-options-calendar-valid.js: Added. * test262/test/intl402/Locale/constructor-options-language-invalid.js: Added. (const.invalidLanguageOption.of.invalidLanguageOptions.new.Intl.Locale): * test262/test/intl402/Locale/constructor-options-language-valid.js: Added. (toString): * test262/test/intl402/Locale/constructor-options-region-invalid.js: Added. (const.invalidRegionOption.of.invalidRegionOptions.new.Intl.Locale): * test262/test/intl402/Locale/constructor-options-region-valid.js: Added. * test262/test/intl402/Locale/constructor-options-script-invalid.js: Added. (const.invalidScriptOption.of.invalidScriptOptions.new.Intl.Locale): * test262/test/intl402/Locale/constructor-options-script-valid.js: Added. (toString): * test262/test/intl402/Locale/function-prototype.js: Added. * test262/test/intl402/Locale/instance-extensibility.js: Added. * test262/test/intl402/Locale/instance.js: Added. * test262/test/intl402/Locale/invalid-tag-throws-boolean.js: Added. * test262/test/intl402/Locale/invalid-tag-throws-null.js: Added. * test262/test/intl402/Locale/invalid-tag-throws-number.js: Added. * test262/test/intl402/Locale/invalid-tag-throws-symbol.js: Added. * test262/test/intl402/Locale/invalid-tag-throws-undefined.js: Added. * test262/test/intl402/Locale/invalid-tag-throws.js: Added. (const.invalidTag.of.getInvalidLanguageTags): * test262/test/intl402/Locale/length.js: Added. * test262/test/intl402/Locale/name.js: Added. * test262/test/intl402/Locale/prop-desc.js: Added. * test262/test/intl402/Locale/prototype/constructor.js: Added. * test262/test/intl402/Locale/prototype/maximize/length.js: Added. * test262/test/intl402/Locale/prototype/maximize/name.js: Added. * test262/test/intl402/Locale/prototype/maximize/prop-desc.js: Added. * test262/test/intl402/Locale/prototype/prop-desc.js: Added. * test262/test/intl402/Locale/prototype/toStringTag.js: Added. * test262/test/intl402/TypedArray/prototype/toLocaleString/calls-toLocaleString-number-elements.js: Added. (testWithTypedArrayConstructors): * test262/test/language/asi/S7.9_A11_T8.js: (else.x.1): Deleted. * test262/test/language/asi/S7.9_A4.js: (catch): * test262/test/language/asi/S7.9_A5.1_T1.js: * test262/test/language/asi/S7.9_A5.3_T1.js: * test262/test/language/block-scope/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-var-declaration-nested-in-function.js: Added. (g.f): (g): * test262/test/language/destructuring/binding/initialization-requires-object-coercible-null.js: * test262/test/language/destructuring/binding/initialization-requires-object-coercible-undefined.js: * test262/test/language/destructuring/binding/initialization-returns-normal-completion-for-empty-objects.js: * test262/test/language/destructuring/binding/syntax/array-elements-with-initializer.js: * test262/test/language/destructuring/binding/syntax/array-elements-with-object-patterns.js: * test262/test/language/destructuring/binding/syntax/array-elements-without-initializer.js: * test262/test/language/destructuring/binding/syntax/array-pattern-with-elisions.js: * test262/test/language/destructuring/binding/syntax/array-pattern-with-no-elements.js: * test262/test/language/destructuring/binding/syntax/array-rest-elements.js: * test262/test/language/destructuring/binding/syntax/object-pattern-with-no-property-list.js: * test262/test/language/destructuring/binding/syntax/property-list-bindings-elements.js: * test262/test/language/destructuring/binding/syntax/property-list-followed-by-a-single-comma.js: * test262/test/language/destructuring/binding/syntax/property-list-single-name-bindings.js: * test262/test/language/destructuring/binding/syntax/property-list-with-property-list.js: * test262/test/language/destructuring/binding/syntax/recursive-array-and-object-patterns.js: * test262/test/language/eval-code/direct/block-decl-eval-source-is-strict-nostrict.js: Copied from JSTests/test262/test/language/eval-code/direct/block-decl-strict-source.js. * test262/test/language/eval-code/direct/block-decl-eval-source-is-strict-onlystrict.js: Renamed from JSTests/test262/test/language/eval-code/direct/block-decl-strict-source.js. (catch): * test262/test/language/eval-code/direct/block-decl-onlystrict.js: Renamed from JSTests/test262/test/language/eval-code/direct/block-decl-strict-caller.js. * test262/test/language/eval-code/direct/switch-case-decl-eval-source-is-strict-nostrict.js: Renamed from JSTests/test262/test/language/eval-code/direct/switch-case-decl-strict-source.js. * test262/test/language/eval-code/direct/switch-case-decl-eval-source-is-strict-onlystrict.js: Copied from JSTests/test262/test/language/eval-code/direct/switch-case-decl-strict-caller.js. (catch): * test262/test/language/eval-code/direct/switch-case-decl-onlystrict.js: Renamed from JSTests/test262/test/language/eval-code/direct/switch-case-decl-strict-caller.js. * test262/test/language/eval-code/direct/switch-dflt-decl-eval-source-is-strict-nostrict.js: Renamed from JSTests/test262/test/language/eval-code/direct/switch-dflt-decl-strict-source.js. * test262/test/language/eval-code/direct/switch-dflt-decl-eval-source-is-strict-onlystrict.js: Copied from JSTests/test262/test/language/eval-code/direct/switch-dflt-decl-strict-caller.js. (catch): * test262/test/language/eval-code/direct/switch-dflt-decl-onlystrict.js: Renamed from JSTests/test262/test/language/eval-code/direct/switch-dflt-decl-strict-caller.js. * test262/test/language/expressions/async-arrow-function/await-as-param-ident-nested-arrow-parameter-position.js: Added. (async): * test262/test/language/expressions/async-arrow-function/await-as-param-nested-arrow-body-position.js: Added. (async): * test262/test/language/expressions/async-arrow-function/await-as-param-nested-arrow-parameter-position.js: Added. (async.a): * test262/test/language/expressions/async-arrow-function/await-as-param-rest-nested-arrow-parameter-position.js: Added. (async.a): * test262/test/language/expressions/async-arrow-function/escaped-async-line-terminator.js: Added. * test262/test/language/expressions/async-generator/generator-created-after-decl-inst.js: Added. (g.async.a): * test262/test/language/expressions/class/class-name-ident-await-escaped-module.js: Added. (C): * test262/test/language/expressions/class/class-name-ident-await-escaped.js: Added. (C): * test262/test/language/expressions/class/class-name-ident-await-module.js: Added. (C): * test262/test/language/expressions/class/class-name-ident-await.js: Added. (C): * test262/test/language/expressions/class/class-name-ident-let-escaped.js: Added. (C): * test262/test/language/expressions/class/class-name-ident-let.js: Added. (C): * test262/test/language/expressions/class/class-name-ident-static-escaped.js: Added. (C): * test262/test/language/expressions/class/class-name-ident-static.js: Added. * test262/test/language/expressions/class/class-name-ident-yield-escaped.js: Added. (C): * test262/test/language/expressions/class/class-name-ident-yield.js: Added. (C): * test262/test/language/expressions/class/constructor-this-tdz-during-initializers.js: Added. (Base): (C): * test262/test/language/expressions/class/fields-run-once-on-double-super.js: Added. (Base): (C): * test262/test/language/expressions/generators/generator-created-after-decl-inst.js: Added. (g): * test262/test/language/expressions/greater-than-or-equal/bigint-and-incomparable-string.js: Added. * test262/test/language/expressions/greater-than-or-equal/bigint-and-string.js: Added. * test262/test/language/expressions/greater-than/bigint-and-boolean.js: Added. * test262/test/language/expressions/greater-than/bigint-and-incomparable-string.js: Added. * test262/test/language/expressions/greater-than/bigint-and-string.js: Added. * test262/test/language/expressions/less-than-or-equal/bigint-and-incomparable-string.js: Added. * test262/test/language/expressions/less-than-or-equal/bigint-and-string.js: Added. * test262/test/language/expressions/less-than/bigint-and-boolean.js: Added. * test262/test/language/expressions/less-than/bigint-and-incomparable-string.js: Added. * test262/test/language/expressions/less-than/bigint-and-string.js: Added. * test262/test/language/expressions/object/method-definition/generator-super-prop-param.js: * test262/test/language/function-code/block-decl-onlystrict.js: Renamed from JSTests/test262/test/language/function-code/block-decl-strict.js. * test262/test/language/function-code/switch-case-decl-onlystrict.js: Renamed from JSTests/test262/test/language/function-code/switch-case-decl-strict.js. * test262/test/language/function-code/switch-dflt-decl-onlystrict.js: Renamed from JSTests/test262/test/language/function-code/switch-dflt-decl-strict.js. * test262/test/language/line-terminators/S7.3_A2.3.js: Removed. * test262/test/language/line-terminators/S7.3_A2.4.js: Removed. * test262/test/language/literals/regexp/invalid-optional-lookbehind.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js. * test262/test/language/literals/regexp/invalid-optional-negative-lookbehind.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js. * test262/test/language/literals/regexp/invalid-range-lookbehind.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js. * test262/test/language/literals/regexp/invalid-range-negative-lookbehind.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js. * test262/test/language/literals/regexp/u-invalid-optional-lookahead.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js. * test262/test/language/literals/regexp/u-invalid-optional-lookbehind.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js. * test262/test/language/literals/regexp/u-invalid-optional-negative-lookahead.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js. * test262/test/language/literals/regexp/u-invalid-optional-negative-lookbehind.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js. * test262/test/language/literals/regexp/u-invalid-range-lookahead.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js. * test262/test/language/literals/regexp/u-invalid-range-lookbehind.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js. * test262/test/language/literals/regexp/u-invalid-range-negative-lookahead.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js. * test262/test/language/literals/regexp/u-invalid-range-negative-lookbehind.js: Renamed from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js. * test262/test/language/literals/string/line-separator-eval.js: Added. * test262/test/language/literals/string/line-separator.js: Added. * test262/test/language/literals/string/paragraph-separator-eval.js: Added. * test262/test/language/literals/string/paragraph-separator.js: Added. * test262/test/language/module-code/early-strict-mode.js: * test262/test/language/statements/async-generator/generator-created-after-decl-inst.js: Added. (async.g): * test262/test/language/statements/break/S12.8_A8_T1.js: (catch): * test262/test/language/statements/break/S12.8_A8_T2.js: (catch): * test262/test/language/statements/class/class-name-ident-await-escaped-module.js: Added. (aw): * test262/test/language/statements/class/class-name-ident-await-escaped.js: Added. (aw): * test262/test/language/statements/class/class-name-ident-await-module.js: Added. (await): * test262/test/language/statements/class/class-name-ident-await.js: Added. (await): * test262/test/language/statements/class/class-name-ident-let-escaped.js: Added. (l): * test262/test/language/statements/class/class-name-ident-let.js: Added. (let): * test262/test/language/statements/class/class-name-ident-static-escaped.js: Added. (st): * test262/test/language/statements/class/class-name-ident-static.js: Added. * test262/test/language/statements/class/class-name-ident-yield-escaped.js: Added. (yi): * test262/test/language/statements/class/class-name-ident-yield.js: Added. (yield): * test262/test/language/statements/continue/S12.7_A8_T1.js: (catch): * test262/test/language/statements/continue/S12.7_A8_T2.js: (catch): * test262/test/language/statements/generators/generator-created-after-decl-inst.js: Added. (g): * test262/test/language/statements/try/early-catch-duplicates.js: * test262/test/language/statements/try/early-catch-function.js: Added. (f.catch.e): (f): * test262/test/language/statements/try/early-catch-lex.js: * test262/test/language/statements/try/early-catch-var.js: * test262/test262-Revision.txt: 2018-05-09 Caio Lima [ESNext][BigInt] Implement support for "==" operation https://bugs.webkit.org/show_bug.cgi?id=184474 Reviewed by Yusuke Suzuki. * stress/big-int-equals-basic.js: Added. * stress/big-int-equals-to-primitive-precedence.js: Added. * stress/big-int-equals-wrapped-value.js: Added. 2018-05-08 Valerie R Young test262/Runner.pm: move input files to JSTests/test262 https://bugs.webkit.org/show_bug.cgi?id=185389 Reviewed by Michael Saboff. * test262/config.yaml: Renamed from Tools/Scripts/test262/config.yaml. * test262/expectations.yaml: Renamed from Tools/Scripts/test262/expectations.yaml. 2018-05-05 Filip Pizlo DFG AI should have O(1) clobbering https://bugs.webkit.org/show_bug.cgi?id=185287 Reviewed by Saam Barati. * stress/simple-ai-effect.js: Added. (bar): (foo): 2018-05-04 Keith Miller isCacheableArrayLength should return true for undecided arrays https://bugs.webkit.org/show_bug.cgi?id=185309 Reviewed by Michael Saboff. * stress/get-array-length-undecided.js: Added. (test): 2018-05-04 Dominik Infuehr Disable tests on systems with limited memory https://bugs.webkit.org/show_bug.cgi?id=185296 Reviewed by Saam Barati. Test doesn't work with a limited amount of memory. I tried to reduce memory usage but then it was hard to reproduce the failure the test was originally made to test. * stress/array-reverse-doesnt-clobber.js: 2018-05-03 Saam Barati Don't prevent CreateThis being folded to NewObject when the structure is poly proto https://bugs.webkit.org/show_bug.cgi?id=185177 Reviewed by Filip Pizlo. * microbenchmarks/construct-poly-proto-object.js: Added. (foo.A): (foo): * stress/allocation-sinking-new-object-with-poly-proto.js: Added. (foo.A): (foo): (makePolyProto): (bar): (baz): 2018-05-03 Michael Saboff OSR entry pruning of Program Bytecodes doesn't take into account try/catch https://bugs.webkit.org/show_bug.cgi?id=185281 Reviewed by Saam Barati. New regression test. * stress/baseline-osrentry-catch-is-reachable.js: Added. (i.j.catch): 2018-05-03 Ryan Haddad Unreviewed, rolling out r231197. The test added with this change crashes on the 32-bit JSC bot. Reverted changeset: "Correctly detect string overflow when using the 'Function' constructor" https://bugs.webkit.org/show_bug.cgi?id=184883 https://trac.webkit.org/changeset/231197 2018-05-02 Filip Pizlo JSC should know how to cache custom getter accesses on the prototype chain https://bugs.webkit.org/show_bug.cgi?id=185213 Reviewed by Keith Miller. * microbenchmarks/get-custom-getter.js: Added. (test): 2018-05-02 Robin Morisset emitCodeToGetArgumentsArrayLength should not crash on PhantomNewArrayWithSpread https://bugs.webkit.org/show_bug.cgi?id=183172 Reviewed by Filip Pizlo. * stress/length-of-new-array-with-spread.js: Added. (foo): (bar): (baz): 2018-05-01 Yusuke Suzuki [JSC] Add SameValue DFG node https://bugs.webkit.org/show_bug.cgi?id=185065 Reviewed by Saam Barati. * microbenchmarks/object-is.js: Added. (incognito): (sameValue): (test1): (test2): (test3): (test4): (test5): (test6): * stress/object-is.js: Added. (shouldBe): (is1): (is2): (is3): (is4): (is5): (is6): (is7): (is8): (is9): (is10): (is11): (is12): (is13): (is14): (is15): 2018-05-01 Robin Morisset Correctly detect string overflow when using the 'Function' constructor https://bugs.webkit.org/show_bug.cgi?id=184883 Reviewed by Filip Pizlo. I put this regression test in the 'slowMicrobenchmarks' directory because it takes nearly 30s to run, and I am not sure where else to put it. * slowMicrobenchmarks/function-constructor-with-huge-strings.js: Added. (catch): 2018-05-01 Robin Morisset IntlObject.cpp::removeUnicodeLocaleExtension() should not touch locales that end in '-u' https://bugs.webkit.org/show_bug.cgi?id=185162 Reviewed by Filip Pizlo. * stress/incomplete-unicode-locale.js: Added. (catch): 2018-05-01 Dominik Infuehr Add SetCallee as DFG-Operation https://bugs.webkit.org/show_bug.cgi?id=184582 Reviewed by Filip Pizlo. Added test that runs into infinite loop without updating the callee and therefore emitting SetCallee in DFG for recursive tail calls. * stress/closure-recursive-tail-call-infinite-loop.js: Added. (Foo): (second): (first): (return.closure): (createClosure): 2018-04-30 Saam Barati ToString constant folds without preserving checks, causing us to break assumptions that the code would OSR exit https://bugs.webkit.org/show_bug.cgi?id=185149 Reviewed by Filip Pizlo. * stress/keep-checks-when-converting-to-lazy-js-constant-in-strength-reduction.js: Added. 2018-04-29 Filip Pizlo LICM shouldn't hoist nodes if hoisted nodes exited in that code block https://bugs.webkit.org/show_bug.cgi?id=185126 Reviewed by Saam Barati. I found this bug by accident when I was writing this test for something else. This change also speeds up other benchmarks of this case that we already had. They are all called the licm-dragons tests. * microbenchmarks/licm-dragons-two-structures.js: Added. (foo): 2018-04-29 Commit Queue Unreviewed, rolling out r231137. https://bugs.webkit.org/show_bug.cgi?id=185118 It is breaking Test262 language/expressions/multiplication /order-of-evaluation.js (Requested by caiolima on #webkit). Reverted changeset: "[ESNext][BigInt] Implement support for "*" operation" https://bugs.webkit.org/show_bug.cgi?id=183721 https://trac.webkit.org/changeset/231137 2018-04-28 Saam Barati We don't model regexp effects properly https://bugs.webkit.org/show_bug.cgi?id=185059 Reviewed by Filip Pizlo. * stress/regexp-exec-test-effectful-last-index.js: Added. (assert): (foo): (i.regexLastIndex.toString): (bar): 2018-04-28 Rick Waldron Token misspelled "tocken" in error message string https://bugs.webkit.org/show_bug.cgi?id=185030 Reviewed by Saam Barati. * ChakraCore/test/Basics/IdsWithEscapes.baseline-jsc: Fix typo "tocken" => "token" * stress/destructuring-assignment-syntax.js: Fix typo "tocken" => "token" * stress/error-messages-for-in-operator-should-not-crash.js: Fix typo "tocken" => "token" * stress/reserved-word-with-escape.js: Fix typo "tocken" => "token" (testSyntaxError.String.raw.v): (String.raw.SyntaxError.Cannot.use.the.keyword.string_appeared_here.as.a.name): (testSyntaxError.String.raw.a): 2018-04-28 Caio Lima [ESNext][BigInt] Implement support for "*" operation https://bugs.webkit.org/show_bug.cgi?id=183721 Reviewed by Saam Barati. * bigIntTests.yaml: * stress/big-int-mul-jit.js: Added. * stress/big-int-mul-to-primitive-precedence.js: Added. * stress/big-int-mul-to-primitive.js: Added. * stress/big-int-mul-type-error.js: Added. * stress/big-int-mul-wrapped-value.js: Added. * stress/big-int-multiplication.js: Added. * stress/big-int-multiply-memory-stress.js: Added. 2018-04-28 Commit Queue Unreviewed, rolling out r231131. https://bugs.webkit.org/show_bug.cgi?id=185112 It is breaking Debug build due to unchecked exception (Requested by caiolima on #webkit). Reverted changeset: "[ESNext][BigInt] Implement support for "*" operation" https://bugs.webkit.org/show_bug.cgi?id=183721 https://trac.webkit.org/changeset/231131 2018-04-27 Caio Lima [ESNext][BigInt] Implement support for "*" operation https://bugs.webkit.org/show_bug.cgi?id=183721 Reviewed by Saam Barati. * bigIntTests.yaml: * stress/big-int-mul-jit.js: Added. * stress/big-int-mul-to-primitive-precedence.js: Added. * stress/big-int-mul-to-primitive.js: Added. * stress/big-int-mul-type-error.js: Added. * stress/big-int-mul-wrapped-value.js: Added. * stress/big-int-multiplication.js: Added. * stress/big-int-multiply-memory-stress.js: Added. 2018-04-27 Ryan Haddad Unreviewed, rolling out r231086. Caused JSC test failures due to an unchecked exception. Reverted changeset: "[ESNext][BigInt] Implement support for "*" operation" https://bugs.webkit.org/show_bug.cgi?id=183721 https://trac.webkit.org/changeset/231086 2018-04-27 Ryan Haddad Unreviewed test gardening, update expectations for test262/intl402/PluralRules tests after r231047. * test262.yaml: Mark tests as passing. 2018-04-26 Caio Lima [ESNext][BigInt] Implement support for "*" operation https://bugs.webkit.org/show_bug.cgi?id=183721 Reviewed by Saam Barati. * bigIntTests.yaml: * stress/big-int-mul-jit.js: Added. * stress/big-int-mul-to-primitive-precedence.js: Added. * stress/big-int-mul-to-primitive.js: Added. * stress/big-int-mul-type-error.js: Added. * stress/big-int-mul-wrapped-value.js: Added. * stress/big-int-multiplication.js: Added. * stress/big-int-multiply-memory-stress.js: Added. 2018-04-25 Robin Morisset In FTLLowerDFGToB3.cpp::compileCreateRest, always use a contiguous array as the indexing type when under isWatchingHavingABadTimeWatchpoint https://bugs.webkit.org/show_bug.cgi?id=184773 Reviewed by Filip Pizlo. This bug requires a race between the thread doing FTL compilation and the main thread, but it triggers in 100% of cases (before the fix) on my machine so I decided to add it to the stress tests nonetheless. * stress/create-rest-while-having-a-bad-time.js: Added. (f): (g): (h): 2018-04-25 Keith Miller Add missing scope release to functionProtoFuncToString https://bugs.webkit.org/show_bug.cgi?id=184995 Reviewed by Saam Barati. * stress/function-toString-arrow.js: Added. (async): 2018-04-24 Keith Miller fromCharCode is missing some exception checks https://bugs.webkit.org/show_bug.cgi?id=184952 Reviewed by Saam Barati. * stress/fromCharCode-exception-check.js: Added. (get catch): 2018-04-24 Mark Lam Gardening: test fix after r230863. https://bugs.webkit.org/show_bug.cgi?id=184846 Not reviewed. * stress/json-stringified-overflow-2.js: (catch): * stress/json-stringified-overflow.js: (catch): 2018-04-20 JF Bastien Handle more JSON stringify OOM https://bugs.webkit.org/show_bug.cgi?id=184846 Reviewed by Mark Lam. * stress/json-stringified-overflow-2.js: Added. Same as the one below, but with a bigger input which will trigger a different code path. (catch): * stress/json-stringified-overflow.js: Modify the test to only catch OOM on stringification. not on string creation. 2018-04-18 Yusuke Suzuki [WebAssembly][Modules] Import tables in wasm modules https://bugs.webkit.org/show_bug.cgi?id=184738 Reviewed by JF Bastien. * wasm/modules/wasm-imports-js-re-exports-wasm-exports.js: * wasm/modules/wasm-imports-js-re-exports-wasm-exports/imports.wasm: * wasm/modules/wasm-imports-js-re-exports-wasm-exports/imports.wat: * wasm/modules/wasm-imports-js-re-exports-wasm-exports/re-export.js: * wasm/modules/wasm-imports-js-re-exports-wasm-exports/sum.wasm: * wasm/modules/wasm-imports-js-re-exports-wasm-exports/sum.wat: * wasm/modules/wasm-imports-wasm-exports.js: * wasm/modules/wasm-imports-wasm-exports/imports.wasm: * wasm/modules/wasm-imports-wasm-exports/imports.wat: * wasm/modules/wasm-imports-wasm-exports/sum.wasm: * wasm/modules/wasm-imports-wasm-exports/sum.wat: 2018-04-18 Yusuke Suzuki [WebAssembly][Modules] Import globals from wasm modules https://bugs.webkit.org/show_bug.cgi?id=184736 Reviewed by JF Bastien. * wasm.yaml: * wasm/modules/wasm-imports-js-re-exports-wasm-exports.js: * wasm/modules/wasm-imports-js-re-exports-wasm-exports/imports.wasm: * wasm/modules/wasm-imports-js-re-exports-wasm-exports/imports.wat: * wasm/modules/wasm-imports-js-re-exports-wasm-exports/re-export.js: * wasm/modules/wasm-imports-js-re-exports-wasm-exports/sum.wasm: * wasm/modules/wasm-imports-js-re-exports-wasm-exports/sum.wat: * wasm/modules/wasm-imports-wasm-exports.js: * wasm/modules/wasm-imports-wasm-exports/imports.wasm: * wasm/modules/wasm-imports-wasm-exports/imports.wat: * wasm/modules/wasm-imports-wasm-exports/sum.wasm: * wasm/modules/wasm-imports-wasm-exports/sum.wat: 2018-04-18 Yusuke Suzuki Unreviewed, reland r230697, r230720, and r230724. https://bugs.webkit.org/show_bug.cgi?id=184600 * wasm.yaml: * wasm/modules/constant.wasm: Added. * wasm/modules/constant.wat: Added. * wasm/modules/default-import-star-error.js: Added. (then): * wasm/modules/default-import-star-error/entry.wasm: Added. * wasm/modules/default-import-star-error/entry.wat: Added. * wasm/modules/default-import-star-error/t0.js: Added. * wasm/modules/default-import-star-error/t1.js: Added. * wasm/modules/default-import-star-error/t2.js: Added. (export.default.Cocoa): * wasm/modules/js-wasm-cycle.js: Added. * wasm/modules/js-wasm-cycle/entry.js: Added. (from.string_appeared_here.export.return42): * wasm/modules/js-wasm-cycle/sum.wasm: Added. * wasm/modules/js-wasm-cycle/sum.wat: Added. * wasm/modules/js-wasm-function-namespace.js: Added. (assert.throws): * wasm/modules/js-wasm-function.js: Added. (assert.throws): * wasm/modules/js-wasm-global-namespace.js: Added. (assert.throws): * wasm/modules/js-wasm-global.js: Added. (assert.throws): * wasm/modules/js-wasm-memory-namespace.js: Added. (assert.throws): * wasm/modules/js-wasm-memory.js: Added. (assert.throws): * wasm/modules/js-wasm-start.js: Added. (then): * wasm/modules/js-wasm-table-namespace.js: Added. (assert.throws): * wasm/modules/js-wasm-table.js: Added. (assert.throws): * wasm/modules/memory.wasm: Added. * wasm/modules/memory.wat: Added. * wasm/modules/run-from-wasm.wasm: Added. * wasm/modules/run-from-wasm.wat: Added. * wasm/modules/run-from-wasm/check.js: Added. (export.check): * wasm/modules/start.wasm: Added. * wasm/modules/start.wat: Added. * wasm/modules/sum.wasm: Added. * wasm/modules/sum.wat: Added. * wasm/modules/table.wasm: Added. * wasm/modules/table.wat: Added. * wasm/modules/wasm-imports-js-exports.js: Added. * wasm/modules/wasm-imports-js-exports/imports.wasm: Added. * wasm/modules/wasm-imports-js-exports/imports.wat: Added. * wasm/modules/wasm-imports-js-exports/sum.js: Added. (export.sum): * wasm/modules/wasm-imports-js-re-exports-wasm-exports.js: Added. * wasm/modules/wasm-imports-js-re-exports-wasm-exports/imports.wasm: Added. * wasm/modules/wasm-imports-js-re-exports-wasm-exports/imports.wat: Added. * wasm/modules/wasm-imports-js-re-exports-wasm-exports/re-export.js: Added. * wasm/modules/wasm-imports-js-re-exports-wasm-exports/sum.wasm: Added. * wasm/modules/wasm-imports-js-re-exports-wasm-exports/sum.wat: Added. * wasm/modules/wasm-imports-wasm-exports.js: Added. * wasm/modules/wasm-imports-wasm-exports/imports.wasm: Added. * wasm/modules/wasm-imports-wasm-exports/imports.wat: Added. * wasm/modules/wasm-imports-wasm-exports/sum.wasm: Added. * wasm/modules/wasm-imports-wasm-exports/sum.wat: Added. * wasm/modules/wasm-js-cycle.js: Added. * wasm/modules/wasm-js-cycle/entry.wasm: Added. * wasm/modules/wasm-js-cycle/entry.wat: Added. * wasm/modules/wasm-js-cycle/sum.js: Added. (from.string_appeared_here.export.sum): * wasm/modules/wasm-wasm-cycle.js: Added. * wasm/modules/wasm-wasm-cycle/entry.wasm: Added. * wasm/modules/wasm-wasm-cycle/entry.wat: Added. * wasm/modules/wasm-wasm-cycle/sum.wasm: Added. * wasm/modules/wasm-wasm-cycle/sum.wat: Added. 2018-04-17 Commit Queue Unreviewed, rolling out r230697, r230720, and r230724. https://bugs.webkit.org/show_bug.cgi?id=184717 These caused multiple failures on the Test262 testers. (Requested by mlewis13 on #webkit). Reverted changesets: "[WebAssembly][Modules] Prototype wasm import" https://bugs.webkit.org/show_bug.cgi?id=184600 https://trac.webkit.org/changeset/230697 "[WebAssembly][Modules] Implement function import from wasm modules" https://bugs.webkit.org/show_bug.cgi?id=184689 https://trac.webkit.org/changeset/230720 "[JSC] Rename runWebAssembly to runWebAssemblySuite" https://bugs.webkit.org/show_bug.cgi?id=184703 https://trac.webkit.org/changeset/230724 2018-04-17 JF Bastien A put is not an ExistingProperty put when we transition a structure because of an attributes change https://bugs.webkit.org/show_bug.cgi?id=184706 Reviewed by Saam Barati. * stress/put-by-id-direct-strict-transition.js: Added. (const.foo): (j.const.obj.set hello): * stress/put-by-id-direct-transition.js: Added. (const.foo): (j.const.obj.set hello): * stress/put-getter-setter-by-id-strict-transition.js: Added. (const.foo): (j.const.obj.set hello): * stress/put-getter-setter-by-id-transition.js: Added. (const.foo): (j.const.obj.set hello): 2018-04-16 Filip Pizlo PutStackSinkingPhase should know that KillStack means ConflictingFlush https://bugs.webkit.org/show_bug.cgi?id=184672 Reviewed by Michael Saboff. * stress/sink-put-stack-over-kill-stack.js: Added. (avocado_1): (apricot_0): (__c_0): (banana_2): 2018-04-17 Yusuke Suzuki [JSC] Rename runWebAssembly to runWebAssemblySuite https://bugs.webkit.org/show_bug.cgi?id=184703 Reviewed by JF Bastien. And add runWebAssembly as a command to simplely run wasm modules. * wasm.yaml: 2018-04-17 Yusuke Suzuki [WebAssembly][Modules] Implement function import from wasm modules https://bugs.webkit.org/show_bug.cgi?id=184689 Reviewed by JF Bastien. * wasm.yaml: * wasm/modules/js-wasm-cycle.js: Added. * wasm/modules/js-wasm-cycle/entry.js: Added. (from.string_appeared_here.export.return42): * wasm/modules/js-wasm-cycle/sum.wasm: Added. * wasm/modules/js-wasm-cycle/sum.wat: Added. * wasm/modules/run-from-wasm.wasm: Added. * wasm/modules/run-from-wasm.wat: Added. * wasm/modules/run-from-wasm/check.js: Added. (export.check): * wasm/modules/wasm-imports-js-exports.js: Added. * wasm/modules/wasm-imports-js-exports/imports.wasm: Added. * wasm/modules/wasm-imports-js-exports/imports.wat: Added. * wasm/modules/wasm-imports-js-exports/sum.js: Added. (export.sum): * wasm/modules/wasm-imports-js-re-exports-wasm-exports.js: Added. * wasm/modules/wasm-imports-js-re-exports-wasm-exports/imports.wasm: Added. * wasm/modules/wasm-imports-js-re-exports-wasm-exports/imports.wat: Added. * wasm/modules/wasm-imports-js-re-exports-wasm-exports/re-export.js: Added. * wasm/modules/wasm-imports-js-re-exports-wasm-exports/sum.wasm: Added. * wasm/modules/wasm-imports-js-re-exports-wasm-exports/sum.wat: Added. * wasm/modules/wasm-imports-wasm-exports.js: Added. * wasm/modules/wasm-imports-wasm-exports/imports.wasm: Added. * wasm/modules/wasm-imports-wasm-exports/imports.wat: Added. * wasm/modules/wasm-imports-wasm-exports/sum.wasm: Added. * wasm/modules/wasm-imports-wasm-exports/sum.wat: Added. * wasm/modules/wasm-js-cycle.js: Added. * wasm/modules/wasm-js-cycle/entry.wasm: Added. * wasm/modules/wasm-js-cycle/entry.wat: Added. * wasm/modules/wasm-js-cycle/sum.js: Added. (from.string_appeared_here.export.sum): * wasm/modules/wasm-wasm-cycle.js: Added. * wasm/modules/wasm-wasm-cycle/entry.wasm: Added. * wasm/modules/wasm-wasm-cycle/entry.wat: Added. * wasm/modules/wasm-wasm-cycle/sum.wasm: Added. * wasm/modules/wasm-wasm-cycle/sum.wat: Added. 2018-04-16 Yusuke Suzuki [WebAssembly][Modules] Prototype wasm import https://bugs.webkit.org/show_bug.cgi?id=184600 Reviewed by JF Bastien. Add wasm and wat files since module loader want to load wasm files from FS. Currently, importing the other modules from wasm is not supported. * wasm.yaml: * wasm/modules/constant.wasm: Added. * wasm/modules/constant.wat: Added. * wasm/modules/js-wasm-function-namespace.js: Added. (assert.throws): * wasm/modules/js-wasm-function.js: Added. (assert.throws): * wasm/modules/js-wasm-global-namespace.js: Added. (assert.throws): * wasm/modules/js-wasm-global.js: Added. (assert.throws): * wasm/modules/js-wasm-memory-namespace.js: Added. (assert.throws): * wasm/modules/js-wasm-memory.js: Added. (assert.throws): * wasm/modules/js-wasm-start.js: Added. (then): * wasm/modules/js-wasm-table-namespace.js: Added. (assert.throws): * wasm/modules/js-wasm-table.js: Added. (assert.throws): * wasm/modules/memory.wasm: Added. * wasm/modules/memory.wat: Added. * wasm/modules/start.wasm: Added. * wasm/modules/start.wat: Added. * wasm/modules/sum.wasm: Added. * wasm/modules/sum.wat: Added. * wasm/modules/table.wasm: Added. * wasm/modules/table.wat: Added. 2018-04-14 Filip Pizlo Function.prototype.caller shouldn't return generator bodies https://bugs.webkit.org/show_bug.cgi?id=184630 Reviewed by Yusuke Suzuki. * stress/function-caller-async-arrow-function-body.js: Added. * stress/function-caller-async-function-body.js: Added. * stress/function-caller-async-generator-body.js: Added. * stress/function-caller-generator-body.js: Added. * stress/function-caller-generator-method-body.js: Added. 2018-04-12 Tomas Popela Unreviewed, skip JIT tests if it isn't enabled See https://bugs.webkit.org/show_bug.cgi?id=182730. * stress/big-int-spec-to-primitive.js: * stress/big-int-spec-to-this.js: 2018-04-10 Caio Lima [ESNext][BigInt] Add support for BigInt in SpeculatedType https://bugs.webkit.org/show_bug.cgi?id=182470 Reviewed by Saam Barati. * stress/big-int-spec-to-primitive.js: Added. * stress/big-int-spec-to-this.js: Added. * stress/big-int-strict-equals-jit.js: Added. * stress/big-int-strict-spec-to-this.js: Added. * stress/big-int-type-of-proven-type.js: Added. 2018-04-10 Filip Pizlo DFG AI and clobberize should agree with each other https://bugs.webkit.org/show_bug.cgi?id=184440 Reviewed by Saam Barati. Add tests for all of the bugs I fixed. * stress/direct-arguments-out-of-bounds-change-structure.js: Added. (foo): * stress/new-typed-array-cse-effects.js: Added. (foo): * stress/scoped-arguments-out-of-bounds-change-structure.js: Added. (foo.theO): (foo): * stress/string-from-char-code-change-structure-not-dead.js: Added. (foo): (i.valueOf): (weirdValue.valueOf): * stress/string-from-char-code-change-structure.js: Added. (foo): (i.valueOf): (weirdValue.valueOf): 2018-04-09 Leo Balter Fix errant Test262 files CRLF to LF for consistency with the original source https://bugs.webkit.org/show_bug.cgi?id=184425 Reviewed by Yusuke Suzuki. * test262/test/built-ins/Math/acosh/nan-returns.js: * test262/test/built-ins/Math/asinh/asinh-specialVals.js: * test262/test/built-ins/Math/atanh/atanh-specialVals.js: * test262/test/built-ins/Math/cbrt/cbrt-specialValues.js: * test262/test/built-ins/Math/cbrt/prop-desc.js: * test262/test/built-ins/Math/cosh/cosh-specialVals.js: * test262/test/built-ins/Math/expm1/expm1-specialVals.js: * test262/test/built-ins/Math/log10/Log10-specialVals.js: * test262/test/built-ins/Math/log2/log2-basicTests.js: * test262/test/built-ins/Math/sign/sign-specialVals.js: * test262/test/built-ins/Math/sinh/sinh-specialVals.js: * test262/test/built-ins/Math/tanh/tanh-specialVals.js: * test262/test/built-ins/Math/trunc/trunc-sampleTests.js: * test262/test/built-ins/Math/trunc/trunc-specialVals.js: 2018-04-08 Yusuke Suzuki Unreviewed, remove incorrect entry in test262.yaml https://bugs.webkit.org/show_bug.cgi?id=184266 * test262.yaml: 2018-04-08 Valerie Young [JSC] Update Test262 to April 6 version https://bugs.webkit.org/show_bug.cgi?id=184266 Rubber stamped by Yusuke Suzuki. 2018-04-08 Yusuke Suzuki [JSC] Introduce op_get_by_id_direct https://bugs.webkit.org/show_bug.cgi?id=183970 Reviewed by Filip Pizlo. * stress/generator-prototype-copy.js: Added. (gen): (catch): Adopted JF's tests. * stress/generator-type-check.js: Added. (shouldThrow): (foo2): (i.shouldThrow): * stress/get-by-id-direct-getter.js: Added. (shouldBe): (shouldThrow): (obj.get hello): (builtin.createBuiltin): (obj2.get length): * stress/get-by-id-direct.js: Added. (shouldBe): (shouldThrow): (builtin.createBuiltin): * test262.yaml: We fixed long-standing spec compatibility issue. As a result, this patch makes several test262 tests passed! 2018-04-07 Yusuke Suzuki Unreviewed, annotate test with @skip if $memoryLimited https://bugs.webkit.org/show_bug.cgi?id=183894 * stress/json-stringified-overflow.js: 2018-04-06 Alexey Proskuryakov Add svn:eol-style to line-terminator-normalisation-CR.js https://bugs.webkit.org/show_bug.cgi?id=184341 * test262/test/built-ins/Function/prototype/toString/line-terminator-normalisation-CR.js: Added property svn:eol-style. 2018-04-06 Ross Kirsling Unreviewed, remove errant LF from existing test262 test for CR line endings. * test262/test/built-ins/Function/prototype/toString/line-terminator-normalisation-CR.js: 2018-04-05 Ross Kirsling Unreviewed, rolling out r230320. Revert fix, as the root cause lies elsewhere. Reverted changeset: "[test262] Mark line-terminator-normalisation-CR.js as a binary file." https://bugs.webkit.org/show_bug.cgi?id=184341 https://trac.webkit.org/changeset/230320 2018-04-05 Ross Kirsling [test262] Mark line-terminator-normalisation-CR.js as a binary file. https://bugs.webkit.org/show_bug.cgi?id=184341 Reviewed by Yusuke Suzuki. This test is all about CR line endings, but `svn-apply` can't deal with them. Treating the file as binary ensures that its contents never are never shown in a diff. * .gitattributes: Added. 2018-04-05 Robin Morisset Fix testcase (missing try/catch). https://bugs.webkit.org/show_bug.cgi?id=183657 Unreviewed. * stress/large-unshift-splice.js 2018-04-04 Filip Pizlo REGRESSION(r222563): removed DoubleReal type check causes tons of crashes because CSE has never known how to handle SaneChain https://bugs.webkit.org/show_bug.cgi?id=184319 Reviewed by Saam Barati. * stress/array-push-nan-to-double-array-cse-sane-and-insane-chain.js: Added. (foo): (bar): * stress/array-push-nan-to-double-array.js: Added. (foo): (bar): 2018-04-03 Mark Lam Test js-fixed-array-out-of-memory.js should be excluded for memory limited devices. https://bugs.webkit.org/show_bug.cgi?id=184284 Reviewed by Saam Barati. * stress/js-fixed-array-out-of-memory.js: 2018-03-31 Filip Pizlo JSC crash in JIT code with for-of loop and Array/Set iterators https://bugs.webkit.org/show_bug.cgi?id=183174 Reviewed by Saam Barati. * microbenchmarks/hoist-get-by-offset-tower-with-inferred-types.js: Added. This test shows that fixing the bug didn't break hoisting of GetByOffset with inferred types. I confirmed that if I did break it, this test slows down by >7x. (foo): * stress/hoist-get-by-offset-with-control-dependent-inferred-type.js: Added. This test shows that the bug is fixed. (f): 2018-03-30 JF Bastien WebAssembly: support DataView compilation https://bugs.webkit.org/show_bug.cgi?id=183342 Reviewed by Mark Lam. Test WebAssembly compilation using a DataView with offset. * wasm/regress/183342.js: Added. (attempt.catch): 2018-03-30 Filip Pizlo Bytecode generator should not get_from_scope something that may be a hole into a variable that is already live https://bugs.webkit.org/show_bug.cgi?id=184189 Reviewed by JF Bastien. * stress/load-hole-from-scope-into-live-var.js: Added. (result.eval.try.switch): (catch): 2018-03-30 Ryan Haddad Unreviewed, rolling out r230102. Caused assertion failures on JSC bots. Reverted changeset: "A stack overflow in the parsing of a builtin (called by createExecutable) cause a crash instead of a catchable js exception" https://bugs.webkit.org/show_bug.cgi?id=184074 https://trac.webkit.org/changeset/230102 2018-03-30 Robin Morisset Inlining of a function that ends in op_unreachable in a non-tail position triggers an ASSERT https://bugs.webkit.org/show_bug.cgi?id=183812 Reviewed by Keith Miller. * stress/inlining-unreachable-non-tail.js: Added. (foo.): (foo): 2018-03-30 Robin Morisset A stack overflow in the parsing of a builtin (called by createExecutable) cause a crash instead of a catchable js exception https://bugs.webkit.org/show_bug.cgi?id=184074 Reviewed by Keith Miller. * stress/stack-overflow-while-parsing-builtin.js: Added. (f): 2018-03-30 Robin Morisset Out-of-bounds accesses due to a missing check for MAX_STORAGE_VECTOR_LENGTH in unshiftCountForAnyIndexingType https://bugs.webkit.org/show_bug.cgi?id=183657 Reviewed by Keith Miller. * stress/large-unshift-splice.js: Added. (make_contig_arr): 2018-03-28 Robin Morisset appendQuotedJSONString stops on arithmetic overflow instead of propagating it upwards https://bugs.webkit.org/show_bug.cgi?id=183894 Reviewed by Saam Barati. * stress/json-stringified-overflow.js: Added. (catch): 2018-03-26 Filip Pizlo DFG should know that CreateThis can be effectful https://bugs.webkit.org/show_bug.cgi?id=184013 Reviewed by Saam Barati. * stress/create-this-property-change.js: Added. (Foo): (RealBar): (get if): * stress/create-this-structure-change-without-cse.js: Added. (Foo): (RealBar): (get if): * stress/create-this-structure-change.js: Added. (Foo): (RealBar): (get if): 2018-03-22 Yusuke Suzuki [DFG] Introduces fused compare and jump https://bugs.webkit.org/show_bug.cgi?id=177100 Reviewed by Mark Lam. * stress/fused-jeq-slow.js: Added. (shouldBe): (testJEQ): (testJNEQB): (testJEQB): (testJNEQF): (testJEQF): * stress/fused-jeq.js: Added. (shouldBe): (testJEQ): (testJNEQB): (testJEQB): (testJNEQF): (testJEQF): * stress/fused-jstricteq-slow.js: Added. (shouldBe): (testJSTRICTEQ): (testJNSTRICTEQB): (testJSTRICTEQB): (testJNSTRICTEQF): (testJSTRICTEQF): * stress/fused-jstricteq.js: Added. (shouldBe): (testJSTRICTEQ): (testJNSTRICTEQB): (testJSTRICTEQB): (testJNSTRICTEQF): (testJSTRICTEQF): 2018-03-22 Yusuke Suzuki [JSC] Clear MustGenerate for ToString(Number) converted from NumberToStringWithRadix https://bugs.webkit.org/show_bug.cgi?id=183559 Reviewed by Mark Lam. * stress/double-to-string-in-loop-removed.js: Added. (test): * stress/int32-to-string-in-loop-removed.js: Added. (test): * stress/int52-to-string-in-loop-removed.js: Added. (test): 2018-03-22 Michael Saboff Race Condition in arrayProtoFuncReverse() causes wrong results or crash https://bugs.webkit.org/show_bug.cgi?id=183901 Reviewed by Keith Miller. New test. * stress/array-reverse-doesnt-clobber.js: Added. (testArrayReverse): (createArrayOfArrays): (createArrayStorage): 2018-03-21 Filip Pizlo ScopedArguments should do poisoning and index masking https://bugs.webkit.org/show_bug.cgi?id=183863 Reviewed by Mark Lam. Adds another stress test of scoped arguments. * stress/scoped-arguments-test.js: Added. (foo): 2018-03-20 Saam Barati We need to do proper bookkeeping of exitOK when inserting constants when sinking NewArrayBuffer https://bugs.webkit.org/show_bug.cgi?id=183795 Reviewed by JF Bastien. * stress/sink-phantom-new-array-buffer-exit-ok.js: Added. (foo): (bar): 2018-03-16 Yusuke Suzuki [DFG][FTL] Add vectorLengthHint for NewArray https://bugs.webkit.org/show_bug.cgi?id=183694 Reviewed by Saam Barati. * stress/vector-length-hint-array-constructor.js: Added. (shouldBe): (test): * stress/vector-length-hint-new-array.js: Added. (shouldBe): (test): 2018-03-13 Yusuke Suzuki [DFG][FTL] Make ArraySlice(0) code tight https://bugs.webkit.org/show_bug.cgi?id=183590 Reviewed by Saam Barati. * stress/array-slice-with-zero.js: Added. (shouldBe): (test): (test2): * stress/array-slice-zero-args.js: Added. (shouldBe): (test): 2018-03-14 Caitlin Potter [JSC] fix order of evaluation for ClassDefinitionEvaluation https://bugs.webkit.org/show_bug.cgi?id=183523 Reviewed by Keith Miller. Computed property names need to be evaluated in source order during class definition evaluation, as it's observable (and specified to work this way). This change improves compatibility with Chromium. * stress/class_elements.js: Added. (test): (test.C.prototype.effect): (test.C.effect): (test.C.prototype.get effect): (test.C.prototype.set effect): (test.C): 2018-03-11 Yusuke Suzuki [DFG] AI should convert CreateThis to NewObject if the prototype object is proved https://bugs.webkit.org/show_bug.cgi?id=183310 Reviewed by Filip Pizlo. * stress/ai-create-this-to-new-object-fire.js: Added. (assert): (test): (func): (check): (test.body.A): (test.body.B): (test.body): * stress/ai-create-this-to-new-object.js: Added. (assert): (test): (func): (check): (test.body.A): (test.body.B): (test.body): 2018-03-10 Yusuke Suzuki [FTL] Drop NewRegexp for String.prototype.match with RegExp + global flag https://bugs.webkit.org/show_bug.cgi?id=181848 Reviewed by Sam Weinig. * microbenchmarks/regexp-u-global-es5.js: Added. (fn): * microbenchmarks/regexp-u-global-es6.js: Added. (fn): * stress/materialized-regexp-has-correct-last-index-set-by-match-at-osr-exit.js: Added. (shouldBe): (test): (i.switch): * stress/materialized-regexp-has-correct-last-index-set-by-match.js: Added. (shouldBe): (test): 2018-03-07 Dominik Infuehr Disable test stress/var-injection-cache-invalidation.js on systems with limited memory https://bugs.webkit.org/show_bug.cgi?id=183334 Reviewed by Žan Doberšek. * stress/var-injection-cache-invalidation.js: 2018-03-06 Dominik Infuehr [ARM] Disable tests that run out of memory https://bugs.webkit.org/show_bug.cgi?id=182699 Reviewed by Žan Doberšek. Skip tests that run of of memory. Do not run modules/module-jit-reachability.js without LLInt to prevent running out of executable memory. * modules.yaml: * modules/module-jit-reachability.js: * stress/has-own-property-name-cache-string-keys.js: * stress/has-own-property-name-cache-symbol-keys.js: 2018-03-01 Yusuke Suzuki ASSERTION FAILED: matchContextualKeyword(m_vm->propertyNames->async) https://bugs.webkit.org/show_bug.cgi?id=183173 Reviewed by Saam Barati. * stress/async-arrow-function-in-class-heritage.js: Added. (testSyntax): (testSyntaxError): (SyntaxError): 2018-03-01 Saam Barati We need to clear cached structures when having a bad time https://bugs.webkit.org/show_bug.cgi?id=183256 Reviewed by Mark Lam. * stress/having-a-bad-time-with-derived-arrays.js: Added. (assert): (defineSetter): (iterate): (doSlice): 2018-02-28 Yusuke Suzuki JSC crash with `import("")` https://bugs.webkit.org/show_bug.cgi?id=183175 Reviewed by Saam Barati. * stress/import-with-empty-string.js: Added. 2018-02-27 Yusuke Suzuki Unreviewed, skip FTL tests if FTL is disabled https://bugs.webkit.org/show_bug.cgi?id=183071 * stress/has-indexed-property-array-storage-ftl.js: * stress/has-indexed-property-slow-put-array-storage-ftl.js: 2018-02-25 Yusuke Suzuki [FTL] Support PutByVal(ArrayStorage/SlowPutArrayStorage) https://bugs.webkit.org/show_bug.cgi?id=182965 Reviewed by Saam Barati. * stress/put-by-val-array-storage.js: Added. (shouldBe): (testArrayStorageInBounds): * stress/put-by-val-direct-out-of-bounds-setter.js: Added. (shouldBe): (testInt32.createBuiltin): (set for): * stress/put-by-val-slow-put-array-storage.js: Added. (shouldBe): (testArrayStorageInBounds): 2018-02-26 Saam Barati validateStackAccess should not validate if the offset is within the stack bounds https://bugs.webkit.org/show_bug.cgi?id=183067 Reviewed by Mark Lam. * stress/dont-validate-stack-offset-in-b3-because-it-might-be-guarded-by-control-flow.js: Added. (assert): (test.a): (test.b): (test): 2018-02-26 Yusuke Suzuki Unreviewed, skip FTL tests if FTL is disabled https://bugs.webkit.org/show_bug.cgi?id=183071 * stress/has-indexed-property-array-storage-ftl.js: * stress/has-indexed-property-slow-put-array-storage-ftl.js: 2018-02-23 Saam Barati Make Number.isInteger an intrinsic https://bugs.webkit.org/show_bug.cgi?id=183088 Reviewed by JF Bastien. * stress/number-is-integer-intrinsic.js: Added. 2018-02-23 Oleksandr Skachkov WebAssembly: cache memory address / size on instance https://bugs.webkit.org/show_bug.cgi?id=177305 Reviewed by JF Bastien. * wasm/function-tests/memory-reuse.js: Added. (createWasmInstance): (doCheckTrap): (doMemoryGrow): (doCheck): (checkWasmInstancesWithSharedMemory): 2018-02-23 Yusuke Suzuki [JSC] Implement $vm.ftlTrue function for FTL testing https://bugs.webkit.org/show_bug.cgi?id=183071 Reviewed by Mark Lam. * stress/dead-fiat-value-to-int52-then-exit-not-double.js: (foo): * stress/dead-fiat-value-to-int52-then-exit-not-int52.js: (foo): * stress/dead-fiat-value-to-int52.js: (foo): * stress/dead-osr-entry-value.js: (foo): * stress/fiat-value-to-int52-then-exit-not-double.js: (foo): * stress/fiat-value-to-int52-then-exit-not-int52.js: (foo): * stress/fiat-value-to-int52-then-fail-to-fold.js: (foo): * stress/fiat-value-to-int52-then-fold.js: (foo): * stress/fiat-value-to-int52.js: (foo): * stress/fold-based-on-int32-proof-mul-branch.js: (foo): * stress/fold-profiled-call-to-call.js: (foo): * stress/fold-to-double-constant-then-exit.js: (foo): * stress/fold-to-int52-constant-then-exit.js: (foo): * stress/fold-to-primitive-in-cfa.js: (foo): * stress/fold-to-primitive-to-identity-in-cfa.js: (foo): * stress/has-indexed-property-array-storage-ftl.js: Added. (shouldBe): (test1): (test2): * stress/has-indexed-property-slow-put-array-storage-ftl.js: Added. (shouldBe): (test1): (test2): * stress/int52-ai-add-then-filter-int32.js: (foo): * stress/int52-ai-mul-and-clean-neg-zero-then-filter-int32.js: (foo): * stress/int52-ai-mul-then-filter-int32.js: (foo): * stress/int52-ai-neg-then-filter-int32.js: (foo): * stress/int52-ai-sub-then-filter-int32.js: (foo): * stress/licm-pre-header-cannot-exit-nested.js: (foo): * stress/licm-pre-header-cannot-exit.js: (foo): * stress/sparse-array-entry-update-144067.js: (useMemoryToTriggerGCs): * stress/test-spec-misc.js: (foo): * stress/tricky-array-bounds-checks.js: (foo): 2018-02-22 Yusuke Suzuki [FTL] Support HasIndexedProperty for ArrayStorage and SlowPutArrayStorage https://bugs.webkit.org/show_bug.cgi?id=182792 Reviewed by Mark Lam. * stress/has-indexed-property-array-storage.js: Added. (shouldBe): (test1): (test2): * stress/has-indexed-property-slow-put-array-storage.js: Added. (shouldBe): (test1): (test2): 2018-02-20 Saam Barati DFG::VarargsForwardingPhase should eliminate getting argument length https://bugs.webkit.org/show_bug.cgi?id=182959 Reviewed by Keith Miller. * microbenchmarks/forward-arguments-dont-escape-on-arguments-length.js: Added. 2018-02-14 Yusuke Suzuki [FTL] Support ArrayPush for ArrayStorage https://bugs.webkit.org/show_bug.cgi?id=182782 Reviewed by Saam Barati. Existing array-push-multiple-storage.js covers ArrayPush(ArrayStorage) multiple arguments case. * stress/array-push-array-storage-beyond-int32.js: Added. (shouldBe): (test): * stress/array-push-array-storage.js: Added. (shouldBe): (test): * stress/array-push-multiple-array-storage-beyond-int32.js: Added. (shouldBe): (test): * stress/array-push-multiple-storage-continuous.js: Added. (shouldBe): (test): 2018-02-14 Yusuke Suzuki [FTL] Support ArrayPop for ArrayStorage https://bugs.webkit.org/show_bug.cgi?id=182783 Reviewed by Saam Barati. * stress/array-pop-array-storage.js: Added. (shouldBe): (test): 2018-02-14 Yusuke Suzuki [FTL] Add Arrayify for ArrayStorage and SlowPutArrayStorage https://bugs.webkit.org/show_bug.cgi?id=182731 Reviewed by Saam Barati. * stress/arrayify-array-storage-array.js: Added. (shouldBe): (testArrayStorage): * stress/arrayify-array-storage-non-array.js: Added. (shouldBe): (testArrayStorage): * stress/arrayify-array-storage.js: Added. (shouldBe): (testArrayStorage): * stress/arrayify-slow-put-array-storage-pass-array-storage.js: Added. (shouldBe): (testArrayStorage): * stress/arrayify-slow-put-array-storage.js: Added. (shouldBe): (testArrayStorage): 2018-02-19 Saam Barati Don't use JSFunction's allocation profile when getting the prototype can be effectful https://bugs.webkit.org/show_bug.cgi?id=182942 Reviewed by Mark Lam. * stress/get-prototype-create-this-effectful.js: Added. 2018-02-16 Saam Barati Fix bugs from r228411 https://bugs.webkit.org/show_bug.cgi?id=182851 Reviewed by JF Bastien. * stress/constant-folding-phase-insert-check-handle-varargs.js: Added. 2018-02-15 Filip Pizlo Unreviewed, roll out r228366 since it did not progress anything. * stress/gc-error-stack.js: Removed. * stress/no-gc-error-stack.js: Removed. 2018-02-15 Tomas Popela Many stress tests fail with JIT disabled https://bugs.webkit.org/show_bug.cgi?id=182730 Reviewed by Saam Barati. These tests are broken by design if the JIT is disabled - they test the return value of numberOfDFGCompiles(), which is always set to 1000000.0 in TestRunnerUtils.cpp and makes the tests to fail. * stress/arith-abs-on-various-types.js: * stress/arith-abs-to-arith-negate-range-optimizaton.js: * stress/arith-acos-on-various-types.js: * stress/arith-acosh-on-various-types.js: * stress/arith-asin-on-various-types.js: * stress/arith-asinh-on-various-types.js: * stress/arith-atan-on-various-types.js: * stress/arith-atanh-on-various-types.js: * stress/arith-cbrt-on-various-types.js: * stress/arith-ceil-on-various-types.js: * stress/arith-clz32-on-various-types.js: * stress/arith-cos-on-various-types.js: * stress/arith-cosh-on-various-types.js: * stress/arith-expm1-on-various-types.js: * stress/arith-floor-on-various-types.js: * stress/arith-fround-on-various-types.js: * stress/arith-log-on-various-types.js: * stress/arith-log10-on-various-types.js: * stress/arith-log2-on-various-types.js: * stress/arith-negate-on-various-types.js: * stress/arith-round-on-various-types.js: * stress/arith-sin-on-various-types.js: * stress/arith-sinh-on-various-types.js: * stress/arith-sqrt-on-various-types.js: * stress/arith-tan-on-various-types.js: * stress/arith-tanh-on-various-types.js: * stress/arith-trunc-on-various-types.js: * stress/compare-strict-eq-on-various-types.js: 2018-02-14 Ryan Haddad Skip stress/new-largeish-contiguous-array-with-size.js on arm. Unreviewed test gardening. * stress/new-largeish-contiguous-array-with-size.js: 2018-02-14 Saam Barati Setting a VMTrap shouldn't look at topCallFrame since that may imply we're in C code and holding the malloc lock https://bugs.webkit.org/show_bug.cgi?id=182801 Reviewed by Keith Miller. * stress/watchdog-dont-malloc-when-in-c-code.js: Added. 2018-02-14 Ryan Haddad Skip JSC test stress/activation-sink-default-value-tdz-error.js on debug. https://bugs.webkit.org/show_bug.cgi?id=182526 Unreviewed test gardening. * stress/activation-sink-default-value-tdz-error.js: 2018-02-13 Saam Barati putDirectIndexSlowOrBeyondVectorLength needs to convert to dictionary indexing mode always if attributes are present https://bugs.webkit.org/show_bug.cgi?id=182755 Reviewed by Keith Miller. * stress/always-enter-dictionary-indexing-mode-with-getter.js: Added. (test1.o.get 10005): (test1): (test2.o.get 1000): (test2): 2018-02-13 Caitlin Potter [JSC] cache TaggedTemplate arrays by callsite rather than by contents https://bugs.webkit.org/show_bug.cgi?id=182717 Reviewed by Yusuke Suzuki. https://github.com/tc39/ecma262/pull/890 imposes a change to template literals, to allow template callsite arrays to be collected when the code containing the tagged template call is collected. This spec change has received concensus and been ratified. This change eliminates the eternal map associating template contents with arrays. * stress/tagged-template-object-collect.js: Renamed from JSTests/stress/tagged-template-registry-key-collect.js. * stress/tagged-template-object.js: Renamed from JSTests/stress/tagged-template-registry-key.js. * stress/tagged-templates-identity.js: * stress/template-string-tags-eval.js: * test262.yaml: 2018-02-13 Yusuke Suzuki Support GetArrayLength on ArrayStorage in the FTL https://bugs.webkit.org/show_bug.cgi?id=182625 Reviewed by Saam Barati. * stress/array-storage-length.js: Added. (shouldBe): (testInBound): (testUncountable): (testSlowPutInBound): (testSlowPutUncountable): * stress/undecided-length.js: Added. (shouldBe): (test2): 2018-02-12 Saam Barati DFG::emitCodeToGetArgumentsArrayLength needs to handle NewArrayBuffer/PhantomNewArrayBuffer https://bugs.webkit.org/show_bug.cgi?id=182706 Reviewed by Filip Pizlo. * stress/get-array-length-phantom-new-array-buffer.js: Added. (effects): (foo): 2018-02-09 Filip Pizlo Don't waste memory for error.stack https://bugs.webkit.org/show_bug.cgi?id=182656 Reviewed by Saam Barati. Tests the policy. * stress/gc-error-stack.js: Added. Shows that the GC forgets frames now. * stress/no-gc-error-stack.js: Added. Shows that the GC won't forget things if you ask for the stack. 2018-02-08 Yusuke Suzuki [JSC] Update Test262 to Feb 9 version https://bugs.webkit.org/show_bug.cgi?id=182468 Reviewed by Saam Barati. 2018-02-08 Yusuke Suzuki Unreviewed, fix invalid line terminator in old test262 file part 2 https://bugs.webkit.org/show_bug.cgi?id=182468 * test262/test/built-ins/Function/prototype/toString/line-terminator-normalisation-CR.js: 2018-02-08 Yusuke Suzuki Unreviewed, fix invalid line terminator in old test262 file https://bugs.webkit.org/show_bug.cgi?id=182468 * test262/test/language/literals/regexp/7.8.5-1.js: 2018-02-06 Yusuke Suzuki [JSC] Implement Array.prototype.flatMap and Array.prototype.flatten https://bugs.webkit.org/show_bug.cgi?id=182440 Reviewed by Darin Adler. * stress/array-flatmap.js: Added. (shouldBe): (shouldBeArray): (shouldThrow): (var): * stress/array-flatten.js: Added. (shouldBe): (shouldBeArray): * test262.yaml: * test262/test/built-ins/Array/prototype/flatMap/depth-always-one.js: (3.flatMap): Pick test262 82c6148980332febe92a544a1fb653718e9fdb57 change. 2018-02-06 Keith Miller put_to_scope/get_from_scope should not cache lexical scopes when expecting a global object https://bugs.webkit.org/show_bug.cgi?id=182549 Reviewed by Saam Barati. * stress/var-injection-cache-invalidation.js: Added. (allocateLotsOfThings): (test): 2018-02-03 Yusuke Suzuki Unreviewed, follow up for test262 update https://bugs.webkit.org/show_bug.cgi?id=182288 * test262.yaml: 2018-02-02 Ryan Haddad Update test262 to Jan 30 version https://bugs.webkit.org/show_bug.cgi?id=182288 Unreviewed test gardening. * test262.yaml: Remove entry for missing test language/expressions/assignment/white-space.js 2018-02-02 Saam Barati When BytecodeParser inserts Unreachable after ForceOSRExit it needs to update ArgumentPositions for Flushes it inserts https://bugs.webkit.org/show_bug.cgi?id=182368 Reviewed by Mark Lam. * stress/flush-after-force-exit-in-bytecodeparser-needs-to-update-argument-positions.js: Added. (runNearStackLimit.t): (runNearStackLimit): (try.runNearStackLimit): (catch): 2018-02-02 Yusuke Suzuki Update test262 to Jan 30 version https://bugs.webkit.org/show_bug.cgi?id=182288 Rubber stamped by Saam Barati. This patch updates test262 to the latest one, Jan 30 version. Since added and changed files are too many, we cannot create ChangeLog. The following files are changed. Several files are intentionally omitted due to merge failures. We should investigate how to merge files including some special line terminators (like u2028, u2029). * test262.yaml: * test262/test262-Revision.txt: * test262/*: 2018-02-02 Guillaume Emont JSTests: Skip mozilla/js1_5/Array/regress-157652.js on all memory limited platforms https://bugs.webkit.org/show_bug.cgi?id=182411 Reviewed by Carlos Alberto Lopez Perez. This is skipped only on arm memory limited platforms. Until recently it was not a problem on MIPS as the butterfly was not initialized. But since r227435, the butterfly is initialized in that test and therefore memory is allocated, and the test typically takes around 512M, which means it generally gets OOM-killed on the MIPS buildbot. * mozilla/mozilla-tests.yaml: 2018-02-01 Mark Lam Fix broken bounds check in FTL's compileGetMyArgumentByVal(). https://bugs.webkit.org/show_bug.cgi?id=182419 Reviewed by Saam Barati. * stress/regress-182419.js: Added. 2018-02-01 Keith Miller Fix crashes due to mishandling custom sections. https://bugs.webkit.org/show_bug.cgi?id=182404 Reviewed by Saam Barati. * wasm/Builder.js: (export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section): * wasm/js-api/validate.js: (assert.truthy): 2018-01-31 Saam Barati JSC incorrectly interpreting script, sets Global Property instead of Global Lexical variable (LiteralParser / JSONP path) https://bugs.webkit.org/show_bug.cgi?id=182074 Reviewed by Mark Lam. * stress/jsonp-program-evaluate-path-must-consider-global-lexical-environment.js: Added. (assert): (let.func): (let.o.foo): (varFunc): 2018-01-30 Yusuke Suzuki Unreviewed, update test262 expects https://bugs.webkit.org/show_bug.cgi?id=182232 * test262.yaml: 2018-01-29 Yusuke Suzuki [JSC] Implement trimStart and trimEnd https://bugs.webkit.org/show_bug.cgi?id=182233 Reviewed by Mark Lam. * stress/trim.js: Added. (shouldBe): (startTest): (endTest): (trimTest): 2018-01-29 Yusuke Suzuki [JSC] Relax line terminators in String to make JSON subset of JS https://bugs.webkit.org/show_bug.cgi?id=182232 Reviewed by Keith Miller. * ChakraCore/test/es5/Lex_u3.baseline-jsc: * stress/relaxed-line-terminators-in-string.js: Added. (shouldBe): 2018-01-29 Michael Saboff REGRESSION (r227341): DFG_ASSERT failure at JSC::DFG::AtTailAbstractState::forNode() https://bugs.webkit.org/show_bug.cgi?id=182249 Reviewed by Keith Miller. New regression test. * stress/compare-clobber-untypeduse.js: Added. 2018-01-29 Matt Lewis Unreviewed, rolling out r227725. This caused internal failures. Reverted changeset: "JSC Sampling Profiler: Detect tester and testee when sampling in RegExp JIT" https://bugs.webkit.org/show_bug.cgi?id=152729 https://trac.webkit.org/changeset/227725 2018-01-29 Yusuke Suzuki JSC Sampling Profiler: Detect tester and testee when sampling in RegExp JIT https://bugs.webkit.org/show_bug.cgi?id=152729 Reviewed by Saam Barati. * stress/sampling-profiler-regexp.js: Added. (platformSupportsSamplingProfiler.test): (platformSupportsSamplingProfiler.baz): (platformSupportsSamplingProfiler): 2018-01-29 Yusuke Suzuki [DFG][FTL] WeakMap#set should have DFG node https://bugs.webkit.org/show_bug.cgi?id=180015 Reviewed by Saam Barati. * stress/weakmap-set-change-get.js: Added. (shouldBe): (test): * stress/weakmap-set-cse.js: Added. (shouldBe): (test): * stress/weakset-add-change-get.js: Added. (shouldBe): * stress/weakset-add-cse.js: Added. (shouldBe): 2018-01-27 Yusuke Suzuki DFG strength reduction fails to convert NumberToStringWithValidRadixConstant for 0 to constant '0' https://bugs.webkit.org/show_bug.cgi?id=182213 Reviewed by Mark Lam. * stress/int32-min-to-string.js: Added. (shouldBe): (test2): (test4): (test8): (test16): (test32): * stress/zero-to-string.js: Added. (shouldBe): (test2): (test4): (test8): (test16): (test32): 2018-01-23 Yusuke Suzuki Add more module scope related tests with code evaluation by string https://bugs.webkit.org/show_bug.cgi?id=181983 Reviewed by Sam Weinig. Add more module scope related tests. When the original tests are landed, we do not have browser integration. This patch adds more module scope tests with dynamically created script evaluation. We add tests with Function constructor, direct eval, indirect eval, setTimeout, setInterval, and event handlers. * modules/scopes-eval.js: Added. (shouldBe): * modules/scopes.js: (shouldBe): 2018-01-23 Filip Pizlo Unreviewed, retire some microbenchmarks that are proportionately very slow. Benchmark running time should be proportional to their value. Microbenchmarks have little value, so they should be very fast. * microbenchmarks/array-push-3.js: Removed. * microbenchmarks/bigswitch-indirect-symbol-or-undefined.js: Removed. * microbenchmarks/double-to-int32.js: Removed. * microbenchmarks/fake-iterators-that-throw-when-finished.js: Removed. * microbenchmarks/ftl-polymorphic-bitand.js: Removed. * microbenchmarks/ftl-polymorphic-bitor.js: Removed. * microbenchmarks/ftl-polymorphic-bitxor.js: Removed. * microbenchmarks/ftl-polymorphic-lshift.js: Removed. * microbenchmarks/ftl-polymorphic-rshift.js: Removed. * microbenchmarks/ftl-polymorphic-sub.js: Removed. * microbenchmarks/ftl-polymorphic-urshift.js: Removed. * microbenchmarks/map-constant-key.js: Removed. * microbenchmarks/nested-function-parsing.js: Removed. * microbenchmarks/rest-parameter-allocation-elimination.js: Removed. * microbenchmarks/spread-large-array.js: Removed. * microbenchmarks/string-add-constant-folding.js: Removed. * microbenchmarks/to-lower-case.js: Removed. * microbenchmarks/undefined-property-access.js: Removed. * slowMicrobenchmarks/array-push-3.js: Copied from JSTests/microbenchmarks/array-push-3.js. * slowMicrobenchmarks/bigswitch-indirect-symbol-or-undefined.js: Copied from JSTests/microbenchmarks/bigswitch-indirect-symbol-or-undefined.js. * slowMicrobenchmarks/double-to-int32.js: Copied from JSTests/microbenchmarks/double-to-int32.js. * slowMicrobenchmarks/fake-iterators-that-throw-when-finished.js: Copied from JSTests/microbenchmarks/fake-iterators-that-throw-when-finished.js. * slowMicrobenchmarks/ftl-polymorphic-bitand.js: Copied from JSTests/microbenchmarks/ftl-polymorphic-bitand.js. * slowMicrobenchmarks/ftl-polymorphic-bitor.js: Copied from JSTests/microbenchmarks/ftl-polymorphic-bitor.js. * slowMicrobenchmarks/ftl-polymorphic-bitxor.js: Copied from JSTests/microbenchmarks/ftl-polymorphic-bitxor.js. * slowMicrobenchmarks/ftl-polymorphic-lshift.js: Copied from JSTests/microbenchmarks/ftl-polymorphic-lshift.js. * slowMicrobenchmarks/ftl-polymorphic-rshift.js: Copied from JSTests/microbenchmarks/ftl-polymorphic-rshift.js. * slowMicrobenchmarks/ftl-polymorphic-sub.js: Copied from JSTests/microbenchmarks/ftl-polymorphic-sub.js. * slowMicrobenchmarks/ftl-polymorphic-urshift.js: Copied from JSTests/microbenchmarks/ftl-polymorphic-urshift.js. * slowMicrobenchmarks/map-constant-key.js: Copied from JSTests/microbenchmarks/map-constant-key.js. * slowMicrobenchmarks/nested-function-parsing.js: Copied from JSTests/microbenchmarks/nested-function-parsing.js. * slowMicrobenchmarks/rest-parameter-allocation-elimination.js: Copied from JSTests/microbenchmarks/rest-parameter-allocation-elimination.js. * slowMicrobenchmarks/spread-large-array.js: Copied from JSTests/microbenchmarks/spread-large-array.js. * slowMicrobenchmarks/string-add-constant-folding.js: Copied from JSTests/microbenchmarks/string-add-constant-folding.js. * slowMicrobenchmarks/to-lower-case.js: Copied from JSTests/microbenchmarks/to-lower-case.js. * slowMicrobenchmarks/undefined-property-access.js: Copied from JSTests/microbenchmarks/undefined-property-access.js. 2018-01-23 Robin Morisset Update the argument count in DFGByteCodeParser::handleRecursiveCall https://bugs.webkit.org/show_bug.cgi?id=181739 Reviewed by Saam Barati. * stress/recursive-tail-call-with-different-argument-count.js: Added. (foo): (bar): 2018-01-22 Michael Saboff DFG abstract interpreter needs to properly model effects of some Math ops https://bugs.webkit.org/show_bug.cgi?id=181886 Reviewed by Saam Barati. New regression test. * stress/arith-nodes-abstract-interpreter-untypeduse.js: Added. (test): 2018-01-20 Caio Lima [JSC] NumberPrototype::extractRadixFromArgs incorrectly cast double to int32_t https://bugs.webkit.org/show_bug.cgi?id=181182 Reviewed by Darin Adler. * stress/big-int-prototype-to-string-cast-overflow.js: Added. * stress/big-int-prototype-to-string-exception.js: Added. * stress/big-int-prototype-to-string-wrong-values.js: Added. * stress/number-prototype-to-string-cast-overflow.js: Added. * stress/number-prototype-to-string-exception.js: Added. * stress/number-prototype-to-string-wrong-values.js: Added. 2018-01-19 Ryan Haddad Disable Atomics when SharedArrayBuffer isn’t enabled https://bugs.webkit.org/show_bug.cgi?id=181572 Unreviewed test gardening. * test262.yaml: Skip tests that fail after this change. 2018-01-19 Saam Barati Kill ArithNegate's ArithProfile assert inside BytecodeParser https://bugs.webkit.org/show_bug.cgi?id=181877 Reviewed by Mark Lam. * stress/arith-profile-for-negate-can-see-non-number-due-to-dfg-osr-exit-profiling.js: Added. (runNearStackLimit): (f1): (f2): (f3): (i.catch): (i.try.runNearStackLimit): (catch): 2018-01-19 Saam Barati Spread's effects are modeled incorrectly both in AI and in Clobberize https://bugs.webkit.org/show_bug.cgi?id=181867 Reviewed by Michael Saboff. * stress/ai-needs-to-model-spreads-effects.js: Added. (try.p.Symbol.iterator): (try.go): (catch): * stress/clobberize-needs-to-model-spread-effects.js: Added. (assert): (foo): (a.Symbol.iterator): 2018-01-19 Yusuke Suzuki Unreviewed, reduce count of iteration to fix timing out debug JSC test https://bugs.webkit.org/show_bug.cgi?id=181535 * stress/inserted-recovery-with-set-last-index.js: 2018-01-17 Yusuke Suzuki [DFG][FTL] Introduce PhantomNewRegexp and RegExpExecNonGlobalOrSticky https://bugs.webkit.org/show_bug.cgi?id=181535 Reviewed by Saam Barati. * stress/inserted-recovery-with-set-last-index.js: Added. (shouldBe): (foo): * stress/materialize-regexp-at-osr-exit.js: Added. (shouldBe): (test): * stress/materialize-regexp-cyclic-regexp-at-osr-exit.js: Added. (shouldBe): (test): * stress/materialize-regexp-cyclic-regexp.js: Added. (shouldBe): (test): (i.switch): * stress/materialize-regexp-cyclic.js: Added. (shouldBe): (test): (i.switch): * stress/materialize-regexp-referenced-from-phantom-regexp-cyclic.js: Added. (bar): (foo): (test): * stress/materialize-regexp-referenced-from-phantom-regexp.js: Added. (bar): (foo): (test): * stress/materialize-regexp.js: Added. (shouldBe): (test): * stress/phantom-regexp-regexp-exec.js: Added. (shouldBe): (test): * stress/phantom-regexp-string-match.js: Added. (shouldBe): (test): * stress/regexp-last-index-sinking.js: Added. (shouldBe): (test): 2018-01-17 Saam Barati Disable Atomics when SharedArrayBuffer isn’t enabled https://bugs.webkit.org/show_bug.cgi?id=181572 Reviewed by Michael Saboff. * stress/isLockFree.js: 2018-01-17 Saam Barati DFG::Node::convertToConstant needs to clear the varargs flags https://bugs.webkit.org/show_bug.cgi?id=181697 Reviewed by Yusuke Suzuki. * stress/dfg-node-convert-to-constant-must-clear-varargs-flags.js: Added. (doIndexOf): (bar): (i.bar): 2018-01-16 Ryan Haddad Unreviewed, rolling out r226937. Tests added with this change are failing due to a missing exception check. Reverted changeset: "[JSC] NumberPrototype::extractRadixFromArgs incorrectly cast double to int32_t" https://bugs.webkit.org/show_bug.cgi?id=181182 https://trac.webkit.org/changeset/226937 2018-01-13 Caio Lima [JSC] NumberPrototype::extractRadixFromArgs incorrectly cast double to int32_t https://bugs.webkit.org/show_bug.cgi?id=181182 Reviewed by Darin Adler. * bigIntTests.yaml: * stress/big-int-constructor.js: * stress/big-int-prototype-to-string-cast-overflow.js: Added. (assert): (assertThrowRangeError): * stress/number-prototype-to-string-cast-overflow.js: Added. (assert): (assertThrowRangeError): 2018-01-12 Saam Barati CheckStructure can be incorrectly subsumed by CheckStructureOrEmpty https://bugs.webkit.org/show_bug.cgi?id=181177 Reviewed by Yusuke Suzuki. * stress/check-structure-ir-ensures-empty-does-not-flow-through.js: Added. (runNearStackLimit.t): (runNearStackLimit): (test.f): (test): 2018-01-12 Saam Barati Each variant of a polymorphic inlined call should be exitOK at the top of the block https://bugs.webkit.org/show_bug.cgi?id=181562 Reviewed by Yusuke Suzuki. * stress/each-block-at-top-of-polymorphic-call-inlining-should-be-exitOK.js: Added. (f): (foo): 2018-01-11 Saam Barati When inserting Unreachable in byte code parser we need to flush all the right things https://bugs.webkit.org/show_bug.cgi?id=181509 Reviewed by Mark Lam. * stress/proper-flushing-when-we-insert-unreachable-after-force-exit-in-bytecode-parser.js: Added. 2018-01-11 Saam Barati JITMathIC code in the FTL is wrong when code gets duplicated https://bugs.webkit.org/show_bug.cgi?id=181525 Reviewed by Michael Saboff and Keith Miller. * stress/allow-math-ic-b3-code-duplication.js: Added. 2018-01-11 Saam Barati Our for-in caching is wrong when we add indexed properties on things in the prototype chain https://bugs.webkit.org/show_bug.cgi?id=181508 Reviewed by Yusuke Suzuki. * stress/for-in-prototype-with-indexed-properties-should-prevent-caching.js: Added. (assert): (test1.foo): (test1): (test2.foo): (test2): 2018-01-09 Mark Lam ASSERTION FAILED: pair.second->m_type & PropertyNode::Getter https://bugs.webkit.org/show_bug.cgi?id=181388 Reviewed by Saam Barati. * stress/regress-181388.js: Added. 2018-01-08 JF Bastien WebAssembly: mask indexed accesses to Table https://bugs.webkit.org/show_bug.cgi?id=181412 Reviewed by Saam Barati. Update error messages. * wasm/js-api/table.js: (assert.throws.WebAssembly.Table.prototype.grow): 2018-01-08 Ryan Haddad Disable SharedArrayBuffer tests missed in r226386. https://bugs.webkit.org/show_bug.cgi?id=181266 Unreviewed test gardening. * test262.yaml: 2018-01-06 Yusuke Suzuki Object.getOwnPropertyNames includes "arguments" and "caller" for bound functions https://bugs.webkit.org/show_bug.cgi?id=181321 Reviewed by Saam Barati. * stress/bound-function-does-not-have-caller-and-arguments.js: Added. (shouldBe): (testFunction): * test262.yaml: 2018-01-05 Ryan Haddad Unreviewed, attempt to fix test262 after r226386. * test262.yaml: 2018-01-04 Yusuke Suzuki [DFG] Define defs for MapSet/SetAdd to participate in CSE https://bugs.webkit.org/show_bug.cgi?id=179911 Reviewed by Saam Barati. In addition to these tests, map-set-cse.js and set-add-cse.js work. * stress/map-set-change-get.js: Added. (shouldBe): (test): * stress/map-set-create-bucket.js: Added. (shouldBe): (test): * stress/set-add-create-bucket.js: Added. (shouldBe): 2018-01-03 Michael Saboff Disable SharedArrayBuffers from Web API https://bugs.webkit.org/show_bug.cgi?id=181266 Reviewed by Saam Barati. Disabled SharedArrayBuffer tests. * stress/SharedArrayBuffer-opt.js: * stress/SharedArrayBuffer.js: * stress/array-buffer-byte-length.js: * 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: * stress/regress-159779-1.js: * stress/regress-159779-2.js: * stress/regress-170473.js: * test262.yaml: 2018-01-03 Caio Lima [ESNext][BigInt] Failing test stress/big-int-constructor-oom.js into MIPS https://bugs.webkit.org/show_bug.cgi?id=181258 Reviewed by Antonio Gomes. * stress/big-int-constructor-gc.js: * stress/big-int-constructor-oom.js: 2018-01-03 Robin Morisset Inlining of a function that ends in op_unreachable crashes https://bugs.webkit.org/show_bug.cgi?id=181027 Reviewed by Filip Pizlo. * stress/inlining-unreachable.js: Added. (bar): (baz): (i.catch): 2018-01-02 Saam Barati Incorrect assertion inside AccessCase https://bugs.webkit.org/show_bug.cgi?id=181200 Reviewed by Yusuke Suzuki. * stress/setter-same-base-and-rhs-invalid-assertion-inside-access-case.js: Added. (ctor): (theFunc): (run): 2018-01-02 Caio Lima [ESNext][BigInt] Implement BigIntConstructor and BigIntPrototype https://bugs.webkit.org/show_bug.cgi?id=175359 Reviewed by Yusuke Suzuki. * bigIntTests.yaml: * stress/big-int-as-key.js: Added. * stress/big-int-constructor-gc.js: Added. * stress/big-int-constructor-oom.js: Added. * stress/big-int-constructor-properties.js: Added. * stress/big-int-constructor-prototype-prop-descriptor.js: Added. * stress/big-int-constructor-prototype.js: Added. * stress/big-int-constructor.js: Added. * stress/big-int-function-apply.js: * stress/big-int-length.js: Added. * stress/big-int-prop-descriptor.js: Added. * stress/big-int-proto-constructor.js: Added. * stress/big-int-proto-name.js: Added. * stress/big-int-prototype-properties.js: Added. * stress/big-int-prototype-proto.js: Added. * stress/big-int-prototype-value-of.js: Added. * stress/big-int-prototype-symbol-to-string-tag.js: Added. * stress/big-int-prototype-to-string-apply.js: Added. * stress/big-int-to-object.js: Added. * stress/big-int-to-string.js: Added. 2017-12-28 Saam Barati Assertion used to determine if something is an async generator is wrong https://bugs.webkit.org/show_bug.cgi?id=181168 Reviewed by Yusuke Suzuki. * stress/async-generator-assertion.js: Added. 2017-12-21 Guillaume Emont Skip stress/splay-flash-access tests on memory limited platforms https://bugs.webkit.org/show_bug.cgi?id=181086 Reviewed by Carlos Alberto Lopez Perez. These tests use about 185M of memory, and occasionally get OOM-killed on memory limited platforms. * stress/splay-flash-access-1ms.js: * stress/splay-flash-access.js: 2017-12-21 Guillaume Emont Skip slow jsc tests on embedded platforms https://bugs.webkit.org/show_bug.cgi?id=180937 Reviewed by Carlos Alberto Lopez Perez. The tests typeProfiler/deltablue-for-of.js and typeProfiler/getter-richards.js take a very long time in the ftl-no-cjit-type-profiler-force-poly-proto on embedded platform, and thus always timeout. They should be skipped on these platforms. * typeProfiler/deltablue-for-of.js: Skip on arm*/mips. * typeProfiler/getter-richards.js: Skip on arm*/mips. 2017-12-19 Yusuke Suzuki [JSC] Do not check isValid() in op_new_regexp https://bugs.webkit.org/show_bug.cgi?id=180970 Reviewed by Saam Barati. * stress/regexp-syntax-error-invalid-flags.js: Added. (shouldThrow): 2017-12-18 Guillaume Emont Skip stress/call-apply-exponential-bytecode-size.js unless x86-64 or arm64 https://bugs.webkit.org/show_bug.cgi?id=180712 Reviewed by Michael Catanzaro. stress/call-apply-exponential-bytecode-size.js crashes if the ExecutableAllocator's fixedExecutableMemoryPoolSize is less than 64 MB. Currently it is 64 MB or more only on x86-64 and arm64, so we should skip the test on other platforms. * stress/call-apply-exponential-bytecode-size.js: 2017-12-17 Yusuke Suzuki [FTL] NewArrayBuffer should be sinked if it is only used for spreading https://bugs.webkit.org/show_bug.cgi?id=179762 Reviewed by Saam Barati. * stress/call-varargs-double-new-array-buffer.js: Added. (assert): (bar): (foo): * stress/call-varargs-spread-new-array-buffer.js: Added. (assert): (bar): (foo): * stress/call-varargs-spread-new-array-buffer2.js: Added. (assert): (bar): (foo): * stress/forward-varargs-double-new-array-buffer.js: Added. (assert): (test.baz): (test.bar): (test.foo): (test): * stress/new-array-buffer-sinking-osrexit.js: Added. (target): (test): * stress/new-array-with-spread-double-new-array-buffer.js: Added. (shouldBe): (test): * stress/new-array-with-spread-with-phantom-new-array-buffer.js: Added. (shouldBe): (target): (test): * stress/phantom-new-array-buffer-forward-varargs.js: Added. (assert): (test1.bar): (test1.foo): (test1): (test2.bar): (test2.foo): (test3.baz): (test3.bar): (test3.foo): (test4.baz): (test4.bar): (test4.foo): * stress/phantom-new-array-buffer-forward-varargs2.js: Added. (assert): (test.baz): (test.bar): (test.foo): (test): * stress/phantom-new-array-buffer-osr-exit.js: Added. (assert): (baz): (bar): (effects): (foo): 2017-12-14 Saam Barati The CleanUp after LICM is erroneously removing a Check https://bugs.webkit.org/show_bug.cgi?id=180852 Reviewed by Filip Pizlo. * stress/dont-run-cleanup-after-licm.js: Added. 2017-12-14 Michael Saboff REGRESSION (r225695): Repro crash on yahoo login page https://bugs.webkit.org/show_bug.cgi?id=180761 Reviewed by JF Bastien. New regression test. * stress/regress-180761.js: Added. 2017-12-13 Keith Miller JSObjects should have a mask for loading indexed properties https://bugs.webkit.org/show_bug.cgi?id=180768 Reviewed by Mark Lam. * stress/int16-put-by-val-in-and-out-of-bounds.js: (test): 2017-12-13 Saam Barati Arrow functions need their own structure because they have different properties than sloppy functions https://bugs.webkit.org/show_bug.cgi?id=180779 Reviewed by Mark Lam. * stress/arrow-function-needs-its-own-structure.js: Added. (assert): (readPrototype): (noInline.let.f1): (noInline): 2017-12-13 Saam Barati Fix how JSFunction handles "caller" and "arguments" for functions that don't have those properties https://bugs.webkit.org/show_bug.cgi?id=163579 Reviewed by Mark Lam. * stress/caller-and-arguments-properties-for-functions-that-dont-have-them.js: Added. (assert): (test1): (i.test1): (i.test1.C): (i.test1.async.foo): (i.test1.foo): (test2): 2017-12-13 Saam Barati TypeCheckHoistingPhase needs to emit a CheckStructureOrEmpty if it's doing it for |this| https://bugs.webkit.org/show_bug.cgi?id=180734 Reviewed by Yusuke Suzuki. * stress/type-check-hoisting-phase-hoist-check-structure-on-tdz-this-value.js: Added. (__isPropertyOfType): (__getProperties): (__getObjects): (__getRandomObject): (theClass.): (theClass): (childClass): (counter.catch): 2017-12-12 Saam Barati We need to model effects of Spread(@PhantomCreateRest) in Clobberize/PreciseLocalClobberize https://bugs.webkit.org/show_bug.cgi?id=180725 Reviewed by Michael Saboff. * stress/model-effects-properly-of-spread-over-phantom-create-rest.js: Added. (f1): (f2): (let.o2.valueOf): 2017-12-12 Yusuke Suzuki [JSC] Implement optimized WeakMap and WeakSet https://bugs.webkit.org/show_bug.cgi?id=179929 Reviewed by Saam Barati. * microbenchmarks/weak-map-key.js: * microbenchmarks/weak-set-key.js: Copied from JSTests/microbenchmarks/weak-map-key.js. (assert): (objectKey): (let.start.Date.now): * stress/basic-weakmap.js: Added. (shouldBe): (test): * stress/basic-weakset.js: Added. (shouldBe): (test.set new): * stress/weakmap-cse-set-break.js: Added. (shouldBe): (test): * stress/weakmap-cse.js: Added. (shouldBe): (test): * stress/weakmap-gc.js: Added. (test): * stress/weakset-cse-add-break.js: Added. (shouldBe): (test.set new): * stress/weakset-cse.js: Added. (shouldBe): (test.set new): * stress/weakset-gc.js: Added. (test.set add): (test.set new): (test): 2017-12-12 Saam Barati ConstantFoldingPhase rule for GetMyArgumentByVal must check for negative indices https://bugs.webkit.org/show_bug.cgi?id=180723 Reviewed by JF Bastien. * stress/get-my-argument-by-val-constant-folding.js: Added. (test): (catch): 2017-12-12 Caio Lima [ESNext][BigInt] Implement BigInt literals and JSBigInt https://bugs.webkit.org/show_bug.cgi?id=179000 Reviewed by Darin Adler and Yusuke Suzuki. * bigIntTests.yaml: Added. * stress/big-int-literal-line-terminator.js: Added. * stress/big-int-literals.js: Added. * stress/big-int-operations-error.js: Added. * stress/big-int-type-of.js: Added. * stress/big-int-white-space-trailing-leading.js: Added. * stress/big-int-function-apply.js: Added. 2017-12-11 Saam Barati We need to disableCaching() in ErrorInstance when we materialize properties https://bugs.webkit.org/show_bug.cgi?id=180343 Reviewed by Mark Lam. * stress/disable-caching-when-lazy-materializing-error-property-on-put.js: Added. (assert): (makeError): (storeToStack): (storeToStackAlreadyMaterialized): 2017-12-05 JF Bastien WebAssembly: don't eagerly checksum https://bugs.webkit.org/show_bug.cgi?id=180441 Reviewed by Saam Barati. Checksum is now disabled, so tests only have as the module name. * wasm/function-tests/nameSection.js: * wasm/function-tests/stack-overflow.js: (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.assertOverflows): (assertOverflows.assertThrows): (assertOverflows): * wasm/function-tests/stack-trace.js: 2017-12-04 JF Bastien Proxy all functions, except the $ objects https://bugs.webkit.org/show_bug.cgi?id=180375 Reviewed by Saam Barati. It looks like this test may have broken some executions because I call some internal objects. Explicitly ignore objects whose name starts with "$" because it's a bad idea anyways. * stress/proxy-all-the-parameters.js: (generateObjects): (get throw): 2017-12-04 Saam Barati We need to leave room on the top of the stack for the FTL TailCall slow path so it doesn't overwrite things we want to retrieve when doing a stack walk when throwing an exception https://bugs.webkit.org/show_bug.cgi?id=180366 Reviewed by Michael Saboff. * stress/ftl-tail-call-throw-exception-from-slow-path-recover-stack-values.js: Added. (theParent): (test1.base.getParentStaticValue): (test1.base): (test1.__v_24888.prototype.set prop): (test1.__v_24888): (test2.base.getParentStaticValue): (test2.base): (test2.__v_24888.prototype.set prop): (test2.__v_24888): (test2): 2017-12-01 JF Bastien Try proxying all function arguments https://bugs.webkit.org/show_bug.cgi?id=180306 Reviewed by Saam Barati. * stress/proxy-all-the-parameters.js: Added. (isPropertyOfType): (getProperties): (generateObjects): (getObjects): (getFunctions): (get throw): (let.o.of.getObjects.let.f.of.getFunctions.catch): 2017-12-01 JF Bastien JavaScriptCore: missing exception checks in Math functions that take more than one argument https://bugs.webkit.org/show_bug.cgi?id=180297 Reviewed by Mark Lam. * stress/math-exceptions.js: Added. (get try): (catch): 2017-12-01 JF Bastien JavaScriptCore: add test for weird class static getters https://bugs.webkit.org/show_bug.cgi?id=180281 Reviewed by Mark Lam. I fixed a bug for it in r224927 and didn't add a test. Do so. * stress/class-static-get-weird.js: Added. (c.prototype.get name): (c): (c.prototype.get arguments): (c.prototype.get caller): (c.prototype.get length): 2017-12-01 Saam Barati Having a bad time needs to handle ArrayClass indexing type as well https://bugs.webkit.org/show_bug.cgi?id=180274 Reviewed by Keith Miller and Mark Lam. * stress/array-prototype-slow-put-having-a-bad-time-2.js: Added. (assert): * stress/array-prototype-slow-put-having-a-bad-time.js: Added. (assert): 2017-12-01 JF Bastien WebAssembly: restore cached stack limit after out-call https://bugs.webkit.org/show_bug.cgi?id=179106 Reviewed by Saam Barati. * wasm/function-tests/double-instance.js: Added. (const.imp.boom): (const.imp.get callAnother): 2017-11-30 JF Bastien WebAssembly: improve stack trace https://bugs.webkit.org/show_bug.cgi?id=179343 Reviewed by Saam Barati. Update the tests to follow the new format. Notably, SHA1 module hash is now included in traces, and stubs are properly identified. * wasm/assert.js: Add an assertion which matches regular expressions. * wasm/function-tests/nameSection.js: * wasm/function-tests/stack-overflow.js: (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.assertOverflows): (assertOverflows.assertThrows.wasm.1): (assertOverflows.assertThrows.wasm.0): (assertOverflows.assertThrows): (assertOverflows): * wasm/function-tests/stack-trace.js: (import.Builder.from.string_appeared_here.assert): Deleted. * wasm/function-tests/trap-after-cross-instance-call.js: (wasmFrameCountFromError): * wasm/function-tests/trap-load-2.js: (wasmFrameCountFromError): * wasm/function-tests/trap-load.js: (wasmFrameCountFromError): 2017-11-30 Mark Lam jsc shell's flashHeapAccess() should not do JS work after releasing access to the heap. https://bugs.webkit.org/show_bug.cgi?id=180219 Reviewed by Filip Pizlo. * stress/regress-180219.js: Added. 2017-11-30 Yusuke Suzuki [DFG][FTL] operationHasIndexedProperty does not consider negative int32_t https://bugs.webkit.org/show_bug.cgi?id=180190 Reviewed by Mark Lam. * stress/operation-in-may-have-negative-int32-array-storage.js: Added. (shouldBe): (test1): * stress/operation-in-may-have-negative-int32-contiguous-array.js: Added. (shouldBe): (test1): * stress/operation-in-may-have-negative-int32-double-array.js: Added. (shouldBe): (test1): * stress/operation-in-may-have-negative-int32-generic-array.js: Added. (shouldBe): (test1): * stress/operation-in-may-have-negative-int32-int32-array.js: Added. (shouldBe): (test1): * stress/operation-in-may-have-negative-int32.js: Added. (shouldBe): (test2): * stress/operation-in-negative-int32-cast.js: Added. (shouldBe): (test1): 2017-11-28 JF Bastien Strict and sloppy functions shouldn't share structure https://bugs.webkit.org/show_bug.cgi?id=180103 Reviewed by Saam Barati. * stress/get-by-id-strict-arguments.js: Added. Used to not throw because the IC was wrong. (foo): (bar): (baz): (catch): * stress/get-by-id-strict-callee.js: Added. Not strictly necessary in this patch, but may as well test odd strict mode corner cases. (bar): (baz): (catch): * stress/get-by-id-strict-caller.js: Added. Also IC'd wrong. (foo): (bar): (baz): (catch): * stress/get-by-id-strict-nested-arguments-2.js: Added. Same as next file, but with invalidation of the FunctionExecutable's singletonFunction() to hit SpeculativeJIT::compileNewFunction's slower path. (foo): (bar.const.x): (bar.const.y): (bar): (catch): * stress/get-by-id-strict-nested-arguments.js: Added. Make sure strict nesting works correctly. (foo): (bar.baz): (bar): * stress/strict-function-structure.js: Added. The test used to assert in objectProtoFuncHasOwnProperty. (foo): (bar): (baz): * stress/strict-nested-function-structure.js: Added. Nesting. (foo): (bar): (baz.boo): (baz): 2017-11-29 Robin Morisset The recursive tail call optimisation is wrong on closures https://bugs.webkit.org/show_bug.cgi?id=179835 Reviewed by Saam Barati. * stress/closure-recursive-tail-call.js: Added. (makeClosure): 2017-11-27 JF Bastien JavaScript rest function parameter with negative index leads to bad DFG abstract interpretation https://bugs.webkit.org/show_bug.cgi?id=180051 Reviewed by Saam Barati. * stress/rest-parameter-negative.js: Added. (__f_5484): (catch): (__f_5485): (__v_22598.catch): 2017-11-27 Saam Barati Spread can escape when CreateRest does not https://bugs.webkit.org/show_bug.cgi?id=180057 Reviewed by JF Bastien. * stress/spread-escapes-but-create-rest-does-not.js: Added. (assert): (getProperties): (theFunc): (let.obj.valueOf): 2017-11-21 Yusuke Suzuki [DFG] Add NormalizeMapKey DFG IR https://bugs.webkit.org/show_bug.cgi?id=179912 Reviewed by Saam Barati. * stress/map-untyped-normalize-cse.js: Added. (shouldBe): (test): * stress/map-untyped-normalize.js: Added. (shouldBe): (test): * stress/set-untyped-normalize-cse.js: Added. (shouldBe): (set return.set has.set has): * stress/set-untyped-normalize.js: Added. (shouldBe): (set return.set has): 2017-11-26 Yusuke Suzuki [FTL] Support DeleteById and DeleteByVal https://bugs.webkit.org/show_bug.cgi?id=180022 Reviewed by Saam Barati. * stress/delete-by-id.js: Added. (shouldBe): (test1): (test2): * stress/delete-by-val-ftl.js: Added. (shouldBe): (test1): (test2): 2017-11-26 Yusuke Suzuki [DFG] Introduce {Set,Map,WeakMap}Fields https://bugs.webkit.org/show_bug.cgi?id=179925 Reviewed by Saam Barati. * stress/map-set-clobber-map-get.js: Added. (shouldBe): (test): * stress/map-set-does-not-clobber-set-has.js: Added. (shouldBe): * stress/map-set-does-not-clobber-weak-map-get.js: Added. (shouldBe): (test): * stress/set-add-clobber-set-has.js: Added. (shouldBe): * stress/set-add-does-not-clobber-map-get.js: Added. (shouldBe): 2017-11-24 Mark Lam Move unsafe jsc shell test functions to the $vm object. https://bugs.webkit.org/show_bug.cgi?id=179980 Reviewed by Yusuke Suzuki. * controlFlowProfiler/driver/driver.js: * controlFlowProfiler/execution-count.js: * controlFlowProfiler/if-statement.js: * controlFlowProfiler/loop-statements.js: * controlFlowProfiler/switch-statements.js: * controlFlowProfiler/test-jit.js: * exceptionFuzz/3d-cube.js: * exceptionFuzz/date-format-xparb.js: * exceptionFuzz/earley-boyer.js: * heapProfiler/basic-edges.js: * heapProfiler/property-edge-types.js: * microbenchmarks/try-get-by-id-basic.js: * microbenchmarks/try-get-by-id-polymorphic.js: * modules/namespace-object-try-get.js: * stress/argument-count-bytecode.js: * stress/argument-intrinsic-basic.js: * stress/argument-intrinsic-inlining-use-caller-arg.js: * stress/argument-intrinsic-inlining-with-result-escape.js: * stress/argument-intrinsic-inlining-with-vararg-with-enough-arguments.js: * stress/argument-intrinsic-inlining-with-vararg.js: * stress/argument-intrinsic-nested-inlining.js: * stress/argument-intrinsic-not-convert-to-get-argument.js: * stress/argument-intrinsic-with-stack-write.js: * stress/arity-mismatch-get-argument.js: * stress/array-message-passing.js: * stress/array-push-with-force-exit.js: * stress/check-dom-with-signature.js: * stress/check-sub-class.js: * stress/compare-eq-incomplete-profile.js: * stress/custom-get-set-inline-caching-one-level-up-proto-chain.js: * stress/do-eval-virtual-call-correctly.js: * stress/dom-jit-with-poly-proto.js: * stress/domjit-exception-ic.js: * stress/domjit-exception.js: * stress/domjit-getter-complex-with-incorrect-object.js: * stress/domjit-getter-complex.js: * stress/domjit-getter-poly.js: * stress/domjit-getter-proto.js: * stress/domjit-getter-super-poly.js: * stress/domjit-getter-try-catch-getter-as-get-by-id-register-restoration.js: * stress/domjit-getter-type-check.js: * stress/domjit-getter.js: * stress/exit-during-inlined-arity-fixup-recover-proper-frame.js: * stress/for-in-proxy-target-changed-structure.js: * stress/for-in-proxy.js: * stress/generational-opaque-roots.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/import-basic.js: * stress/import-from-eval.js: * stress/import-reject-with-exception.js: * stress/import-syntax.js: * stress/impure-get-own-property-slot-inline-cache.js: * stress/is-constructor.js: * stress/istypedarrayview-intrinsic.js: * stress/jsc-setImpureGetterDelegate-on-bad-type.js: * stress/jsc-test-functions-should-be-more-robust.js: * stress/object-toString-with-proxy.js: * stress/poly-proto-custom-value-and-accessor.js: * stress/proxy-inline-cache.js: * stress/re-execute-error-module.js: * stress/regress-150532.js: * stress/regress-156992.js: * stress/regress-179619.js: * stress/resources/shadow-chicken-support.js: * stress/runtime-array.js: * stress/sampling-profiler-microtasks.js: * stress/shadow-chicken-enabled.js: * stress/spread-correct-global-object-on-exception.js: * stress/super-get-by-id.js: * stress/tailCallForwardArguments.js: * stress/to-object-intrinsic-boolean-edge.js: * stress/to-object-intrinsic-null-or-undefined-edge.js: * stress/to-object-intrinsic-number-edge.js: * stress/to-object-intrinsic-object-edge.js: * stress/to-object-intrinsic-string-edge.js: * stress/to-object-intrinsic-symbol-edge.js: * stress/to-object-intrinsic.js: * stress/try-catch-custom-getter-as-get-by-id.js: * stress/try-get-by-id-poly-proto.js: * stress/try-get-by-id-should-spill-registers-dfg.js: * stress/try-get-by-id.js: * typeProfiler/arrow-functions.js: * typeProfiler/basic.js: * typeProfiler/captured.js: * typeProfiler/classes.js: * typeProfiler/dfg-jit-optimizations.js: * typeProfiler/dictionary-mode.js: * typeProfiler/es6-block-scoping.js: * typeProfiler/es6-classes.js: * typeProfiler/inheritance.js: * typeProfiler/int52-dfg.js: * typeProfiler/loop.js: * typeProfiler/optional-fields.js: * typeProfiler/overflow.js: * typeProfiler/return.js: * typeProfiler/symbol.js: * typeProfiler/weird-prototype-chain.js: 2017-11-21 Yusuke Suzuki [DFG][FTL] Support MapSet / SetAdd intrinsics https://bugs.webkit.org/show_bug.cgi?id=179858 Reviewed by Saam Barati. * microbenchmarks/map-has-and-set.js: Added. (test): * stress/map-set-check-failure.js: Added. (shouldBe): (shouldThrow): (target): * stress/map-set-cse.js: Added. (shouldBe): (test): * stress/set-add-check-failure.js: Added. (shouldBe): (shouldThrow): (set shouldThrow): * stress/set-add-cse.js: Added. (shouldBe): 2017-11-21 Yusuke Suzuki [JSC] Allow poly proto for intrinsic getters https://bugs.webkit.org/show_bug.cgi?id=179550 Reviewed by Saam Barati. This change is also tested by existing tests. 1. stress/intrinsic-getter-with-poly-proto.js 2. stress/poly-proto-intrinsic-getter-correctness.js * stress/intrinsic-getter-with-poly-proto-getter-change.js: Added. (shouldBe): (makePolyProtoObject.foo.C): (makePolyProtoObject.foo): (makePolyProtoObject): (target): * stress/intrinsic-getter-with-poly-proto-proto-change.js: Added. (shouldBe): (makePolyProtoObject.foo.C): (makePolyProtoObject.foo): (makePolyProtoObject): (target): 2017-11-20 Guillaume Emont Skip stress/unshiftCountSlowCase-correct-postCapacity.js on embedded Linux https://bugs.webkit.org/show_bug.cgi?id=179744 Reviewed by Michael Catanzaro. This test uses too much memory for our buildbots on these platforms and gets OOM-killed. * stress/unshiftCountSlowCase-correct-postCapacity.js: Skip if $memoryLimited and linux. 2017-11-17 JF Bastien WebAssembly JS API: throw when a promise can't be created https://bugs.webkit.org/show_bug.cgi?id=179826 Reviewed by Mark Lam. Test WebAssembly.{compile,instantiate} where promise creation fails because of a stack overflow. * wasm/js-api/promise-stack-overflow.js: Added. (const.runNearStackLimit.f.const.t): (async.testCompile): (async.testInstantiate): 2017-11-16 Yusuke Suzuki Unreviewed, mark regress-178385.js as memory exhausting * stress/regress-178385.js: 2017-11-16 Ryan Haddad Mark test262/test/language/statements/class/definition/fn-name-static-precedence.js as passing after r224927. Unreviewed test gardening. * test262.yaml: 2017-11-16 Robin Morisset REGRESSION (r224592): oss-fuzz: jsc: Null-dereference READ in JSC::JSCell::isObject (4216) https://bugs.webkit.org/show_bug.cgi?id=179763 Reviewed by Keith Miller. Just adding a slightly cleaned-up version of the original fuzzer-found test. * stress/tdz-this-in-try-catch.js: Added. (__v_6388): (__v_6392): 2017-11-14 Yusuke Suzuki [DFG][FTL] Support Array::DirectArguments with OutOfBounds https://bugs.webkit.org/show_bug.cgi?id=179594 Reviewed by Saam Barati. * stress/direct-arguments-in-bounds-to-out-of-bounds.js: Added. (shouldBe): (args): * stress/direct-arguments-out-of-bounds-watchpoint.js: Added. (shouldBe): (args): 2017-11-14 Saam Barati We need to set topCallFrame when calling Wasm::Memory::grow from the JIT https://bugs.webkit.org/show_bug.cgi?id=179639 Reviewed by JF Bastien. * wasm/function-tests/grow-memory-cause-gc.js: Added. (escape): (i.func): 2017-11-13 Mark Lam Add more overflow check book-keeping for MarkedArgumentBuffer. https://bugs.webkit.org/show_bug.cgi?id=179634 Reviewed by Saam Barati. * stress/regress-179634.js: Added. 2017-11-13 Mark Lam Make the jsc shell loadGetterFromGetterSetter() function more robust. https://bugs.webkit.org/show_bug.cgi?id=179619 Reviewed by Saam Barati. * stress/regress-179619.js: Added. 2017-11-12 Mark Lam We should ensure that operationStrCat2 and operationStrCat3 are never passed Symbols as arguments. https://bugs.webkit.org/show_bug.cgi?id=179562 Reviewed by Saam Barati. * regress-179562.js: Added. 2017-11-08 Saam Barati A JSFunction's ObjectAllocationProfile should watch the poly prototype watchpoint so it can clear its object allocation profile https://bugs.webkit.org/show_bug.cgi?id=177792 Reviewed by Yusuke Suzuki. * microbenchmarks/poly-proto-clear-js-function-allocation-profile.js: Added. (assert): (foo.Foo.prototype.ensureX): (foo.Foo): (foo): (access): 2017-11-08 Ryan Haddad Mark test262.yaml/test262/test/language/statements/try/tco-catch.js as passing. https://bugs.webkit.org/show_bug.cgi?id=178592 Unreviewed test gardening. * test262.yaml: 2017-11-08 Robin Morisset Turn recursive tail calls into loops https://bugs.webkit.org/show_bug.cgi?id=176601 Reviewed by Saam Barati. Relanding after https://bugs.webkit.org/show_bug.cgi?id=178834. Add some simple test that computes factorial in several ways, and other trivial computations. They all tests the case where foo calls bar (in an inlineable way) that then does a tail call. Depending on the nature of both calls, it is possible or not to turn the tail call into a loop. I have no clear way of checking that the call was indeed transformed, but I can check that the code computes the right result (which it doesn't if that tail call is transformed into a loop in the unsound cases). * stress/inline-call-to-recursive-tail-call.js: Added. (factorial.aux): (factorial): (factorial2.aux2): (factorial2.id): (factorial2): (factorial3.aux3): (factorial3): (aux4): (factorial4): (foo): (auxBar): (bar): (test): 2017-11-07 Mark Lam AccessCase::generateImpl() should exclude the result register when restoring registers after a call. https://bugs.webkit.org/show_bug.cgi?id=179355 Reviewed by Saam Barati. * stress/regress-179355.js: Added. 2017-11-05 Yusuke Suzuki JIT call inline caches should cache calls to objects with getCallData/getConstructData traps https://bugs.webkit.org/show_bug.cgi?id=144458 Reviewed by Saam Barati. * microbenchmarks/dfg-internal-function-call.js: Added. (target): * microbenchmarks/dfg-internal-function-construct.js: Added. (target): * microbenchmarks/dfg-internal-function-not-handled-call.js: Added. (target): * microbenchmarks/dfg-internal-function-not-handled-construct.js: Added. (target): * stress/dfg-internal-function-call.js: Added. (shouldBe): (target): * stress/dfg-internal-function-construct.js: Added. (shouldBe): (target): * stress/internal-function-call.js: Added. (shouldBe): * stress/internal-function-construct.js: Added. (shouldBe): 2017-11-05 Per Arne Vollan [Win] Skip stress/regress-178385.js. https://bugs.webkit.org/show_bug.cgi?id=179298 Unreviewed test gardening. * stress/regress-178385.js: 2017-11-03 Keith Miller Add test for ic with side effects https://bugs.webkit.org/show_bug.cgi?id=179268 Reviewed by Saam Barati. * stress/put-inline-cache-side-effects.js: Added. (let.i.of.objs.keys): (f): 2017-11-03 Mark Lam CachedCall (and its clients) needs overflow checks. https://bugs.webkit.org/show_bug.cgi?id=179185 Reviewed by JF Bastien. * stress/regress-179185.js: Added. 2017-11-02 Michael Saboff DFG needs to handle code motion of code in for..in loop bodies https://bugs.webkit.org/show_bug.cgi?id=179212 Reviewed by Keith Miller. New regression test. * stress/for-in-side-effects.js: Added. (getPrototypeOf): (reset): (testWithoutFTL.f): (testWithoutFTL): (testWithFTL.f): (testWithFTL): 2017-11-02 Filip Pizlo AI does not correctly model the clobber case of ArithClz32 https://bugs.webkit.org/show_bug.cgi?id=179188 Reviewed by Michael Saboff. * stress/arith-clz32-effects.js: Added. (foo): (valueOf): 2017-11-01 Michael Saboff Integer overflow in code generated by LoadVarargs processing in DFG and FTL. https://bugs.webkit.org/show_bug.cgi?id=179140 Reviewed by Saam Barati. New regression test. * stress/regress-179140.js: Added. (testWithoutFTL): (testWithFTL): 2017-11-01 Yusuke Suzuki [JSC] Introduce @toObject https://bugs.webkit.org/show_bug.cgi?id=178726 Reviewed by Saam Barati. * stress/array-copywithin.js: (shouldThrow): * stress/object-constructor-boolean-edge.js: Added. (shouldBe): (test): * stress/object-constructor-global.js: Added. (shouldBe): * stress/object-constructor-null-edge.js: Added. (shouldBe): (test): * stress/object-constructor-number-edge.js: Added. (shouldBe): (test): * stress/object-constructor-object-edge.js: Added. (shouldBe): (test): (i.arg): * stress/object-constructor-string-edge.js: Added. (shouldBe): (test): * stress/object-constructor-symbol-edge.js: Added. (shouldBe): (test): * stress/object-constructor-undefined-edge.js: Added. (shouldBe): (test): * stress/symbol-array-from.js: Added. (shouldBe): * stress/to-object-intrinsic-boolean-edge.js: Added. (shouldBe): (builtin.createBuiltin): * stress/to-object-intrinsic-null-or-undefined-edge.js: Added. (shouldThrow): * stress/to-object-intrinsic-number-edge.js: Added. (shouldBe): (builtin.createBuiltin): * stress/to-object-intrinsic-object-edge.js: Added. (shouldBe): (builtin.createBuiltin): (i.arg): * stress/to-object-intrinsic-string-edge.js: Added. (shouldBe): (builtin.createBuiltin): * stress/to-object-intrinsic-symbol-edge.js: Added. (shouldBe): (builtin.createBuiltin): * stress/to-object-intrinsic.js: Added. (shouldBe): (shouldThrow): (builtin.createBuiltin): 2017-10-27 Yusuke Suzuki [DFG][FTL] Introduce StringSlice https://bugs.webkit.org/show_bug.cgi?id=178934 Reviewed by Saam Barati. * microbenchmarks/string-slice-empty.js: Added. (slice): * microbenchmarks/string-slice-one-char.js: Added. (slice): * microbenchmarks/string-slice.js: Added. (slice): 2017-10-26 Michael Saboff REGRESSION(r222601): We fail to properly backtrack into a sub pattern of a parenthesis with non-zero minimum https://bugs.webkit.org/show_bug.cgi?id=178890 Reviewed by Keith Miller. New regression test. * stress/regress-178890.js: Added. 2017-10-26 Mark Lam JSRopeString::RopeBuilder::append() should check for overflows. https://bugs.webkit.org/show_bug.cgi?id=178385 Reviewed by Saam Barati. * stress/regress-178385.js: Added. 2017-10-26 Ryan Haddad Unreviewed, rolling out r223961. The change that required this has been rolled out. Reverted changeset: "Mark test262.yaml/test262/test/language/statements/try/tco- catch.js as passing." https://bugs.webkit.org/show_bug.cgi?id=178592 https://trac.webkit.org/changeset/223961 2017-10-25 Commit Queue Unreviewed, rolling out r223691 and r223729. https://bugs.webkit.org/show_bug.cgi?id=178834 Broke Speedometer 2 React-Redux-TodoMVC test case (Requested by rniwa on #webkit). Reverted changesets: "Turn recursive tail calls into loops" https://bugs.webkit.org/show_bug.cgi?id=176601 https://trac.webkit.org/changeset/223691 "REGRESSION(r223691): DFGByteCodeParser.cpp:1483:83: warning: comparison is always false due to limited range of data type [-Wtype-limits]" https://bugs.webkit.org/show_bug.cgi?id=178543 https://trac.webkit.org/changeset/223729 2017-10-25 Ryan Haddad Mark test262.yaml/test262/test/language/statements/try/tco-catch.js as passing. https://bugs.webkit.org/show_bug.cgi?id=178592 Unreviewed test gardening. * test262.yaml: 2017-10-24 Yusuke Suzuki [FTL] Support NewStringObject https://bugs.webkit.org/show_bug.cgi?id=178737 Reviewed by Saam Barati. * stress/new-string-object.js: Added. (shouldBe): (test): 2017-10-15 Yusuke Suzuki [JSC] modules can be visited more than once when resolving bindings through "star" exports as long as the exportName is different each time https://bugs.webkit.org/show_bug.cgi?id=178308 Reviewed by Mark Lam. * test262.yaml: 2017-10-23 Yusuke Suzuki [JSC] Use fastJoin in Array#toString https://bugs.webkit.org/show_bug.cgi?id=178062 Reviewed by Darin Adler. * microbenchmarks/contiguous-array-to-string.js: Added. (target): * microbenchmarks/double-array-to-string.js: Added. (target): * microbenchmarks/int32-array-to-string.js: Added. (target): 2017-10-22 Zan Dobersek stress/check-string-ident.js is improperly skipped https://bugs.webkit.org/show_bug.cgi?id=178642 Reviewed by Saam Barati. * stress/check-string-ident.js: Drop the defaultNoEagerRun directive since it enforces the run-jsc-stress-tests script to still set up the test to run, despite the skip directive that's used before. 2017-10-20 Mark Lam Add a test case for r214334. https://bugs.webkit.org/show_bug.cgi?id=169941 Reviewed by JF Bastien. * stress/regress-169941.js: Added. 2017-10-19 JF Bastien WebAssembly: no VM / JS version of everything but Instance https://bugs.webkit.org/show_bug.cgi?id=177473 Reviewed by Filip Pizlo, Saam Barati. - Exceeding max on memory growth now returns a range error as per spec. This is a (very minor) breaking change: it used to throw OOM error. Update the corresponding test. * wasm/js-api/memory-grow.js: (assertEq): * wasm/js-api/table.js: (assert.throws): 2017-10-19 Mark Lam Stringifier::appendStringifiedValue() is missing an exception check. https://bugs.webkit.org/show_bug.cgi?id=178386 Reviewed by Saam Barati. * stress/regress-178386.js: Added. 2017-10-19 Michael Saboff Test262: RegExp/property-escapes/generated/Emoji_Component.js fails with current RegExp Unicode Properties implementation https://bugs.webkit.org/show_bug.cgi?id=178521 Reviewed by JF Bastien. * test262.yaml: Enabled test262/test/built-ins/RegExp/property-escapes/generated/Emoji_Component.js as it now passes with the current version (5.0) of the Emoji spec. 2017-10-19 Robin Morisset Turn recursive tail calls into loops https://bugs.webkit.org/show_bug.cgi?id=176601 Reviewed by Saam Barati. Add some simple test that computes factorial in several ways, and other trivial computations. They all tests the case where foo calls bar (in an inlineable way) that then does a tail call. Depending on the nature of both calls, it is possible or not to turn the tail call into a loop. I have no clear way of checking that the call was indeed transformed, but I can check that the code computes the right result (which it doesn't if that tail call is transformed into a loop in the unsound cases). * stress/inline-call-to-recursive-tail-call.js: Added. (factorial.aux): (factorial): (factorial2.aux): (factorial2.id): (factorial2): (factorial3.aux): (factorial3): (aux): (factorial4): (test): 2017-10-18 Mark Lam RegExpObject::defineOwnProperty() does not need to compare values if no descriptor value is specified. https://bugs.webkit.org/show_bug.cgi?id=177600 Reviewed by Saam Barati. * stress/regress-177600.js: Added. 2017-10-18 Mark Lam The compiler should always register a structure when it adds its transitionWatchPointSet. https://bugs.webkit.org/show_bug.cgi?id=178420 Reviewed by Saam Barati and Filip Pizlo. * stress/regress-178420.js: Added. (new.Array.10000.map): 2017-10-18 Yusuke Suzuki [JSC] __proto__ getter should be fast https://bugs.webkit.org/show_bug.cgi?id=178067 Reviewed by Saam Barati. * stress/dfg-object-proto-accessor.js: Added. (shouldBe): (shouldThrow): (target): * stress/dfg-object-proto-getter.js: Added. (shouldBe): (shouldThrow): (target): * stress/dfg-object-prototype-of.js: Added. (shouldBe): (shouldThrow): (target): * stress/dfg-reflect-get-prototype-of.js: Added. (shouldBe): (shouldThrow): (target): * stress/intrinsic-getter-with-poly-proto.js: Added. (shouldBe): (makePolyProtoObject.foo.C): (makePolyProtoObject.foo): (makePolyProtoObject): (target): * stress/object-get-prototype-of-filtered.js: Added. (shouldBe): (shouldThrow): (target): (i.Cocoa): * stress/object-get-prototype-of-mono-proto.js: Added. (shouldBe): (makePolyProtoObject.foo.C): (makePolyProtoObject.foo): (makePolyProtoObject): (target): * stress/object-get-prototype-of-poly-mono-proto.js: Added. (shouldBe): (makePolyProtoObject.foo.C): (makePolyProtoObject.foo): (makePolyProtoObject): (target): * stress/object-get-prototype-of-poly-proto.js: Added. (shouldBe): (makePolyProtoObject.foo.C): (makePolyProtoObject.foo): (makePolyProtoObject): (target): * stress/object-proto-getter-filtered.js: Added. (shouldBe): (shouldThrow): (target): (i.Cocoa): * stress/object-proto-getter-poly-mono-proto.js: Added. (shouldBe): (makePolyProtoObject.foo.C): (makePolyProtoObject.foo): (makePolyProtoObject): (target): * stress/object-proto-getter-poly-proto.js: Added. (shouldBe): (makePolyProtoObject.foo.C): (makePolyProtoObject.foo): (makePolyProtoObject): (target): * stress/object-prototype-proto-accessors-should-throw-on-undefined-this.js: * stress/string-proto.js: Added. (shouldBe): (target): 2017-10-17 Ryan Haddad Unreviewed, rolling out r223523. A test for this change is failing on debug JSC bots. Reverted changeset: "[JSC] __proto__ getter should be fast" https://bugs.webkit.org/show_bug.cgi?id=178067 https://trac.webkit.org/changeset/223523 2017-10-10 Yusuke Suzuki [JSC] __proto__ getter should be fast https://bugs.webkit.org/show_bug.cgi?id=178067 Reviewed by Saam Barati. * stress/dfg-object-proto-accessor.js: Added. (shouldBe): (shouldThrow): (target): * stress/dfg-object-proto-getter.js: Added. (shouldBe): (shouldThrow): (target): * stress/dfg-object-prototype-of.js: Added. (shouldBe): (shouldThrow): (target): * stress/dfg-reflect-get-prototype-of.js: Added. (shouldBe): (shouldThrow): (target): * stress/object-get-prototype-of-filtered.js: Added. (shouldBe): (shouldThrow): (target): (i.Cocoa): * stress/object-get-prototype-of-mono-proto.js: Added. (shouldBe): (makePolyProtoObject.foo.C): (makePolyProtoObject.foo): (makePolyProtoObject): (target): * stress/object-get-prototype-of-poly-mono-proto.js: Added. (shouldBe): (makePolyProtoObject.foo.C): (makePolyProtoObject.foo): (makePolyProtoObject): (target): * stress/object-get-prototype-of-poly-proto.js: Added. (shouldBe): (makePolyProtoObject.foo.C): (makePolyProtoObject.foo): (makePolyProtoObject): (target): * stress/object-proto-getter-filtered.js: Added. (shouldBe): (shouldThrow): (target): (i.Cocoa): * stress/object-proto-getter-poly-mono-proto.js: Added. (shouldBe): (makePolyProtoObject.foo.C): (makePolyProtoObject.foo): (makePolyProtoObject): (target): * stress/object-proto-getter-poly-proto.js: Added. (shouldBe): (makePolyProtoObject.foo.C): (makePolyProtoObject.foo): (makePolyProtoObject): (target): * stress/object-prototype-proto-accessors-should-throw-on-undefined-this.js: * stress/string-proto.js: Added. (shouldBe): (target): 2017-10-14 Yusuke Suzuki Reland "Add Above/Below comparisons for UInt32 patterns" https://bugs.webkit.org/show_bug.cgi?id=177281 Reviewed by Saam Barati. * stress/uint32-comparison-jump.js: Added. (shouldBe): (above): (aboveOrEqual): (below): (belowOrEqual): (notAbove): (notAboveOrEqual): (notBelow): (notBelowOrEqual): * stress/uint32-comparison.js: Added. (shouldBe): (above): (aboveOrEqual): (below): (belowOrEqual): (aboveTest): (aboveOrEqualTest): (belowTest): (belowOrEqualTest): 2017-10-12 Yusuke Suzuki WebAssembly: Wasm functions should have either JSFunctionType or TypeOfShouldCallGetCallData https://bugs.webkit.org/show_bug.cgi?id=178210 Reviewed by Saam Barati. * wasm/function-tests/trap-from-start-async.js: (async.StartTrapsAsync): * wasm/function-tests/trap-from-start.js: (StartTraps): * wasm/js-api/web-assembly-function.js: (assert.eq.Object.getPrototypeOf): * wasm/js-api/wrapper-function.js: (return.new.WebAssembly.Module): (assert.throws.makeInstance): Deleted. (assert.throws.Bar): Deleted. (assert.throws): Deleted. 2017-09-29 Filip Pizlo Enable gigacage on iOS https://bugs.webkit.org/show_bug.cgi?id=177586 Reviewed by JF Bastien. Add tests for when Gigacage gets runtime disabled. * stress/disable-gigacage-arrays.js: Added. (foo): * stress/disable-gigacage-strings.js: Added. (foo): * stress/disable-gigacage-typed-arrays.js: Added. (foo): 2017-10-11 Yusuke Suzuki import.meta should not be assignable https://bugs.webkit.org/show_bug.cgi?id=178202 Reviewed by Saam Barati. * modules/import-meta-assignment.js: Added. (shouldThrow): (SyntaxError.import.meta.can.shouldThrow): 2017-10-11 Saam Barati Unreviewed. Actually skip certain type profiler tests in debug. * typeProfiler.yaml: * typeProfiler/deltablue-for-of.js: * typeProfiler/getter-richards.js: 2017-10-11 Commit Queue Unreviewed, rolling out r223113 and r223121. https://bugs.webkit.org/show_bug.cgi?id=178182 Reintroduced 20% regression on Kraken (Requested by rniwa on #webkit). Reverted changesets: "Enable gigacage on iOS" https://bugs.webkit.org/show_bug.cgi?id=177586 https://trac.webkit.org/changeset/223113 "Use one virtual allocation for all gigacages and their runways" https://bugs.webkit.org/show_bug.cgi?id=178050 https://trac.webkit.org/changeset/223121 2017-10-11 Michael Saboff Disable test262 named capture group tests with direct unicode names and with references before definitions https://bugs.webkit.org/show_bug.cgi?id=178177 Reviewed by Keith Miller. Bugs to track fixing these test are: https://bugs.webkit.org/show_bug.cgi?id=178174 - "Add support in named capture group identifiers for direct surrogate pairs" https://bugs.webkit.org/show_bug.cgi?id=178175 - "Test262 failure with Named Capture Groups - using a reference before the group is defined" * test262.yaml: 2017-10-11 Caio Lima Object properties are undefined in super.call() but not in this.call() https://bugs.webkit.org/show_bug.cgi?id=177230 Reviewed by Saam Barati. * stress/super-call-function-subclass.js: Added. (assert): (A.prototype.t): (A): * stress/super-dot-call-and-apply.js: Added. (assert): (A): (A.prototype.call): (A.prototype.apply): (B.prototype.testSuper): (B): (const.obj.new.B.string_appeared_here.obj.testSuper.C): (D.prototype.testSuper): (D): 2017-10-10 Saam Barati The prototype cache should be aware of the Executable it generates a Structure for https://bugs.webkit.org/show_bug.cgi?id=177907 Reviewed by Filip Pizlo. * microbenchmarks/dont-confuse-structures-from-different-executable-as-poly-proto.js: Added. (assert): (foo.C): (foo): (bar.C): (bar): (access): (makeLongChain): (accessY): 2017-10-09 Yusuke Suzuki `async` should be able to be used as an imported binding name https://bugs.webkit.org/show_bug.cgi?id=176573 Reviewed by Saam Barati. * modules/import-default-async.js: Added. * modules/import-named-async-as.js: Added. * modules/import-named-async.js: Added. * modules/import-named-async/target.js: Added. * modules/import-namespace-async.js: Added. * test262.yaml: 2017-09-29 Filip Pizlo Enable gigacage on iOS https://bugs.webkit.org/show_bug.cgi?id=177586 Reviewed by JF Bastien. Add tests for when Gigacage gets runtime disabled. * stress/disable-gigacage-arrays.js: Added. (foo): * stress/disable-gigacage-strings.js: Added. (foo): * stress/disable-gigacage-typed-arrays.js: Added. (foo): 2017-10-09 Michael Saboff Implement RegExp Unicode property escapes https://bugs.webkit.org/show_bug.cgi?id=172069 Reviewed by JF Bastien. Enabled Unicode Property tests. * test262.yaml: 2017-10-09 Commit Queue Unreviewed, rolling out r223015 and r223025. https://bugs.webkit.org/show_bug.cgi?id=178093 Regressed Kraken on iOS by 20% (Requested by keith_mi_ on #webkit). Reverted changesets: "Enable gigacage on iOS" https://bugs.webkit.org/show_bug.cgi?id=177586 http://trac.webkit.org/changeset/223015 "Unreviewed, disable Gigacage on ARM64 Linux" https://bugs.webkit.org/show_bug.cgi?id=177586 http://trac.webkit.org/changeset/223025 2017-10-09 Ryan Haddad Update expectations for test262 tests that pass after r223043. https://bugs.webkit.org/show_bug.cgi?id=176685 Unreviewed test gardening. * test262.yaml: 2017-10-09 Ryan Haddad Unreviewed, rolling out r223022. This change introduced 18 test262 failures. Reverted changeset: "`async` should be able to be used as an imported binding name" https://bugs.webkit.org/show_bug.cgi?id=176573 http://trac.webkit.org/changeset/223022 2017-10-09 Saam Barati 3 poly-proto JSC tests timing out on debug after r222827 https://bugs.webkit.org/show_bug.cgi?id=177880 Unreviewed. I'm skipping these type profiler tests on debug since they are long running. * typeProfiler/deltablue-for-of.js: * typeProfiler/getter-richards.js: 2017-10-09 Oleksandr Skachkov Safari 10 /11 problem with if (!await get(something)). https://bugs.webkit.org/show_bug.cgi?id=176685 Reviewed by Saam Barati. * stress/async-await-basic.js: (awaitEpression.async): * stress/async-await-syntax.js: (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntax): (prototype.testTopLevelAsyncAwaitSyntaxStrictMode): 2017-10-08 Saam Barati Unreviewed. Make some type profiler tests run for less time to avoid debug timeouts. * typeProfiler/deltablue-for-of.js: * typeProfiler/getter-richards.js: 2017-10-07 Yusuke Suzuki `async` should be able to be used as an imported binding name https://bugs.webkit.org/show_bug.cgi?id=176573 Reviewed by Darin Adler. * modules/import-default-async.js: Added. * modules/import-named-async-as.js: Added. * modules/import-named-async.js: Added. * modules/import-named-async/target.js: Added. * modules/import-namespace-async.js: Added. 2017-09-29 Filip Pizlo Enable gigacage on iOS https://bugs.webkit.org/show_bug.cgi?id=177586 Reviewed by JF Bastien. Add tests for when Gigacage gets runtime disabled. * stress/disable-gigacage-arrays.js: Added. (foo): * stress/disable-gigacage-strings.js: Added. (foo): * stress/disable-gigacage-typed-arrays.js: Added. (foo): 2017-10-06 Commit Queue Unreviewed, rolling out r222791 and r222873. https://bugs.webkit.org/show_bug.cgi?id=178031 Caused crashes with workers/wasm LayoutTests (Requested by ryanhaddad on #webkit). Reverted changesets: "WebAssembly: no VM / JS version of everything but Instance" https://bugs.webkit.org/show_bug.cgi?id=177473 http://trac.webkit.org/changeset/222791 "WebAssembly: address no VM / JS follow-ups" https://bugs.webkit.org/show_bug.cgi?id=177887 http://trac.webkit.org/changeset/222873 2017-10-05 Saam Barati Make sure all prototypes under poly proto get added into the VM's prototype map https://bugs.webkit.org/show_bug.cgi?id=177909 Reviewed by Keith Miller. * stress/poly-proto-prototype-map-having-a-bad-time.js: Added. (assert): (foo.C): (foo): (set x): 2017-09-30 Yusuke Suzuki [JSC] Introduce import.meta https://bugs.webkit.org/show_bug.cgi?id=177703 Reviewed by Filip Pizlo. * modules/import-meta-syntax.js: Added. (shouldThrow): (shouldNotThrow): * modules/import-meta.js: Added. * modules/import-meta/cocoa.js: Added. * modules/resources/assert.js: (export.shouldNotThrow): * stress/import-syntax.js: 2017-10-04 Saam Barati Make pertinent AccessCases watch the poly proto watchpoint https://bugs.webkit.org/show_bug.cgi?id=177765 Reviewed by Keith Miller. * microbenchmarks/poly-proto-and-non-poly-proto-same-ic.js: Added. (assert): (foo.C): (foo): (validate): * stress/poly-proto-clear-stub.js: Added. (assert): (foo.C): (foo): 2017-10-04 Ryan Haddad Remove failure expectation for async-func-decl-dstr-obj-id-put-unresolvable-no-strict.js. Unreviewed test gardening. * test262.yaml: 2017-10-04 Saam Barati 3 poly-proto JSC tests timing out on debug after r222827 https://bugs.webkit.org/show_bug.cgi?id=177880 Rubber stamped by Mark Lam. * microbenchmarks/poly-proto-access.js: * typeProfiler/deltablue-for-of.js: * typeProfiler/getter-richards.js: 2017-10-04 Joseph Pecoraro Unreviewed, marking tco-catch.js as a failure after test262 update https://bugs.webkit.org/show_bug.cgi?id=177859 * test262.yaml: 2017-10-04 Yusuke Suzuki Unreviewed, marking one async iterator test262 test failed https://bugs.webkit.org/show_bug.cgi?id=177859 * test262.yaml: 2017-10-04 Yusuke Suzuki [Test262] Update Test262 to Oct 4 version https://bugs.webkit.org/show_bug.cgi?id=177859 Reviewed by Sam Weinig. Let's rebaseline test262. Since it includes the latest changes to ArrayIterator::next, we no longer need to mark it skip/fail. Also this update includes bunch of BigInt tests. * test262.yaml: * test262/harness/promiseHelper.js: Renamed from JSTests/test262/harness/PromiseHelper.js. (checkSequence): * test262/harness/typeCoercion.js: (testCoercibleToIndexZero): (testCoercibleToIndexOne): (testCoercibleToIndexFromIndex): (testNotCoercibleToIndex.testPrimitiveValue): (testNotCoercibleToInteger): (testCoercibleToBigIntZero.testPrimitiveValue): (testCoercibleToBigIntZero): (testCoercibleToBigIntOne.testPrimitiveValue): (testCoercibleToBigIntOne): (testPrimitiveValue): (testCoercibleToBigIntFromBigInt): (testNotCoercibleToBigInt.testPrimitiveValue): (testNotCoercibleToBigInt.testStringValue): (testNotCoercibleToBigInt): * test262/test/built-ins/Array/from/proto-from-ctor-realm.js: * test262/test/built-ins/Array/length/define-own-prop-length-overflow-realm.js: * test262/test/built-ins/Array/of/proto-from-ctor-realm.js: * test262/test/built-ins/Array/proto-from-ctor-realm.js: * test262/test/built-ins/Array/prototype/concat/create-proto-from-ctor-realm-array.js: * test262/test/built-ins/Array/prototype/concat/create-proto-from-ctor-realm-non-array.js: * test262/test/built-ins/Array/prototype/filter/create-proto-from-ctor-realm-array.js: * test262/test/built-ins/Array/prototype/filter/create-proto-from-ctor-realm-non-array.js: * test262/test/built-ins/Array/prototype/map/create-proto-from-ctor-realm-array.js: * test262/test/built-ins/Array/prototype/map/create-proto-from-ctor-realm-non-array.js: * test262/test/built-ins/Array/prototype/slice/create-proto-from-ctor-realm-array.js: * test262/test/built-ins/Array/prototype/slice/create-proto-from-ctor-realm-non-array.js: * test262/test/built-ins/Array/prototype/splice/create-proto-from-ctor-realm-array.js: * test262/test/built-ins/Array/prototype/splice/create-proto-from-ctor-realm-non-array.js: * test262/test/built-ins/ArrayBuffer/proto-from-ctor-realm.js: * test262/test/built-ins/BigInt/asIntN/bigint-tobigint.js: (testCoercibleToBigIntZero): (testCoercibleToBigIntOne): (testNotCoercibleToBigInt): (MyError): Deleted. (valueOf): Deleted. (toString): Deleted. (Symbol.toPrimitive): Deleted. * test262/test/built-ins/BigInt/asIntN/bits-toindex.js: (testCoercibleToIndexZero): (testCoercibleToIndexOne): (testNotCoercibleToIndex): (MyError): Deleted. (assert.sameValue.BigInt.asIntN.valueOf): Deleted. (assert.sameValue.BigInt.asIntN.toString): Deleted. (BigInt.asIntN.Symbol.toPrimitive): Deleted. (BigInt.asIntN.valueOf): Deleted. (BigInt.asIntN.toString): Deleted. * test262/test/built-ins/BigInt/asUintN/arithmetic.js: Added. * test262/test/built-ins/BigInt/asUintN/asUintN.js: Added. * test262/test/built-ins/BigInt/asUintN/bigint-tobigint.js: Added. (testCoercibleToBigIntZero): (testCoercibleToBigIntOne): (testNotCoercibleToBigInt): * test262/test/built-ins/BigInt/asUintN/bits-toindex.js: Added. (testCoercibleToIndexZero): (testCoercibleToIndexOne): (testNotCoercibleToIndex): * test262/test/built-ins/BigInt/asUintN/length.js: Added. * test262/test/built-ins/BigInt/asUintN/name.js: Added. * test262/test/built-ins/BigInt/asUintN/order-of-steps.js: Added. (bits.valueOf): (bigint.valueOf): * test262/test/built-ins/BigInt/prototype/valueOf/length.js: Added. * test262/test/built-ins/BigInt/prototype/valueOf/name.js: Added. * test262/test/built-ins/BigInt/prototype/valueOf/prop-desc.js: Added. * test262/test/built-ins/BigInt/prototype/valueOf/return.js: Added. * test262/test/built-ins/BigInt/prototype/valueOf/this-value-invalid-object-throws.js: Added. * test262/test/built-ins/BigInt/prototype/valueOf/this-value-invalid-primitive-throws.js: Added. * test262/test/built-ins/Boolean/proto-from-ctor-realm.js: * test262/test/built-ins/DataView/proto-from-ctor-realm-sab.js: * test262/test/built-ins/DataView/proto-from-ctor-realm.js: * test262/test/built-ins/Date/proto-from-ctor-realm-one.js: * test262/test/built-ins/Date/proto-from-ctor-realm-two.js: * test262/test/built-ins/Date/proto-from-ctor-realm-zero.js: * test262/test/built-ins/Error/proto-from-ctor-realm.js: * test262/test/built-ins/Function/call-bind-this-realm-undef.js: * test262/test/built-ins/Function/call-bind-this-realm-value.js: * test262/test/built-ins/Function/internals/Call/class-ctor-realm.js: * test262/test/built-ins/Function/internals/Construct/base-ctor-revoked-proxy-realm.js: * test262/test/built-ins/Function/internals/Construct/derived-return-val-realm.js: * test262/test/built-ins/Function/internals/Construct/derived-this-uninitialized-realm.js: * test262/test/built-ins/Function/proto-from-ctor-realm.js: * test262/test/built-ins/Function/prototype/bind/get-fn-realm.js: * test262/test/built-ins/Function/prototype/bind/proto-from-ctor-realm.js: * test262/test/built-ins/GeneratorFunction/proto-from-ctor-realm.js: * test262/test/built-ins/JSON/stringify/bigint-order.js: Added. (replacer): (BigInt.prototype.toJSON): * test262/test/built-ins/JSON/stringify/bigint-replacer.js: Added. (replacer): * test262/test/built-ins/JSON/stringify/bigint-tojson.js: Added. (BigInt.prototype.toJSON): * test262/test/built-ins/JSON/stringify/bigint.js: * test262/test/built-ins/Map/proto-from-ctor-realm.js: * test262/test/built-ins/Number/S9.3.1_A2_U180E.js: * test262/test/built-ins/Number/S9.3.1_A3_T1_U180E.js: * test262/test/built-ins/Number/S9.3.1_A3_T2_U180E.js: * test262/test/built-ins/Number/proto-from-ctor-realm.js: * test262/test/built-ins/Object/proto-from-ctor.js: * test262/test/built-ins/Promise/proto-from-ctor-realm.js: * test262/test/built-ins/Proxy/apply/arguments-realm.js: * test262/test/built-ins/Proxy/apply/trap-is-not-callable-realm.js: * test262/test/built-ins/Proxy/construct/arguments-realm.js: * test262/test/built-ins/Proxy/construct/trap-is-not-callable-realm.js: * test262/test/built-ins/Proxy/construct/trap-is-undefined-proto-from-ctor-realm.js: * test262/test/built-ins/Proxy/defineProperty/desc-realm.js: * test262/test/built-ins/Proxy/defineProperty/null-handler-realm.js: * test262/test/built-ins/Proxy/defineProperty/targetdesc-configurable-desc-not-configurable-realm.js: * test262/test/built-ins/Proxy/defineProperty/targetdesc-not-compatible-descriptor-not-configurable-target-realm.js: * test262/test/built-ins/Proxy/defineProperty/targetdesc-not-compatible-descriptor-realm.js: * test262/test/built-ins/Proxy/defineProperty/targetdesc-undefined-not-configurable-descriptor-realm.js: * test262/test/built-ins/Proxy/defineProperty/targetdesc-undefined-target-is-not-extensible-realm.js: * test262/test/built-ins/Proxy/defineProperty/trap-is-not-callable-realm.js: * test262/test/built-ins/Proxy/deleteProperty/trap-is-not-callable-realm.js: * test262/test/built-ins/Proxy/get-fn-realm.js: * test262/test/built-ins/Proxy/get/trap-is-not-callable-realm.js: * test262/test/built-ins/Proxy/getOwnPropertyDescriptor/result-type-is-not-object-nor-undefined-realm.js: * test262/test/built-ins/Proxy/getOwnPropertyDescriptor/trap-is-not-callable-realm.js: * test262/test/built-ins/Proxy/getPrototypeOf/trap-is-not-callable-realm.js: * test262/test/built-ins/Proxy/has/trap-is-not-callable-realm.js: * test262/test/built-ins/Proxy/isExtensible/trap-is-not-callable-realm.js: * test262/test/built-ins/Proxy/ownKeys/return-not-list-object-throws-realm.js: * test262/test/built-ins/Proxy/ownKeys/trap-is-not-callable-realm.js: * test262/test/built-ins/Proxy/preventExtensions/trap-is-not-callable-realm.js: * test262/test/built-ins/Proxy/set/trap-is-not-callable-realm.js: * test262/test/built-ins/Proxy/setPrototypeOf/trap-is-not-callable-realm.js: * test262/test/built-ins/RegExp/S15.10.2.12_A1_T1.js: (i6.replace): (i6b.replace): * test262/test/built-ins/RegExp/dotall/with-dotall-unicode.js: * test262/test/built-ins/RegExp/dotall/with-dotall.js: * test262/test/built-ins/RegExp/dotall/without-dotall-unicode.js: * test262/test/built-ins/RegExp/dotall/without-dotall.js: * test262/test/built-ins/RegExp/proto-from-ctor-realm.js: * test262/test/built-ins/RegExp/prototype/Symbol.split/splitter-proto-from-ctor-realm.js: * test262/test/built-ins/RegExp/u180e.js: Added. * test262/test/built-ins/Set/proto-from-ctor-realm.js: * test262/test/built-ins/SharedArrayBuffer/proto-from-ctor-realm.js: * test262/test/built-ins/String/proto-from-ctor-realm.js: * test262/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Fail.js: * test262/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Fail_2.js: * test262/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Success.js: * test262/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Success_2.js: * test262/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Success_3.js: * test262/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Success_4.js: * test262/test/built-ins/String/prototype/endsWith/coerced-values-of-position.js: * test262/test/built-ins/String/prototype/endsWith/endsWith.js: * test262/test/built-ins/String/prototype/endsWith/length.js: * test262/test/built-ins/String/prototype/endsWith/name.js: * test262/test/built-ins/String/prototype/endsWith/return-abrupt-from-position-as-symbol.js: * test262/test/built-ins/String/prototype/endsWith/return-abrupt-from-position.js: * test262/test/built-ins/String/prototype/endsWith/return-abrupt-from-searchstring-as-symbol.js: * test262/test/built-ins/String/prototype/endsWith/return-abrupt-from-searchstring-regexp-test.js: * test262/test/built-ins/String/prototype/endsWith/return-abrupt-from-searchstring.js: * test262/test/built-ins/String/prototype/endsWith/return-abrupt-from-this-as-symbol.js: * test262/test/built-ins/String/prototype/endsWith/return-abrupt-from-this.js: * test262/test/built-ins/String/prototype/endsWith/return-false-if-search-start-is-less-than-zero.js: * test262/test/built-ins/String/prototype/endsWith/return-true-if-searchstring-is-empty.js: * test262/test/built-ins/String/prototype/endsWith/searchstring-found-with-position.js: * test262/test/built-ins/String/prototype/endsWith/searchstring-found-without-position.js: * test262/test/built-ins/String/prototype/endsWith/searchstring-is-regexp-throws.js: * test262/test/built-ins/String/prototype/endsWith/searchstring-not-found-with-position.js: * test262/test/built-ins/String/prototype/endsWith/searchstring-not-found-without-position.js: * test262/test/built-ins/String/prototype/endsWith/this-is-null-throws.js: * test262/test/built-ins/String/prototype/endsWith/this-is-undefined-throws.js: * test262/test/built-ins/String/prototype/includes/String.prototype.includes_FailBadLocation.js: * test262/test/built-ins/String/prototype/includes/String.prototype.includes_FailLocation.js: * test262/test/built-ins/String/prototype/includes/String.prototype.includes_FailMissingLetter.js: * test262/test/built-ins/String/prototype/includes/String.prototype.includes_Success.js: * test262/test/built-ins/String/prototype/includes/String.prototype.includes_SuccessNoLocation.js: * test262/test/built-ins/String/prototype/includes/String.prototype.includes_lengthProp.js: * test262/test/built-ins/String/prototype/includes/coerced-values-of-position.js: * test262/test/built-ins/String/prototype/includes/includes.js: * test262/test/built-ins/String/prototype/includes/length.js: * test262/test/built-ins/String/prototype/includes/name.js: * test262/test/built-ins/String/prototype/includes/return-abrupt-from-position-as-symbol.js: * test262/test/built-ins/String/prototype/includes/return-abrupt-from-position.js: * test262/test/built-ins/String/prototype/includes/return-abrupt-from-searchstring-as-symbol.js: * test262/test/built-ins/String/prototype/includes/return-abrupt-from-searchstring-regexp-test.js: * test262/test/built-ins/String/prototype/includes/return-abrupt-from-searchstring.js: * test262/test/built-ins/String/prototype/includes/return-abrupt-from-this-as-symbol.js: * test262/test/built-ins/String/prototype/includes/return-abrupt-from-this.js: * test262/test/built-ins/String/prototype/includes/return-false-with-out-of-bounds-position.js: * test262/test/built-ins/String/prototype/includes/return-true-if-searchstring-is-empty.js: * test262/test/built-ins/String/prototype/includes/searchstring-found-with-position.js: * test262/test/built-ins/String/prototype/includes/searchstring-found-without-position.js: * test262/test/built-ins/String/prototype/includes/searchstring-is-regexp-throws.js: * test262/test/built-ins/String/prototype/includes/searchstring-not-found-with-position.js: * test262/test/built-ins/String/prototype/includes/searchstring-not-found-without-position.js: * test262/test/built-ins/String/prototype/includes/this-is-null-throws.js: * test262/test/built-ins/String/prototype/includes/this-is-undefined-throws.js: * test262/test/built-ins/String/prototype/toLocaleLowerCase/Final_Sigma_U180E.js: * test262/test/built-ins/String/prototype/toLowerCase/Final_Sigma_U180E.js: * test262/test/built-ins/String/prototype/trim/u180e.js: * test262/test/built-ins/Symbol/for/cross-realm.js: * test262/test/built-ins/Symbol/hasInstance/cross-realm.js: * test262/test/built-ins/Symbol/isConcatSpreadable/cross-realm.js: * test262/test/built-ins/Symbol/iterator/cross-realm.js: * test262/test/built-ins/Symbol/keyFor/cross-realm.js: * test262/test/built-ins/Symbol/match/cross-realm.js: * test262/test/built-ins/Symbol/replace/cross-realm.js: * test262/test/built-ins/Symbol/search/cross-realm.js: * test262/test/built-ins/Symbol/species/cross-realm.js: * test262/test/built-ins/Symbol/split/cross-realm.js: * test262/test/built-ins/Symbol/toPrimitive/cross-realm.js: * test262/test/built-ins/Symbol/toStringTag/cross-realm.js: * test262/test/built-ins/Symbol/unscopables/cross-realm.js: * test262/test/built-ins/ThrowTypeError/distinct-cross-realm.js: * test262/test/built-ins/TypedArrays/buffer-arg-proto-from-ctor-realm-sab.js: * test262/test/built-ins/TypedArrays/buffer-arg-proto-from-ctor-realm.js: * test262/test/built-ins/TypedArrays/internals/DefineOwnProperty/detached-buffer-realm.js: * test262/test/built-ins/TypedArrays/internals/Get/detached-buffer-realm.js: * test262/test/built-ins/TypedArrays/internals/GetOwnProperty/detached-buffer-realm.js: * test262/test/built-ins/TypedArrays/internals/HasProperty/detached-buffer-realm.js: * test262/test/built-ins/TypedArrays/internals/Set/detached-buffer-realm.js: * test262/test/built-ins/TypedArrays/length-arg-proto-from-ctor-realm.js: * test262/test/built-ins/TypedArrays/no-args-proto-from-ctor-realm.js: * test262/test/built-ins/TypedArrays/object-arg-proto-from-ctor-realm.js: * test262/test/built-ins/TypedArrays/typedarray-arg-other-ctor-buffer-ctor-custom-species-proto-from-ctor-realm.js: * test262/test/built-ins/TypedArrays/typedarray-arg-proto-from-ctor-realm.js: * test262/test/built-ins/TypedArrays/typedarray-arg-same-ctor-buffer-ctor-species-custom-proto-from-ctor-realm.js: * test262/test/built-ins/WeakMap/proto-from-ctor-realm.js: * test262/test/built-ins/WeakSet/proto-from-ctor-realm.js: * test262/test/built-ins/parseFloat/S15.1.2.3_A2_T10_U180E.js: * test262/test/built-ins/parseInt/S15.1.2.2_A2_T10_U180E.js: * test262/test/intl402/NumberFormat/prototype/formatToParts/length.js: * test262/test/language/comments/mongolian-vowel-separator-multi.js: * test262/test/language/comments/mongolian-vowel-separator-single-eval.js: * test262/test/language/comments/mongolian-vowel-separator-single.js: * test262/test/language/eval-code/indirect/realm.js: * test262/test/language/expressions/assignment/dstr-obj-rest-order.js: Added. (o.get z): (o.get a): * test262/test/language/expressions/call/eval-realm-indirect.js: * test262/test/language/expressions/generators/eval-body-proto-realm.js: * test262/test/language/expressions/greater-than-or-equal/bigint-and-bigint.js: Added. * test262/test/language/expressions/greater-than-or-equal/bigint-and-non-finite.js: Added. * test262/test/language/expressions/greater-than-or-equal/bigint-and-number-extremes.js: Added. * test262/test/language/expressions/greater-than-or-equal/bigint-and-number.js: * test262/test/language/expressions/greater-than/bigint-and-bigint.js: Added. * test262/test/language/expressions/greater-than/bigint-and-non-finite.js: Added. * test262/test/language/expressions/greater-than/bigint-and-number-extremes.js: Added. * test262/test/language/expressions/greater-than/bigint-and-number.js: * test262/test/language/expressions/less-than-or-equal/bigint-and-bigint.js: Added. * test262/test/language/expressions/less-than-or-equal/bigint-and-non-finite.js: Added. * test262/test/language/expressions/less-than-or-equal/bigint-and-number-extremes.js: Added. * test262/test/language/expressions/less-than-or-equal/bigint-and-number.js: * test262/test/language/expressions/less-than/bigint-and-bigint.js: Added. * test262/test/language/expressions/less-than/bigint-and-non-finite.js: Added. * test262/test/language/expressions/less-than/bigint-and-number-extremes.js: Added. * test262/test/language/expressions/less-than/bigint-and-number.js: * test262/test/language/expressions/new/non-ctor-err-realm.js: * test262/test/language/expressions/super/realm.js: * test262/test/language/expressions/tagged-template/cache-realm.js: * test262/test/language/expressions/template-literal/mongolian-vowel-separator-eval.js: * test262/test/language/expressions/template-literal/mongolian-vowel-separator.js: * test262/test/language/literals/regexp/mongolian-vowel-separator-eval.js: * test262/test/language/literals/regexp/mongolian-vowel-separator.js: * test262/test/language/literals/string/mongolian-vowel-separator-eval.js: * test262/test/language/literals/string/mongolian-vowel-separator.js: * test262/test/language/statements/for-of/dstr-obj-rest-order.js: Added. (o.get z): (o.get a): * test262/test/language/statements/for-of/iterator-next-reference.js: (next): (iterator.next): Deleted. (x.of.iterable.): Deleted. (x.of.iterable.get return): Deleted. (x.of.iterable.iterator.next): Deleted. * test262/test/language/types/reference/get-value-prop-base-primitive-realm.js: * test262/test/language/types/reference/put-value-prop-base-primitive-realm.js: * test262/test/language/white-space/mongolian-vowel-separator-eval.js: * test262/test/language/white-space/mongolian-vowel-separator.js: * test262/test262-Revision.txt: 2017-10-03 Saam Barati Implement polymorphic prototypes https://bugs.webkit.org/show_bug.cgi?id=176391 Reviewed by Filip Pizlo. * microbenchmarks/poly-proto-access.js: Added. (assert): (foo.C): (foo.C.prototype.get bar): (foo): (bar): * microbenchmarks/poly-proto-put-transition-speed.js: Added. (assert): (makePolyProtoObject.foo.C): (makePolyProtoObject.foo): (makePolyProtoObject): (performSet): * microbenchmarks/poly-proto-setter-speed.js: Added. (assert): (makePolyProtoObject.foo.C): (makePolyProtoObject.foo.C.prototype.set p): (makePolyProtoObject.foo): (makePolyProtoObject): (performSet): * stress/constructor-with-return.js: (i.tests.forEach.Constructor): (i.tests.forEach): (tests.forEach.Constructor): Deleted. (tests.forEach): Deleted. * stress/dom-jit-with-poly-proto.js: Added. (assert): (makePolyProtoObject.foo.C): (makePolyProtoObject.foo): (makePolyProtoObject): (validate): * stress/poly-proto-custom-value-and-accessor.js: Added. (assert): (makePolyProtoObject.foo.C): (makePolyProtoObject.foo): (makePolyProtoObject): (items.forEach): (set get for): * stress/poly-proto-intrinsic-getter-correctness.js: Added. (assert): (makePolyProtoObject.foo.C): (makePolyProtoObject.foo): (makePolyProtoObject): (foo): * stress/poly-proto-miss.js: Added. (makePolyProtoInstanceWithNullPrototype.foo.C): (makePolyProtoInstanceWithNullPrototype.foo): (makePolyProtoInstanceWithNullPrototype): (assert): (validate): * stress/poly-proto-op-in-caching.js: Added. (assert): (makePolyProtoObject.foo.C): (makePolyProtoObject.foo): (makePolyProtoObject): (validate): (validate2): * stress/poly-proto-put-transition.js: Added. (assert): (makePolyProtoObject.foo.C): (makePolyProtoObject.foo): (makePolyProtoObject): (performSet): (i.obj.__proto__.set p): * stress/poly-proto-set-prototype.js: Added. (assert): (let.alternateProto.get x): (let.alternateProto2.get y): (let.alternateProto2.get x): (foo.C): (foo): (validate): * stress/poly-proto-setter.js: Added. (assert): (makePolyProtoObject.foo.C): (makePolyProtoObject.foo.C.prototype.set p): (makePolyProtoObject.foo.C.prototype.get p): (makePolyProtoObject.foo): (makePolyProtoObject): (performSet): * stress/poly-proto-using-inheritance.js: Added. (assert): (foo.C): (foo.C.prototype.get baz): (foo): (bar.C): (bar): (validate): * stress/primitive-poly-proto.js: Added. (makePolyProtoInstance.foo.C): (makePolyProtoInstance.foo): (makePolyProtoInstance): (assert): (validate): * stress/prototype-is-not-js-object.js: Added. (foo.bar): (foo): (assert): (validate): * stress/try-get-by-id-poly-proto.js: Added. (assert): (makePolyProtoObject.foo.C): (makePolyProtoObject.foo): (makePolyProtoObject): (tryGetByIdText): (x.__proto__.get bar): (validate): * typeProfiler/overflow.js: 2017-10-03 JF Bastien WebAssembly: no VM / JS version of everything but Instance https://bugs.webkit.org/show_bug.cgi?id=177473 Reviewed by Filip Pizlo. - Exceeding max on memory growth now returns a range error as per spec. This is a (very minor) breaking change: it used to throw OOM error. Update the corresponding test. * wasm/js-api/memory-grow.js: (assertEq): * wasm/js-api/table.js: (assert.throws): 2017-10-03 Ryan Haddad Skip JSC test stress/regress-159779-2.js on debug. https://bugs.webkit.org/show_bug.cgi?id=177204 Unreviewed test gardening. * stress/regress-159779-2.js: 2017-10-02 Caio Lima ChakraCore/test/Function/apply3.js is resulting wrong result in x86_64 https://bugs.webkit.org/show_bug.cgi?id=175642 Reviewed by Darin Adler. * ChakraCore/test/Function/apply3.baseline-jsc: 2017-10-01 Commit Queue Unreviewed, rolling out r222564. https://bugs.webkit.org/show_bug.cgi?id=177720 "It regressed JetStream by 2% on iOS caused by a 50% regression on the bigfib subtest" (Requested by saamyjoon on #webkit). Reverted changeset: "Add Above/Below comparisons for UInt32 patterns" https://bugs.webkit.org/show_bug.cgi?id=177281 http://trac.webkit.org/changeset/222564 2017-09-29 Yusuke Suzuki [DFG] Support ArrayPush with multiple args https://bugs.webkit.org/show_bug.cgi?id=175823 Reviewed by Saam Barati. * microbenchmarks/array-push-0.js: Added. (arrayPush0): * microbenchmarks/array-push-1.js: Added. (arrayPush1): * microbenchmarks/array-push-2.js: Added. (arrayPush2): * microbenchmarks/array-push-3.js: Added. (arrayPush3): * stress/array-push-multiple-contiguous.js: Added. (shouldBe): (test): * stress/array-push-multiple-double-nan.js: Added. (shouldBe): (test): * stress/array-push-multiple-double.js: Added. (shouldBe): (test): * stress/array-push-multiple-int32.js: Added. (shouldBe): (test): * stress/array-push-multiple-many-contiguous.js: Added. (shouldBe): (test): * stress/array-push-multiple-many-double.js: Added. (shouldBe): (test): * stress/array-push-multiple-many-int32.js: Added. (shouldBe): (test): * stress/array-push-multiple-many-storage.js: Added. (shouldBe): (test): * stress/array-push-multiple-storage.js: Added. (shouldBe): (test): * stress/array-push-with-force-exit.js: Added. (target.createBuiltin): 2017-09-29 Saam Barati Custom GetterSetterAccessCase does not use the correct slotBase when making call https://bugs.webkit.org/show_bug.cgi?id=177639 Reviewed by Geoffrey Garen. * stress/custom-get-set-inline-caching-one-level-up-proto-chain.js: Added. (assert): (Class): (items.forEach): (set get for): 2017-09-29 Commit Queue Unreviewed, rolling out r222563, r222565, and r222581. https://bugs.webkit.org/show_bug.cgi?id=177675 "It causes a crash when playing youtube videos" (Requested by saamyjoon on #webkit). Reverted changesets: "[DFG] Support ArrayPush with multiple args" https://bugs.webkit.org/show_bug.cgi?id=175823 http://trac.webkit.org/changeset/222563 "Unreviewed, build fix after r222563" https://bugs.webkit.org/show_bug.cgi?id=175823 http://trac.webkit.org/changeset/222565 "Unreviewed, fix x86 breaking due to exhausted registers" https://bugs.webkit.org/show_bug.cgi?id=175823 http://trac.webkit.org/changeset/222581 2017-09-28 Mark Lam test262: Unexpected passes after r222617 and r222618. https://bugs.webkit.org/show_bug.cgi?id=177622 Reviewed by Saam Barati. Update test262.yaml for tests that are now passing. * test262.yaml: 2017-09-27 Michael Saboff REGRESSION(210837): RegExp containing failed non-zero minimum greedy groups incorrectly match https://bugs.webkit.org/show_bug.cgi?id=177570 Reviewed by Filip Pizlo. New regression test. * stress/regress-177570.js: Added. 2017-09-28 Michael Saboff Heap out of bounds read in JSC::Yarr::Parser::peek() https://bugs.webkit.org/show_bug.cgi?id=177423 Reviewed by Mark Lam. Updated regression test. * stress/regress-177423.js: (catch): 2017-09-27 Mark Lam JSArray::canFastCopy() should fail if the source and destination arrays are the same. https://bugs.webkit.org/show_bug.cgi?id=177584 Reviewed by Saam Barati. * stress/regress-177584.js: Added. (assertEqual): (Array.prototype.Symbol.species): 2017-09-27 Saam Barati Propagate hasBeenFlattenedBefore in Structure's transition constructor and fix our for-in caching to fail when the prototype chain has an object with a dictionary structure https://bugs.webkit.org/show_bug.cgi?id=177523 Reviewed by Mark Lam. * stress/prototype-chain-has-dictionary-structure-for-in-caching.js: Added. (assert): (Test): (addMethods.Test.prototype.string_appeared_here.i.methodNumber): (addMethods): (i.Test.prototype.propName): 2017-09-27 Mark Lam Yarr::Parser::tryConsumeGroupName() should check for the end of the pattern. https://bugs.webkit.org/show_bug.cgi?id=177423 Reviewed by Keith Miller. * stress/regress-177423.js: Added. 2017-09-27 Yusuke Suzuki Add Above/Below comparisons for UInt32 patterns https://bugs.webkit.org/show_bug.cgi?id=177281 Reviewed by Saam Barati. * stress/uint32-comparison-jump.js: Added. (shouldBe): (above): (aboveOrEqual): (below): (belowOrEqual): (notAbove): (notAboveOrEqual): (notBelow): (notBelowOrEqual): * stress/uint32-comparison.js: Added. (shouldBe): (above): (aboveOrEqual): (below): (belowOrEqual): (aboveTest): (aboveOrEqualTest): (belowTest): (belowOrEqualTest): 2017-09-25 Yusuke Suzuki [DFG] Support ArrayPush with multiple args https://bugs.webkit.org/show_bug.cgi?id=175823 Reviewed by Saam Barati. * microbenchmarks/array-push-0.js: Added. (arrayPush0): * microbenchmarks/array-push-1.js: Added. (arrayPush1): * microbenchmarks/array-push-2.js: Added. (arrayPush2): * microbenchmarks/array-push-3.js: Added. (arrayPush3): * stress/array-push-multiple-contiguous.js: Added. (shouldBe): (test): * stress/array-push-multiple-double-nan.js: Added. (shouldBe): (test): * stress/array-push-multiple-double.js: Added. (shouldBe): (test): * stress/array-push-multiple-int32.js: Added. (shouldBe): (test): * stress/array-push-multiple-many-contiguous.js: Added. (shouldBe): (test): * stress/array-push-multiple-many-double.js: Added. (shouldBe): (test): * stress/array-push-multiple-many-int32.js: Added. (shouldBe): (test): * stress/array-push-multiple-many-storage.js: Added. (shouldBe): (test): * stress/array-push-multiple-storage.js: Added. (shouldBe): (test): 2017-09-26 Commit Queue Unreviewed, rolling out r222518. https://bugs.webkit.org/show_bug.cgi?id=177507 Break the High Sierra build (Requested by yusukesuzuki on #webkit). Reverted changeset: "Add Above/Below comparisons for UInt32 patterns" https://bugs.webkit.org/show_bug.cgi?id=177281 http://trac.webkit.org/changeset/222518 2017-09-26 Yusuke Suzuki Add Above/Below comparisons for UInt32 patterns https://bugs.webkit.org/show_bug.cgi?id=177281 Reviewed by Saam Barati. * stress/uint32-comparison-jump.js: Added. (shouldBe): (above): (aboveOrEqual): (below): (belowOrEqual): (notAbove): (notAboveOrEqual): (notBelow): (notBelowOrEqual): * stress/uint32-comparison.js: Added. (shouldBe): (above): (aboveOrEqual): (below): (belowOrEqual): (aboveTest): (aboveOrEqualTest): (belowTest): (belowOrEqualTest): 2017-09-23 Keith Miller Fix infinite looping test262 test https://bugs.webkit.org/show_bug.cgi?id=177412 Reviewed by Yusuke Suzuki. This test was poorly designed since failing it would cause the vm to inifinite loop. I've fixed it locally and will fix it on github pending the results of next weeks tc39 meeting. * test262.yaml: * test262/test/language/statements/for-of/iterator-next-reference.js: 2017-09-23 Joseph Pecoraro test262: $.agent became $262.agent in test262 update https://bugs.webkit.org/show_bug.cgi?id=177407 Reviewed by Yusuke Suzuki. * test262.yaml: ~320 tests pass now that we correctly make $262 available. 2017-09-22 Keith Miller Speculatively change iteration protocall to use the same next function https://bugs.webkit.org/show_bug.cgi?id=175653 Reviewed by Saam Barati. Change test to match the new iteration behavior. * stress/spread-optimized-properly.js: 2017-09-22 Yusuke Suzuki [DFG][FTL] Profile array vector length for array allocation https://bugs.webkit.org/show_bug.cgi?id=177051 Reviewed by Saam Barati. * microbenchmarks/new-array-buffer-vector-profile.js: Added. (target): 2017-09-22 Commit Queue Unreviewed, rolling out r222380. https://bugs.webkit.org/show_bug.cgi?id=177352 Octane/box2d shows 8% regression (Requested by yusukesuzuki on #webkit). Reverted changeset: "[DFG][FTL] Profile array vector length for array allocation" https://bugs.webkit.org/show_bug.cgi?id=177051 http://trac.webkit.org/changeset/222380 2017-09-21 Yusuke Suzuki [DFG][FTL] Profile array vector length for array allocation https://bugs.webkit.org/show_bug.cgi?id=177051 Reviewed by Saam Barati. * microbenchmarks/new-array-buffer-vector-profile.js: Added. (target): 2017-09-21 Joseph Pecoraro Skip new hanging test262 tests. https://bugs.webkit.org/show_bug.cgi?id=177326 Unreviewed test gardening. * test262.yaml: 2017-09-21 Ryan Haddad Mark 6 test262 tests as passing. https://bugs.webkit.org/show_bug.cgi?id=177307 Unreviewed test gardening. * test262.yaml: 2017-09-20 Joseph Pecoraro Unreviewed follow-up to r222311. * test262/harness/sta.js: * test262/test/built-ins/Array/from/calling-from-valid-1-noStrict.js: * test262/test/built-ins/Array/from/calling-from-valid-1-onlyStrict.js: * test262/test/built-ins/Array/from/calling-from-valid-2.js: * test262/test/built-ins/Array/from/elements-added-after.js: * test262/test/built-ins/Array/from/elements-deleted-after.js: * test262/test/built-ins/Array/from/elements-updated-after.js: * test262/test/built-ins/Array/from/from-array.js: * test262/test/built-ins/Array/from/mapfn-is-not-callable-typeerror.js: * test262/test/built-ins/Array/from/mapfn-throws-exception.js: * test262/test/built-ins/Array/from/source-array-boundary.js: * test262/test/built-ins/Array/from/source-object-constructor.js: * test262/test/built-ins/Array/from/source-object-iterator-1.js: * test262/test/built-ins/Array/from/source-object-iterator-2.js: * test262/test/built-ins/Array/from/source-object-length.js: * test262/test/built-ins/Array/from/source-object-missing.js: * test262/test/built-ins/Array/from/source-object-without.js: * test262/test/built-ins/Array/from/this-null.js: * test262/test/built-ins/Function/prototype/toString/line-terminator-normalisation-CR.js: * test262/test/language/line-terminators/S7.3_A3.2_T1.js: * test262/test/language/literals/numeric/7.8.3-1gs.js: * test262/test/language/literals/numeric/7.8.3-2gs.js: * test262/test/language/literals/numeric/7.8.3-3gs.js: * test262/test/language/literals/regexp/7.8.5-1gs.js: * test262/test/language/literals/string/7.8.4-1gs.js: Fix some files that I failed to update when I applied my patch. 2017-09-20 Joseph Pecoraro Update test262 tests https://bugs.webkit.org/show_bug.cgi?id=177220 Reviewed by Saam Barati and Yusuke Suzuki. * test262.yaml: * test262/test262-Revision.txt: New rebaselined expectations for all tests. * test262/*: Updated. 2017-09-17 Yusuke Suzuki [DFG] Remove ToThis more aggressively https://bugs.webkit.org/show_bug.cgi?id=177056 Reviewed by Saam Barati. * stress/generator-with-this-strict.js: Added. (shouldBe): (generator): (target): * stress/generator-with-this.js: Added. (shouldBe): (generator): (target): 2017-09-17 Michael Saboff https://bugs.webkit.org/show_bug.cgi?id=177038 Add an option to run-jsc-stress-tests to limit tests variations to a basic set Reviewed by JF Bastien. * stress/unshiftCountSlowCase-correct-postCapacity.js: Disabled this test on ARM64 iOS devices as it dies using too much memory. 2017-09-15 Saam Barati Arity fixup during inlining should do a 2 phase commit so it properly recovers the frame in case of exit https://bugs.webkit.org/show_bug.cgi?id=176981 Reviewed by Yusuke Suzuki. * stress/exit-during-inlined-arity-fixup-recover-proper-frame.js: Added. (assert): (verify): (func): (const.bar.createBuiltin): 2017-09-14 Saam Barati It should be valid to exit before each set when doing arity fixup when inlining https://bugs.webkit.org/show_bug.cgi?id=176948 Reviewed by Keith Miller. * stress/arity-fixup-inlining-dont-generate-invalid-use.js: Added. (baz): (bar): (foo): 2017-09-14 Yusuke Suzuki [JSC] Add PrivateSymbolMode::{Include,Exclude} for PropertyNameArray https://bugs.webkit.org/show_bug.cgi?id=176867 Reviewed by Sam Weinig. * microbenchmarks/object-get-own-property-symbols.js: Added. (test): 2017-09-13 Mark Lam Rolling out r221832: Regresses Speedometer by ~4% and Dromaeo CSS YUI by ~20%. https://bugs.webkit.org/show_bug.cgi?id=176888 Not reviewed. * stress/op_mod-ConstVar.js: * stress/op_mod-VarConst.js: * stress/op_mod-VarVar.js: 2017-09-13 Ryan Haddad Skip 3 op_mod tests on Debug JSC bots. https://bugs.webkit.org/show_bug.cgi?id=176630 Unreviewed test gardening. * stress/op_mod-ConstVar.js: * stress/op_mod-VarConst.js: * stress/op_mod-VarVar.js: 2017-09-13 Yusuke Suzuki [JSC] Fix Array allocation in Object.keys https://bugs.webkit.org/show_bug.cgi?id=176826 Reviewed by Saam Barati. * stress/object-own-property-keys.js: Added. (shouldBe): 2017-09-12 Yusuke Suzuki [DFG] Optimize WeakMap::get by adding intrinsic and fixup https://bugs.webkit.org/show_bug.cgi?id=176010 Reviewed by Filip Pizlo. * microbenchmarks/weak-map-key.js: Added. (assert): (objectKey): (let.start.Date.now): 2017-09-12 Mark Lam REGRESSION: 3 stress/op_mod (and op_div) tests timing out on Debug JSC bots. https://bugs.webkit.org/show_bug.cgi?id=176630 Reviewed by JF Bastien. Debug builds are just slow, and these tests do a lot. They pass when I run them locally on my MacBook Pro. So, I'm bumping their timing multiplier to 2.0x as a speculative fix for the bots that are seeing these fail. I also undid the skipping of the op_mod tests for debug builds. * stress/op_div-ConstVar.js: * stress/op_div-VarConst.js: * stress/op_div-VarVar.js: * stress/op_mod-ConstVar.js: * stress/op_mod-VarConst.js: * stress/op_mod-VarVar.js: 2017-09-12 Ryan Haddad Skip stress/value-to-boolean.js on Debug bots. https://bugs.webkit.org/show_bug.cgi?id=176787 Unreviewed test gardening. * stress/value-to-boolean.js: 2017-09-11 Mark Lam Change test expectation for test262/test/language/statements/try/tco-catch.js https://bugs.webkit.org/show_bug.cgi?id=176749 Rubber stamped by Keith Miller. It's been failing since at least r221821. I'm changing the test expectation to fail to green the bots while I investigate some more. * test262.yaml: 2017-09-11 Ryan Haddad Unreviewed, rolling out r221854. The test added with this change fails on 32-bit JSC bots. Reverted changeset: "[DFG] Optimize WeakMap::get by adding intrinsic and fixup" https://bugs.webkit.org/show_bug.cgi?id=176010 http://trac.webkit.org/changeset/221854 2017-09-03 Yusuke Suzuki [DFG] Optimize WeakMap::get by adding intrinsic and fixup https://bugs.webkit.org/show_bug.cgi?id=176010 Reviewed by Filip Pizlo. * microbenchmarks/weak-map-key.js: Added. (assert): (objectKey): (let.start.Date.now): 2017-09-09 Yusuke Suzuki [JSC] Optimize Object.keys by using careful array allocation https://bugs.webkit.org/show_bug.cgi?id=176654 Reviewed by Darin Adler. * microbenchmarks/object-keys.js: Added. (test): 2017-09-09 Filip Pizlo Error should compute .stack and friends lazily https://bugs.webkit.org/show_bug.cgi?id=176645 Reviewed by Saam Barati. * ChakraCore.yaml: Skip test that was testing non-standard behavior of these fields. * microbenchmarks/new-error.js: Added. * microbenchmarks/throw.js: Added. 2017-09-09 Mark Lam [Re-landing] Use JIT probes for DFG OSR exit. https://bugs.webkit.org/show_bug.cgi?id=175144 Not reviewed. Original patch reviewed by Saam Barati. Disable these tests for debug builds because they run too slow with the new OSR exit. * stress/op_mod-ConstVar.js: * stress/op_mod-VarConst.js: * stress/op_mod-VarVar.js: 2017-09-08 Yusuke Suzuki [DFG] NewArrayWithSize(size)'s size does not care negative zero https://bugs.webkit.org/show_bug.cgi?id=176300 Reviewed by Saam Barati. * stress/new-array-with-size-div.js: Added. (shouldBe): (test): (i.i): 2017-09-08 Yusuke Suzuki [DFG] PutByVal with Array::Generic is too generic https://bugs.webkit.org/show_bug.cgi?id=176345 Reviewed by Filip Pizlo. * stress/object-assign-symbols.js: Added. (shouldBe): (test): * stress/object-assign.js: Added. (shouldBe): (test): (i.shouldBe.JSON.stringify.test): 2017-09-08 Yusuke Suzuki [DFG][FTL] GetByVal(ObjectUse with Array::Generic, StringUse/SymbolUse) should be supported https://bugs.webkit.org/show_bug.cgi?id=176590 Reviewed by Saam Barati. * microbenchmarks/object-iterate-symbols.js: Added. (test): * microbenchmarks/object-iterate.js: Added. (test): * stress/object-iterate-symbols.js: Added. (shouldBe): (test): * stress/object-iterate.js: Added. (shouldBe): (test): 2017-09-07 Per Arne Vollan [Win32] 10 JSC stress tests are failing. https://bugs.webkit.org/show_bug.cgi?id=176538 Reviewed by Mark Lam. Skip tests on Windows to make the bots green. * ChakraCore.yaml: * stress/date-relaxed.js: 2017-09-06 Mark Lam constructGenericTypedArrayViewWithArguments() is missing an exception check. https://bugs.webkit.org/show_bug.cgi?id=176485 Reviewed by Keith Miller. * stress/regress-176485.js: Added. 2017-09-05 Saam Barati isNotCellSpeculation is wrong with respect to SpecEmpty https://bugs.webkit.org/show_bug.cgi?id=176429 Reviewed by Michael Saboff. * microbenchmarks/is-not-cell-speculation-for-empty-value.js: Added. (Foo): 2017-09-05 Joseph Pecoraro test262: Completion values for control flow do not match the spec https://bugs.webkit.org/show_bug.cgi?id=171265 Reviewed by Saam Barati. * stress/completion-value.js: Condensed test for completion values in top level statements. * stress/super-get-by-id.js: ClassDeclaration when evaled no longer produce values. Convert these to ClassExpressions so they produce the class value. * ChakraCore/test/GlobalFunctions/evalreturns3.baseline-jsc: This is a progression for currect spec behavior. * mozilla/mozilla-tests.yaml: This test is now outdated, so mark it as failing for that reason. * test262.yaml: Passing all "cptn" completion value tests. 2017-09-04 Saam Barati typeCheckHoistingPhase may emit a CheckStructure on the empty value which leads to a dereference of zero on 64 bit platforms https://bugs.webkit.org/show_bug.cgi?id=176317 Reviewed by Keith Miller. * stress/dont-crash-when-hoist-check-structure-on-tdz.js: Added. (Foo): 2017-09-03 Yusuke Suzuki [DFG][FTL] Efficiently execute number#toString() https://bugs.webkit.org/show_bug.cgi?id=170007 Reviewed by Keith Miller. * microbenchmarks/number-to-string-strength-reduction.js: Added. (test): * microbenchmarks/number-to-string-with-radix-10.js: Added. (test): * microbenchmarks/number-to-string-with-radix-cse.js: Added. (test): * microbenchmarks/number-to-string-with-radix.js: Added. (test): * stress/number-to-string-strength-reduction.js: Added. (shouldBe): (test): * stress/number-to-string-with-radix-10.js: Added. (shouldBe): (test): * stress/number-to-string-with-radix-cse.js: Added. (shouldBe): (test): * stress/number-to-string-with-radix-invalid.js: Added. (shouldThrow): * stress/number-to-string-with-radix-watchpoint.js: Added. (shouldBe): (test): (i.i.1e3.Number.prototype.toString): * stress/number-to-string-with-radix.js: Added. (shouldBe): (test): 2017-09-02 Yusuke Suzuki [DFG] Relax arity requirement https://bugs.webkit.org/show_bug.cgi?id=175523 Reviewed by Saam Barati. * stress/arity-mismatch-arguments-length.js: Added. (shouldBe): (test1): (test): * stress/arity-mismatch-get-argument.js: Added. (shouldBe): (builtin.createBuiltin): (test): * stress/arity-mismatch-inlining-extra-slots.js: Added. (shouldBe): (inlineTarget): (test): * stress/arity-mismatch-inlining.js: Added. (shouldBe): (inlineTarget): (test): * stress/arity-mismatch-rest.js: Added. (shouldBe): (test2): (test1): (test): 2017-08-31 Yusuke Suzuki [JSC] Fix "name" and "length" of Proxy revoke function https://bugs.webkit.org/show_bug.cgi?id=176155 Reviewed by Mark Lam. * test262.yaml: 2017-08-31 Saam Barati Graph::methodOfGettingAValueProfileFor compares NodeOrigin instead of the semantic CodeOrigin https://bugs.webkit.org/show_bug.cgi?id=176206 Reviewed by Keith Miller. * stress/compare-semantic-origin-op-negate-method-of-getting-a-value-profile.js: Added. (a): (b): (foo): 2017-08-31 Ryan Haddad Skip two slow JSC tests after r221422. Unreviewed test gardening. * stress/regexp-prototype-match-on-too-long-rope.js: * stress/regexp-prototype-test-on-too-long-rope.js: 2017-08-31 Filip Pizlo Unreviewed, skipping slow tests. These tests are now timing out. They would have always been slow. The timeouts are probably because OOMs work differently now. * stress/regexp-prototype-exec-on-too-long-rope.js: * stress/string-prototype-charCodeAt-on-too-long-rope.js: 2017-08-31 Yusuke Suzuki [JSC] Use reifying system for "name" property of builtin JSFunction https://bugs.webkit.org/show_bug.cgi?id=175260 Reviewed by Saam Barati. * stress/accessors-get-set-prefix.js: * stress/builtin-function-name.js: Added. (shouldBe): (shouldThrow): (shouldBe.JSON.stringify.Object.getOwnPropertyDescriptor): (shouldBe.JSON.stringify.Object.getOwnPropertyNames.Array.prototype.filter.sort): * stress/private-name-as-anonymous-builtin.js: Added. (shouldBe): (NotPromise): 2017-08-30 Saam Barati Unreviewed. Make test stop printing. * microbenchmarks/fake-iterators-that-throw-when-finished.js: 2017-08-30 Ryan Haddad Unreviewed, rolling out r221327. This change caused test262 failures. Reverted changeset: "[JSC] Use reifying system for "name" property of builtin JSFunction" https://bugs.webkit.org/show_bug.cgi?id=175260 http://trac.webkit.org/changeset/221327 2017-08-30 Saam Barati semicolon is being interpreted as an = in the LiteralParser https://bugs.webkit.org/show_bug.cgi?id=176114 Reviewed by Oliver Hunt. * stress/jsonp-literal-parser-semicolon-is-not-assignment.js: Added. * stress/resources/literal-parser-test-case.js: Added. 2017-08-30 Oleksandr Skachkov [ESNext] Async iteration - Implement async iteration statement: for-await-of https://bugs.webkit.org/show_bug.cgi?id=166698 Reviewed by Yusuke Suzuki. * stress/async-iteration-for-await-of-syntax.js: Added. (assert): (checkSyntax): (checkSyntaxError): (checkSimpleAsyncGeneratorSloppyMode): (checkSimpleAsyncGeneratorStrictMode): (checkNestedAsyncGenerators): (checkSimpleAsyncGeneratorSyntaxErrorInStrictMode): * stress/async-iteration-for-await-of.js: Added. (assert): (async.foo): (async.boo): (const.boo.async): 2017-08-29 Yusuke Suzuki [JSC] Use reifying system for "name" property of builtin JSFunction https://bugs.webkit.org/show_bug.cgi?id=175260 Reviewed by Saam Barati. * stress/accessors-get-set-prefix.js: * stress/builtin-function-name.js: Added. (shouldBe): (shouldThrow): (shouldBe.JSON.stringify.Object.getOwnPropertyDescriptor): (shouldBe.JSON.stringify.Object.getOwnPropertyNames.Array.prototype.filter.sort): 2017-08-25 Saam Barati Support compiling catch in the DFG https://bugs.webkit.org/show_bug.cgi?id=174590 Reviewed by Filip Pizlo. * microbenchmarks/delta-blue-try-catch.js: Added. (exception): (value): (OrderedCollection): (OrderedCollection.prototype.add): (OrderedCollection.prototype.at): (OrderedCollection.prototype.size): (OrderedCollection.prototype.removeFirst): (OrderedCollection.prototype.remove): (Strength): (Strength.stronger): (Strength.weaker): (Strength.weakestOf): (Strength.strongest): (Strength.prototype.nextWeaker): (Constraint): (Constraint.prototype.addConstraint): (Constraint.prototype.satisfy): (Constraint.prototype.destroyConstraint): (Constraint.prototype.isInput): (UnaryConstraint): (UnaryConstraint.prototype.addToGraph): (UnaryConstraint.prototype.chooseMethod): (UnaryConstraint.prototype.isSatisfied): (UnaryConstraint.prototype.markInputs): (UnaryConstraint.prototype.output): (UnaryConstraint.prototype.recalculate): (UnaryConstraint.prototype.markUnsatisfied): (UnaryConstraint.prototype.inputsKnown): (UnaryConstraint.prototype.removeFromGraph): (StayConstraint): (StayConstraint.prototype.execute): (EditConstraint.prototype.isInput): (EditConstraint.prototype.execute): (BinaryConstraint): (BinaryConstraint.prototype.chooseMethod): (BinaryConstraint.prototype.addToGraph): (BinaryConstraint.prototype.isSatisfied): (BinaryConstraint.prototype.markInputs): (BinaryConstraint.prototype.input): (BinaryConstraint.prototype.output): (BinaryConstraint.prototype.recalculate): (BinaryConstraint.prototype.markUnsatisfied): (BinaryConstraint.prototype.inputsKnown): (BinaryConstraint.prototype.removeFromGraph): (ScaleConstraint): (ScaleConstraint.prototype.addToGraph): (ScaleConstraint.prototype.removeFromGraph): (ScaleConstraint.prototype.markInputs): (ScaleConstraint.prototype.execute): (ScaleConstraint.prototype.recalculate): (EqualityConstraint): (EqualityConstraint.prototype.execute): (Variable): (Variable.prototype.addConstraint): (Variable.prototype.removeConstraint): (Planner): (Planner.prototype.incrementalAdd): (Planner.prototype.incrementalRemove): (Planner.prototype.newMark): (Planner.prototype.makePlan): (Planner.prototype.extractPlanFromConstraints): (Planner.prototype.addPropagate): (Planner.prototype.removePropagateFrom): (Planner.prototype.addConstraintsConsumingTo): (Plan): (Plan.prototype.addConstraint): (Plan.prototype.size): (Plan.prototype.constraintAt): (Plan.prototype.execute): (chainTest): (projectionTest): (change): (deltaBlue): * microbenchmarks/fake-iterators-that-throw-when-finished.js: Added. (assert): (Numbers): (Numbers.prototype.next): (return.Transpose): (return.Transpose.prototype.next): (transpose): (verifyEven): (verifyString): (foo): (runIterators): * microbenchmarks/try-catch-word-count.js: Added. (let.assert): (EOF): (let.texts): (let.o.apply): (foo): (bar): (f): (run): (test1): (test2): (test3): (fn): (A): (B): (A.prototype.getValue): (B.prototype.getParentValue): (strlen): (sum.0): (test): (result.test.o): (set add.set add): (set forEach): (stringHash): (set if): (testFunction): (set delete.set has.set add): * stress/catch-set-argument-speculation-failure.js: Added. (o): (e): (e2): (escape): (baz): (noInline.run): (noInline): * stress/osr-enter-to-catch-with-set-local-type-check-failure.js: Added. (foo): (e): (baz): (bar): 2017-08-24 Commit Queue Unreviewed, rolling out r221119, r221124, and r221143. https://bugs.webkit.org/show_bug.cgi?id=175973 "I think it regressed JSBench by 20%" (Requested by saamyjoon on #webkit). Reverted changesets: "Support compiling catch in the DFG" https://bugs.webkit.org/show_bug.cgi?id=174590 http://trac.webkit.org/changeset/221119 "Unreviewed, build fix in GTK port" https://bugs.webkit.org/show_bug.cgi?id=174590 http://trac.webkit.org/changeset/221124 "DFG::JITCode::osrEntry should get sorted since we perform a binary search on it" https://bugs.webkit.org/show_bug.cgi?id=175893 http://trac.webkit.org/changeset/221143 2017-08-24 Michael Saboff Add support for RegExp "dotAll" flag https://bugs.webkit.org/show_bug.cgi?id=175924 Reviewed by Keith Miller. Updated tests for new dotAll ('s' flag) changes. * es6/Proxy_internal_get_calls_RegExp.prototype.flags.js: * stress/static-getter-in-names.js: 2017-08-24 Mark Lam Land regression test for https://bugs.webkit.org/show_bug.cgi?id=164081. https://bugs.webkit.org/show_bug.cgi?id=175940 Reviewed by Saam Barati. * stress/regress-164081.js: Added. (shouldEqual): (testcase): 2017-08-24 Ryan Haddad Skip flaky JSC test stress/test-finally.js. https://bugs.webkit.org/show_bug.cgi?id=160283 Unreviewed test gardening. * stress/test-finally.js: 2017-08-23 Saam Barati Support compiling catch in the DFG https://bugs.webkit.org/show_bug.cgi?id=174590 Reviewed by Filip Pizlo. * microbenchmarks/delta-blue-try-catch.js: Added. (exception): (value): (OrderedCollection): (OrderedCollection.prototype.add): (OrderedCollection.prototype.at): (OrderedCollection.prototype.size): (OrderedCollection.prototype.removeFirst): (OrderedCollection.prototype.remove): (Strength): (Strength.stronger): (Strength.weaker): (Strength.weakestOf): (Strength.strongest): (Strength.prototype.nextWeaker): (Constraint): (Constraint.prototype.addConstraint): (Constraint.prototype.satisfy): (Constraint.prototype.destroyConstraint): (Constraint.prototype.isInput): (UnaryConstraint): (UnaryConstraint.prototype.addToGraph): (UnaryConstraint.prototype.chooseMethod): (UnaryConstraint.prototype.isSatisfied): (UnaryConstraint.prototype.markInputs): (UnaryConstraint.prototype.output): (UnaryConstraint.prototype.recalculate): (UnaryConstraint.prototype.markUnsatisfied): (UnaryConstraint.prototype.inputsKnown): (UnaryConstraint.prototype.removeFromGraph): (StayConstraint): (StayConstraint.prototype.execute): (EditConstraint.prototype.isInput): (EditConstraint.prototype.execute): (BinaryConstraint): (BinaryConstraint.prototype.chooseMethod): (BinaryConstraint.prototype.addToGraph): (BinaryConstraint.prototype.isSatisfied): (BinaryConstraint.prototype.markInputs): (BinaryConstraint.prototype.input): (BinaryConstraint.prototype.output): (BinaryConstraint.prototype.recalculate): (BinaryConstraint.prototype.markUnsatisfied): (BinaryConstraint.prototype.inputsKnown): (BinaryConstraint.prototype.removeFromGraph): (ScaleConstraint): (ScaleConstraint.prototype.addToGraph): (ScaleConstraint.prototype.removeFromGraph): (ScaleConstraint.prototype.markInputs): (ScaleConstraint.prototype.execute): (ScaleConstraint.prototype.recalculate): (EqualityConstraint): (EqualityConstraint.prototype.execute): (Variable): (Variable.prototype.addConstraint): (Variable.prototype.removeConstraint): (Planner): (Planner.prototype.incrementalAdd): (Planner.prototype.incrementalRemove): (Planner.prototype.newMark): (Planner.prototype.makePlan): (Planner.prototype.extractPlanFromConstraints): (Planner.prototype.addPropagate): (Planner.prototype.removePropagateFrom): (Planner.prototype.addConstraintsConsumingTo): (Plan): (Plan.prototype.addConstraint): (Plan.prototype.size): (Plan.prototype.constraintAt): (Plan.prototype.execute): (chainTest): (projectionTest): (change): (deltaBlue): * microbenchmarks/fake-iterators-that-throw-when-finished.js: Added. (assert): (Numbers): (Numbers.prototype.next): (return.Transpose): (return.Transpose.prototype.next): (transpose): (verifyEven): (verifyString): (foo): (runIterators): * microbenchmarks/try-catch-word-count.js: Added. (let.assert): (EOF): (let.texts): (let.o.apply): (foo): (bar): (f): (run): (test1): (test2): (test3): (fn): (A): (B): (A.prototype.getValue): (B.prototype.getParentValue): (strlen): (sum.0): (test): (result.test.o): (set add.set add): (set forEach): (stringHash): (set if): (testFunction): (set delete.set has.set add): * stress/catch-set-argument-speculation-failure.js: Added. (o): (e): (e2): (escape): (baz): (noInline.run): (noInline): * stress/osr-enter-to-catch-with-set-local-type-check-failure.js: Added. (foo): (e): (baz): (bar): 2017-08-23 Yusuke Suzuki [JSC] Optimize Map iteration with intrinsic https://bugs.webkit.org/show_bug.cgi?id=174355 Reviewed by Saam Barati. * stress/map-iterator-result-should-have-expected-shape.js: Added. (shouldBe): (throw.new.Error): * stress/set-iterator-result-should-have-expected-shape.js: Added. (shouldBe): (throw.new.Error.let.iterator.set Symbol): (throw.new.Error.set add): (let.iterator.set Symbol): 2017-08-23 Robin Morisset Add a micro-benchmark for checking that accessing a variable within a 'with' block does not automatically prevent type prediction. https://bugs.webkit.org/show_bug.cgi?id=175738 Reviewed by Saam Barati. * stress/with_and_arith.js: Added. (with): 2017-08-23 Skachkov Oleksandr [ESNext] Async iteration - Implement Async Generator - runtime https://bugs.webkit.org/show_bug.cgi?id=175240 Reviewed by Yusuke Suzuki. * stress/async-iteration-async-from-sync.js: Added. (assert): (const.Logger): (this.fullfilled): (this.fullfilledDone): (this.rejected): (this.catched): (this.isFinal): (_assertLogger): (const.assertLogger): (const.getPromise.promiseHolder.return.new.Promise): (foo): (async.boo): (bar): (async.baz): (async.goo): * stress/async-iteration-basic.js: Added. (assert): (const.Logger): (this.fullfilled): (this.fullfilledDone): (this.rejected): (this.catched): (this.isFinal): (_assertLogger): (const.assertLogger): (const.getPromise.promiseHolder.return.new.Promise): (async.generator): (iterator.next.then): (async.baz): (async.boo): (async.foo): (async.goo): (A.prototype.async.foo): (A.prototype.async.boo): (A): (asyncGenExp.async): (async.joo): (j.next.then): (then): (async.koo): (async.loo): (async.moo): (async.noo): (async.ooo): (async.roo): (async.poo): (async.soo): (async.too): * stress/async-iteration-evaluation.js: Added. (assert): (async.foo): (catch): * stress/async-iteration-syntax.js: * stress/async-iteration-yield-promise.js: Added. (assert): (const.Logger): (this.fullfilled): (this.fullfilledDone): (this.rejected): (this.catched): (this.isFinal): (_assertLogger): (const.assertLogger): (const.getPromise.promiseHolder.return.new.Promise): (async.foo): (async.boo): (async.bar): * stress/async-iteration-yield-star-interface.js: Added. (assert): (const.getPromise.promiseHolder.return.new.Promise): (const.Logger): (this.fullfilled): (this.fullfilledDone): (this.rejected): (this.catched): (this.custom): (this.isFinal): (_assertLogger): (const.assertLogger): (let.asyncIter.Symbol.asyncIterator): (let.asyncIter.next): (let.asyncIter.throw): (let.asyncIter.return): (async.foo): (asyncIter.Symbol.asyncIterator): (asyncIter.next): (async.boo): (asyncIter.return): (async.bar): (async.baz): (async.foobar): * stress/async-iteration-yield-star.js: Added. (assert): (const.Logger): (this.fullfilled): (this.fullfilledDone): (this.rejected): (this.catched): (this.custom): (this.isFinal): (_assertLogger): (const.assertLogger): (const.getPromise.promiseHolder.return.new.Promise): (async.foo): (async.boo): (async.bar): (async.baz): (async.joo): (async.goo): (async.koo): (async.loo): (let.asyncIter.Symbol.asyncIterator): (let.asyncIter.next): (let.asyncIter.throw): (let.asyncIter.return): (async.moo): (async.noo): * test262.yaml: 2017-08-23 JF Bastien Fix printing in test Unreviewed: fixing verbosity, shouldn't have been there. * wasm/regress/175693.js: (else.else): (catch): 2017-08-18 Ryan Haddad Skip flaky JSC test microbenchmarks/generator-with-several-types.js. https://bugs.webkit.org/show_bug.cgi?id=172543 Unreviewed test gardening. * microbenchmarks/generator-with-several-types.js: 2017-08-17 JF Bastien WebAssembly: const in unreachable code decoded incorrectly, erroneously rejects binary as invalid https://bugs.webkit.org/show_bug.cgi?id=175693 Reviewed by Saam Barati. Add a regression directory for WebAssembly tests. * wasm.yaml: * wasm/regress/175693.js: Added. (else.else): (instance.new.WebAssembly.Instance.new.WebAssembly.Module): (catch): * wasm/regress/175693.wasm: Added. 2017-08-15 Robin Morisset Support the 'with' keyword in FTL. https://bugs.webkit.org/show_bug.cgi?id=175585 Reviewed by Saam Barati. Also improve the JSTest/stress/with.js file to test what happens when non-objects are passed to with. * stress/with.js: (foo): (i.catch): (i.with): Deleted. 2017-08-14 Keith Miller Add testing tool to lie to the DFG about profiles https://bugs.webkit.org/show_bug.cgi?id=175487 Reviewed by Saam Barati. * stress/compare-eq-incomplete-profile.js: Added. (const.test.createBuiltin): 2017-08-14 Robin Morisset Support the with keyword in DFG https://bugs.webkit.org/show_bug.cgi?id=175470 Reviewed by Saam Barati. Added a new stress-test for the 'with' keyword, that caught a bug in a previous version of this code. * stress/with.js: Added. (i.with): 2017-08-14 Ryan Haddad Skip flaky JSC test test/fieldopts/objtypespec-newobj-invalidation.1.js https://bugs.webkit.org/show_bug.cgi?id=175544 Unreviewed test gardening. * ChakraCore.yaml: 2017-08-09 Caitlin Potter Early error on ANY operator before new.target https://bugs.webkit.org/show_bug.cgi?id=157970 Reviewed by Saam Barati. Instead of throwing if any unary operator precedes new.target, only throw if the unary operator updates the reference. The following become legal in JSC: ``` !new.target ~new.target typeof new.target delete new.target void new.target ``` All of which are legal in v8 and SpiderMonkey in strict and sloppy mode * stress/new-target-syntax-errors.js: * stress/new-target.js: 2017-08-09 Ryan Haddad Skip failing JSC tests stress/regress-169783.js and wasm.yaml/wasm/stress/oom.js. https://bugs.webkit.org/show_bug.cgi?id=175255 Unreviewed test gardening. * stress/regress-169783.js: * wasm/stress/oom.js: 2017-08-09 Oleksandr Skachkov REGRESSION: 2 test262/test/language/statements/async-function failures https://bugs.webkit.org/show_bug.cgi?id=175334 Reviewed by Yusuke Suzuki. Add @skip parameters to tests, and remove test for async iterator from async await syntax test because it is already covered by async-iterator-syntax.js * stress/async-await-syntax.js: * stress/async-iteration-syntax.js: 2017-08-08 Yusuke Suzuki Unreviewed, gardening test262 for Promise resolve / reject function length https://bugs.webkit.org/show_bug.cgi?id=175333 * test262.yaml: 2017-08-07 Robin Morisset GetOwnProperty of TypedArray indexed fields is wrongly configurable https://bugs.webkit.org/show_bug.cgi?id=175307 Reviewed by Saam Barati. * stress/typedarray-getownproperty-not-configurable.js: Added. (assert): (foo): 2017-08-06 Yusuke Suzuki Promise resolve and reject function should have length = 1 https://bugs.webkit.org/show_bug.cgi?id=175242 Reviewed by Saam Barati. * stress/builtin-function-length.js: Added. (shouldBe): (shouldThrow): (shouldBe.JSON.stringify.Object.getOwnPropertyDescriptor): (shouldBe.JSON.stringify.Object.getOwnPropertyNames.Array.prototype.filter.sort): 2017-08-06 Oleksandr Skachkov [ESNext] Async iteration - Implement Async Generator - parser https://bugs.webkit.org/show_bug.cgi?id=175210 Reviewed by Yusuke Suzuki. * stress/async-await-syntax.js: (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntax): * stress/async-iteration-syntax.js: Added. (assert): (checkSyntax): (checkSyntaxError): (checkSimpleAsyncGeneratorSloppyMode): (checkSimpleAsyncGeneratorStrictMode): (checkNestedAsyncGenerators): (checkSimpleAsyncGeneratorSyntaxErrorInStrictMode): * stress/generator-class-methods-syntax.js: 2017-08-03 Carlos Alberto Lopez Perez JSC test wasm/js-api/test_memory_constructor.js should be skipped on memoryLimited https://bugs.webkit.org/show_bug.cgi?id=175150 Unreviewed test gardening. * wasm/js-api/test_memory_constructor.js: 2017-08-02 Carlos Alberto Lopez Perez [Linux] JSTests/wasm/stress/oom.js should not run on Linux https://bugs.webkit.org/show_bug.cgi?id=175100 Reviewed by Mark Lam. The JSC test JSTests/wasm/stress/oom.js tries to use all the available memory until an out of memory exception happens. The Linux kernel is more tuned for server workloads than for GUI responsiveness. When a process tries to use a lot of memory, Linux will do its best to serve the request. This usually translates to free physical RAM by writing to disk dirty pages and/or moving out less recently used pages to swap (disk storage). Meanwhile it does this, the system will become unresponsive and this leads to freezes that can last even some minutes on the worst cases. Therefore, let's skip this test on Linux as it will cause more harm than good on the Linux bots or on the machines of Linux developers. * wasm/stress/oom.js: 2017-08-01 Oleksandr Skachkov [JSC] Remove unnecessary print from stress\promise-finally.js test https://bugs.webkit.org/show_bug.cgi?id=175015 Reviewed by Yusuke Suzuki. * stress/promise-finally.js: (p.finally): (then): 2017-07-31 Yusuke Suzuki Unreviewed, update test262 results for optional catch binding * test262.yaml: 2017-07-31 Yusuke Suzuki [JSC] Support optional catch binding https://bugs.webkit.org/show_bug.cgi?id=174981 Reviewed by Saam Barati. * stress/optional-catch-binding-syntax.js: Added. (testSyntax): (testSyntaxError): (catch.catch): * stress/optional-catch-binding.js: Added. (shouldBe): (throwException): 2017-07-28 Mark Lam ObjectToStringAdaptiveStructureWatchpoint should not fire if it's dying imminently. https://bugs.webkit.org/show_bug.cgi?id=174948 Reviewed by Filip Pizlo. * stress/regress-174948.js: Added. 2017-07-28 Yusuke Suzuki ASSERTION FAILED: candidate->op() == PhantomCreateRest || candidate->op() == PhantomDirectArguments || candidate->op() == PhantomClonedArguments || candidate->op() == PhantomSpread || candidate->op() == PhantomNewArrayWithSpread https://bugs.webkit.org/show_bug.cgi?id=174900 Reviewed by Saam Barati. * stress/arguments-elimination-candidate-listings-should-respect-pseudo-terminals.js: Added. (sideEffect): (args): (test): 2017-07-27 Yusuke Suzuki Hoist DOM binding attribute getter prologue into JavaScriptCore taking advantage of DOMJIT / CheckSubClass https://bugs.webkit.org/show_bug.cgi?id=171637 Reviewed by Darin Adler. * stress/domjit-getter-complex-with-incorrect-object.js: (i.shouldThrow): * stress/domjit-getter-type-check.js: Copied from JSTests/stress/domjit-getter-complex-with-incorrect-object.js. (shouldBe): (i.shouldThrow): 2017-07-26 JF Bastien WebAssembly: test throwing out of the start function https://bugs.webkit.org/show_bug.cgi?id=165714 Reviewed by Keith Miller. * wasm/assert.js: * wasm/function-tests/trap-from-start.js: Added. (StartTraps): * wasm/function-tests/trap-from-start-async.js: Added. (async.StartTrapsAsync): 2017-07-21 Yusuke Suzuki [FTL] Arguments elimination is suppressed by unreachable blocks https://bugs.webkit.org/show_bug.cgi?id=174352 Reviewed by Filip Pizlo. * stress/arguments-elimination-force-exit.js: Added. (shouldBe): (strict): (sloppy): * stress/arguments-elimination-throw.js: Added. (shouldBe): (shouldThrow): (sloppy): (isArguments): 2017-07-13 Mark Lam Add some additional test cases for bug 170896. https://bugs.webkit.org/show_bug.cgi?id=174491 Reviewed by Filip Pizlo. * stress/regress-170896-with-contiguous-shape-profile.js: Copied from JSTests/stress/regress-170896.js. * stress/regress-170896-with-double-shape-profile.js: Added. (test): * stress/regress-170896-with-int32-shape-profile.js: Added. (test): * stress/regress-170896.js: Removed. 2017-07-13 Saam Barati Missing exception check in JSObject::hasInstance https://bugs.webkit.org/show_bug.cgi?id=174455 Reviewed by Mark Lam. * stress/has-instance-exception-check.js: Added. (assert): (let.getter.Object.getOwnPropertyDescriptor.get foo): 2017-07-13 Caio Lima [ESnext] Implement Object Spread https://bugs.webkit.org/show_bug.cgi?id=167963 Reviewed by Saam Barati. * stress/obj-rest-destructuring-order.js: Added. (assert): (o.get z): (o.get a): * stress/obj-spread-order.js: Added. (assert): (o.get z): (o.get a): * stress/object-spread.js: Added. (let.assert): (assert.sameValue): (let.o.get a): (let.obj.get c): (cthulhu.get x): (let.obj.set c): (calls.o.get z): (calls.o.get a): (try.let.obj.get foo): (get calls): 2017-07-12 Saam Barati GenericArguments consults the wrong state when tracking modified argument descriptors and mapped arguments https://bugs.webkit.org/show_bug.cgi?id=174411 Reviewed by Mark Lam. * stress/generic-arguments-correct-delete-behavior.js: Added. (assert): (makeTest): 2017-07-07 Mark Lam \n\r is not the same as \r\n. https://bugs.webkit.org/show_bug.cgi?id=173053 Reviewed by Keith Miller. * stress/regress-173053.js: Added. * stress/template-literal-line-terminators.js: 2017-07-06 Saam Barati We are missing places where we invalidate the for-in context https://bugs.webkit.org/show_bug.cgi?id=174184 Reviewed by Geoffrey Garen. * stress/for-in-invalidate-context-weird-assignments.js: Added. (assert): (test): 2017-07-05 Saam Barati NewArray in FTLLowerDFGToB3 does not handle speculating on doubles when having a bad time https://bugs.webkit.org/show_bug.cgi?id=174188 Reviewed by Mark Lam. * stress/new-array-having-a-bad-time-double.js: Added. (assert): (foo): 2017-07-05 Yusuke Suzuki WTF::StringImpl::copyChars segfaults when built with GCC 7 https://bugs.webkit.org/show_bug.cgi?id=173407 Reviewed by Andreas Kling. * stress/string-repeat-copy-chars-crash.js: Added. (shouldBe): 2017-07-03 Saam Barati Skip unshiftCountSlowCase-correct-postCapacity.js on debug builds since it takes a long time to run. * stress/unshiftCountSlowCase-correct-postCapacity.js: 2017-07-03 Yusuke Suzuki Unreviewed, annotate dont--reserve-huge-capacity-lexer.js with $memoryLimited It requires too much memory. * stress/dont-reserve-huge-capacity-lexer.js: 2017-06-30 Michael Saboff Skip a test on ARM64 platform since we run out of address space. Rubber stamped by Saam Barati. * stress/dont-reserve-huge-capacity-lexer.js: 2017-06-30 Michael Saboff RegExp's anchored with .* with \g flag can return wrong match start for strings with multiple matches https://bugs.webkit.org/show_bug.cgi?id=174044 Reviewed by Oliver Hunt. New regression test. * stress/regress-174044.js: Added. (test1): (test2): 2017-06-30 Filip Pizlo RegExpCachedResult::setInput should reify left and right contexts https://bugs.webkit.org/show_bug.cgi?id=173818 Reviewed by Keith Miller. * stress/right-left-context-invalidated-by-input.js: Added. (test.validateContexts): (test): 2017-06-29 Saam Barati Calculating postCapacity in unshiftCountSlowCase is wrong https://bugs.webkit.org/show_bug.cgi?id=173992 Reviewed by Keith Miller. * stress/unshiftCountSlowCase-correct-postCapacity.js: Added. (temp): 2017-06-29 Commit Queue Unreviewed, rolling out r218512. https://bugs.webkit.org/show_bug.cgi?id=173981 "It changes the behavior of the JS API's JSEvaluateScript which breaks TurboTax" (Requested by saamyjoon on #webkit). Reverted changeset: "test262: Completion values for control flow do not match the spec" https://bugs.webkit.org/show_bug.cgi?id=171265 http://trac.webkit.org/changeset/218512 2017-06-27 JF Bastien WebAssembly: running out of executable memory should throw OoM https://bugs.webkit.org/show_bug.cgi?id=171537 Reviewed by Saam Barati. * wasm.yaml: * wasm/lowExecutableMemory/executable-memory-oom.js: Added. (const.invoke): (failCount.0.catch): (failCount.0.module.undefined.catch): * wasm/lowExecutableMemory/exports-oom.js: Added. (const.type): (const.params): (const.randomProgram): (failCount.0.catch): (failCount.0.module.undefined.catch): * wasm/lowExecutableMemory/imports-oom.js: Added. (const.type): (const.params): (const.randomProgram): (f.imports.push): (failCount.0.catch): (failCount.0.module.undefined.catch): 2017-06-27 Caio Lima [ESnext] Implement Object Rest - Implementing Object Rest Destructuring https://bugs.webkit.org/show_bug.cgi?id=167962 Reviewed by Saam Barati. * stress/object-rest-deconstruct.js: Added. (let.assert): (let.assertPropDescriptor): (catch): (get 3): (foo): (let.src.get y): (let.src.set y): (let.gen): 2017-06-27 Saam Barati Function constructor needs to follow the spec and validate parameters and body independently https://bugs.webkit.org/show_bug.cgi?id=173303 Reviewed by Keith Miller. * ChakraCore/test/Function/FuncBodyES5.baseline-jsc: * stress/function-constructor-semantics.js: Added. (assert): (hasSyntaxError): (foo): (async.foo): (testError): (testOK.toString): (toString): 2017-06-26 Saam Barati RegExpPrototype.js builtin uses for-of iteration which is almost certainly incorrect https://bugs.webkit.org/show_bug.cgi?id=173740 Reviewed by Mark Lam. * stress/regexp-prototype-replace-builtin-should-not-use-for-of.js: Added. (Array.prototype.Symbol.iterator): 2017-06-26 Saam Barati Skip a test on 32-bit platforms since we run out of address space. Rubber stamped by Mark Lam. * stress/dont-reserve-huge-capacity-lexer.js: 2017-06-26 Saam Barati Crash in JSC::Lexer::setCode https://bugs.webkit.org/show_bug.cgi?id=172754 Reviewed by Mark Lam. * stress/dont-reserve-huge-capacity-lexer.js: Added. (catch): 2017-06-24 Yusuke Suzuki [JSC] Clean up Object.entries implementation https://bugs.webkit.org/show_bug.cgi?id=173759 Reviewed by Sam Weinig. * microbenchmarks/object-entries.js: Added. (test): 2017-06-24 Joseph Pecoraro Remove Reflect.enumerate https://bugs.webkit.org/show_bug.cgi?id=173806 Reviewed by Yusuke Suzuki. * ChakraCore.yaml: * es6.yaml: These tests now fail because they use Reflect.enumerate. * test262.yaml: This test now passes, it checked that Reflect.enumerate is undefined! * stress/property-name-enumerator-should-not-look-into-indexed-values-when-it-is-a-dictionary.js: Convert to for..in which presented the original issue. See bug * stress/reflect-enumerate.js: Removed. Remove a test solely for Reflect.enumerate. 2017-06-22 Saam Barati ValueRep(DoubleRep(@v)) can not simply convert to @v https://bugs.webkit.org/show_bug.cgi?id=173687 Reviewed by Mark Lam. * stress/dont-strength-reduce-valuerep-of-doublerep.js: Added. (i.catch): 2017-06-22 Yusuke Suzuki [JSC] Object.values should be implemented in C++ https://bugs.webkit.org/show_bug.cgi?id=173703 Reviewed by Sam Weinig. * microbenchmarks/object-keys-map-values.js: Added. (test): * microbenchmarks/object-values.js: Added. (test): * stress/object-values-changing-properties.js: Added. (shouldBe): (throw.new.Error.let.source.get x): (throw.new.Error): (shouldBe.let.handler.get order): (get let): (shouldBe.let.handler.get return): (let.handler.get order): 2017-06-21 Saam Barati eval virtual call is incorrect in the baseline JIT https://bugs.webkit.org/show_bug.cgi?id=173587 Reviewed by Michael Saboff. * stress/do-eval-virtual-call-correctly.js: Added. (assert): (f): (i.test): (catch): 2017-06-20 Ryan Haddad Update test262 test expectations after r218581. Unreviewed test gardening. * test262.yaml: 2017-06-20 Oleksandr Skachkov Revert changes in bug#160417 about extending `null` not being a derived class https://bugs.webkit.org/show_bug.cgi?id=169293 Reviewed by Saam Barati. * stress/class-derived-from-null.js: (assertThrow): (test1): (test2): (test3): (test4): (test5): (test6): 2017-06-13 Yusuke Suzuki [DFG] More ArrayIndexOf fixups for various types https://bugs.webkit.org/show_bug.cgi?id=173176 Reviewed by Saam Barati. * stress/array-indexof-arraystorage.js: Added. (shouldBe): (indexOfInt32Other): (indexOfInt32Cell): (indexOfInt32Boolean): (indexOfDoubleOther): (indexOfDoubleCell): (indexOfDoubleBoolean): (indexOfInt32): (indexOfDouble): * stress/array-indexof-constant-folding.js: Added. (shouldBe): (indexOfInt32Other): (indexOfInt32Cell): (indexOfInt32Boolean): (indexOfDoubleOther): (indexOfDoubleCell): (indexOfDoubleBoolean): * stress/array-indexof-hole-and-other.js: Added. (shouldBe): (indexOf): * stress/array-indexof-other.js: Added. (shouldBe): (indexOfInt32): (indexOfDouble): (indexOfString): (indexOfObject): * stress/array-indexof-symbol.js: Added. (shouldBe): (indexOfInt32): (indexOfDouble): (indexOfString): (indexOfObject): 2017-06-19 Joseph Pecoraro test262: Completion values for control flow do not match the spec https://bugs.webkit.org/show_bug.cgi?id=171265 Reviewed by Saam Barati. * stress/completion-value.js: Condensed test for completion values in top level statements. * stress/super-get-by-id.js: ClassDeclaration when evaled no longer produce values. Convert these to ClassExpressions so they produce the class value. * ChakraCore/test/GlobalFunctions/evalreturns3.baseline-jsc: This is a progression for currect spec behavior. * mozilla/mozilla-tests.yaml: This test is now outdated, so mark it as failing for that reason. * test262.yaml: Passing all "cptn" completion value tests. 2017-06-17 Keith Miller ArrayBuffer constructor needs to create subclass structures before its buffer https://bugs.webkit.org/show_bug.cgi?id=173510 Reviewed by Yusuke Suzuki. * test262.yaml: 2017-06-17 Keith Miller ArrayPrototype methods should use JSValue::toLength for non-Arrays. https://bugs.webkit.org/show_bug.cgi?id=173506 Reviewed by Ryosuke Niwa. Re-baseline tests. * ChakraCore/test/Function/apply3.baseline-jsc: * test262.yaml: 2017-06-16 Yusuke Suzuki [JSC] Add fast path for Object.assign https://bugs.webkit.org/show_bug.cgi?id=173416 Reviewed by Mark Lam. * stress/object-assign-changing-properties.js: Added. (shouldBe): (throw.new.Error.let.source.get x): (throw.new.Error): (shouldBe.let.source.get x): (shouldBe.let.target.set x): (shouldBe.let.target.get x): * stress/object-assign-proxy.js: Added. (shouldBe): (throw.new.Error.let.handler.get order): 2017-06-15 Yusuke Suzuki [JSC] Implement Object.assign in C++ https://bugs.webkit.org/show_bug.cgi?id=173414 Reviewed by Saam Barati. * stress/object-assign-string-first.js: Added. (shouldBe): (source.get Symbol): (source.get 1): (source.get cocoa): 2017-06-14 JF Bastien WebAssembly: remove empty test files https://bugs.webkit.org/show_bug.cgi?id=173382 Reviewed by Saam Barati. The following files: JSTests/wasm/function-tests/call-indirect-params.js JSTests/wasm/function-tests/call-indirect.js JSTests/wasm/js-api/call-indirect-results.js Were changed to empty files in https://trac.webkit.org/changeset/209771 They were testing call_indirect with the wrong semantics, before we implemented tables. That change implemented tables and therefore removed the erroneous tests. We have a few tests for call_indirect which already do the right thing: JSTests/wasm/function-tests/context-switch.js JSTests/wasm/function-tests/exceptions.js JSTests/wasm/function-tests/grow-memory-2.js JSTests/wasm/function-tests/stack-overflow.js JSTests/wasm/function-tests/table-basic-2.js JSTests/wasm/function-tests/table-basic.js JSTests/wasm/js-api/call-indirect.js JSTests/wasm/js-api/table.js JSTests/wasm/js-api/unique-signature.js JSTests/wasm/js-api/wrapper-function.js I also just imported the updated spec tests which, among other things, test call_indirect: core/br.wast core/br_table.wast core/call_indirect.wast core/func.wast core/func_ptrs.wast core/imports.wast core/left-to-right.wast core/linking.wast core/nop.wast core/return.wast core/typecheck.wast core/unreachable.wast So I think it's OK to just delete the tests which should just have been deleted back when tables were added. * wasm/function-tests/call-indirect-params.js: Removed. * wasm/function-tests/call-indirect.js: Removed. * wasm/js-api/call-indirect-results.js: Removed. 2017-06-13 JF Bastien WebAssembly: import updated spec tests https://bugs.webkit.org/show_bug.cgi?id=173287 Reviewed by Saam Barati. Import spec tests as of 31c641cc15f2aedbec2fa45a5185f68416df578b, with a few modifications so things work. Fix a bunch of bugs found through this process, and punt a few tests (which I marked as blocked by this bug). Fixes: Fix load / store alignment: r216908 erroneously implemented it as bit alignment instead of byte alignment. It was also missing memory-alignment.js despite it being in the ChangeLog, so add it too. This allows spec-test/align.wast.js to pass. Tables can be imported or in a section. There can be only one, but sections can be empty. An Elements section can exist if there's no Table, as long as it is also empty. Memories can be imported or in a section. There can be only one, but sections can be empty. A Data section can exist if there's no Memory, as long as it is also empty. Prototypes: stringify without .prototype. in the string. WebAssembly.Table.prototype.grow was plain wrong: it takes a delta parameter, not a final size, and throws a RangeError on failure, not a TypeError. Fix compile / instantiate so the reject the promise if given an argument of the wrong type (instead of failing instantly). Fix async on neuter test. Element section shouldn't affect any Table if any of the elements are out of bounds. We need to process it in two passes. Segment section shouldn't affect any Data if any of the segments are out of bounds. We need to process it in two passes. Empty data segments are valid, but only when there is no memory. Their index still gets validated, and has to be zero. Punts: Error messages with context, the test seems overly restrictive but this is minor. compile/instantiate/validate property descriptors. UTF-8 bugs. Temporarily disable NaN tests. We need to go back and implement the following semantics: https://github.com/WebAssembly/spec/pull/414 This doesn't matter as much as getting all the other tests passing. Worth noting for NaNs: f64.no_fold_mul_one (also a NaN test) as well as no_fold_promote_demote (an interesting corner case which we get wrong). mul by one is (assert_return (invoke \"f64.no_fold_mul_one\" (i64.const 0x7ff4000000000000)) (i64.const 0x7ff8000000000000)) which means converting sNaN to qNaN, and promote/demote is (assert_return (invoke \"no_fold_promote_demote\" (i32.const 0x7fa00000)) (i32.const 0x7fc00000)) which is the same. I'm not sure why they're not allowed. * wasm.yaml: * wasm/function-tests/i32-load8-s.js: * wasm/function-tests/memory-access-past-4gib.js: (const.op.of.WASM.opcodes): * wasm/function-tests/memory-alignment.js: Added. (const.op.of.WASM.opcodes): * wasm/function-tests/memory-section-and-import.js: * wasm/js-api/Module-compile.js: (async.testPromiseAPI): * wasm/js-api/dont-mmap-zero-byte-memory.js: (testMems): * wasm/js-api/element.js: (assert.throws.new.WebAssembly.Module.builder.WebAssembly): * wasm/js-api/neutered-inputs.js: (const.testFunction): Deleted. (const.testConstructor): Deleted. * wasm/js-api/table.js: (assert.throws.new.WebAssembly.Module.builder.WebAssembly): (new.WebAssembly.Module): (assert.throws): (assertBadTableImport): (assert.throws.WebAssembly.Table.prototype.grow): (assertBadTableInstance): Deleted. * wasm/js-api/test_Data.js: (DataSectionWithoutMemory): * wasm/spec-harness/index.js: (module): (uniqueTest): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (register): Deleted. (call): Deleted. (get instance): Deleted. (exports): Deleted. (run): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (try.f): Deleted. (catch): Deleted. (assert_exhaustion): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-harness/testharness.css: Removed. * wasm/spec-harness/testharness.js: Removed. * wasm/spec-harness/testharnessreport.js: Removed. * wasm/spec-harness/wasm-constants.js: (assertTraps): (assertWasmThrows): * wasm/spec-harness/wasm-module-builder.js: (Binary.prototype.emit_section): (Binary): (WasmFunctionBuilder.prototype.addBody): (WasmFunctionBuilder.prototype.end): (WasmFunctionBuilder): (WasmModuleBuilder.prototype.stringToBytes): (WasmModuleBuilder.prototype.addCustomSection): (WasmModuleBuilder.prototype.addFunctionTableInit): (WasmModuleBuilder.prototype.appendToTable): (WasmModuleBuilder.prototype.toArray): (WasmModuleBuilder.prototype.toBuffer): (WasmModuleBuilder.prototype.instantiate): (WasmModuleBuilder): * wasm/spec-tests/address.wast.js: * wasm/spec-tests/align.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.wast.js: * wasm/spec-tests/call_indirect.wast.js: * wasm/spec-tests/comments.wast.js: * wasm/spec-tests/const.wast.js: Added. * wasm/spec-tests/conversions.wast.js: Added. * wasm/spec-tests/custom_section.wast.js: * wasm/spec-tests/exports.wast.js: * wasm/spec-tests/f32.wast.js: Added. * wasm/spec-tests/f64.wast.js: Added. * wasm/spec-tests/fac.wast.js: * wasm/spec-tests/float_exprs.wast.js: Added. * wasm/spec-tests/float_misc.wast.js: Added. * wasm/spec-tests/func.wast.js: * wasm/spec-tests/globals.wast.js: * wasm/spec-tests/if.wast.js: * wasm/spec-tests/imports.wast.js: * wasm/spec-tests/inline-module.wast.js: Added. * wasm/spec-tests/jsapi.js: (testJSAPI.test): (testJSAPI): * wasm/spec-tests/labels.wast.js: * wasm/spec-tests/loop.wast.js: * wasm/spec-tests/memory.wast.js: * wasm/spec-tests/memory_trap.wast.js: Added. * wasm/spec-tests/names.wast.js: * wasm/spec-tests/nop.wast.js: * wasm/spec-tests/return.wast.js: * wasm/spec-tests/stack.wast.js: * wasm/spec-tests/token.wast.js: Added. * wasm/spec-tests/type.wast.js: Added. * wasm/spec-tests/typecheck.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: Added. * wasm/spec-tests/utf8-import-field.wast.js: Added. * wasm/spec-tests/utf8-import-module.wast.js: Added. 2017-06-13 Ryan Haddad Unreviewed JSC test gardening. * stress/check-string-ident.js: * stress/new-largeish-contiguous-array-with-size.js: 2017-06-13 Michael Saboff DFG doesn't properly handle a property that is change to read only in a prototype https://bugs.webkit.org/show_bug.cgi?id=173321 Reviewed by Filip Pizlo. * ChakraCore.yaml: Renabled fieldopts/objtypespec-newobj-invalidation.1.js. * stress/regress-173321.js: Added new regression test. (shouldBe): (SimpleObject): (test): 2017-06-12 Saam Barati Update test262 test expectation since r218082 makes new tests pass. * test262.yaml: 2017-06-12 Saam Barati We should not claim that SpecEmpty is filtered out of cell checks on 64 bit platforms https://bugs.webkit.org/show_bug.cgi?id=172957 Reviewed by Filip Pizlo. * stress/spec-empty-flows-through-cell-checks.js: Added. (A): (B): (i.catch): 2017-06-12 Oleksandr Skachkov We incorrectly allow escaped characters in keyword tokens https://bugs.webkit.org/show_bug.cgi?id=171310 Reviewed by Yusuke Suzuki. * stress/destructuring-assignment-syntax.js: * stress/error-messages-for-in-operator-should-not-crash.js: (catch): * stress/reserved-word-with-escape.js: (testSyntaxError.String.raw.v): (String.raw.SyntaxError.Cannot.use.the.keyword.string_appeared_here.as.a.name): (testSyntaxError.String.raw.a): * JSTests/ChakraCore/test/Basics/IdsWithEscapes.baseline-jsc: 2017-06-09 Yusuke Suzuki [DFG] Add ArrayIndexOf intrinsic https://bugs.webkit.org/show_bug.cgi?id=172421 Reviewed by Saam Barati. * stress/array-indexof-array-prototype-change.js: Added. (shouldBe): (indexOfInt32): * stress/array-indexof-have-a-bad-time-getter.js: Added. (shouldBe): (indexOfInt32): * stress/array-indexof-have-a-bad-time.js: Added. (shouldBe): (indexOfInt32): * stress/array-indexof-hole-with-prototype.js: Added. (shouldBe): (indexOf): * stress/array-indexof-hole.js: Added. (shouldBe): (indexOf): * stress/array-indexof-index.js: Added. (shouldBe): (indexOfInt32): (indexOfDouble): (indexOfString): (indexOfObject): (indexOfValue): * stress/array-indexof-negative-index.js: Added. (shouldBe): (indexOfInt32): (indexOfDouble): (indexOfString): (indexOfObject): (indexOfValue): * stress/array-indexof-non-int32-start-index.js: Added. (shouldBe): (indexOf): (object.valueOf): * stress/array-indexof-object-prototype-change.js: Added. (shouldBe): (indexOfInt32): * stress/array-indexof-object.js: Added. (shouldBe): (indexOf): * stress/array-indexof-original-array.js: Added. (shouldBe): (indexOfInt32): * stress/array-indexof-string.js: Added. (shouldBe): (indexOf): * stress/array-indexof-structure-change-convert.js: Added. (shouldBe): (indexOf): * stress/array-indexof-structure-change.js: Added. (shouldBe): (indexOf): * stress/array-indexof.js: Added. (shouldBe): (indexOf): 2017-06-11 Keith Miller TypedArray constructor with string shouldn't throw https://bugs.webkit.org/show_bug.cgi?id=173181 Reviewed by JF Bastien. We should be coercing primitive arguments to numbers in the various TypedArray constructors. * stress/typedarray-constructor.js: 2017-06-11 Yusuke Suzuki Unreviewed, update test results part 3 https://bugs.webkit.org/show_bug.cgi?id=173227 * microbenchmarks/regexp-prototype-search-observable-side-effects.js: 2017-06-10 Yusuke Suzuki Unreviewed, update test results part 2 https://bugs.webkit.org/show_bug.cgi?id=173227 * test262.yaml: 2017-06-10 Yusuke Suzuki Unreviewed, update test results https://bugs.webkit.org/show_bug.cgi?id=173227 * microbenchmarks/string-prototype-search-observable-side-effects.js: * test262.yaml: 2017-06-10 Yusuke Suzuki [JSC] Update RegExp.prototype.[@@search]] implementation according to the latest spec https://bugs.webkit.org/show_bug.cgi?id=173227 Reviewed by Mark Lam. Update the test. * es6/Proxy_internal_get_calls_RegExp.prototype[Symbol.search].js: 2017-06-08 Keith Miller WebAssembly: We should only create wrappers for functions that can be exported https://bugs.webkit.org/show_bug.cgi?id=173088 Reviewed by Saam Barati. Remove a bunch of old tests that are actually duplicates of the spec-tests and rely on the old testWasmModuleFunctions api, which has been removed. * wasm/function-tests/copysign.js: Removed. * wasm/function-tests/ctz.js: Removed. * wasm/function-tests/drop.js: Removed. * wasm/function-tests/dumb-eq-if-then-else.js: Removed. * wasm/function-tests/dumb-less-than-fallthrough.js: Removed. * wasm/function-tests/dumb-less-than-ite.js: Removed. * wasm/function-tests/eqz.js: Removed. * wasm/function-tests/i32-trunc-s-f32.js: Removed. * wasm/function-tests/i32-trunc-s-f64.js: Removed. * wasm/function-tests/i32-trunc-u-f32.js: Removed. * wasm/function-tests/i32-trunc-u-f64.js: Removed. * wasm/function-tests/i64-trunc-s-f32.js: Removed. * wasm/function-tests/i64-trunc-s-f64.js: Removed. * wasm/function-tests/i64-trunc-u-f32.js: Removed. * wasm/function-tests/i64-trunc-u-f64.js: Removed. * wasm/function-tests/if-then-else-fallthrough.js: Removed. * wasm/function-tests/if-then-fallthrough.js: Removed. * wasm/function-tests/int-to-floating-point.js: Removed. * wasm/function-tests/loop-mult.js: * wasm/function-tests/loop-sum.js: * wasm/function-tests/max.js: Removed. * wasm/function-tests/min.js: Removed. * wasm/function-tests/nearest.js: Removed. * wasm/function-tests/nop.js: Removed. * wasm/function-tests/popcnt.js: Removed. * wasm/function-tests/ret5.js: * wasm/function-tests/select.js: Removed. * wasm/function-tests/tee-local.js: Removed. * wasm/function-tests/trunc.js: Removed. 2017-06-07 JF Bastien WebAssembly: test imports and exports with 16-bit characters https://bugs.webkit.org/show_bug.cgi?id=165977 Reviewed by Saam Barati. The output for import failure was improved, so many tests need to be updated here. Only one has new tests as noted below. * wasm/function-tests/memory-import-and-grow.js: * wasm/js-api/Instance.imports.exports.unicode.js: Added. Main new test. (idxModule): * wasm/js-api/global-error.js: (new.Number): (assert.throws): * wasm/js-api/table.js: (assert.throws): (new.WebAssembly.Table): * wasm/js-api/test_memory.js: (test): * wasm/js-api/wasm-to-wasm-bad-signature.js: (BadSignatureDropStartParams.): (BadSignatureDropStartParams): (BadSignatureDropEndParams.): (BadSignatureSwapParam.): (BadSignatureRet.): * wasm/js-api/web-assembly-instantiate.js: (assert.asyncTest.async.test): (assert.asyncTest): * wasm/js-api/wrapper-function.js: (return.new.WebAssembly.Module): 2017-06-07 Mark Lam Restrict the regress-173035.js test to only run on Darwin x86-64. https://bugs.webkit.org/show_bug.cgi?id=173075 Reviewed by Saam Barati. This is because the 32-bit x86 build will fail to mmap the 0x3f900000 bytes that this test will require to succeed. Here's an example of this failure: https://build.webkit.org/builders/Apple%20Sierra%2032-bit%20JSC%20%28BuildAndTest%29/builds/866/steps/webkit-32bit-jsc-test/logs/stdio Since the issue is due to allocation of a very large amount of memory, the test will probably fail on iOS and other platforms as well. Hence, we should just skip this test for any platforms that is not Darwin x86-64. * stress/regress-173035.js: 2017-06-07 Mark Lam ASSERTION failure: !masqueradesAsUndefinedWatchpointIsStillValid() || !isKnownCell(operand.node()) https://bugs.webkit.org/show_bug.cgi?id=168587 Not reviewed. Unskipping the test because the issue has been fixed in https://bugs.webkit.org/show_bug.cgi?id=172673. * stress/test-finally.js: 2017-06-06 Mark Lam Contiguous storage butterfly length should not exceed MAX_STORAGE_VECTOR_LENGTH. https://bugs.webkit.org/show_bug.cgi?id=173035 Reviewed by Geoffrey Garen and Filip Pizlo. * stress/regress-173035.js: Added. 2017-06-06 Saam Barati Make sure we restore SP when doing calls that could be to JS https://bugs.webkit.org/show_bug.cgi?id=172946 Reviewed by JF Bastien. * wasm/function-tests/many-args-tail-call-sp-restored.js: Added. (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.f1): (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.end): (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.f2): (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.let.instance.new.WebAssembly.Instance.new.WebAssembly.Module.builder.WebAssembly): 2017-06-06 Joseph Pecoraro Unreviewed rollout r217807. Caused a test to crash. * heapProfiler/class-names.js: Removed. * heapProfiler/driver/driver.js: (CheapHeapSnapshotNode): (CheapHeapSnapshot): (createCheapHeapSnapshot): (HeapSnapshot): (createHeapSnapshot): * typeProfiler/inheritance.js: (wrapper.A): (wrapper.B): (wrapper.C): (wrapper): 2017-06-06 Filip Pizlo index out of bound in bytecodebasicblock https://bugs.webkit.org/show_bug.cgi?id=172963 Reviewed by Saam Barati and Mark Lam. * stress/dfg-call-class-constructor.js: Added. (Foo): (i.catch): 2017-06-05 Joseph Pecoraro Web Inspector: Improve ES6 Class instances in Heap Snapshot instances view https://bugs.webkit.org/show_bug.cgi?id=172848 Reviewed by Saam Barati. * 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. 2017-06-02 Yusuke Suzuki ASSERTION FAILED: "We should only declare a function as a lexically scoped variable in scopes where var declarations aren't allowed. ..." for function redeclaration with async function module export https://bugs.webkit.org/show_bug.cgi?id=168844 Reviewed by Saam Barati. * modules/async-function-export.js: Added. (f): (export.async.f): 2017-06-02 Yusuke Suzuki ES2015 modules - Export default function hoisting https://bugs.webkit.org/show_bug.cgi?id=170174 Reviewed by Saam Barati. This issue itself is solved by fixing function declaration hoisting rules. This patch just adds the specific test to modules tests to ensure the bug is fixed. * modules/export-default-function-hoisting.js: Added. * modules/export-default-function-hoisting/cappuccino.js: Added. (import.drinkCocoa.from.string_appeared_here.export.default.drinkCappuccino): * modules/export-default-function-hoisting/cocoa.js: Added. (export.default.drinkCocoa): 2017-06-01 Oleksandr Skachkov Class Proxy can't be extended https://bugs.webkit.org/show_bug.cgi?id=169040 Reviewed by Saam Barati. Adding tests that check correctness of Proxy to ES6 `class` Bug is already fixed in https://bugs.webkit.org/show_bug.cgi?id=164849 * stress/proxy-class.js: Added. (assert): (throw.new.Error.SuperClass): (throw.new.Error.A): (throw.new.Error): 2017-05-31 Yusuke Suzuki [JSC] Implement String.prototype.concat in JS builtins https://bugs.webkit.org/show_bug.cgi?id=172798 Reviewed by Sam Weinig. * microbenchmarks/string-concat-convert.js: Added. (test): * microbenchmarks/string-concat-long-convert.js: Added. (test): * microbenchmarks/string-concat-long.js: Added. (test): * microbenchmarks/string-concat.js: Added. (test): 2017-05-31 Oleksandr Skachkov Rolling out: Prevent async methods named 'function' https://bugs.webkit.org/show_bug.cgi?id=172776 Reviewed by Mark Lam. * stress/async-await-syntax.js: (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntax): (testTopLevelAsyncAwaitSyntaxSloppyMode): (prototype.testTopLevelAsyncAwaitSyntaxStrictMode.testSyntax): (prototype.testTopLevelAsyncAwaitSyntaxStrictMode): (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntaxError): 2017-05-31 Ryan Haddad Skip flaky JSC test stress/test-finally.js https://bugs.webkit.org/show_bug.cgi?id=168587 Unreviewed test gardening. * stress/test-finally.js: 2017-05-30 Oleksandr Skachkov Prevent async methods named 'function' in Object literal https://bugs.webkit.org/show_bug.cgi?id=172660 Reviewed by Saam Barati. * stress/async-await-syntax.js: (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntaxError): 2017-05-30 Oleksandr Skachkov ASSERTION FAILED: generator.isConstructor() || generator.derivedContextType() == DerivedContextType::DerivedConstructorContext https://bugs.webkit.org/show_bug.cgi?id=171274 Reviewed by Saam Barati. * stress/async-arrow-functions-lexical-binding-in-class.js: (shouldBeAsync): (shouldBeAsyncAndStoreBind): (promise.new.Promise): (ChildClass4): (ChildClass4.prototype.classValue): (ChildClass4.prototype.get classProperty): * stress/async-arrow-functions-lexical-super-binding.js: (A): (const.childA1.new.prototype.var.f.async): (const.childA1.new.var): (const.childA1.new): (const.childA2.new.prototype.var.f.async): (const.childA2.new.var): (const.childA2.new): (const.childA3.new.prototype.var.f.async): (const.childA3.new.var): (const.childA3.new): (try.childA4.new.prototype.var.f.async): (try.childA4.new.var): (try.childA4.new): (catch): (const.childA5.new.prototype.var.f.async): (const.childA5.new.var): (const.childA5.new): (checkClass): (checkClass.new.prototype.var.f.async): (checkClass.new.var): (checkClass.new): (checkClass.new.prototype.method): (checkClass.new.prototype.prop): 2017-05-27 Yusuke Suzuki [JSC] Map and Set constructors should have fast path for cloning https://bugs.webkit.org/show_bug.cgi?id=172413 Reviewed by Saam Barati. * stress/map-clone-instance-iterator-change.js: Added. (shouldBe): (map.Symbol.iterator): * stress/map-clone-iterator-change.js: Added. (shouldBe): (Map.prototype.Symbol.iterator): * stress/map-clone-next-change.js: Added. (shouldBe): (map.Symbol.iterator.__proto__.next): * stress/map-clone.js: Added. (shouldBe): (Map.prototype): * stress/map-inherit-set.js: Added. (shouldBe): (DerivedMap): (set for): * stress/set-clone-instance-iterator-change.js: Added. (shouldBe): (set Symbol.iterator): * stress/set-clone-iterator-change.js: Added. (shouldBe): (set Set.prototype.Symbol.iterator): * stress/set-clone-next-change.js: Added. (shouldBe): (set Symbol.iterator.__proto__.next): * stress/set-clone.js: Added. (shouldBe): (set Set.prototype.add): * stress/set-inherit-add.js: Added. (shouldBe): (DerivedSet.set add): 2017-05-26 Ryan Haddad Unreviewed, rolling out r217458. This change caused 55 JSC test failures. Reverted changeset: "Date should use historical data if it's available." https://bugs.webkit.org/show_bug.cgi?id=172592 http://trac.webkit.org/changeset/217458 2017-05-26 Yusuke Suzuki Give ModuleProgram the same treatment that we did for ProgramCode in bug#167725 https://bugs.webkit.org/show_bug.cgi?id=167805 Reviewed by Saam Barati. * modules/module-jit-reachability.js: Added. 2017-05-26 Oleksandr Skachkov Prevent async methods named 'function' https://bugs.webkit.org/show_bug.cgi?id=172598 Reviewed by Mark Lam. * stress/async-await-syntax.js: (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntax): (testTopLevelAsyncAwaitSyntaxSloppyMode): (prototype.testTopLevelAsyncAwaitSyntaxStrictMode.testSyntax): (prototype.testTopLevelAsyncAwaitSyntaxStrictMode): (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntaxError): 2017-05-25 Keith Miller Date should use historical data if it's available. https://bugs.webkit.org/show_bug.cgi?id=172592 Reviewed by Mark Lam. Remove parts of the date tests that rely on the absence of historical data in Date. * mozilla/ecma/Date/15.9.5.31-1.js: (getTestCases): * mozilla/ecma/Date/15.9.5.35-1.js: (getTestCases): 2017-05-25 Saam Barati Our for-in optimization in the bytecode generator does its static analysis incorrectly https://bugs.webkit.org/show_bug.cgi?id=172532 Reviewed by Mark Lam. * stress/for-in-invalidation-for-any-write.js: Added. (assert): (test): (test.i): 2017-05-25 Mark Lam ObjectToStringAdaptiveInferredPropertyValueWatchpoint should not reinstall itself nor handleFire if it's dying shortly. https://bugs.webkit.org/show_bug.cgi?id=172548 Reviewed by Filip Pizlo. * stress/regress-172548.patch: Added. 2017-05-23 Saam Barati We should not mmap zero bytes for a memory in Wasm https://bugs.webkit.org/show_bug.cgi?id=172528 Reviewed by Mark Lam. * wasm/js-api/dont-mmap-zero-byte-memory.js: Added. (testMems): 2017-05-23 Saam Barati CFGSimplificationPhase should not merge a block with itself https://bugs.webkit.org/show_bug.cgi?id=172508 Reviewed by Keith Miller. * stress/dont-crash-in-cfg-simplification.js: Added. (bar): (baz): (foo): 2017-05-20 Yusuke Suzuki [FTL] Support GetByVal with ArrayStorage and SlowPutArrayStorage https://bugs.webkit.org/show_bug.cgi?id=172216 Reviewed by Saam Barati. * stress/array-storage-get-by-val.js: Added. (shouldBe): (testOutOfBound): (testInBound): (testSlowPutOutOfBound): (testSlowPutInBound): 2017-05-21 Yusuke Suzuki Unreviewed, fix commented out tests https://bugs.webkit.org/show_bug.cgi?id=172225 * stress/get-by-val-string.js: (object.43): (Hello): (Hello.prototype.get 42): (Hello.prototype.43): (Derived): (shouldBe): (throw.new.Error): Deleted. 2017-05-21 Saam Barati We incorrectly throw a syntax error when declaring a top level for-loop iteration variable the same as a parameter https://bugs.webkit.org/show_bug.cgi?id=171041 Reviewed by Yusuke Suzuki. * stress/lexical-scoping-for-loop.js: Added. (assert): (test1): (test2): (test3): (test4): (test5): (test6): (let.test7): (let.test8): (let.test9): (let.test10): (let.test11): (let.test12): 2017-05-19 Yusuke Suzuki [JSC] Make get_by_val & string "499" to number 499 https://bugs.webkit.org/show_bug.cgi?id=172225 Reviewed by Saam Barati. * stress/get-by-val-string.js: Added. (shouldBe): (shouldThrow): (object.43): (Hello): (Hello.prototype.get 42): (Hello.prototype.43): (Derived): 2017-05-19 Mark Lam [Re-landing] DFG::SpeculativeJIT::pickCanTrample() is wrongly ignoring result registers. https://bugs.webkit.org/show_bug.cgi?id=172383 Reviewed by Filip Pizlo. * stress/regress-172383.js: Added. 2017-05-19 Ryan Haddad Unreviewed, rolling out r217156. This change broke the iOS build. Reverted changeset: "DFG::SpeculativeJIT::pickCanTrample() is wrongly ignoring result registers." https://bugs.webkit.org/show_bug.cgi?id=172383 http://trac.webkit.org/changeset/217156 2017-05-19 Mark Lam Add missing exception check. https://bugs.webkit.org/show_bug.cgi?id=172346 Reviewed by Geoffrey Garen. * stress/regress-172346.js: Added. 2017-05-19 Mark Lam DFG::SpeculativeJIT::pickCanTrample() is wrongly ignoring result registers. https://bugs.webkit.org/show_bug.cgi?id=172383 Reviewed by Filip Pizlo. * stress/regress-172383.js: Added. 2017-05-19 Filip Pizlo arrayProtoPrivateFuncConcatMemcpy needs to be down with firstArray being undecided https://bugs.webkit.org/show_bug.cgi?id=172369 Reviewed by Mark Lam. * stress/undecided-concat.js: Added. 2017-05-19 Yusuke Suzuki [JSC][DFG][DOMJIT] Extend CheckDOM to CheckSubClass https://bugs.webkit.org/show_bug.cgi?id=172098 Reviewed by Saam Barati. * stress/check-sub-class.js: Added. (shouldBe): (shouldThrow): (calling): (array.forEach): (i.array.forEach): 2017-05-18 JF Bastien WebAssembly: exports is a getter https://bugs.webkit.org/show_bug.cgi?id=172129 Reviewed by Saam Barati. Update test to reflect new semantics. * wasm/js-api/test_basic_api.js: (const.c.in.constructorProperties.switch): 2017-05-18 Saam Barati Proxy's [[Get]] passes incorrect receiver https://bugs.webkit.org/show_bug.cgi?id=164849 Reviewed by Yusuke Suzuki. * stress/proxy-get-set-correct-receiver.js: Added. (assert): (test): (test.let.target.set prop): (test.let.target.get prop): (test.get let): * stress/proxy-set.js: (let.target.get x): * stress/reflect-set-proxy-set.js: (let.target.get x): * stress/reflect-set-receiver-proxy-set.js: (let.target.get x): 2017-05-18 Filip Pizlo Constructor calls set this too early https://bugs.webkit.org/show_bug.cgi?id=172302 Reviewed by Saam Barati. This tests all three kinds of constructs in BytecodeGenerator. All three were previously wrong. * stress/construct-overwritten-variable.js: Added. (new.x.x): * stress/construct-spread-overwritten-variable-2.js: Added. (new.x.x): * stress/construct-spread-overwritten-variable.js: Added. (new.x.x): 2017-05-18 Saam Barati WebAssembly: perform stack checks https://bugs.webkit.org/show_bug.cgi?id=165546 Reviewed by Filip Pizlo. * wasm.yaml: * wasm/function-tests/factorial.js: * wasm/function-tests/float-sub.js: * wasm/function-tests/stack-overflow.js: Added. (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance): (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.assertOverflows): (assertOverflows.makeInstance): (assertOverflows.makeInstance2): (assertOverflows.assertThrows): (assertOverflows): (assertThrows.test.makeSignature): (assertThrows.test.makeInstance): (assertThrows.test): (assertThrows): 2017-05-18 Keith Miller WebAssembly API: test with neutered inputs https://bugs.webkit.org/show_bug.cgi?id=163899 Reviewed by JF Bastien. * wasm/js-api/neutered-inputs.js: Added. (const.testFunction): (const.testConstructor): * wasm/js-api/test_basic_api.js: (const.c.in.constructorProperties.switch): 2017-05-18 Filip Pizlo DFG inlining should be hardened for the no-result case https://bugs.webkit.org/show_bug.cgi?id=172290 Reviewed by Saam Barati. * stress/array-constructor-no-result.js: Added. (foo): * stress/pow-no-result.js: Added. (foo): 2017-05-18 Commit Queue Unreviewed, rolling out r217031, r217032, and r217037. https://bugs.webkit.org/show_bug.cgi?id=172293 cause linking errors in Windows (Requested by yusukesuzuki on #webkit). Reverted changesets: "[JSC][DFG][DOMJIT] Extend CheckDOM to CheckSubClass" https://bugs.webkit.org/show_bug.cgi?id=172098 http://trac.webkit.org/changeset/217031 "Unreviewed, rebaseline for newly added ClassInfo" https://bugs.webkit.org/show_bug.cgi?id=172098 http://trac.webkit.org/changeset/217032 "Unreviewed, fix debug and non-JIT build" https://bugs.webkit.org/show_bug.cgi?id=172098 http://trac.webkit.org/changeset/217037 2017-05-16 Yusuke Suzuki [JSC][DFG][DOMJIT] Extend CheckDOM to CheckSubClass https://bugs.webkit.org/show_bug.cgi?id=172098 Reviewed by Saam Barati. * stress/check-sub-class.js: Added. (shouldBe): (shouldThrow): (calling): (array.forEach): (i.array.forEach): 2017-05-17 Filip Pizlo Unreviewed, address mlam's review feedback. * stress/arguments-elimination-varargs-too-many-args-arg-count.js: 2017-05-17 Saam Barati We don't do context switches for Wasm->Wasm call indirect https://bugs.webkit.org/show_bug.cgi?id=172188 Reviewed by Keith Miller. * wasm/function-tests/context-switch.js: Added. (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance): (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance2): (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.const.i2.makeInstance2): (makeInstance): (makeInstance2): (assert.eq.makeInstance): (assert.eq.makeInstance2): (assert.eq): 2017-05-17 Filip Pizlo JSC: Incorrect LoadVarargs handling in ArgumentsEliminationPhase::transform https://bugs.webkit.org/show_bug.cgi?id=172208 Reviewed by Saam Barati. * stress/arguments-elimination-varargs-too-many-args-arg-count.js: Added. (foo): (bar): (baz): 2017-05-16 Yusuke Suzuki [DFG] Constant Folding Phase should convert MakeRope("", String) => Identity(String) https://bugs.webkit.org/show_bug.cgi?id=172115 Reviewed by Saam Barati. * stress/constant-folding-should-fold-make-rope-with-empty-strings.js: Added. (shouldBe): (unknown): (readWord1): (readWord2): (readWord3): (readWord4): 2017-05-16 JF Bastien WebAssembly: add memory fuzzer https://bugs.webkit.org/show_bug.cgi?id=169976 Reviewed by Keith Miller. * wasm/fuzz/memory.js: Added. (const.insert): (const.action.string_appeared_here): (const.performAction): (catch): 2017-05-16 JF Bastien WebAssembly: validate load / store alignment https://bugs.webkit.org/show_bug.cgi?id=168836 Reviewed by Keith Miller. * wasm/WASM.js: fix regular expression greed * wasm/function-tests/memory-alignment.js: Added. (const.op.of.WASM.opcodes): * wasm/wasm.json: fix formatting 2017-05-15 Mark Lam Rolling out r214038 and r213697: Crashes when using computed properties with rest destructuring and object spread. https://bugs.webkit.org/show_bug.cgi?id=172147 Rubber-stamped by Saam Barati. * stress/object-rest-deconstruct.js: Removed. * stress/object-spread.js: Removed. 2017-05-11 JF Bastien WebAssembly: stop supporting 0xD https://bugs.webkit.org/show_bug.cgi?id=168788 Reviewed by Saam Barati. Test that only version 1 is supported. * wasm/js-api/version.js: Added. 2017-05-10 JF Bastien WebAssemby: builder doesn't do Memory section maximum correctly https://bugs.webkit.org/show_bug.cgi?id=171931 Reviewed by Keith Miller. * 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.Memory): * wasm/function-tests/memory-grow-invalid.js: Added. 2017-05-10 JF Bastien WebAssembly: support name section https://bugs.webkit.org/show_bug.cgi?id=171263 Reviewed by Keith Miller. * wasm/function-tests/nameSection.js: Added. (const.compile): * wasm/function-tests/nameSection.wasm: Added. * wasm/function-tests/stack-trace.js: Update format 2017-05-10 Filip Pizlo Null pointer dereference in WTF::RefPtr::operator!() under slow_path_get_direct_pname https://bugs.webkit.org/show_bug.cgi?id=171801 Reviewed by Michael Saboff. These tests used to crash. The prefix and postfix tests cover different paths, except postfix-ignored goes down the same path as prefix due to an optimization. * stress/for-in-postfix-ignored-index.js: Added. (foo): * stress/for-in-postfix-index.js: Added. (foo): * stress/for-in-prefix-index.js: Added. (foo): 2017-05-08 Mark Lam op_throw_static_error's use of its first operand should be reflected in DFG BytecodeUseDef as well. https://bugs.webkit.org/show_bug.cgi?id=171786 Reviewed by Saam Barati. * stress/bug-171786.js: Added. 2017-05-06 Oleksandr Skachkov [ES6] Arrow function. Issue in access to this after eval('super()') within constructor https://bugs.webkit.org/show_bug.cgi?id=171543 Reviewed by Saam Barati. * stress/arrowfunction-lexical-bind-supercall-4.js: (J): (K): 2017-05-05 Saam Barati putDirectIndex does not properly do defineOwnProperty https://bugs.webkit.org/show_bug.cgi?id=171591 Reviewed by Geoffrey Garen. * stress/array-prototype-splice-making-typed-array.js: (test): * stress/array-species-config-array-constructor.js: (shouldThrow): (test): * stress/put-direct-index-broken-2.js: Added. (assert): (test): (makeLengthWritable): (set get restoreOldDesc): * stress/put-direct-index-broken.js: Added. (whatToTest): (tryRunning): (tryItOut): * stress/put-indexed-getter-setter.js: Added. (foo.X.prototype.set 7): (foo.X.prototype.get 7): (foo.X): (foo): 2017-05-04 Yusuke Suzuki [JSC] Math unary functions should be handled by DFG https://bugs.webkit.org/show_bug.cgi?id=171269 Reviewed by Saam Barati. * stress/arith-acos-on-various-types.js: Added. (let.validInputTypedTestCases.validInputTestCases.map): (isIdentical): (opaqueACosNoArgument): (testNoArgument): (opaqueAllTypesACos): (testAllTypesCall): (testSingleTypeCall): (testConstant): (opaqueACosForSideEffects): (testSideEffect.let.testObject.valueOf): (testSideEffect): (opaqueACosForCSE): (testCSE.let.testObject.valueOf): (testCSE): (opaqueACosForDCE): (testDCE.let.testObject.valueOf): (testDCE): (testException.opaqueACosWithException): (testException): * stress/arith-acosh-on-various-types.js: Added. (let.validInputTypedTestCases.validInputTestCases.map): (isIdentical): (opaqueACoshNoArgument): (testNoArgument): (opaqueAllTypesACosh): (testAllTypesCall): (testSingleTypeCall): (testConstant): (opaqueACoshForSideEffects): (testSideEffect.let.testObject.valueOf): (testSideEffect): (opaqueACoshForCSE): (testCSE.let.testObject.valueOf): (testCSE): (opaqueACoshForDCE): (testDCE.let.testObject.valueOf): (testDCE): (testException.opaqueACoshWithException): (testException): * stress/arith-asin-on-various-types.js: Added. (let.validInputTypedTestCases.validInputTestCases.map): (isIdentical): (opaqueASinNoArgument): (testNoArgument): (opaqueAllTypesASin): (testAllTypesCall): (testSingleTypeCall): (testConstant): (opaqueASinForSideEffects): (testSideEffect.let.testObject.valueOf): (testSideEffect): (opaqueASinForCSE): (testCSE.let.testObject.valueOf): (testCSE): (opaqueASinForDCE): (testDCE.let.testObject.valueOf): (testDCE): (testException.opaqueASinWithException): (testException): * stress/arith-asinh-on-various-types.js: Added. (let.validInputTypedTestCases.validInputTestCases.map): (isIdentical): (opaqueASinhNoArgument): (testNoArgument): (opaqueAllTypesASinh): (testAllTypesCall): (testSingleTypeCall): (testConstant): (opaqueASinhForSideEffects): (testSideEffect.let.testObject.valueOf): (testSideEffect): (opaqueASinhForCSE): (testCSE.let.testObject.valueOf): (testCSE): (opaqueASinhForDCE): (testDCE.let.testObject.valueOf): (testDCE): (testException.opaqueASinhWithException): (testException): * stress/arith-atan-on-various-types.js: Added. (let.validInputTypedTestCases.validInputTestCases.map): (isIdentical): (opaqueATanNoArgument): (testNoArgument): (opaqueAllTypesATan): (testAllTypesCall): (testSingleTypeCall): (testConstant): (opaqueATanForSideEffects): (testSideEffect.let.testObject.valueOf): (testSideEffect): (opaqueATanForCSE): (testCSE.let.testObject.valueOf): (testCSE): (opaqueATanForDCE): (testDCE.let.testObject.valueOf): (testDCE): (testException.opaqueATanWithException): (testException): * stress/arith-atanh-on-various-types.js: Added. (let.validInputTypedTestCases.validInputTestCases.map): (isIdentical): (opaqueATanhNoArgument): (testNoArgument): (opaqueAllTypesATanh): (testAllTypesCall): (testSingleTypeCall): (testConstant): (opaqueATanhForSideEffects): (testSideEffect.let.testObject.valueOf): (testSideEffect): (opaqueATanhForCSE): (testCSE.let.testObject.valueOf): (testCSE): (opaqueATanhForDCE): (testDCE.let.testObject.valueOf): (testDCE): (testException.opaqueATanhWithException): (testException): * stress/arith-cbrt-on-various-types.js: Added. (let.validInputTypedTestCases.validInputTestCases.map): (isIdentical): (opaqueCbrtNoArgument): (testNoArgument): (opaqueAllTypesCbrt): (testAllTypesCall): (testSingleTypeCall): (testConstant): (opaqueCbrtForSideEffects): (testSideEffect.let.testObject.valueOf): (testSideEffect): (opaqueCbrtForCSE): (testCSE.let.testObject.valueOf): (testCSE): (opaqueCbrtForDCE): (testDCE.let.testObject.valueOf): (testDCE): (testException.opaqueCbrtWithException): (testException): * stress/arith-cosh-on-various-types.js: Added. (let.validInputTypedTestCases.validInputTestCases.map): (isIdentical): (opaqueCoshNoArgument): (testNoArgument): (opaqueAllTypesCosh): (testAllTypesCall): (testSingleTypeCall): (testConstant): (opaqueCoshForSideEffects): (testSideEffect.let.testObject.valueOf): (testSideEffect): (opaqueCoshForCSE): (testCSE.let.testObject.valueOf): (testCSE): (opaqueCoshForDCE): (testDCE.let.testObject.valueOf): (testDCE): (testException.opaqueCoshWithException): (testException): * stress/arith-expm1-on-various-types.js: Added. (let.validInputTypedTestCases.validInputTestCases.map): (isIdentical): (opaqueExpm1NoArgument): (testNoArgument): (opaqueAllTypesExpm1): (testAllTypesCall): (testSingleTypeCall): (testConstant): (opaqueExpm1ForSideEffects): (testSideEffect.let.testObject.valueOf): (testSideEffect): (opaqueExpm1ForCSE): (testCSE.let.testObject.valueOf): (testCSE): (opaqueExpm1ForDCE): (testDCE.let.testObject.valueOf): (testDCE): (testException.opaqueExpm1WithException): (testException): * stress/arith-log10-on-various-types.js: Added. (let.validInputTypedTestCases.validInputTestCases.map): (isIdentical): (opaqueLog10NoArgument): (testNoArgument): (opaqueAllTypesLog10): (testAllTypesCall): (testSingleTypeCall): (testConstant): (opaqueLog10ForSideEffects): (testSideEffect.let.testObject.valueOf): (testSideEffect): (opaqueLog10ForCSE): (testCSE.let.testObject.valueOf): (testCSE): (opaqueLog10ForDCE): (testDCE.let.testObject.valueOf): (testDCE): (testException.opaqueLog10WithException): (testException): * stress/arith-log2-on-various-types.js: Added. (let.validInputTypedTestCases.validInputTestCases.map): (isIdentical): (opaqueLog2NoArgument): (testNoArgument): (opaqueAllTypesLog2): (testAllTypesCall): (testSingleTypeCall): (testConstant): (opaqueLog2ForSideEffects): (testSideEffect.let.testObject.valueOf): (testSideEffect): (opaqueLog2ForCSE): (testCSE.let.testObject.valueOf): (testCSE): (opaqueLog2ForDCE): (testDCE.let.testObject.valueOf): (testDCE): (testException.opaqueLog2WithException): (testException): * stress/arith-sinh-on-various-types.js: Added. (let.validInputTypedTestCases.validInputTestCases.map): (isIdentical): (opaqueSinhNoArgument): (testNoArgument): (opaqueAllTypesSinh): (testAllTypesCall): (testSingleTypeCall): (testConstant): (opaqueSinhForSideEffects): (testSideEffect.let.testObject.valueOf): (testSideEffect): (opaqueSinhForCSE): (testCSE.let.testObject.valueOf): (testCSE): (opaqueSinhForDCE): (testDCE.let.testObject.valueOf): (testDCE): (testException.opaqueSinhWithException): (testException): * stress/arith-tan-on-various-types.js: (isIdentical): * stress/arith-tanh-on-various-types.js: Added. (let.validInputTypedTestCases.validInputTestCases.map): (isIdentical): (opaqueTanhNoArgument): (testNoArgument): (opaqueAllTypesTanh): (testAllTypesCall): (testSingleTypeCall): (testConstant): (opaqueTanhForSideEffects): (testSideEffect.let.testObject.valueOf): (testSideEffect): (opaqueTanhForCSE): (testCSE.let.testObject.valueOf): (testCSE): (opaqueTanhForDCE): (testDCE.let.testObject.valueOf): (testDCE): (testException.opaqueTanhWithException): (testException): 2017-05-03 Keith Miller Array.prototype.sort should also allow a null comparator https://bugs.webkit.org/show_bug.cgi?id=171621 Reviewed by Michael Saboff. Add test to make it less likely we revert to the incompatable behavior. Also, fix now incorrect tests. * ChakraCore/test/Array/array_sort.baseline-jsc: * stress/array-sort-bad-comparator.js: (test): * stress/sort-null-comparator.js: Added. (assertEq): 2017-05-03 Caitlin Potter [JSC] remove unneeded asyncFunctionTests.yaml https://bugs.webkit.org/show_bug.cgi?id=171611 Reviewed by Yusuke Suzuki. Async functions have shipped, and those tests are run as part of JSTests/stress and JSTests/test262.yaml. The file is no longer needed. * asyncFunctionTests.yaml: Removed. * stress/async-await-long-loop.js: * stress/async-await-throw-loop.js: 2017-05-03 Keith Miller Different behaviour with the .sort(callback) method (unlike Firefox & Chrome) https://bugs.webkit.org/show_bug.cgi?id=47825 Reviewed by Saam Barati. * stress/sorting-boolean-result-comparator.js: Added. (checkArray): 2017-05-02 David Kilzer check-webkit-style should keep JavaScript test functions in sync Reviewed by Joseph Pecoraro. This change makes shouldBe(), shouldNotBe(), shouldNotThrow() and shouldThrow() in sync with other copies of these methods. * stress/resources/standalone-pre.js: (shouldBe): Fix whitespace. Prefix 'exception' and 'quiet' variables with underscore. (shouldThrow): Fix whitespace. 2017-04-30 Oleksandr Skachkov We initialize functions too early in an eval https://bugs.webkit.org/show_bug.cgi?id=161099 Reviewed by Saam Barati. * stress/eval-func-decl-with-let-const-class.js: Added. 2017-04-30 Oleksandr Skachkov [ES6]. Implement Annex B.3.3 function hoisting rules for eval https://bugs.webkit.org/show_bug.cgi?id=163208 Reviewed by Saam Barati. * stress/eval-func-decl-block-scoping-reassign.js: Added. (assert): (throw.new.Error.f): (throw.new.Error): * stress/eval-func-decl-block-with-remove.js: Added. (assert): (foo.boo): (foo): * stress/eval-func-decl-block-with-var-and-remove.js: Added. (assert): (assertThrow): (foo): (boo): (joo): (koo): * stress/eval-func-decl-block-with-var-sinthesize.js: Added. (assert): (assertThrow): (foo): (boo): (hoo): (joo): (koo): * stress/eval-func-decl-in-block-scope-and-bind-to-top-eval-scope.js: Added. * stress/eval-func-decl-in-eval-within-block-with-let.js: Added. (assert): (assertThrow): (foo): (boo): (goo): * stress/eval-func-decl-in-eval-within-with-scope.js: Added. (assert): (assertThrow): (foo): (boo): (boo.let.val2): (boo.let.val3): * stress/eval-func-decl-in-frozen-global.js: Added. (assert): (assertThrow): (throw.new.Error): (Object.freeze): * stress/eval-func-decl-in-global-of-eval.js: Added. (assert): (assertThrow): (bar): (baz): (foobar): * stress/eval-func-decl-in-global.js: Added. (assert): (assertThrow): * stress/eval-func-decl-in-if.js: Added. (assert): * stress/eval-func-decl-within-eval-with-reassign-to-var.js: Added. (assert): (assertThrow): (foo): (boo): (foobar): (hoo): (joo): (koo): (loo): * stress/eval-func-decl-within-eval-without-reassign-to-let.js: Added. (assert): (assertThrow): (foo): (boo): (goo): * stress/variable-under-tdz-eval-tricky.js: (assert): * test262.yaml: 2017-04-27 Mark Lam Fix some RELEASE_ASSERT failures caused by OutOfMemoryErrors. https://bugs.webkit.org/show_bug.cgi?id=171404 Reviewed by Saam Barati. * stress/js-fixed-array-out-of-memory.js: Added. 2017-04-27 David Kilzer Enhance shouldBe()/shouldNotBe() to accept anonymous function arguments Reviewed by Joseph Pecoraro. * stress/resources/standalone-pre.js: (shouldBe): (shouldNotThrow): (shouldThrow): - Update shouldBe() to accept anonymous function arguments. (The shouldNotBe() function was never copied over.) - Also fix shouldThrow()/shouldNotThrow() to accept anonymous function arguments (which were missed in r202609 for Bug 159232). 2017-04-27 Yusuke Suzuki [JSC] Handle PhantomSpread in LoadVarargs as the same to the others https://bugs.webkit.org/show_bug.cgi?id=171262 Reviewed by Saam Barati. * stress/spread-outer-create-rest.js: Added. (assert): (foo): (bar): (baz): 2017-04-26 Saam Barati Print Wasm function index in stack trace https://bugs.webkit.org/show_bug.cgi?id=171349 Reviewed by JF Bastien. * wasm/function-tests/stack-trace.js: Added. (import.Builder.from.string_appeared_here.assert): (let.imp): * wasm/function-tests/trap-after-cross-instance-call.js: (wasmFrameCountFromError): * wasm/function-tests/trap-load-2.js: (wasmFrameCountFromError): * wasm/function-tests/trap-load.js: (wasmFrameCountFromError): 2017-04-26 Saam Barati ASSERTION FAILED: inIndex != notFound in JSC::invalidParameterInSourceAppender() https://bugs.webkit.org/show_bug.cgi?id=170924 Reviewed by Mark Lam. * stress/error-message-for-function-base-not-found.js: Added. (assert): (throw.new.Error): * stress/error-messages-for-in-operator-should-not-crash.js: Added. (catch): 2017-04-26 Keith Miller WebAssembly: Implement tier up https://bugs.webkit.org/show_bug.cgi?id=170134 Reviewed by Filip Pizlo. * wasm/function-tests/trap-after-cross-instance-call.js: * wasm/tier-up/js-to-wasm.js: Added. (async.test): * wasm/tier-up/wasm-to-wasm.js: Added. (async.test): 2017-04-26 Caitlin Potter [JSC] Object.keys() must discard property names with no PropertyDescriptor https://bugs.webkit.org/show_bug.cgi?id=171291 Reviewed by Yusuke Suzuki. * es6/Proxy_ownKeys_duplicates.js: * stress/proxy-own-keys.js: (let.handler.getOwnPropertyDescriptor): (let.handler.ownKeys): 2017-04-25 Commit Queue Unreviewed, rolling out r215476. https://bugs.webkit.org/show_bug.cgi?id=171304 "It broke JSBench" (Requested by saamyjoon on #webkit). Reverted changeset: "[ES6]. Implement Annex B.3.3 function hoisting rules for eval" https://bugs.webkit.org/show_bug.cgi?id=163208 http://trac.webkit.org/changeset/215476 2017-04-25 Saam Barati JSArray::isArrayPrototypeIteratorProtocolFastAndNonObservable is wrong because it does not do the necessary checks on the base object https://bugs.webkit.org/show_bug.cgi?id=171150 Reviewed by Sam Weinig. * stress/spread-optimized-properly.js: Added. (assert): (test): (shallowEq): (makeArrayIterator): (test.bar): (test.callback): (test.arr.__proto__.Symbol.iterator): (test.arr.Symbol.iterator): (test.get bar): (test.hackedNext): (test.test): (test.): 2017-04-25 Mark Lam [Follow up] Array.prototype.slice() should ensure that end >= begin. https://bugs.webkit.org/show_bug.cgi?id=170989 Not reviewed. Follow up to rename a test file that was accidentally named wrongly. * stress/regress-170989.js: Copied from JSTests/stress/regress-170989.patch. * stress/regress-170989.patch: Removed. 2017-04-25 Mark Lam Array.prototype.slice() should ensure that end >= begin. https://bugs.webkit.org/show_bug.cgi?id=170989 Reviewed by Saam Barati. * stress/regress-170989.patch: Added. 2017-04-25 Mark Lam Local CSE wrongly CSEs array accesses with different result types. https://bugs.webkit.org/show_bug.cgi?id=170990 Reviewed by Saam Barati. * stress/regress-170990.js: Added. 2017-04-25 Yusuke Suzuki WebAssembly: exporting a property with a name that's a number doesn't work https://bugs.webkit.org/show_bug.cgi?id=168857 Reviewed by JF Bastien. r213453 allows Wasm instances to expose indexed properties. We activate the tests. * wasm/js-api/test_Instance.js: (ExportedNumber): 2017-04-24 Joseph Pecoraro test262: test262/test/language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js https://bugs.webkit.org/show_bug.cgi?id=171190 Reviewed by Saam Barati. * stress/async-await-syntax.js: * test262.yaml: 2017-04-24 Yusuke Suzuki [JSC] Use JSFixedArray directly when using call_varargs https://bugs.webkit.org/show_bug.cgi?id=171057 Reviewed by Saam Barati. * stress/spread-capture-rest.js: Added. (shouldBe): (capture): (a): (b): * stress/spread-multi-layers.js: Added. (shouldBe): (a): (b): (c): (d): * stress/spread-non-varargs.js: Added. (shouldBe): (a): (b): 2017-04-24 Joseph Pecoraro test262: test262/test/language/computed-property-names/class/static/getter-prototype.js https://bugs.webkit.org/show_bug.cgi?id=170897 Reviewed by Saam Barati. * test262.yaml: 2017-04-24 Joseph Pecoraro Address some FIXMEs in JavaScript tests for bugs that have been fixed https://bugs.webkit.org/show_bug.cgi?id=171191 Reviewed by JF Bastien. * stress/proxy-is-extensible.js: 2017-04-24 Joseph Pecoraro test262: test262/test/language/statements/for-of/dstr-array-elem-init-fn-name-arrow.js https://bugs.webkit.org/show_bug.cgi?id=171160 Reviewed by JF Bastien. * stress/inferred-names.js: * test262.yaml: 2017-04-24 Joseph Pecoraro test262: test262/test/language/expressions/generators/yield-as-label.js https://bugs.webkit.org/show_bug.cgi?id=170979 Reviewed by Saam Barati. * stress/async-await-module-reserved-word.js: * stress/async-await-reserved-word.js: Converge on "Cannot" instead of "Can't". * catch-parameter-syntax.js: * yield-named-variable-generator.js: * yield-named-variable.js: * stress/yield-label-generator.js: * stress/yield-label.js: * stress/yield-reserved-word.js: Added. More complete list of when 'yield' is allowed. * ChakraCore/test/strict/23.reservedWords_sm.baseline-jsc: * test262.yaml: 2017-04-23 Commit Queue Unreviewed, rolling out r215674. https://bugs.webkit.org/show_bug.cgi?id=171212 Possible unintended commit. This patch was on the wrong bug. (Requested by JoePeck on #webkit). Reverted changeset: "test262: test262/test/language/expressions/generators/yield- as-label.js" https://bugs.webkit.org/show_bug.cgi?id=170979 http://trac.webkit.org/changeset/215674 2017-04-23 Joseph Pecoraro test262: test262/test/built-ins/Number/prototype/toPrecision/nan.js https://bugs.webkit.org/show_bug.cgi?id=171197 Reviewed by Saam Barati. * test262.yaml: 2017-04-23 Joseph Pecoraro test262: test262/test/language/expressions/generators/yield-as-label.js https://bugs.webkit.org/show_bug.cgi?id=170979 Reviewed by Saam Barati. * stress/async-await-module-reserved-word.js: * stress/async-await-reserved-word.js: Converge on "Cannot" instead of "Can't". * catch-parameter-syntax.js: * yield-named-variable-generator.js: * yield-named-variable.js: * stress/yield-label-generator.js: * stress/yield-label.js: * stress/yield-reserved-word.js: Added. More complete list of when 'yield' is allowed. * ChakraCore/test/strict/23.reservedWords_sm.baseline-jsc: * test262.yaml: 2017-04-23 Joseph Pecoraro test262: test262/test/built-ins/Number/parseFloat.js https://bugs.webkit.org/show_bug.cgi?id=171193 Reviewed by Yusuke Suzuki. * test262.yaml: 2017-04-22 JF Bastien WebAssembly: Module.exports, Module.imports, Module.customSections are wrong https://bugs.webkit.org/show_bug.cgi?id=171078 Reviewed by Saam Barati. They're static properties of Module, not instance properties of a module. https://github.com/WebAssembly/design/blob/master/JS.md#webassemblymoduleexports * wasm/js-api/Module.customSection.js: (assert.throws.WebAssembly.Module.customSections): (assert.eq): (assert.throws.WebAssembly.Module.prototype.customSections): Deleted. * wasm/js-api/Module.exports.js: (assert.throws.WebAssembly.Module.exports): (assert.truthy): (assert.throws.WebAssembly.Module.prototype.exports): Deleted. * wasm/js-api/Module.imports.js: (assert.throws.WebAssembly.Module.imports): (assert.truthy): (assert.throws.WebAssembly.Module.prototype.imports): Deleted. 2017-04-21 JF Bastien Silence noisy test Unreviewed, Fil / Michael and I talked about it in the corridor. I just forgot to set verbose to false before commit. * wasm/stress/oom.js: 2017-04-20 Yusuke Suzuki [JSC][FTL] FTL should support Arrayify https://bugs.webkit.org/show_bug.cgi?id=169596 Reviewed by Saam Barati. * stress/arrayify.js: Added. (arrayifyInt32): (arrayifyDouble): (arrayifyContiguous): 2017-04-20 Mark Lam virtualThunkFor() needs to materialize its of tagMaskRegister for tail calls. https://bugs.webkit.org/show_bug.cgi?id=171079 Reviewed by Saam Barati. * stress/regress-171079.js: Added. 2017-04-15 Filip Pizlo Optimize SharedArrayBuffer in the DFG+FTL https://bugs.webkit.org/show_bug.cgi?id=164108 Reviewed by Saam Barati. Added a fairly comprehensive test of the intrinsics. This creates a function for each possible combination of type and operation, and then first uses it nicely and then tries a bunch of erroneous conditions like OOB. * stress/SharedArrayBuffer-opt.js: Added. (string_appeared_here.switch): (string_appeared_here.str): (runAtomic): (shouldFail): (Symbol): (string_appeared_here.a.of.arrays.m.of.atomics): * stress/SharedArrayBuffer.js: 2017-04-19 Mark Lam B3StackmapSpecial should handle when stackmap values are not recoverable from a Def'ed arg. https://bugs.webkit.org/show_bug.cgi?id=170973 Reviewed by Filip Pizlo. * stress/regress-170973.js: Added. 2017-04-19 JF Bastien WebAssembly: limit slow memories https://bugs.webkit.org/show_bug.cgi?id=170825 Reviewed by Saam Barati. * wasm.yaml: * wasm/stress/oom.js: Added. (try.true.WebAssemblyMemoryMode): (catch): 2017-04-19 JF Bastien WebAssembly: don't expose any WebAssembly JS object if JIT is off https://bugs.webkit.org/show_bug.cgi?id=170782 Reviewed by Saam Barati. * wasm.yaml: * wasm/noJIT/noJIT.js: Added. 2017-04-18 Mark Lam r211670 broke double to int conversion. https://bugs.webkit.org/show_bug.cgi?id=170961 Reviewed by Yusuke Suzuki. * microbenchmarks/double-to-int32.js: Added. * stress/to-int32-sensible2.js: Added. 2017-04-18 Oleksandr Skachkov [ES6]. Implement Annex B.3.3 function hoisting rules for eval https://bugs.webkit.org/show_bug.cgi?id=163208 Reviewed by Saam Barati. * stress/eval-func-decl-block-scoping-reassign.js: Added. (assert): (throw.new.Error.f): (throw.new.Error): * stress/eval-func-decl-block-with-remove.js: Added. (assert): (foo.boo): (foo): * stress/eval-func-decl-block-with-var-and-remove.js: Added. (assert): (assertThrow): (foo): (boo): (joo): (koo): * stress/eval-func-decl-block-with-var-sinthesize.js: Added. (assert): (assertThrow): (foo): (boo): (hoo): (joo): (koo): * stress/eval-func-decl-in-block-scope-and-bind-to-top-eval-scope.js: Added. * stress/eval-func-decl-in-eval-within-block-with-let.js: Added. (assert): (assertThrow): (foo): (boo): (goo): * stress/eval-func-decl-in-eval-within-with-scope.js: Added. (assert): (assertThrow): (foo): (boo): (boo.let.val2): (boo.let.val3): * stress/eval-func-decl-in-frozen-global.js: Added. (assert): (assertThrow): (throw.new.Error): (Object.freeze): * stress/eval-func-decl-in-global-of-eval.js: Added. (assert): (assertThrow): (bar): (baz): (foobar): * stress/eval-func-decl-in-global.js: Added. (assert): (assertThrow): * stress/eval-func-decl-in-if.js: Added. (assert): * stress/eval-func-decl-within-eval-with-reassign-to-var.js: Added. (assert): (assertThrow): (foo): (boo): (foobar): (hoo): (joo): (koo): (loo): * stress/eval-func-decl-within-eval-without-reassign-to-let.js: Added. (assert): (assertThrow): (foo): (boo): (goo): * stress/variable-under-tdz-eval-tricky.js: (assert): * test262.yaml: 2017-04-18 Filip Pizlo wasm/function-tests/memory-multiagent times out sometimes https://bugs.webkit.org/show_bug.cgi?id=170958 Reviewed by Keith Miller. Add the ability to skip tests easily. Skip the test. * wasm.yaml: * wasm/function-tests/memory-multiagent.js: 2017-04-18 Saam Barati Follow up to debug build stack overflow in test after r215453 Rubber stamped by Mark Lam. * stress/call-apply-exponential-bytecode-size.js: Decrease the call size to prevent stack overflow errors on debug builds. 2017-04-18 Yusuke Suzuki [DFG] Convert ValueAdd(Int32, String) => MakeRope(ToString(Int32), String) https://bugs.webkit.org/show_bug.cgi?id=170943 Reviewed by Geoffrey Garen. * microbenchmarks/number-to-string-with-add-empty.js: Added. (toStringLeft): (toStringRight): * microbenchmarks/number-to-string-with-add-in-loop.js: Added. (toStringLeft): (toStringRight): * microbenchmarks/number-to-string-with-add.js: Added. (toStringLeft): (toStringRight): * stress/number-to-string-with-add.js: Added. (shouldBe): (toStringRight): (toStringLeftEmpty): (toStringRightEmpty): 2017-04-18 Yusuke Suzuki [DFG] Drop unknown use of CheckCell's child2 to work ObjectAllocationSinking for Array iterator object https://bugs.webkit.org/show_bug.cgi?id=170940 Reviewed by Filip Pizlo. * microbenchmarks/for-of-array.js: Added. (fn): 2017-04-17 Saam Barati BytecodeGenerator ".call" and ".apply" is exponential in nesting depth https://bugs.webkit.org/show_bug.cgi?id=139847 Reviewed by Oliver Hunt. * stress/call-apply-exponential-bytecode-size.js: Added. (assert): (const.inc): (const.inc2): (bar): (randomApplyOrCall): (baz): (jaz): (haz): (foo): 2017-04-17 Mark Lam JSArray::appendMemcpy() needs to handle copying from Undecided indexing type too. https://bugs.webkit.org/show_bug.cgi?id=170896 Reviewed by JF Bastien and Keith Miller. * stress/regress-170896.js: Added. 2017-04-16 Joseph Pecoraro test262: test262/test/built-ins/Object/prototype/toLocaleString/primitive_this_value.js https://bugs.webkit.org/show_bug.cgi?id=170882 Reviewed by Saam Barati. * test262.yaml: 2017-04-16 Joseph Pecoraro test262: test262/test/built-ins/isNaN/toprimitive-not-callable-throws.js https://bugs.webkit.org/show_bug.cgi?id=170888 Reviewed by Saam Barati. * stress/computed-accessor.js: * stress/eval-in-arrow-function.js: * stress/rest-elements.js: * stress/string-object-define-own-property.js: Remove unused shouldThrow. * stress/symbol-toprimitive-errors.js: Added. Check for ToPrimitive TypeErrors. * test262.yaml: 2017-04-16 Joseph Pecoraro test262: test262/test/language/expressions/tagged-template/template-object.js https://bugs.webkit.org/show_bug.cgi?id=170878 Reviewed by Saam Barati. * stress/array-length-not-writable.js: Added. (assert): * test262.yaml: 2017-04-16 Joseph Pecoraro test262: test262/test/built-ins/Object/getOwnPropertyNames/15.2.3.4-4-44.js https://bugs.webkit.org/show_bug.cgi?id=170879 Reviewed by Saam Barati. * ChakraCore/test/es5/enumerable.baseline-jsc: * test262.yaml: 2017-04-16 Joseph Pecoraro test262: test262/test/built-ins/Date/prototype/Symbol.toPrimitive/name.js https://bugs.webkit.org/show_bug.cgi?id=170884 Reviewed by Yusuke Suzuki. * test262.yaml: 2017-04-15 Joseph Pecoraro test262: test262/test/language/global-code/new.target-arrow.js https://bugs.webkit.org/show_bug.cgi?id=170872 Reviewed by Saam Barati. * stress/async-arrow-functions-lexical-new.target-binding.js: (shouldThrowAsync): Deleted. (shouldThrowAsync.async): Deleted. This code should have thrown a SyntaxError. Instead it was throwing a ReferenceError for the internal @newTargetLocal variable. * stress/new-target-syntax-errors.js: Cover the arrow function in global code cases. * ChakraCore.yaml: * ChakraCore/test/es6/globalLambdaNewTargetSyntaxError.baseline-jsc: We now pass with an expected SyntaxError. Our error message is different. * test262.yaml: 2017-04-14 Saam Barati ParseInt intrinsic in DFG backend doesn't properly flush its operands https://bugs.webkit.org/show_bug.cgi?id=170865 Reviewed by Mark Lam and Geoffrey Garen. * stress/parse-int-intrinsic-dfg-backend-flush.js: Added. (assert): (foo): 2017-04-14 Caitlin Potter [JSC] use ExpressionErrorClassifier for AwaitExpression operand https://bugs.webkit.org/show_bug.cgi?id=170844 Reviewed by Saam Barati. * stress/regress-170732.js: Added. 2017-04-14 Oleksandr Skachkov Safari 10.1 JSON.parse returns incorrect object for numeric keys with decimal values https://bugs.webkit.org/show_bug.cgi?id=170442 Reviewed by Yusuke Suzuki. * stress/object-number-properties.js: 2017-04-13 Yusuke Suzuki [JSC] Date.parse should accept wider range of representation https://bugs.webkit.org/show_bug.cgi?id=170720 Reviewed by Darin Adler. * stress/date-relaxed.js: Added. (shouldBe): (throw.new.Error): 2017-04-13 Mark Lam Should use flushDirect() when flushing the scopeRegister due to needsScopeRegister(). https://bugs.webkit.org/show_bug.cgi?id=170661 Reviewed by Filip Pizlo. * stress/regress-170661.js: Added. 2017-04-13 JF Bastien WebAssembly: manage memory better https://bugs.webkit.org/show_bug.cgi?id=170628 Reviewed by Keith Miller, Michael Saboff. * wasm/Builder.js: move a helper out so tests can use it (export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section): * wasm/WASM.js: add utilities to classify opcodes (export.opcodes): (export.const.memoryAccessInfo.op.const.sign): * wasm/function-tests/memory-access-past-4gib.js: Added. This test fails before this patch. (const.op.of.WASM.opcodes): * wasm/function-tests/memory-many.js: Added. This simple tests just shouldn't crash. In verbose mode it's useful at determining if the GC falls behind or not. * wasm/function-tests/memory-multiagent.js: Added. Emulate postMessage. (const.startAgents.numAgentsToStart.a.agent.receiveBroadcast): (const.startAgents.numAgentsToStart.a.write.const.idx.Math.random): (const.broadcastToAgents): * wasm/js-api/extension-MemoryMode.js: verbose logging. (testMemoryNoMax): (testMemory): (testInstanceNoMemory): (testInstanceNoMax): (testInstance): * wasm/utilities.js: move a utility here. 2017-04-12 Joseph Pecoraro test262: test262/test/built-ins/NativeErrors/EvalError/proto.js https://bugs.webkit.org/show_bug.cgi?id=170668 Reviewed by Keith Miller. * ChakraCore.yaml: * ChakraCore/test/Lib/error.baseline-jsc: Added. This test does not match the spec. * test262.yaml: 2017-04-12 Joseph Pecoraro test262: test262/test/language/literals/regexp/u-dec-esc.js https://bugs.webkit.org/show_bug.cgi?id=170687 Reviewed by Michael Saboff. * test262.yaml: 2017-04-11 Michael Saboff Implement Object.isFrozen() and Object.isSealed() per ECMA spec https://bugs.webkit.org/show_bug.cgi?id=170753 Reviewed by Mark Lam. Added JSC baseline and enabled defineIndexProperty test. Note that JSC differs from Chakra in that a JSC doesn't use indexed properties placed on the Array prototype when sorting the indexed properties of an Object. This is behavior is considered undefined in the standard. * ChakraCore.yaml: * ChakraCore/test/es5/defineIndexProperty.baseline-jsc: Added. 2017-04-11 Joseph Pecoraro test262: test262/test/annexB/language/comments/multi-line-html-close.js https://bugs.webkit.org/show_bug.cgi?id=170648 Reviewed by Keith Miller. * test262.yaml: 2017-04-11 Joseph Pecoraro test262: test262/test/built-ins/Array/S15.4.3_A2.2.js https://bugs.webkit.org/show_bug.cgi?id=170652 Reviewed by Michael Saboff. * stress/native-constructors-length.js: Added. (assertLengthDescriptorAttributes): Add a quick test for the length properties of all native constructors. * ChakraCore/test/es5/enumerable.baseline-jsc: Rebaseline expectations for this test. * test262.yaml: 2017-04-10 Keith Miller WebAssembly: Update spec tests https://bugs.webkit.org/show_bug.cgi?id=170683 Rubber-stamped by JF Bastien. * wasm.yaml: * wasm/spec-tests/br_table.wast.js: * wasm/spec-tests/conversions.wast.js: Removed. * wasm/spec-tests/f32_bitwise.wast.js: Added. * wasm/spec-tests/f32_cmp.wast.js: * wasm/spec-tests/f64_bitwise.wast.js: Added. * wasm/spec-tests/f64_cmp.wast.js: * wasm/spec-tests/i32.wast.js: * wasm/spec-tests/i64.wast.js: * wasm/spec-tests/int_exprs.wast.js: * wasm/spec-tests/memory.wast.js: 2017-04-09 Joseph Pecoraro test262: test262/test/annexB/language/expressions/object/__proto__-fn-name.js https://bugs.webkit.org/show_bug.cgi?id=170650 Reviewed by Saam Barati. * stress/inferred-names.js: * test262.yaml: 2017-04-09 Joseph Pecoraro test262: test262/test/annexB/language/literals/regexp/identity-escape.js https://bugs.webkit.org/show_bug.cgi?id=170651 Reviewed by Saam Barati. * test262.yaml: 2017-04-07 Michael Saboff Fix and enable ChakraCore/test/es6/ES6Function_bugs.js after r215072 https://bugs.webkit.org/show_bug.cgi?id=170580 Reviewed by JF Bastien. Commented out subtest that expects defineProperty("length") to a getter on a sealed function shouldn't throw. * ChakraCore.yaml: * ChakraCore/test/es6/ES6Function_bugs.js: 2017-04-06 Michael Saboff Cannot Object.seal() or Object.freeze() global "this" https://bugs.webkit.org/show_bug.cgi?id=170549 Reviewed by Mark Lam. Enabled failing tests fixed by the corresponding code change: ChakraCore/test/LetConst/delete.js ChakraCore/test/LetConst/dop.js ChakraCore/test/LetConst/dop1.js * ChakraCore.yaml: * ChakraCore/test/LetConst/dop.baseline-jsc: Added JSC specific expected output. * ChakraCore/test/LetConst/dop1.baseline-jsc: Added JSC specific expected output. 2017-04-05 Joseph Pecoraro test262: ES2017 test progressions need updated expectations (arguments.caller removed) https://bugs.webkit.org/show_bug.cgi?id=170536 Reviewed by Mark Lam. * test262.yaml: After r208867 the tests are out of date and are now expected to fail. 2017-04-05 Joseph Pecoraro test262: Final rebaseline of existing tests, a few tests have started failing https://bugs.webkit.org/show_bug.cgi?id=170538 Reviewed by Mark Lam. * test262.yaml: These tests started failing a while ago. Mark them as legitmate failures. 2017-04-05 Joseph Pecoraro test262: Rebaseline expectations for now passing tests https://bugs.webkit.org/show_bug.cgi?id=170532 Reviewed by Ryosuke Niwa. * test262.yaml: Update expectations for tests we are now passing. 2017-04-05 Joseph Pecoraro test262: module test progressions need updated expectations (@@iterator changes) https://bugs.webkit.org/show_bug.cgi?id=170535 Reviewed by Saam Barati. * test262.yaml: After r212430 the tests are out of date and are now expected to fail. 2017-04-05 Michael Saboff Unreviewed rollout of r214642 as the test still intermittently fails. Disabled ChakraCore/test/fieldopts/objtypespec-newobj-invalidation.1.js. * ChakraCore.yaml: 2017-04-05 Michael Saboff REGRESSION (Safari 10.1): Inserting elements into arrays fails when array contains very large numbers https://bugs.webkit.org/show_bug.cgi?id=170264 Rubber-stamped by Saam Barati. The original bug was fixed in: https://trac.webkit.org/changeset/214714 I'm just adding another test for good measure. * stress/double-array-to-array-storage.js: Added. (assert): 2017-04-05 Keith Miller WebAssembly: We shouldn't need to pin size registers if we have a fast memory. https://bugs.webkit.org/show_bug.cgi?id=170504 Reviewed by Mark Lam. * wasm/function-tests/trap-after-cross-instance-call.js: Added. (b.new.WebAssembly.Memory): (importObject.foo.bar): (wasmFrameCountFromError): 2017-03-16 Yusuke Suzuki [JSC] Generate TemplateObjects at linking time https://bugs.webkit.org/show_bug.cgi?id=169743 Reviewed by Keith Miller. * stress/template-string-tags-eval.js: Added. (shouldBe): (tag): 2017-04-04 Mark Lam On ARM64, DFG::SpeculativeJIT::compileArithMod() failed to ensure result is of DataFormatInt32. https://bugs.webkit.org/show_bug.cgi?id=170473 Reviewed by Saam Barati. * stress/regress-170473.js: Added. 2017-04-03 Mark Lam Fix incorrect capacity delta calculation reported in SparseArrayValueMap::add(). https://bugs.webkit.org/show_bug.cgi?id=170412 Reviewed by Filip Pizlo. * stress/regress-170412.js: Added. 2017-04-03 Keith Miller WebAssembly: Update spec tests https://bugs.webkit.org/show_bug.cgi?id=170361 Rubber-stamped by Saam Barati. Update the spec tests to run tests generated by the newer spec test builder wasm-spec/test/builder.py. This patch also adds the necessary harness code in spec-harness.js so we can run the tests. * wasm.yaml: * wasm/import-spec-tests.rb: * wasm/spec-harness.js: Added. (import.string_appeared_here.then): (test): (promise_test): (let.assert_unreached): * wasm/spec-harness/index.js: Added. (let.testNum): (assertThrows): (_assert): (ValueResult): (ErrorResult): (Result.prototype.isError): (binary): (module): (uniqueTest): (assert_invalid): (assert_soft_invalid): (register): (call): (get instance): (exports): (run): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (try.f): (catch): (assert_exhaustion): (assert_return): (assert_return_nan): * wasm/spec-harness/testharness.css: Added. (html): (#log .warning,): (#log .error,): (section#summary): (table#results): (table#results th:first-child,): (table#results th:last-child,): (table#results.assertions th:last-child,): (table#results th): (table#results td): (tr.pass > td:first-child): (tr.fail > td:first-child): (tr.timeout > td:first-child): (tr.notrun > td:first-child): (.pass > td:first-child, .fail > td:first-child, .timeout > td:first-child, .notrun > td:first-child): (table#results span): (table#results span.expected): (table#results span.actual): (span.ok): (tr.error): (span.timeout): (span.ok, span.timeout, span.error): * wasm/spec-harness/testharness.js: Added. (WindowTestEnvironment): (WindowTestEnvironment.prototype._dispatch): (WindowTestEnvironment.prototype._forEach_windows): (WindowTestEnvironment.prototype.on_tests_ready): (WindowTestEnvironment.prototype.setup_messages): (WindowTestEnvironment.prototype.next_default_test_name): (WindowTestEnvironment.prototype.on_new_harness_properties): (WindowTestEnvironment.prototype.add_on_loaded_callback): (WindowTestEnvironment.prototype.test_timeout): (WindowTestEnvironment.prototype.global_scope): (WorkerTestEnvironment): (WorkerTestEnvironment.prototype._dispatch): (WorkerTestEnvironment.prototype._add_message_port): (WorkerTestEnvironment.prototype.next_default_test_name): (WorkerTestEnvironment.prototype.on_new_harness_properties): (WorkerTestEnvironment.prototype.on_tests_ready): (WorkerTestEnvironment.prototype.add_on_loaded_callback): (WorkerTestEnvironment.prototype.test_timeout): (WorkerTestEnvironment.prototype.global_scope): (DedicatedWorkerTestEnvironment): (DedicatedWorkerTestEnvironment.prototype.on_tests_ready): (SharedWorkerTestEnvironment): (SharedWorkerTestEnvironment.prototype.on_tests_ready): (ServiceWorkerTestEnvironment): (ServiceWorkerTestEnvironment.prototype.add_on_loaded_callback): (create_test_environment): (is_shared_worker): (is_service_worker): (test): (async_test): (promise_test): (this.wait_for): (EventWatcher): (setup): (done): (generate_tests): (step_timeout): (truncate): (is_node): (format_value): * wasm/spec-harness/testharnessreport.js: Added. * wasm/spec-harness/wasm-constants.js: Added. (bytes): (bytesWithHeader): (makeSig): (makeSig_v_x): (makeSig_v_xx): (makeSig_r_v): (makeSig_r_x): (makeSig_r_xx): (assertTraps): (assertWasmThrows): * wasm/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.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/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/spec-tests/address.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/binary.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/block.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/br.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/br_if.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/br_table.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/break-drop.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/call.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/call_indirect.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/comments.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/conversions.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/custom_section.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/endianness.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/exports.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/f32.wast.js: Removed. * wasm/spec-tests/f32_cmp.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/f64.wast.js: Removed. * wasm/spec-tests/f64_cmp.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/fac.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/float_exprs.wast.js: Removed. * wasm/spec-tests/float_literals.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/float_memory.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/float_misc.wast.js: Removed. * wasm/spec-tests/forward.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/func.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/func_ptrs.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/get_local.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/globals.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/i32.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/i64.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/if.wast.js: Added. * wasm/spec-tests/imports.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/int_exprs.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/int_literals.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/jsapi.js: Added. (testJSAPI.get test): (testJSAPI.test): (testJSAPI.set test): (testJSAPI.assertCompileError): (testJSAPI.assertCompileSuccess): (testJSAPI): * wasm/spec-tests/labels.wast.js: Added. * wasm/spec-tests/left-to-right.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/linking.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/loop.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/memory.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/memory_redundancy.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/memory_trap.wast.js: Removed. * wasm/spec-tests/names.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/nop.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/resizing.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/return.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/select.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/set_local.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/skip-stack-guard-page.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/stack.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/start.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/store_retval.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/switch.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/tee_local.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/traps.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/typecheck.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/unreachable.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. * wasm/spec-tests/unreached-invalid.wast.js: Added. * wasm/spec-tests/unwind.wast.js: (register): Deleted. (module): Deleted. (instance): Deleted. (assert_malformed): Deleted. (assert_invalid): Deleted. (assert_soft_invalid): Deleted. (assert_unlinkable): Deleted. (assert_uninstantiable): Deleted. (assert_trap): Deleted. (assert_return): Deleted. (assert_return_nan): Deleted. 2017-04-01 Oleksandr Skachkov Object with numerical keys with gaps gets filled by NaN values https://bugs.webkit.org/show_bug.cgi?id=164412 Reviewed by Merk Lam. * stress/object-number-properties.js: Added. (assert): (boo): 2017-03-30 Michael Saboff Turning ChakraCore/test/fieldopts/objtypespec-newobj-invalidation.1.js back as it appears to always work https://bugs.webkit.org/show_bug.cgi?id=170313 Reviewed by Saam Barati. Enable ChakraCore/test/fieldopts/objtypespec-newobj-invalidation.1.js as it seems solid. * ChakraCore.yaml: 2017-03-30 Michael Saboff Enable ChakraCore/Function/FuncBody.js test as it now works https://bugs.webkit.org/show_bug.cgi?id=170301 Reviewed by Mark Lam. This test no longer crashes, so enable it and create a JSC specific expected file. * ChakraCore.yaml: * ChakraCore/test/Function/FuncBodyES5.baseline-jsc: Added. 2017-03-30 JF Bastien WebAssembly: fix misc JS API implementation inconsistencies https://bugs.webkit.org/show_bug.cgi?id=170187 Reviewed by Keith Miller. Verify that WebAssembly function are on the object's __proto__. * wasm/js-api/Module-compile.js: * wasm/js-api/validate.js: * wasm/js-api/web-assembly-instantiate.js: 2017-03-29 JF Bastien WebAssembly: add shell-only Memory mode helper https://bugs.webkit.org/show_bug.cgi?id=170227 Reviewed by Mark Lam. * wasm/assert.js: fix a prior debug thing I forgot to remove * wasm/function-tests/memory-section-and-import.js: the assert issue was hiding a failure in error message here * wasm/js-api/element.js: the assert issue was hiding a failure in error message here (badInstantiation.test): (badInstantiation): * wasm/js-api/extension-MemoryMode.js: Added. (const.validateMode.what.switch): (testMemoryNoMax): (testMemory): (testInstanceNoMemory): (testInstanceNoMax): (testInstance): * wasm/js-api/test_memory.js: the assert issue was hiding a failure in error message here (test): 2017-03-28 Keith Miller WebAssembly: Make WebAssembly.instantiate/compile truly asynchronous https://bugs.webkit.org/show_bug.cgi?id=169187 Reviewed by Saam Barati. * wasm/assert.js: * wasm/js-api/Module-compile.js: (async.testPromiseAPI): * wasm/js-api/web-assembly-compile-parallel.js: Added. (async.throwExn): (async.test): * wasm/js-api/web-assembly-instantiate-parallel.js: Added. (async.test): * wasm/js-api/web-assembly-instantiate.js: (assert.eq.async.test): (assert.eq): (assert.asyncTest.async.test): (assert.asyncTest): (assert.truthy.async.test): Deleted. (assert.truthy): Deleted. 2017-03-28 JF Bastien WebAssembly: implement Module imports/exports https://bugs.webkit.org/show_bug.cgi?id=166982 Reviewed by Saam Barati. * wasm/js-api/Module.exports.js: Added. (assert.throws.WebAssembly.Module.prototype.exports): (assert.eq): * wasm/js-api/Module.imports.js: Added. (assert.throws.WebAssembly.Module.prototype.imports): (assert.eq): 2017-03-27 JF Bastien WebAssembly: misc memory testing https://bugs.webkit.org/show_bug.cgi?id=170137 Reviewed by Keith Miller. * wasm/assert.js: handle newlines in code we print out, avoid regex * wasm/function-tests/memory-import-and-grow.js: Added. (const.instantiate): (const.test): * wasm/function-tests/memory-section-and-import.js: Added. (const.instantiate): 2017-03-23 Yusuke Suzuki [JSC] Use jsNontrivialString agressively for ToString(Int52) https://bugs.webkit.org/show_bug.cgi?id=170002 Reviewed by Sam Weinig. * stress/to-string-int52.js: Added. (shouldBe): (toString10): (expected): 2017-03-23 Yusuke Suzuki [JSC][DFG] Make addShouldSpeculateAnyInt more conservative to avoid regression caused by Double <-> Int52 conversions https://bugs.webkit.org/show_bug.cgi?id=169998 Reviewed by Saam Barati. * microbenchmarks/int52-back-and-forth.js: Added. (shouldBe): (num): 2017-03-23 Mark Lam Clients of JSArray::tryCreateForInitializationPrivate() should do their own null checks. https://bugs.webkit.org/show_bug.cgi?id=169783 Reviewed by Saam Barati. * stress/regress-169783.js: Added. 2017-03-22 Yusuke Suzuki [JSC][DFG] Propagate AnyIntAsDouble information carefully to utilize it in fixup https://bugs.webkit.org/show_bug.cgi?id=169914 Reviewed by Saam Barati. * stress/any-int-as-double-add.js: Added. (shouldBe): (test): * stress/to-this-numbers.js: Added. (shouldBe): (Number.prototype.toThis): 2017-03-22 Mark Lam Add support for Error.stackTraceLimit. https://bugs.webkit.org/show_bug.cgi?id=169904 Reviewed by Saam Barati. * stress/error-stack-trace-limit.js: Added. 2017-03-22 Yusuke Suzuki [JSC] Use jsNontrivialString for Number toString operations https://bugs.webkit.org/show_bug.cgi?id=169965 Reviewed by Mark Lam. * stress/to-string-int32.js: Added. (shouldBe): (toString10): (expected): 2017-03-22 JF Bastien WebAssembly: test module namespace object for WebAssembly.Instance https://bugs.webkit.org/show_bug.cgi?id=169951 Reviewed by Saam Barati. * wasm/js-api/test_basic_api.js: (const.c.in.constructorProperties.switch): 2017-03-22 JF Bastien WebAssembly: constructors without new don't throw https://bugs.webkit.org/show_bug.cgi?id=165995 Reviewed by Saam Barati. * wasm/js-api/test_basic_api.js: (const.c.in.constructorProperties.switch): 2017-03-21 Yusuke Suzuki [JSC] Optimize Number.prototype.toString on Int32 / Int52 / Double https://bugs.webkit.org/show_bug.cgi?id=167454 Reviewed by Saam Barati. * stress/number-to-string-abstract-operation.js: Added. (shouldBe): (int32ToString): (shouldBe.int32ToString.new.Number.int52ToString): (shouldBe.int32ToString.new.Number): (shouldBe.doubleToString): * stress/number-to-string-radix.js: Added. (shouldBe): (int32ToString): (shouldBe.int32ToString.new.Number.int52ToString): (shouldBe.int32ToString.new.Number): (shouldBe.doubleToString): * stress/number-to-string.js: Added. (shouldBe): (int32ToString): (shouldBe.int32ToString.new.Number.int52ToString): (shouldBe.int32ToString.new.Number): (shouldBe.doubleToString): 2017-03-19 Chris Dumez `const location = "foo"` throws in a worker https://bugs.webkit.org/show_bug.cgi?id=169839 Reviewed by Mark Lam. * ChakraCore/test/es6/letconst_global_shadow_builtins_nonconfigurable.baseline-jsc: Update expected jsc result now that we throw a SyntaxError when trying to shadow undefined with a let variable. We used not to throw because the value is undefined but this was not as per EcmaScript. Both Firefox and Chrome throw in this case. * stress/global-lexical-redeclare-variable.js: (catch): Update test that defines a non-configurable 'zoo' property on the global object and then expected shadowing it with a 'let zoo' variable to work because its value was undefined. This was not as per EcmaScript spec and both Firefox and Chrome throw in this case. 2017-03-19 Yusuke Suzuki import(arg) crashes when ToString(arg) throws https://bugs.webkit.org/show_bug.cgi?id=169778 Reviewed by Saam Barati. * stress/import-reject-with-exception.js: Added. (shouldBe): (let.x.get toString): 2017-03-16 Filip Pizlo FTL should support global and eval code https://bugs.webkit.org/show_bug.cgi?id=169656 Reviewed by Geoffrey Garen and Saam Barati. Added basic performance tests of global and eval code. These tests will run a lot faster in with the FTL because of the object allocation. * microbenchmarks/eval-code-ftl-reentry.js: Added. * microbenchmarks/eval-code-ftl.js: Added. * microbenchmarks/global-code-ftl.js: Added. * stress/arith-log-on-various-types.js: This was a flaky fail with concurrent JIT, so I stopped running it with concurrent JIT. The failure was its assertion about how many times something gets compiled. 2017-03-16 Caio Lima [ESnext] Implement Object Spread https://bugs.webkit.org/show_bug.cgi?id=167963 Reviewed by Yusuke Suzuki. * stress/object-spread.js: Added. (let.assert): (assert.sameValue): (let.o.get a): (let.obj.get c): (cthulhu.get x): (let.obj.set c): (calls.o.get z): (calls.o.get a): (try.let.obj.get foo): (get calls): 2017-03-15 Yusuke Suzuki [JSC] Default parameter part should be retrieved by op_get_argument opcode instead of changing arity https://bugs.webkit.org/show_bug.cgi?id=164582 Reviewed by Saam Barati. * stress/function-with-defaults-inlining.js: Added. (shouldBe): (ok): (a): * stress/function-with-defaults-non-inlining.js: Added. (shouldBe): (ok): (a): 2017-03-15 Yusuke Suzuki [DFG] ToString operation should have fixup for primitives to say this node does not have side effects https://bugs.webkit.org/show_bug.cgi?id=169544 Reviewed by Saam Barati. * microbenchmarks/template-string-array.js: Added. (test): * stress/to-string-non-cell-use.js: Added. (shouldBe): (shouldThrow): 2017-03-13 Commit Queue Unreviewed, rolling out r213856. https://bugs.webkit.org/show_bug.cgi?id=169562 Breaks JSC stress test stress/super-property-access.js.ftl- eager failing (Requested by mlam|g on #webkit). Reverted changeset: "FTL should not flush strict arguments unless it really needs to" https://bugs.webkit.org/show_bug.cgi?id=169519 http://trac.webkit.org/changeset/213856 2017-03-11 Filip Pizlo FTL should not flush strict arguments unless it really needs to https://bugs.webkit.org/show_bug.cgi?id=169519 Reviewed by Mark Lam. This benchmark runs 3.5x faster thanks to this patch. * microbenchmarks/strict-arguments-no-escape.js: Added. (foo): (bar): (baz): 2017-03-13 Caio Lima [JSC] It should be possible create a label named let when parsing Statement in non strict mode https://bugs.webkit.org/show_bug.cgi?id=168684 Reviewed by Saam Barati. * ChakraCore/test/LetConst/DeclOutofBlock.baseline-jsc: 2017-03-10 Saam Barati WebAssembly: Make more demos run https://bugs.webkit.org/show_bug.cgi?id=165510 Reviewed by Keith Miller. * wasm/Builder.js: (export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section): * wasm/js-api/wrapper-function.js: Added. (exportImport): (return.new.WebAssembly.Module): (assert.throws.makeInstance): (assert.throws.Bar): (assert.throws): 2017-03-10 Mark Lam JSC: BindingNode::bindValue doesn't increase the scope's reference count. https://bugs.webkit.org/show_bug.cgi?id=168546 Reviewed by Saam Barati. * stress/regress-168546.js: Added. 2017-03-09 Caio Lima [ESnext] Implement Object Rest - Implementing Object Rest Destructuring https://bugs.webkit.org/show_bug.cgi?id=167962 Reviewed by Keith Miller. * stress/object-rest-deconstruct.js: Added. (let.assert): (let.assertPropDescriptor): (catch): (get 3): (foo): (let.src.get y): (let.src.set y): (let.gen): 2017-03-09 Saam Barati WebAssembly: Make the Unity AngryBots demo run https://bugs.webkit.org/show_bug.cgi?id=169268 Reviewed by Keith Miller. * wasm/function-tests/many-arguments-to-function.js: Added. (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.I32Const.0.I32Const.1.I32Const.2.I32Const.3.I32Const.4.I32Const.5.I32Const.6.I32Const.7.I32Const.8.I32Const.9.I32Const.10.I32Const.11.I32Const.12.I32Const.13.I32Const.14.I32Const.15.I32Const.16.I32Const.17.Call.0.Return.End.End.foo): (i.instance.exports.f0.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.Call.Return.End.End.foo): (i.instance.exports.f0): (instance.exports.f0.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.Call.Return.End.End.foo): (instance.exports.f0): 2017-03-08 Yusuke Suzuki [GTK] JSC test stress/arity-check-ftl-throw.js.ftl-no-cjit-validate-sampling-profiler crashing on GTK bot https://bugs.webkit.org/show_bug.cgi?id=160124 Reviewed by Mark Lam. * stress/spread-forward-call-varargs-stack-overflow.js: 2017-03-06 Saam Barati WebAssembly: Implement the WebAssembly.instantiate API https://bugs.webkit.org/show_bug.cgi?id=165982 Reviewed by Keith Miller. * wasm/js-api/web-assembly-instantiate.js: Added. (assert.eq.async.test): (assert.eq): (assert.truthy.async.test): (assert.truthy): 2017-03-06 Saam Barati Unreviewed. Fix test expected error message. * wasm/js-api/element.js: (assert.throws): 2017-03-06 Caio Lima op_get_by_id_with_this should use inline caching https://bugs.webkit.org/show_bug.cgi?id=162124 Reviewed by Saam Barati. * microbenchmarks/super-getter.js: Added. (A.prototype.get f): (A): (B.prototype.get f): (B): * stress/super-force-ic-fail.js: Added. (let.assert): (let.aObj.get foo): (let.obj.jaz): (let.bObj.get foo): (let.obj2.foo): * stress/super-get-by-id.js: Added. (assert): (Base): (Base.prototype.get name): (Base.prototype.set name): (Subclass.prototype.get name): (Subclass): (getterName): (getterValue): (PolymorphicSubclass.prototype.get value): (PolymorphicSubclass): (i.let.BaseCode): (i.get value): (MegamorphicSubclass.prototype.get value): (MegamorphicSubclass): (let.subObj.get value): (i.catch): (subObj.get value): (BaseException): (BaseException.prototype.get name): (SubclassException.prototype.get name): (SubclassException): (prototype.foo): (prototype.get name): (SubclassExceptionComplex.prototype.get name): (SubclassExceptionComplex): * stress/super-getter-reset-ic.js: Added. (let.assert): (let.B.f): 2017-03-06 Saam Barati WebAssembly: implement init_expr for Element https://bugs.webkit.org/show_bug.cgi?id=165888 Reviewed by Keith Miller. * wasm/Builder_WebAssemblyBinary.js: (const.emitters.Element): * wasm/assert.js: * wasm/js-api/element.js: (assert.throws): (badInstantiation.makeModule): (badInstantiation.test): (badInstantiation): * wasm/js-api/global-error.js: 2017-03-06 Carlos Alberto Lopez Perez [JSC] [Linux] Test stress/spread-forward-call-varargs-stack-overflow.js fails https://bugs.webkit.org/show_bug.cgi?id=169206 Unreviewed test gardening. * stress/spread-forward-call-varargs-stack-overflow.js: Skip on Linux platforms. 2017-03-06 Yusuke Suzuki [JSC] Allow indexed module namespace object fields https://bugs.webkit.org/show_bug.cgi?id=168870 Reviewed by Saam Barati. * wasm/spec-tests/names.wast.js: 2017-03-06 Yusuke Suzuki Null pointer crash when loading module with unresolved import also as a script file https://bugs.webkit.org/show_bug.cgi?id=168971 Reviewed by Saam Barati. * stress/re-execute-error-module.js: Added. (shouldBe): (async): * stress/resources/error-module.js: Added. 2017-03-02 Keith Miller WebAssemblyFunction should have Function.prototype as its prototype https://bugs.webkit.org/show_bug.cgi?id=169101 Reviewed by Filip Pizlo. * wasm/js-api/web-assembly-function.js: Added. 2017-02-28 Oleksandr Skachkov Use of arguments in arrow function is slow https://bugs.webkit.org/show_bug.cgi?id=168829 Reviewed by Saam Barati. * microbenchmarks/arrowfunciton-direct-arguments.js: Added. (fn): * microbenchmarks/arrowfunciton-reference-arguments.js: Added. (fn): 2017-02-27 Commit Queue Unreviewed, rolling out r213019. https://bugs.webkit.org/show_bug.cgi?id=168925 "It broke 32-bit jsc tests in debug builds" (Requested by saamyjoon on #webkit). Reverted changeset: "op_get_by_id_with_this should use inline caching" https://bugs.webkit.org/show_bug.cgi?id=162124 http://trac.webkit.org/changeset/213019 2017-02-27 JF Bastien WebAssembly: miscellaneous spec fixes part deux https://bugs.webkit.org/show_bug.cgi?id=168861 Reviewed by Keith Miller. * wasm.yaml: more passing tests * wasm/Builder.js: use a Map instead of an Object for the function index space, because Number entries such as 0 were colliding with string entries such as "0". This in turn requires some hashing of objects which are inserted, because Map uses Object's insertion order when comparing. (export.default.Builder): (export.default.Builder.prototype._functionIndexSpaceKeyHash): (export.default.Builder.prototype._registerFunctionToIndexSpace): (export.default.Builder.prototype._getFunctionFromIndexSpace): * wasm/js-api/test_Instance.js: add a FIXME test * wasm/spec-tests/memory.wast.js: (assert_unlinkable): * wasm/spec-tests/names.wast.js: 2017-02-26 Caio Lima op_get_by_id_with_this should use inline caching https://bugs.webkit.org/show_bug.cgi?id=162124 Reviewed by Saam Barati. * microbenchmarks/super-getter.js: Added. (A.prototype.get f): (A): (B.prototype.get f): (B): * stress/super-force-ic-fail.js: Added. (let.assert): (let.aObj.get foo): (let.obj.jaz): (let.bObj.get foo): (let.obj2.foo): * stress/super-get-by-id.js: Added. (assert): (Base): (Base.prototype.get name): (Base.prototype.set name): (Subclass.prototype.get name): (Subclass): (getterName): (getterValue): (PolymorphicSubclass.prototype.get value): (PolymorphicSubclass): (i.let.BaseCode): (i.get value): (MegamorphicSubclass.prototype.get value): (MegamorphicSubclass): (let.subObj.get value): (i.catch): (subObj.get value): (BaseException): (BaseException.prototype.get name): (SubclassException.prototype.get name): (SubclassException): (prototype.foo): (prototype.get name): (SubclassExceptionComplex.prototype.get name): (SubclassExceptionComplex): * stress/super-getter-reset-ic.js: Added. (let.assert): (let.B.f): 2017-02-24 JF Bastien WebAssembly: miscellaneous spec fixes https://bugs.webkit.org/show_bug.cgi?id=168822 Reviewed by Saam Barati. * wasm.yaml: mark some skip tests as normal, now that they pass * wasm/Builder.js: error message was wrong, causing extra error if hit * wasm/js-api/global-error.js: new tests (assert.throws): * wasm/spec-tests/call.wast.js: comment out stack check tests * wasm/spec-tests/call_indirect.wast.js: comment out stack check tests * wasm/spec-tests/fac.wast.js: comment out stack check tests * wasm/spec-tests/float_exprs.wast.js: wabt is wrong, bug reported, we should update * wasm/spec-tests/imports.wast.js: bug in old wabt, fixed in recent wabt (assert_unlinkable): 2017-02-23 Saam Barati Intrinsicify parseInt https://bugs.webkit.org/show_bug.cgi?id=168627 Reviewed by Filip Pizlo. * stress/parse-int-intrinsic.js: Added. (assert): (testIntrinsic.let.s): (testIntrinsic): (testIntrinsic2.baz): (testIntrinsic2): (testIntrinsic3.foo): (testIntrinsic3): (testIntrinsic4.foo): (testIntrinsic4): (testIntrinsic5.foo): (testIntrinsic5): (testIntrinsic6.foo): (testIntrinsic6): (testIntrinsic7.foo): (testIntrinsic7): 2017-02-23 JF Bastien WebAssembly: support 0x1 version https://bugs.webkit.org/show_bug.cgi?id=168672 Reviewed by Keith Miller. Update the version number for all the tests. Note that the spec tests are only updated with a new version number because spec+wabt aren't ready for 0x1 yet. This is tracked by bug #168784. * wasm/import-spec-tests.rb: use the new spec repository layout * wasm/js-api/test_basic_api.js: * wasm/self-test/test_BuilderWebAssembly.js: (EmptyModule): (CustomSection): * wasm/spec-tests/address.wast.js: * 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/break-drop.wast.js: * wasm/spec-tests/call.wast.js: * wasm/spec-tests/call_indirect.wast.js: * wasm/spec-tests/comments.wast.js: * wasm/spec-tests/conversions.wast.js: * wasm/spec-tests/custom_section.wast.js: * wasm/spec-tests/endianness.wast.js: * wasm/spec-tests/exports.wast.js: * wasm/spec-tests/f32.wast.js: * wasm/spec-tests/f32_cmp.wast.js: * wasm/spec-tests/f64.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/float_misc.wast.js: * wasm/spec-tests/forward.wast.js: * wasm/spec-tests/func.wast.js: * wasm/spec-tests/func_ptrs.wast.js: * wasm/spec-tests/get_local.wast.js: * wasm/spec-tests/globals.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/left-to-right.wast.js: * wasm/spec-tests/linking.wast.js: * wasm/spec-tests/loop.wast.js: * wasm/spec-tests/memory.wast.js: * wasm/spec-tests/memory_redundancy.wast.js: * wasm/spec-tests/memory_trap.wast.js: * wasm/spec-tests/names.wast.js: * wasm/spec-tests/nop.wast.js: * wasm/spec-tests/resizing.wast.js: * wasm/spec-tests/return.wast.js: * wasm/spec-tests/select.wast.js: * wasm/spec-tests/set_local.wast.js: * wasm/spec-tests/skip-stack-guard-page.wast.js: * wasm/spec-tests/stack.wast.js: * wasm/spec-tests/start.wast.js: * wasm/spec-tests/store_retval.wast.js: * wasm/spec-tests/switch.wast.js: * wasm/spec-tests/tee_local.wast.js: * wasm/spec-tests/traps.wast.js: * wasm/spec-tests/typecheck.wast.js: * wasm/spec-tests/unreachable.wast.js: * wasm/spec-tests/unwind.wast.js: * wasm/wasm.json: 2017-02-22 Yusuke Suzuki JSModuleNamespace object should have IC https://bugs.webkit.org/show_bug.cgi?id=160590 Reviewed by Saam Barati. * modules/module-assert-access-binding.js: Added. * modules/module-assert-access-namespace.js: Added. * modules/namespace-empty.js: Added. (from.string_appeared_here.access): (i.shouldThrow): * stress/module-namespace-access-change.js: Added. (shouldBe): (access): (import.string_appeared_here.then): * stress/module-namespace-access-non-constant.js: Added. (shouldBe): (import.string_appeared_here.then): * stress/module-namespace-access-poly.js: Added. (shouldBe): (access): (import.string_appeared_here.then): * stress/module-namespace-access-transitive-exports.js: Added. (shouldBe): (import.string_appeared_here.then): * stress/module-namespace-access.js: Added. (shouldBe): (import.string_appeared_here.then): * stress/resources/module-namespace-access-transitive-exports-2.js: Added. (export.cocoa): (export.change): * stress/resources/module-namespace-access-transitive-exports.js: Added. * stress/resources/module-namespace-access.js: Added. (export.cocoa): (export.change): 2017-02-20 Filip Pizlo The collector thread should only start when the mutator doesn't have heap access https://bugs.webkit.org/show_bug.cgi?id=167737 Reviewed by Keith Miller. Add versions of splay that flash heap access, to simulate what might happen if a third-party app was running concurrent GC. In this case, we might actually start the collector thread. * stress/splay-flash-access-1ms.js: Added. (performance.now): (this.Setup.setup.setup): (this.TearDown.tearDown.tearDown): (Benchmark): (BenchmarkResult): (BenchmarkResult.prototype.valueOf): (BenchmarkSuite): (alert): (Math.random): (BenchmarkSuite.ResetRNG): (RunStep): (BenchmarkSuite.RunSuites): (BenchmarkSuite.CountBenchmarks): (BenchmarkSuite.GeometricMean): (BenchmarkSuite.GeometricMeanTime): (BenchmarkSuite.AverageAbovePercentile): (BenchmarkSuite.GeometricMeanLatency): (BenchmarkSuite.FormatScore): (BenchmarkSuite.prototype.NotifyStep): (BenchmarkSuite.prototype.NotifyResult): (BenchmarkSuite.prototype.NotifyError): (BenchmarkSuite.prototype.RunSingleBenchmark): (RunNextSetup): (RunNextBenchmark): (RunNextTearDown): (BenchmarkSuite.prototype.RunStep): (GeneratePayloadTree): (GenerateKey): (SplayUpdateStats): (InsertNewNode): (SplaySetup): (SplayTearDown): (SplayRun): (SplayTree): (SplayTree.prototype.isEmpty): (SplayTree.prototype.insert): (SplayTree.prototype.remove): (SplayTree.prototype.find): (SplayTree.prototype.findMax): (SplayTree.prototype.findGreatestLessThan): (SplayTree.prototype.exportKeys): (SplayTree.prototype.splay_): (SplayTree.Node): (SplayTree.Node.prototype.traverse_): (jscSetUp): (jscTearDown): (jscRun): (averageAbovePercentile): (printPercentile): * stress/splay-flash-access.js: Added. (performance.now): (this.Setup.setup.setup): (this.TearDown.tearDown.tearDown): (Benchmark): (BenchmarkResult): (BenchmarkResult.prototype.valueOf): (BenchmarkSuite): (alert): (Math.random): (BenchmarkSuite.ResetRNG): (RunStep): (BenchmarkSuite.RunSuites): (BenchmarkSuite.CountBenchmarks): (BenchmarkSuite.GeometricMean): (BenchmarkSuite.GeometricMeanTime): (BenchmarkSuite.AverageAbovePercentile): (BenchmarkSuite.GeometricMeanLatency): (BenchmarkSuite.FormatScore): (BenchmarkSuite.prototype.NotifyStep): (BenchmarkSuite.prototype.NotifyResult): (BenchmarkSuite.prototype.NotifyError): (BenchmarkSuite.prototype.RunSingleBenchmark): (RunNextSetup): (RunNextBenchmark): (RunNextTearDown): (BenchmarkSuite.prototype.RunStep): (GeneratePayloadTree): (GenerateKey): (SplayUpdateStats): (InsertNewNode): (SplaySetup): (SplayTearDown): (SplayRun): (SplayTree): (SplayTree.prototype.isEmpty): (SplayTree.prototype.insert): (SplayTree.prototype.remove): (SplayTree.prototype.find): (SplayTree.prototype.findMax): (SplayTree.prototype.findGreatestLessThan): (SplayTree.prototype.exportKeys): (SplayTree.prototype.splay_): (SplayTree.Node): (SplayTree.Node.prototype.traverse_): (jscSetUp): (jscTearDown): (jscRun): (averageAbovePercentile): (printPercentile): 2017-02-21 Ryan Haddad Unreviewed, rolling out r212712. This change broke the CLoop build. Reverted changeset: "JSModuleNamespace object should have IC" https://bugs.webkit.org/show_bug.cgi?id=160590 http://trac.webkit.org/changeset/212712 2017-02-21 Yusuke Suzuki JSModuleNamespace object should have IC https://bugs.webkit.org/show_bug.cgi?id=160590 Reviewed by Saam Barati. * modules/module-assert-access-binding.js: Added. * modules/module-assert-access-namespace.js: Added. * modules/namespace-empty.js: Added. (from.string_appeared_here.access): (i.shouldThrow): * stress/module-namespace-access-change.js: Added. (shouldBe): (access): (import.string_appeared_here.then): * stress/module-namespace-access-non-constant.js: Added. (shouldBe): (import.string_appeared_here.then): * stress/module-namespace-access-poly.js: Added. (shouldBe): (access): (import.string_appeared_here.then): * stress/module-namespace-access-transitive-exports.js: Added. (shouldBe): (import.string_appeared_here.then): * stress/module-namespace-access.js: Added. (shouldBe): (import.string_appeared_here.then): * stress/resources/module-namespace-access-transitive-exports-2.js: Added. (export.cocoa): (export.change): * stress/resources/module-namespace-access-transitive-exports.js: Added. * stress/resources/module-namespace-access.js: Added. (export.cocoa): (export.change): 2017-02-21 Yusuke Suzuki ASSERTION FAILED: "!scope.exception()" with Object.isSealed/isFrozen and uninitialized module bindings https://bugs.webkit.org/show_bug.cgi?id=168605 Reviewed by Saam Barati. * modules/module-namespace-is-frozen.js: Added. (from.string_appeared_here.shouldThrow): (export.b): * modules/module-namespace-is-sealed.js: Added. (from.string_appeared_here.shouldThrow): (export.b): 2017-02-19 Commit Queue Unreviewed, rolling out r212466. https://bugs.webkit.org/show_bug.cgi?id=168577 causes crashes on AArch64 on linux, maybe it's causing crashes on iOS too (Requested by pizlo on #webkit). Reverted changeset: "The collector thread should only start when the mutator doesn't have heap access" https://bugs.webkit.org/show_bug.cgi?id=167737 http://trac.webkit.org/changeset/212466 2017-02-10 Filip Pizlo The collector thread should only start when the mutator doesn't have heap access https://bugs.webkit.org/show_bug.cgi?id=167737 Reviewed by Keith Miller. Add versions of splay that flash heap access, to simulate what might happen if a third-party app was running concurrent GC. In this case, we might actually start the collector thread. * stress/splay-flash-access-1ms.js: Added. (performance.now): (this.Setup.setup.setup): (this.TearDown.tearDown.tearDown): (Benchmark): (BenchmarkResult): (BenchmarkResult.prototype.valueOf): (BenchmarkSuite): (alert): (Math.random): (BenchmarkSuite.ResetRNG): (RunStep): (BenchmarkSuite.RunSuites): (BenchmarkSuite.CountBenchmarks): (BenchmarkSuite.GeometricMean): (BenchmarkSuite.GeometricMeanTime): (BenchmarkSuite.AverageAbovePercentile): (BenchmarkSuite.GeometricMeanLatency): (BenchmarkSuite.FormatScore): (BenchmarkSuite.prototype.NotifyStep): (BenchmarkSuite.prototype.NotifyResult): (BenchmarkSuite.prototype.NotifyError): (BenchmarkSuite.prototype.RunSingleBenchmark): (RunNextSetup): (RunNextBenchmark): (RunNextTearDown): (BenchmarkSuite.prototype.RunStep): (GeneratePayloadTree): (GenerateKey): (SplayUpdateStats): (InsertNewNode): (SplaySetup): (SplayTearDown): (SplayRun): (SplayTree): (SplayTree.prototype.isEmpty): (SplayTree.prototype.insert): (SplayTree.prototype.remove): (SplayTree.prototype.find): (SplayTree.prototype.findMax): (SplayTree.prototype.findGreatestLessThan): (SplayTree.prototype.exportKeys): (SplayTree.prototype.splay_): (SplayTree.Node): (SplayTree.Node.prototype.traverse_): (jscSetUp): (jscTearDown): (jscRun): (averageAbovePercentile): (printPercentile): * stress/splay-flash-access.js: Added. (performance.now): (this.Setup.setup.setup): (this.TearDown.tearDown.tearDown): (Benchmark): (BenchmarkResult): (BenchmarkResult.prototype.valueOf): (BenchmarkSuite): (alert): (Math.random): (BenchmarkSuite.ResetRNG): (RunStep): (BenchmarkSuite.RunSuites): (BenchmarkSuite.CountBenchmarks): (BenchmarkSuite.GeometricMean): (BenchmarkSuite.GeometricMeanTime): (BenchmarkSuite.AverageAbovePercentile): (BenchmarkSuite.GeometricMeanLatency): (BenchmarkSuite.FormatScore): (BenchmarkSuite.prototype.NotifyStep): (BenchmarkSuite.prototype.NotifyResult): (BenchmarkSuite.prototype.NotifyError): (BenchmarkSuite.prototype.RunSingleBenchmark): (RunNextSetup): (RunNextBenchmark): (RunNextTearDown): (BenchmarkSuite.prototype.RunStep): (GeneratePayloadTree): (GenerateKey): (SplayUpdateStats): (InsertNewNode): (SplaySetup): (SplayTearDown): (SplayRun): (SplayTree): (SplayTree.prototype.isEmpty): (SplayTree.prototype.insert): (SplayTree.prototype.remove): (SplayTree.prototype.find): (SplayTree.prototype.findMax): (SplayTree.prototype.findGreatestLessThan): (SplayTree.prototype.exportKeys): (SplayTree.prototype.splay_): (SplayTree.Node): (SplayTree.Node.prototype.traverse_): (jscSetUp): (jscTearDown): (jscRun): (averageAbovePercentile): (printPercentile): 2017-02-16 Yusuke Suzuki [JSC] Update module namespace object according to the latest ECMA262 https://bugs.webkit.org/show_bug.cgi?id=168280 Reviewed by Saam Barati. * modules/namespace-object-symbol-iterator-name.js: * modules/namespace-object-typed-array-fast-path.js: * modules/namespace.js: (shouldBe.JSON.stringify.Reflect.getOwnPropertyDescriptor): (shouldThrow): 2017-02-11 Yusuke Suzuki [JSC] Implement (Shared)ArrayBuffer.prototype.byteLength https://bugs.webkit.org/show_bug.cgi?id=166476 Reviewed by Saam Barati. * ChakraCore/test/typedarray/arraybufferType.baseline-jsc: * stress/array-buffer-byte-length.js: Added. (shouldBe): (shouldThrow): (Symbol): * stress/reflect-set.js: 2017-02-10 Saam Barati Object allocation sinking phase doesn't properly handle control flow when emitting a PutHint of a materialized object into a PromotedHeapLocation of a still sunken object https://bugs.webkit.org/show_bug.cgi?id=168140 Reviewed by Filip Pizlo. * stress/allocation-sinking-puthint-control-flow.js: Added. (e): (bar): (let.y): (else.let.y): (baz): (foo): (catch): 2017-02-09 Mark Lam B3::Procedure::deleteOrphans() should neutralize upsilons with dead phis. https://bugs.webkit.org/show_bug.cgi?id=167437 Reviewed by Filip Pizlo. * stress/b3-delete-orphans-should-neutralize-upsilons-with-dead-phis.js: Added. 2017-02-09 Saam Barati Sloppy mode: We don't properly hoist functions names "arguments" when we have a non-simple parameter list https://bugs.webkit.org/show_bug.cgi?id=167319 Reviewed by Mark Lam. * stress/sloppy-mode-hoist-arguments-function-non-simple-parameter-list.js: Added. (assert): (assert.arguments): (assert.b): (x.arguments): (x.b): (x): 2017-02-09 Mark Lam Fix max length check in ArrayPrototype.js' concatSlowPath(). https://bugs.webkit.org/show_bug.cgi?id=167270 Reviewed by Filip Pizlo. * stress/array-prototype-concat-of-long-spliced-arrays.js: Added. * stress/array-prototype-concat-of-long-spliced-arrays2.js: Added. 2017-02-09 Keith Miller We should not allow Function.caller to be used on native functions https://bugs.webkit.org/show_bug.cgi?id=165628 Reviewed by Mark Lam. * stress/caller-native-code.js: Added. (f): 2017-02-04 Yusuke Suzuki [JSC] Add operationToInt32SensibleSlow to optimize kraken pbkdf2 and sha256 https://bugs.webkit.org/show_bug.cgi?id=167736 Reviewed by Saam Barati. * stress/to-int32-sensible.js: Added. (shouldBe): (toInt32): (test): 2017-02-01 Yusuke Suzuki Unreviewed, remove loop https://bugs.webkit.org/show_bug.cgi?id=167694 It causes timeout. Original bug can be tested even without this loop. * stress/arity-fixup-should-not-touch-stack-area-below-sp.js: 2017-02-01 Yusuke Suzuki ArityFixup should adjust SP first https://bugs.webkit.org/show_bug.cgi?id=167239 Reviewed by Michael Saboff. Significantly large arity fixup reliably causes this crash. * stress/arity-fixup-should-not-touch-stack-area-below-sp.js: Added. 2017-01-31 Filip Pizlo Move slow-running microbenchmarks out of JSTests/microbenchmarks https://bugs.webkit.org/show_bug.cgi?id=167676 Reviewed by Saam Barati. The microbenchmarks directory is profitable when it's cheap to run. This change moves very slow tests (>=200ms running time on my machine) and puts them in JSTests/slowMicrobenchmarks instead. That directory is run only through `slow!; defaultQuickRun` and is not run by run-jsc-benchmarks. This is a big progression in test running time. But because it frontloads more slow tests, the tests will seem to run more slowly when you first start the test runner. * microbenchmarks/default-derived-constructor.js: Removed. * microbenchmarks/dense-set.js: Removed. * microbenchmarks/ftl-polymorphic-div.js: Removed. * microbenchmarks/ftl-polymorphic-mul.js: Removed. * microbenchmarks/function-bind-inlining.js: Removed. * microbenchmarks/function-bind-no-inlining.js: Removed. * microbenchmarks/large-map-iteration-with-additions.js: Removed. * microbenchmarks/large-map-iteration-with-mutation.js: Removed. * microbenchmarks/map-get-get-cse.js: Removed. * microbenchmarks/misc-bugs-847389-jpeg2000.js: Removed. * microbenchmarks/spread-small-array.js: Removed. * microbenchmarks/v8-raytrace-with-try-catch-high-frequency-throws.js: Removed. * slowMicrobenchmarks: Added. * slowMicrobenchmarks.yaml: Added. * slowMicrobenchmarks/README: Added. * slowMicrobenchmarks/default-derived-constructor.js: Copied from JSTests/microbenchmarks/default-derived-constructor.js. * slowMicrobenchmarks/dense-set.js: Copied from JSTests/microbenchmarks/dense-set.js. * slowMicrobenchmarks/ftl-polymorphic-div.js: Copied from JSTests/microbenchmarks/ftl-polymorphic-div.js. * slowMicrobenchmarks/ftl-polymorphic-mul.js: Copied from JSTests/microbenchmarks/ftl-polymorphic-mul.js. * slowMicrobenchmarks/function-bind-inlining.js: Copied from JSTests/microbenchmarks/function-bind-inlining.js. * slowMicrobenchmarks/function-bind-no-inlining.js: Copied from JSTests/microbenchmarks/function-bind-no-inlining.js. * slowMicrobenchmarks/large-map-iteration-with-additions.js: Copied from JSTests/microbenchmarks/large-map-iteration-with-additions.js. * slowMicrobenchmarks/large-map-iteration-with-mutation.js: Copied from JSTests/microbenchmarks/large-map-iteration-with-mutation.js. * slowMicrobenchmarks/map-get-get-cse.js: Copied from JSTests/microbenchmarks/map-get-get-cse.js. * slowMicrobenchmarks/misc-bugs-847389-jpeg2000.js: Copied from JSTests/microbenchmarks/misc-bugs-847389-jpeg2000.js. * slowMicrobenchmarks/spread-small-array.js: Copied from JSTests/microbenchmarks/spread-small-array.js. * slowMicrobenchmarks/v8-raytrace-with-try-catch-high-frequency-throws.js: Copied from JSTests/microbenchmarks/v8-raytrace-with-try-catch-high-frequency-throws.js. 2017-01-30 Yusuke Suzuki [JSC] Do not reject WebAssembly.compile() with Exception https://bugs.webkit.org/show_bug.cgi?id=167585 Reviewed by Mark Lam. * wasm/js-api/Module-compile.js: (async.testPromiseAPI): 2017-01-27 Yusuke Suzuki Lift template escape sequence restrictions in tagged templates https://bugs.webkit.org/show_bug.cgi?id=166871 Reviewed by Saam Barati. Update the error messages and add new tests. * ChakraCore/test/es6/unicode_6_identifier_Blue524737.baseline-jsc: * stress/lift-template-literal.js: Added. (dump): (testTag.return.tag): (testTag): * stress/template-literal-syntax.js: 2017-01-26 Mark Lam Fix missing exception check in genericTypedArrayViewProtoFuncSet(). https://bugs.webkit.org/show_bug.cgi?id=166812 Reviewed by Saam Barati. * stress/regress-166812.js: Added. 2017-01-26 Commit Queue Unreviewed, rolling out r211224. https://bugs.webkit.org/show_bug.cgi?id=167479 "It was a Kraken performance regression" (Requested by saamyjoon on #webkit). Reverted changeset: "OSR entry: delay outer-loop compilation when at inner-loop" https://bugs.webkit.org/show_bug.cgi?id=167149 http://trac.webkit.org/changeset/211224 2017-01-26 JF Bastien OSR entry: delay outer-loop compilation when at inner-loop https://bugs.webkit.org/show_bug.cgi?id=167149 Reviewed by Filip Pizlo. Try to be mean to OSR entry by using nested loops, and having non-int32 types or truly varying types. Mandelbrot currently never tiers up to FTL because it exits too many times before this. That shouldn't happen because it's just numbers and int32s. I'll file a bug to fix this. * microbenchmarks/mandelbrot.js: Added. (mandelbrot): (printable): * microbenchmarks/nonude.js: Added. (Array.prototype.remove): (const.u): (const.load): (const.scan): (const.main): 2017-01-25 Saam Barati WebAssembly JS API: coerce return values from imports https://bugs.webkit.org/show_bug.cgi?id=165480 Reviewed by Yusuke Suzuki. * wasm/function-tests/function-import-return-value.js: Added. (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.const.tests.x.assert.eq): (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.const.tests.Math.fround): (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.let.type.of.Reflect.ownKeys): (test.1): (assert.truthy): (assert.throws): 2017-01-25 Filip Pizlo jsc.cpp should have the $.agent stuff for testing SAB https://bugs.webkit.org/show_bug.cgi?id=167431 Reviewed by Saam Barati. Add a very basic test of Atomics using $.agent. This is based on LayoutTests/workers/sab/simple.html. * stress/lars-sab-workers.js: Added. (startWorker): (resources): (wake): (else): 2017-01-24 Filip Pizlo Atomics.store should return the int-converted value according to toInteger https://bugs.webkit.org/show_bug.cgi?id=167399 Reviewed by Saam Barati. * stress/atomics-add-uint32.js: Added. * stress/atomics-store-return.js: Fix the test to match what the spec wants. 2017-01-24 Yusuke Suzuki [JSC] Optimize Number#toString with Int52 https://bugs.webkit.org/show_bug.cgi?id=167303 Reviewed by Sam Weinig. * stress/to-string-with-int52.js: Added. (shouldBe): 2017-01-24 Filip Pizlo Atomics.store should return the int-converted value, not the value that it stored https://bugs.webkit.org/show_bug.cgi?id=167395 Reviewed by Saam Barati. * stress/atomics-store-return.js: Added. 2017-01-24 Filip Pizlo -0 is a valid array index and AtomicsObject should know this https://bugs.webkit.org/show_bug.cgi?id=167386 Reviewed by Mark Lam. * stress/atomics-neg-zero.js: Added. 2017-01-23 Saam Barati https://bugs.webkit.org/show_bug.cgi?id=167247 JSC: operationSpreadGeneric uses the wrong global object for the builtin function and slow_path_spread consults the wrong global object to prove if the iterator protocol is unobservable Reviewed by Filip Pizlo. * stress/spread-consults-correct-global-object.js: Added. (assert): (spread): * stress/spread-correct-global-object-on-exception.js: Added. (assert): (spread): (const.objectText.let.o.Symbol.iterator): (catch): 2017-01-21 Yusuke Suzuki dynamic import is ambiguous with import declaration at module code https://bugs.webkit.org/show_bug.cgi?id=167098 Reviewed by Darin Adler. * modules/import-call.js: Added. (from.string_appeared_here.import.string_appeared_here.then): * modules/import-call/main.js: Added. * stress/import-syntax.js: (async): 2017-01-19 Skachkov Oleksandr "this" missing after await in async arrow function https://bugs.webkit.org/show_bug.cgi?id=166919 Reviewed by Saam Barati. * stress/async-arrow-functions-lexical-binding-in-class.js: (ChildClass.prototype.asyncThisPropWithAwaitBody): (ChildClass.prototype.asyncThisPropInEvalWithAwaitBody): (ChildClass.prototype.asyncThisValueBodyWithAwait): (ChildClass.prototype.asyncThisValueInEvalWithAwaitBody): (ChildClass): (ChildClass3): (ChildClass3.prototype.classValue): (ChildClass3.prototype.get classProperty): * stress/async-arrow-functions-lexical-new.target-binding.js: (C2WithAwait): 2017-01-16 Filip Pizlo Make opaque root scanning truly constraint-based https://bugs.webkit.org/show_bug.cgi?id=165760 Reviewed by Geoffrey Garen. Added this test, which demonstrates the benefit of having a dedicated string subspace. * microbenchmarks/stringalloc.js: Added. 2017-01-17 Michael Saboff Nested parenthesized regular expressions with non-zero minimum counts appear to hang and use lots of memory https://bugs.webkit.org/show_bug.cgi?id=167125 Reviewed by Filip Pizlo. * microbenchmarks/regexp-nested-nonzero-min-counted-parens.js: Added. New test with limits that run slow and take a reasonable amount of memory before the change and run fast, using little memory with the change. 2017-01-14 Yusuke Suzuki Annotate large string tests with largeHeap https://bugs.webkit.org/show_bug.cgi?id=167054 Reviewed by Filip Pizlo. * microbenchmarks/dense-set.js: * microbenchmarks/lots-of-fields.js: * stress/joined-strings-should-not-exceed-max-string-length.js: * stress/make-large-string-jit-strcat.js: * stress/make-large-string-jit.js: * stress/make-large-string-strcat.js: * stress/make-large-string.js: * stress/string-joining-long-strings-should-not-crash.js: * stress/string-prototype-replace-should-throw-out-of-memory-error-when-using-too-much-memory.js: 2017-01-14 Yusuke Suzuki Reserve capacity for StringBuilder in unescape https://bugs.webkit.org/show_bug.cgi?id=167008 Reviewed by Sam Weinig. * stress/unescape.js: Added. (shouldBe): 2017-01-12 Saam Barati Add a slice intrinsic to the DFG/FTL https://bugs.webkit.org/show_bug.cgi?id=166707 Reviewed by Filip Pizlo. * stress/array-slice-intrinsic.js: Added. (assert): (shallowEq): (runTest1): (runTest2): * stress/array-slice-jettison-on-constructor-change.js: Added. (assert): (runTest1): (runTest2): (addRandomProperties): (runTests): * stress/array-slice-osr-exit-2.js: Added. (assert): (Foo): (shallowEq): (runTest1): (runTest2): (addRandomProperties): (runTests): * stress/array-slice-osr-exit.js: Added. (assert): (Foo): (shallowEq): (runTest1): (runTest2): (addRandomProperties): (runTests): 2017-01-11 Ryan Haddad Mark es6/typed_arrays_correct_prototype_chains.js as failing after r210570. https://bugs.webkit.org/show_bug.cgi?id=166931i Unreviewed test gardening. * es6.yaml: 2017-01-10 Commit Queue Unreviewed, rolling out r210052. https://bugs.webkit.org/show_bug.cgi?id=166915 "breaks web compatability" (Requested by keith_miller on #webkit). Reverted changeset: "Add support for global" https://bugs.webkit.org/show_bug.cgi?id=165171 http://trac.webkit.org/changeset/210052 2017-01-10 Mark Lam Property setters should not be called for bound arguments list entries. https://bugs.webkit.org/show_bug.cgi?id=165631 Reviewed by Filip Pizlo. * stress/property-setters-should-not-be-called-for-bound-arguments-list-entries.js: Added. 2017-01-10 Skachkov Oleksandr Calling async arrow function which is in a class's member function will cause error https://bugs.webkit.org/show_bug.cgi?id=166879 Reviewed by Saam Barati. * stress/async-arrow-functions-lexical-binding-in-class.js: Added. (shouldBe): (shouldBeAsync): (BaseClass.prototype.baseClassValue): (BaseClass.prototype.get property): (BaseClass): (runSomething): (ChildClass.prototype.classValue): (ChildClass.prototype.get classProperty): (ChildClass.prototype.asyncValueExp): (ChildClass.prototype.asyncValueBody): (ChildClass.prototype.asyncThisPropExp): (ChildClass.prototype.asyncThisPropBody): (ChildClass.prototype.asyncThisPropInEvalExp): (ChildClass.prototype.asyncThisPropInEvalBody): (ChildClass.prototype.asyncThisValueExp): (ChildClass.prototype.asyncThisValueBody): (ChildClass.prototype.asyncThisValueInEvalExp): (ChildClass.prototype.asyncThisValueInEvalBody): (ChildClass): (ChildClass2): (ChildClass2.prototype.classValue): (ChildClass2.prototype.get classProperty): * stress/async-arrow-functions-lexical-super-binding.js: 2017-01-09 Yusuke Suzuki [JSC] Prototype dynamic-import https://bugs.webkit.org/show_bug.cgi?id=165724 Reviewed by Saam Barati. * stress/import-basic.js: Added. (async.async.load): (async): (catch): * stress/import-from-eval.js: Added. (async): (catch): * stress/import-syntax.js: Added. (testSyntaxError): * stress/import-tests/cocoa.js: Added. (export.Cocoa): (export.hello): * stress/import-tests/multiple.js: Added. (export.result): * stress/import-tests/multiple2.js: Added. (export.ok): * stress/import-tests/should.js: Added. (export.shouldBe): (export.shouldThrow): * stress/modules-syntax-error.js: 2017-01-09 Commit Queue Unreviewed, rolling out r210476. https://bugs.webkit.org/show_bug.cgi?id=166859 "4% JSBench regression" (Requested by keith_mi_ on #webkit). Reverted changeset: "Add a slice intrinsic to the DFG/FTL" https://bugs.webkit.org/show_bug.cgi?id=166707 http://trac.webkit.org/changeset/210476 2017-01-06 Saam Barati Add a slice intrinsic to the DFG/FTL https://bugs.webkit.org/show_bug.cgi?id=166707 Reviewed by Filip Pizlo. * stress/array-slice-intrinsic.js: Added. (assert): (shallowEq): (runTest1): (runTest2): * stress/array-slice-jettison-on-constructor-change.js: Added. (assert): (runTest1): (runTest2): (addRandomProperties): (runTests): * stress/array-slice-osr-exit-2.js: Added. (assert): (Foo): (shallowEq): (runTest1): (runTest2): (addRandomProperties): (runTests): * stress/array-slice-osr-exit.js: Added. (assert): (Foo): (shallowEq): (runTest1): (runTest2): (addRandomProperties): (runTests): 2017-01-06 Michael Saboff @putByValDirect in Array.of and Array.from overwrites non-writable/configurable properties https://bugs.webkit.org/show_bug.cgi?id=153486 Reviewed by Saam Barati. New regression test. * stress/regress-153486.js: Added. (shouldEqual): (makeUnwriteableUnconfigurableObject): (testArrayOf): (testArrayFrom): (runTest): 2016-12-30 Filip Pizlo DeferGC::~DeferGC should be super cheap https://bugs.webkit.org/show_bug.cgi?id=166626 Reviewed by Saam Barati. * stress/slow-path-generator-updating-current-node-dfg.js: * stress/unshift-array-storage.js: 2017-01-04 JF Bastien WebAssembly: sections with the same name are allowed https://bugs.webkit.org/show_bug.cgi?id=166708 Reviewed by Saam Barati. * wasm/self-test/test_BuilderJSON.js: (SectionsWithSameCustomName): 2017-01-04 Saam Barati stress/spread-calling.js timing out on the bots https://bugs.webkit.org/show_bug.cgi?id=166689 Reviewed by Mark Lam. * stress/spread-calling.js: 2017-01-04 JF Bastien WebAssembly JS API: add Module.sections https://bugs.webkit.org/show_bug.cgi?id=165159 Reviewed by Mark Lam. As described here: https://github.com/WebAssembly/design/blob/master/JS.md#webassemblymodulecustomsections * wasm/Builder.js: allow custom sections to be duplicated * wasm/js-api/Module.customSection.js: Added. (assert.throws.WebAssembly.Module.prototype.customSections): (assert.eq): 2017-01-04 Saam Barati We don't properly handle exceptions inside the nativeCallTrampoline macro in the LLInt https://bugs.webkit.org/show_bug.cgi?id=163720 Reviewed by Mark Lam. * stress/bound-function-tail-call-with-exception.js: Added. (bar): (foo): (catch): 2017-01-03 JF Bastien WebAssembly JS API: check and test in-call / out-call values https://bugs.webkit.org/show_bug.cgi?id=164876 Reviewed by Saam Barati. * wasm.yaml: * wasm/assert.js: add an assert for NaN comparison * wasm/fuzz/export-function.js: Added. Generate random wasm export signatures, and call them with random parameters. (const.paramExporter): (const.setBuffer): (const.types.generate): (generate): * wasm/js-api/export-arity.js: Added. (const.paramExporter): Test that mismatched arities when JS calls wasm follow the defined semantics: i32 is 0, f32 / f64 are NaN. https://github.com/WebAssembly/design/blob/master/JS.md#exported-function-exotic-objects * wasm/js-api/export-void-is-undef.js: Added. Test that "void" wasm functions return "undefined" in JS. 2017-01-02 JF Bastien WebAssembly: handle and optimize wasm export → wasm import calls https://bugs.webkit.org/show_bug.cgi?id=165282 Reviewed by Saam Barati. * wasm/Builder.js: Add a Proxy to Builder.js, which intercepts unknown property lookups. This creates way better error messages on typos than 'undefined is not a function', which happens semi-frequently as I typo opcode names (and which one is a typo is hard to find because we chain builders). (const._isValidValue): (get target): (const._importFunctionContinuation): (const._importMemoryContinuation): (const._importTableContinuation): (const._exportFunctionContinuation): (export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section): (export.default.Builder.prototype._registerSectionBuilders.this.Unknown): * wasm/LowLevelBinary.js: Add limited support for var{u}int64 (only the 32-bit values) (export.default.LowLevelBinary.prototype.varint32): (export.default.LowLevelBinary.prototype.varuint64): (export.default.LowLevelBinary.prototype.varint64): * wasm/function-tests/exceptions.js: update error message * wasm/function-tests/trap-load.js: update error message * wasm/function-tests/trap-store.js: update error message * wasm/js-api/wasm-to-wasm-bad-signature.js: Added. Test a bunch of bad wasm->wasm import signatures (const.makeImportee.signature.switch): (BadSignatureDropStartParams): * wasm/js-api/wasm-to-wasm.js: Added. Test 64-bit wasm->wasm import calls (const.callerModule): (const.calleeModule): (WasmToWasm): 2017-01-02 Saam Barati WebAssembly: Some loads don't take into account the offset https://bugs.webkit.org/show_bug.cgi?id=166616 Reviewed by Keith Miller. * wasm/function-tests/load-offset.js: Added. 2016-12-29 Saam Barati WebAssembly: Rebase spec-tests now that wabt has been updated to produce certain kinds of invalid modules https://bugs.webkit.org/show_bug.cgi?id=166491 Reviewed by Yusuke Suzuki. Based off these revisions: - spec: b055d01ea1dfdd7a5231ae779095435f836de97f - wabt: d0d44702c753f851b094615298a2f4d4e3c21035 The reason for the rebase is that wabt was updated to stop silently rejecting invalid modules. This was needed because some of the spec tests check to make sure that the module is invalid, but wabt was silently ignoring the errors and generating valid modules: https://github.com/WebAssembly/wabt/issues/256 * wasm.yaml: * wasm/spec-tests/address.wast.js: * 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/break-drop.wast.js: * wasm/spec-tests/call.wast.js: * wasm/spec-tests/call_indirect.wast.js: * wasm/spec-tests/comments.wast.js: * wasm/spec-tests/conversions.wast.js: * wasm/spec-tests/custom_section.wast.js: * wasm/spec-tests/endianness.wast.js: * wasm/spec-tests/exports.wast.js: * wasm/spec-tests/f32.wast.js: * wasm/spec-tests/f32_cmp.wast.js: * wasm/spec-tests/f64.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/float_misc.wast.js: * wasm/spec-tests/forward.wast.js: * wasm/spec-tests/func.wast.js: * wasm/spec-tests/func_ptrs.wast.js: * wasm/spec-tests/get_local.wast.js: * wasm/spec-tests/globals.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/left-to-right.wast.js: * wasm/spec-tests/linking.wast.js: * wasm/spec-tests/loop.wast.js: * wasm/spec-tests/memory.wast.js: * wasm/spec-tests/memory_redundancy.wast.js: * wasm/spec-tests/memory_trap.wast.js: * wasm/spec-tests/names.wast.js: * wasm/spec-tests/nop.wast.js: * wasm/spec-tests/resizing.wast.js: * wasm/spec-tests/return.wast.js: * wasm/spec-tests/select.wast.js: * wasm/spec-tests/set_local.wast.js: * wasm/spec-tests/skip-stack-guard-page.wast.js: * wasm/spec-tests/stack.wast.js: * wasm/spec-tests/start.wast.js: * wasm/spec-tests/store_retval.wast.js: * wasm/spec-tests/switch.wast.js: * wasm/spec-tests/tee_local.wast.js: * wasm/spec-tests/traps.wast.js: * wasm/spec-tests/typecheck.wast.js: * wasm/spec-tests/unreachable.wast.js: * wasm/spec-tests/unwind.wast.js: 2016-12-28 Saam Barati WebAssembly: Don't allow duplicate export names https://bugs.webkit.org/show_bug.cgi?id=166490 Reviewed by Keith Miller. * wasm.yaml: * wasm/function-tests/invalid-duplicate-export.js: Added. 2016-12-28 Saam Barati WebAssembly: Implement grow_memory and current_memory https://bugs.webkit.org/show_bug.cgi?id=166448 Reviewed by Keith Miller. I rewrote some of the testWasmModuleFunctions that used Memory to use the JS API since the jsc.cpp version can no longer use memory. * wasm.yaml: * wasm/function-tests/add-12.js: (testWasmModuleFunctions): * wasm/function-tests/br-if-loop-less-than.js: (testWasmModuleFunctions): * wasm/function-tests/brTableAsIf.js: (testWasmModuleFunctions): * wasm/function-tests/brTableManyValues.js: (testWasmModuleFunctions): * wasm/function-tests/brTableWithLoop.js: (testWasmModuleFunctions): * wasm/function-tests/dumb-eq-if-then-else.js: * wasm/function-tests/eqz.js: * wasm/function-tests/grow-memory-2.js: Added. (const.func): (assert.eq.instance.exports.foo): * wasm/function-tests/grow-memory-3.js: Added. * wasm/function-tests/grow-memory-4.js: Added. (const.func): * wasm/function-tests/grow-memory.js: Added. (binaryShouldNotParse): (assert.truthy): (assert.eq): (memory.grow): * wasm/function-tests/i32-load.js: (testWasmModuleFunctions): * wasm/function-tests/i32-load8-s.js: * wasm/function-tests/max.js: * wasm/function-tests/min.js: * wasm/js-api/memory-grow.js: Added. (i.i): (assertEq): * wasm/js-api/test_memory.js: * wasm/wasm.json: 2016-12-25 Yusuke Suzuki Propagate the source origin as much as possible https://bugs.webkit.org/show_bug.cgi?id=166348 Reviewed by Darin Adler. * stress/source-origin.js: Added. (shouldBe): 2016-12-24 Caio Lima [test262] Fixing mapped arguments object property test case https://bugs.webkit.org/show_bug.cgi?id=159398 Reviewed by Saam Barati. * stress/arguments-bizarre-behaviour-disable-enumerability.js: * stress/arguments-define-property.js: Added. (assert): (testProperties): * stress/arguments-non-configurable.js: Added. (assert): (tryChangeNonConfigurableDescriptor): (set tryChangeNonConfigurableDescriptor): (tryChangeWritableOfNonConfigurableDescriptor): * test262.yaml: 016-12-20 Caio Lima [test262] Fixing mapped arguments object property test case https://bugs.webkit.org/show_bug.cgi?id=159398 Reviewed by . * stress/arguments-bizarre-behaviour-disable-enumerability.js: * stress/arguments-define-property.js: Added. (assert): (testProperties): * stress/arguments-non-configurable.js: Added. (assert): (tryChangeNonConfigurableDescriptor): (set tryChangeNonConfigurableDescriptor): (tryChangeWritableOfNonConfigurableDescriptor): * test262.yaml: 2016-12-23 Keith Miller WebAssembly: trap on bad division. https://bugs.webkit.org/show_bug.cgi?id=164786 Reviewed by Mark Lam. Also, mark conversions as passing. * wasm.yaml: * wasm/wasm.json: 2016-12-22 Keith Miller WebAssembly: Make spec-tests/f32.wast.js and spec-tests/f64.wast.js pass https://bugs.webkit.org/show_bug.cgi?id=166447 Reviewed by Saam Barati. * wasm.yaml: * wasm/wasm.json: 2016-12-22 Saam Barati WebAssembly: Make calling Wasm functions that returns or takes an i64 as a parameter an early exception https://bugs.webkit.org/show_bug.cgi?id=166437 Reviewed by Keith Miller. * wasm.yaml: * wasm/function-tests/i64-from-js-exceptions.js: Added. (const.imp.import.sideEffects): (assert.throws.instance.exports.foo.valueOf): 2016-12-22 Mark Lam De-duplicate finally blocks. https://bugs.webkit.org/show_bug.cgi?id=160168 Reviewed by Saam Barati. Re-landing r209952 with a few new tests added in test-finally.js. * stress/deeply-nested-finallys.js: Copied from JSTests/stress/deeply-nested-finallys.js. - Tests many levels of finally nesting. This causes the old code to hang (and crashes eventually) while trying to generate bytecode for the exponentially duplicated finally blocks. The new code completes this test almost instantly. * stress/test-finally.js: Copied from JSTests/stress/test-finally.js. - Tests control flow through various permutations of finally blocks. 2016-12-22 Saam Barati WebAssembly: Make the spec-tests/address.wast.js test pass https://bugs.webkit.org/show_bug.cgi?id=166429 Reviewed by Keith Miller. * wasm.yaml: 2016-12-22 Keith Miller WebAssembly: The validator should not allow unused stack entries at the end of a block https://bugs.webkit.org/show_bug.cgi?id=166411 Reviewed by Saam Barati. Test cleanup and enable new passing tests. * wasm.yaml: * wasm/function-tests/br-if-as-return.js: 2016-12-22 Saam Barati WebAssembly: Make the spec-tests/start.wast.js test pass https://bugs.webkit.org/show_bug.cgi?id=166416 Reviewed by Yusuke Suzuki. * wasm.yaml: 2016-12-21 Keith Miller WebAssembly: Fix decode floating point constants in unreachable code https://bugs.webkit.org/show_bug.cgi?id=166400 Reviewed by Saam Barati. * wasm.yaml: 2016-12-21 Keith Miller WebAssembly: Allow br, br_if, and br_table to act as a return https://bugs.webkit.org/show_bug.cgi?id=166393 Reviewed by Saam Barati. Add tests for breaks acting as returns and fix tests that validate error messages. * wasm/function-tests/br-as-return.js: Added. * wasm/function-tests/br-if-as-return.js: Added. * wasm/function-tests/br-table-as-return.js: Added. * wasm/function-tests/if-no-else-non-void.js: * wasm/function-tests/struct.js: Added. * wasm/js-api/global-error.js: (assert.throws): * wasm/js-api/table.js: (assert.throws): 2016-12-21 Saam Barati WebAssembly: Import spec tests https://bugs.webkit.org/show_bug.cgi?id=166395 Rubber stamped by Keith Miller. This patch implements the Wasm spec's tests found here: https://github.com/WebAssembly/spec/tree/master/interpreter/test These tests are in .wast s-epxression format. To convert them to JS, I use a script from the wabt library, found here: https://github.com/WebAssembly/wabt/blob/master/test/run-gen-spec-js.py I also added a script that automatically imports the tests as JS files. The inputs to the script is the path to the Wasm spec git repo and the path to the wabt git repo. This will make importing new tests easy in the future. The wasm spec imported is at commit: b055d01ea1dfdd7a5231ae779095435f836de97f The wabt used to do the import is at commit: 622b42dced6d793e9d49e9b1fd1d1524defd1387 * wasm.yaml: * wasm/import-spec-tests.rb: Added. * wasm/spec-tests: Added. * wasm/spec-tests/address.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/binary.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/block.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/br.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/br_if.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/br_table.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/break-drop.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/call.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/call_indirect.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/comments.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/conversions.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/custom_section.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/endianness.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/exports.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/f32.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/f32_cmp.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/f64.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/f64_cmp.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/fac.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/float_exprs.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/float_literals.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/float_memory.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/float_misc.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/forward.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/func.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/func_ptrs.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/get_local.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/globals.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/i32.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/i64.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/imports.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/int_exprs.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/int_literals.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/left-to-right.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/linking.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/loop.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/memory.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/memory_redundancy.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/memory_trap.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/names.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/nop.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/resizing.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/return.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/select.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/set_local.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/skip-stack-guard-page.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/stack.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/start.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/store_retval.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/switch.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/tee_local.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/traps.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/typecheck.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/unreachable.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): * wasm/spec-tests/unwind.wast.js: Added. (register): (module): (instance): (assert_malformed): (assert_invalid): (assert_soft_invalid): (assert_unlinkable): (assert_uninstantiable): (assert_trap): (assert_return): (assert_return_nan): 2016-12-20 Keith Miller Add support for global https://bugs.webkit.org/show_bug.cgi?id=165171 Reviewed by Filip Pizlo. * stress/global.js: Added. 2016-12-20 JF Bastien WebAssembly API: implement WebAssembly.LinkError https://bugs.webkit.org/show_bug.cgi?id=165805 Reviewed by Mark lam. Update all exception sites which now throw WebAssembly.LinkError. * wasm/js-api/element-data.js: * wasm/js-api/element.js: (assert.throws): * wasm/js-api/global-error.js: (new.Number): * wasm/js-api/table.js: (assert.throws): (new.WebAssembly.Table): * wasm/js-api/test_Data.js: * wasm/js-api/test_basic_api.js: (const.c.in.constructorProperties.switch): * wasm/js-api/test_memory.js: (test): (test.testMemImportError): Deleted. 2016-12-20 JF Bastien WebAssembly: unique function signatures https://bugs.webkit.org/show_bug.cgi?id=165957 Reviewed by Saam Barati. * wasm/function-tests/table-basic.js: FIXME is now addressed, though instance to instance calls still need work which bug #165282 will address (i.assert.eq.foo): * wasm/js-api/unique-signature.js: Added. (CallIndirectWithDuplicateSignatures): 2016-12-19 Mark Lam Rolling out r209974 and r209952. They break some websites in mysterious ways. Step 2: Rollout r209952. https://bugs.webkit.org/show_bug.cgi?id=166049 Not reviewed. * stress/deeply-nested-finallys.js: Removed. * stress/test-finally.js: Removed. 2016-12-19 Saam Barati WebAssembly: Make running Wasm tests take less time by reducing some tests' iteration count and by splitting some tests into different files https://bugs.webkit.org/show_bug.cgi?id=166017 Reviewed by Yusuke Suzuki. * wasm/function-tests/trap-load-2.js: Added. (assert): (wasmFrameCountFromError): (continuation): (i.catch): * wasm/function-tests/trap-load.js: (assert.continuation): Deleted. * wasm/function-tests/trap-store-2.js: Added. (import.Builder.from.string_appeared_here.assert): (continuation): (i.catch): * wasm/function-tests/trap-store.js: (assert.continuation): Deleted. (assert): Deleted. * wasm/js-api/test_memory.js: (test): 2016-12-18 Saam Barati WebAssembly: Implement the WebAssembly.compile and WebAssembly.validate https://bugs.webkit.org/show_bug.cgi?id=165936 Reviewed by Mark Lam. * wasm/js-api/Module-compile.js: Added. (async.testPromiseAPI): * wasm/js-api/test_basic_api.js: (const.c.in.constructorProperties.switch): * wasm/js-api/validate.js: Added. (assert.truthy.WebAssembly.validate.builder.WebAssembly): 2016-12-16 Mark Lam De-duplicate finally blocks. https://bugs.webkit.org/show_bug.cgi?id=160168 Reviewed by Keith Miller. * stress/deeply-nested-finallys.js: Added. - Tests many levels of finally nesting. This causes the old code to hang (and crashes eventually) while trying to generate bytecode for the exponentially duplicated finally blocks. The new code completes this test almost instantly. * stress/test-finally.js: Added. - Tests control flow through various permutations of finally blocks. 2016-12-16 Saam Barati WebAssembly: WasmB3IRGenerator should throw exceptions instead of crash https://bugs.webkit.org/show_bug.cgi?id=165834 Reviewed by Keith Miller. * wasm/function-tests/exceptions.js: Added. (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance): * wasm/function-tests/table-basic.js: (i.i.42.throw.new.Error): 2016-12-16 Keith Miller i64.eqz should use an Int64 zero https://bugs.webkit.org/show_bug.cgi?id=165942 Reviewed by Mark Lam. * wasm/wasm.json: 2016-12-15 Keith Miller Fix validation of non-void if blocks with no else https://bugs.webkit.org/show_bug.cgi?id=165938 Reviewed by Saam Barati. Add a new failing test and a fix an existing one. * wasm/function-tests/dead-call.js: * wasm/function-tests/if-no-else-non-void.js: Added. 2016-12-15 Keith Miller Wasm should not create empty unlinked callsites https://bugs.webkit.org/show_bug.cgi?id=165933 Reviewed by Mark Lam. * wasm/function-tests/dead-call.js: Added. 2016-12-15 JF Bastien WebAssembly: improve compilation error messages https://bugs.webkit.org/show_bug.cgi?id=163919 Reviewed by Saam Barati. Update error messages in these tests. Use the assert.throws facility in many of them which weren't already. * wasm/js-api/element.js: (assert.throws.new.WebAssembly.Module.builder.WebAssembly): (assert.throws): * wasm/js-api/global-error.js: (assert.throws.new.WebAssembly.Module.bin): (assert.throws): (new.Number): * wasm/js-api/table.js: (assert.throws.new.WebAssembly.Module.builder.WebAssembly): (assert.throws): (assertBadTableImport): * wasm/js-api/test_Data.js: (DataSectionWithoutMemory): * wasm/js-api/test_Start.js: (InvalidStartFunctionIndex): * wasm/js-api/test_basic_api.js: (const.c.in.constructorProperties.switch): 2016-12-15 JF Bastien WebAssembly API: improve data section errors https://bugs.webkit.org/show_bug.cgi?id=165733 Reviewed by Keith Miller. * wasm/js-api/element-data.js: Added. (ElementBeforeData.set const): (ElementBeforeData): check the order of initialization, which is observable on failure * wasm/js-api/test_Data.js: (DataSectionWithoutMemory): (DataSectionOffTheEnd): Deleted. (DataSectionPartlyOffTheEnd): Deleted. (DataSectionEmptyOffTheEnd): Deleted. (DataSectionSeenByStart): Deleted. 2016-12-15 Keith Miller Fix 64-bit shift family Wasm opcodes https://bugs.webkit.org/show_bug.cgi?id=165902 Reviewed by Geoffrey Garen. Add tests for shift family of instructions. Since we can't generate i64 values to pass to wasm we only compile the code for those functions. Attempting to generate any i64 code using these instructions would have been enough to cause the B3 Validation error anyway. * wasm/assert.js: * wasm/function-tests/rotl.js: Added. * wasm/function-tests/rotr.js: Added. * wasm/function-tests/shl.js: Added. * wasm/function-tests/shr-s.js: Added. * wasm/function-tests/shr-u.js: Added. * wasm/wasm.json: 2016-12-14 Keith Miller WebAssembly: test_BuilderJSON.js is broken https://bugs.webkit.org/show_bug.cgi?id=165893 Reviewed by Michael Saboff. * wasm/Builder.js: (const._isValidValue): * wasm/self-test/test_BuilderJSON.js: 2016-12-14 Keith Miller Unreviewed, fix test. * wasm/function-tests/i32-const.js: 2016-12-14 Keith Miller Wasm should decode constants correctly https://bugs.webkit.org/show_bug.cgi?id=165886 Reviewed by Saam Barati. * wasm/Builder.js: (const._isValidValue): * wasm/Builder_WebAssemblyBinary.js: (const.putOp): * wasm/LowLevelBinary.js: (export.default.LowLevelBinary.prototype.float): (export.default.LowLevelBinary.prototype.double): * wasm/function-tests/f32-const.js: Added. * wasm/function-tests/f64-const.js: Added. * wasm/function-tests/i32-const.js: Added. * wasm/wasm.json: 2016-12-14 Saam Barati WebAssembly: Add various low hanging fruit that will allow us to run the LLVM torture tests in Wasm https://bugs.webkit.org/show_bug.cgi?id=165883 Reviewed by Keith Miller. * wasm/Builder.js: (export.default.Builder.prototype._registerSectionBuilders.switch.case.string_appeared_here.this.section): * wasm/Builder_WebAssemblyBinary.js: (const.emitters.Export): * wasm/js-api/table.js: (assertBadBinary): (assertBadTable): (assert.truthy): * wasm/js-api/test_memory.js: (binaryShouldNotParse): (test): (test.testMemImportError): (assert.truthy): (assert): Deleted. 2016-12-14 Filip Pizlo DirectTailCall implementation needs to tell the shuffler what to put into the ArgumentCount explicitly https://bugs.webkit.org/show_bug.cgi?id=165882 Reviewed by Mark Lam. * stress/direct-tail-call-arity-mismatch-count-args.js: Added. (foo): (bar): 2016-12-14 Keith Miller WebAssembly JS API: implement Global https://bugs.webkit.org/show_bug.cgi?id=164133 Reviewed by Saam Barati. * wasm/Builder.js: (export.default.Builder.prototype._registerSectionBuilders.switch.case.string_appeared_here.this.section): * wasm/Builder_WebAssemblyBinary.js: (const.valueType.WASM.description.type.i32.type.const.putGlobalType): (const.putOp): (const.putInitExpr): (const.emitters.Import): (const.emitters.Global): (const.emitters.Export): (const.emitters.Code): * wasm/LowLevelBinary.js: (export.default.LowLevelBinary.prototype.varuint32): (export.default.LowLevelBinary.prototype.varint32): * wasm/js-api/global-error.js: Added. (catch): (assert.truthy): * wasm/js-api/global-external-init-from-import.js: Added. * wasm/js-api/global-internal-init-from-import.js: Added. * wasm/js-api/global-mutate.js: Added. (createInternalGlobalModule): * wasm/js-api/globals-export.js: Added. * wasm/js-api/globals-import.js: Added. * wasm/wasm.json: 2016-12-13 Saam Barati WebAssembly: implement the elements section https://bugs.webkit.org/show_bug.cgi?id=165715 Reviewed by Keith Miller. * wasm/Builder.js: (export.default.Builder.prototype._registerSectionBuilders.switch.case.string_appeared_here.this.section): (export.default.Builder.prototype._registerSectionBuilders.switch): * wasm/Builder_WebAssemblyBinary.js: (const.emitters.Element): * wasm/function-tests/basic-element.js: Added. * wasm/js-api/element.js: Added. (assertBadBinary): (assertBadBinary.badInstantiation): 2016-12-13 Saam Barati WebAssembly: implement the table section and table import https://bugs.webkit.org/show_bug.cgi?id=165716 Reviewed by Keith Miller. * wasm/Builder.js: (const._importMemoryContinuation): (const._importTableContinuation): (export.default.Builder.prototype._registerSectionBuilders.switch.case.string_appeared_here.this.section): (const._importMemoryContinuation.section): Deleted. (const): Deleted. (const._importMemoryContinuation.assert): Deleted. * wasm/Builder_WebAssemblyBinary.js: (const.putResizableLimits): (const.putTable): (const.emitters.Import): (const.emitters.Table): * wasm/function-tests/call-indirect-params.js: * wasm/function-tests/call-indirect.js: * wasm/function-tests/table-basic-2.js: Added. (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance): (func): * wasm/function-tests/table-basic.js: Added. (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance): * wasm/js-api/call-indirect-results.js: (const.wasmModuleWhichImportJS): Deleted. (MonomorphicImport): Deleted. * wasm/js-api/call-indirect.js: (const.wasmModuleWhichImportJS): (const.makeTable): (Polyphic2Import): (VirtualImport): (MonomorphicImport): Deleted. * wasm/js-api/table.js: Added. (assertBadBinary): (assert.truthy): (assertBadTable): (assertBadTableImport): (assertBadBinary.assertBadTableInstance): (assertBadTableInstance): (new.WebAssembly.Table): * wasm/js-api/test_basic_api.js: (const.c.in.constructorProperties.switch): 2016-12-13 Commit Queue Unreviewed, rolling out r209725. https://bugs.webkit.org/show_bug.cgi?id=165811 "Broke ARMv7 builds" (Requested by msaboff on #webkit). Reverted changeset: "REGRESSION(r209653): speedometer crashes making virtual slow path tailcalls" https://bugs.webkit.org/show_bug.cgi?id=165748 http://trac.webkit.org/changeset/209725 2016-12-12 Michael Saboff REGRESSION(r209653): speedometer crashes making virtual slow path tailcalls https://bugs.webkit.org/show_bug.cgi?id=165748 Reviewed by Filip Pizlo. New regression test. * stress/regress-165748.js: Added. (sum1): (sum2): (sum3): (sum4): (sum5): (sum6): (tailCaller): (test): 2016-12-12 Mark Lam Debug JSC test timeout: stress/string-prototype-replace-should-throw-out-of-memory-error-when-using-too-much-memory.js.ftl-no-cjit. https://bugs.webkit.org/show_bug.cgi?id=164630 Reviewed by Keith Miller. Speculative fix for timeout issue. It looks like this test just runs a bit slower on debug builds. So, we'll give it a little more time to run. * stress/string-prototype-replace-should-throw-out-of-memory-error-when-using-too-much-memory.js: 2016-12-11 Saam Barati We should be able to throw exceptions from Wasm code and when Wasm frames are on the stack https://bugs.webkit.org/show_bug.cgi?id=165429 Reviewed by Keith Miller. * wasm/function-tests/trap-load.js: Added. (assert): (wasmFrameCountFromError): (i.catch): (assert.continuation): * wasm/function-tests/trap-store.js: Added. (import.Builder.from.string_appeared_here.assert): (i.catch): (assert.continuation): (assert): * wasm/js-api/test_memory_constructor.js: (assert): 2016-12-10 Commit Queue Unreviewed, rolling out r209653, r209654, r209663, and r209673. https://bugs.webkit.org/show_bug.cgi?id=165739 speedometer crashes (Requested by pizlo on #webkit). Reverted changesets: "JSVALUE64: Pass arguments in platform argument registers when making JavaScript calls" https://bugs.webkit.org/show_bug.cgi?id=160355 http://trac.webkit.org/changeset/209653 "Unreviewed build fix for 32 bit builds." http://trac.webkit.org/changeset/209654 "Unreviewed build fix for the CLOOP after r209653" http://trac.webkit.org/changeset/209663 "REGRESSION(r209653) Crash in CallFrameShuffler::snapshot()" https://bugs.webkit.org/show_bug.cgi?id=165728 http://trac.webkit.org/changeset/209673 2016-12-10 Michael Saboff REGRESSION(r209653) Crash in CallFrameShuffler::snapshot() https://bugs.webkit.org/show_bug.cgi?id=165728 Reviewed by Filip Pizlo. New regression test. * stress/regress-165728.js: Added. (sum1): (sum2): (tailCaller): (test): 2016-12-10 Keith Miller Fix indirect_call if the result type is used. https://bugs.webkit.org/show_bug.cgi?id=165727 Reviewed by Michael Saboff. * wasm/js-api/call-indirect-results.js: Added. (const.wasmModuleWhichImportJS): (MonomorphicImport): 2016-12-10 Yusuke Suzuki [JSC] Module namespace object behaves like immutable prototype exotic object https://bugs.webkit.org/show_bug.cgi?id=165598 Reviewed by Mark Lam. * modules/namespace-prototype-assignment.js: Added. (else): (reportError): (shouldEqual): (shouldThrow): (stringify): (makeTestID): (doInternalSetPrototypeOf): (ordinarySetPrototypeOf): (setImmutablePrototype): (windowProxySetPrototypeOf): (initSetterExpectation): (throwIfNoExceptionPending): (objectSetPrototypeOf): (setUnderscoreProto): (reflectSetPrototypeOf): (setPrototypeOf): (newObjectProto.toString): (Symbol): (test): (runTests): * modules/namespace-set-prototype-of.js: Added. (shouldThrow): (TypeError.Cannot.set prototype): 2016-12-09 Michael Saboff JSVALUE64: Pass arguments in platform argument registers when making JavaScript calls https://bugs.webkit.org/show_bug.cgi?id=160355 Reviewed by Filip Pizlo. New microbenchmarks to measure call type performance. * microbenchmarks/calling-computed-args.js: Added. * microbenchmarks/calling-many-callees.js: Added. * microbenchmarks/calling-one-callee-fixed.js: Added. * microbenchmarks/calling-one-callee.js: Added. * microbenchmarks/calling-poly-callees.js: Added. * microbenchmarks/calling-poly-extra-arity-callees.js: Added. * microbenchmarks/calling-tailcall.js: Added. * microbenchmarks/calling-virtual-arity-fixup-callees.js: Added. * microbenchmarks/calling-virtual-arity-fixup-stackargs.js: Added. * microbenchmarks/calling-virtual-callees.js: Added. * microbenchmarks/calling-virtual-extra-arity-callees.js: Added. 2016-12-09 Keith Miller Wasm should support call_indirect https://bugs.webkit.org/show_bug.cgi?id=165718 Reviewed by Filip Pizlo. * wasm/Builder.js: * wasm/function-tests/call-indirect-params.js: Added. * wasm/function-tests/call-indirect.js: Added. * wasm/js-api/call-indirect.js: Added. (const.wasmModuleWhichImportJS): (MonomorphicImport): (Polyphic2Import): (VirtualImport): * wasm/wasm.json: 2016-12-09 JF Bastien WebAssembly: implement data section https://bugs.webkit.org/show_bug.cgi?id=165696 Reviewed by Keith Miller. As specified in https://github.com/WebAssembly/design/blob/master/BinaryEncoding.md#data-section Note that some of the interesting corner cases are ill-defined by the spec: https://github.com/WebAssembly/design/issues/897 * wasm/Builder.js: create a data section from JavaScript * wasm/Builder_WebAssemblyBinary.js: assemble the data section into the proper binary encoding (const.emitters.Data): * wasm/js-api/test_Data.js: Added. (DataSection): (DataSectionOffTheEnd): (DataSectionPartlyOffTheEnd): (DataSectionEmptyOffTheEnd): (DataSectionSeenByStart): * wasm/self-test/test_BuilderJSON.js: make sure the JSON structure is fine (this sanity checks before going to binary) 2016-12-09 JF Bastien WebAssembly JS API: implement start function https://bugs.webkit.org/show_bug.cgi?id=165150 Reviewed by Saam Barati. * wasm/Builder.js: allow building a .Start() * wasm/Builder_WebAssemblyBinary.js: * wasm/js-api/test_Start.js: Added. (const.emitters.Start): serialize a start section * wasm/self-test/test_BuilderJSON.js: validate the start section's content 2016-12-09 Saam Barati WebAssembly JS API: implement importing and defining Memory https://bugs.webkit.org/show_bug.cgi?id=164134 Reviewed by Keith Miller. * wasm/Builder.js: (const._importMemoryContinuation.section): (const._importMemoryContinuation.assert): (const._importMemoryContinuation): (const._exportFunctionContinuation.const): Deleted. (const._exportFunctionContinuation): Deleted. * wasm/Builder_WebAssemblyBinary.js: (const.emitters.Import): * wasm/js-api/test_basic_api.js: (const.c.in.constructorProperties.switch): * wasm/js-api/test_memory.js: Added. (assert): (binaryShouldNotParse): (test): (test.testMemImportError): * wasm/js-api/test_memory_constructor.js: Added. (assert): (throw.new.Error): (testInvalidSize): (assert.testInvalidInitial): (testInvalidInitial.testInvalidMaximum): (testInvalidInitial): (testInvalidMaximum): * wasm/self-test/test_BuilderJSON.js: 2016-12-08 JF Bastien WebAssembly: JSC::link* shouldn't need a CodeBlock https://bugs.webkit.org/show_bug.cgi?id=165591 Reviewed by Keith Miller. test that wasm -> JS works, including the IC * wasm/js-api/test_Instance.js: (const.wasmModuleWhichImportJS): (MonomorphicImport): (Polyphic2Import): (Polyphic3Import): (VirtualImport): 2016-12-08 Filip Pizlo Green the cloop bot by raising this threshold. * mozilla/js1_5/Array/regress-101964.js: 2016-12-08 JF Bastien WebAssembly JS API: wire up Instance imports https://bugs.webkit.org/show_bug.cgi?id=165118 Reviewed by Saam Barati. * wasm/js-api/test_Instance.js: add the test, disabled for now 2016-12-07 Keith Miller Add more missing trivial wasm ops. https://bugs.webkit.org/show_bug.cgi?id=165564 Add tests for drop and tee_local. Reviewed by Geoffrey Garen. * wasm/function-tests/drop.js: Added. * wasm/function-tests/nop.js: Added. * wasm/function-tests/tee-local.js: Added. 2016-12-06 Keith Miller Add support for truncation operators https://bugs.webkit.org/show_bug.cgi?id=165519 Reviewed by Geoffrey Garen. * wasm/function-tests/i32-trunc-s-f32.js: Added. * wasm/function-tests/i32-trunc-s-f64.js: Added. * wasm/function-tests/i32-trunc-u-f32.js: Added. * wasm/function-tests/i32-trunc-u-f64.js: Added. * wasm/function-tests/i64-trunc-s-f32.js: Added. * wasm/function-tests/i64-trunc-s-f64.js: Added. * wasm/function-tests/i64-trunc-u-f32.js: Added. * wasm/function-tests/i64-trunc-u-f64.js: Added. 2016-12-06 Mark Lam Introduce the concept of Immutable Prototype Exotic Objects to comply with the spec. https://bugs.webkit.org/show_bug.cgi?id=165227 Reviewed by Saam Barati. * stress/get-from-scope-dynamic-onto-proxy.js: - Updated error message. * stress/proxy-dont-infinite-loop.js: Removed. * stress/proxy-json-path.js: Removed. * stress/rest-parameter-allocation-elimination-watchpoints-6.js: Removed. - Removed these tests because the issue they are testing relies on being able to set Object.prototype.__proto__ to something else (which is now not possible). 2016-12-05 Caitlin Potter [JSC] report unexpected token when "async" is followed by identifier https://bugs.webkit.org/show_bug.cgi?id=165091 Reviewed by Mark Lam. * stress/bug-165091.js: 2016-12-05 Keith Miller Add Wasm i64 to i32 conversion. https://bugs.webkit.org/show_bug.cgi?id=165378 Reviewed by Filip Pizlo. It turns out the wrap operation is just B3's Trunc. * wasm/wasm.json: 2016-12-04 Keith Miller Add support for Wasm ctz and popcnt https://bugs.webkit.org/show_bug.cgi?id=165369 Reviewed by Saam Barati. * wasm/function-tests/ctz.js: Added. * wasm/function-tests/popcnt.js: Added. 2016-12-03 JF Bastien WebAssembly: update binary format to 0xD version https://bugs.webkit.org/show_bug.cgi?id=165345 Reviewed by Keith Miller. As described in the following PR: https://github.com/WebAssembly/design/pull/836 Originally committed in r209175, reverted in r209242, and fixed in r209284. * wasm/Builder.js: (const._normalizeFunctionSignature): * wasm/Builder_WebAssemblyBinary.js: (const.emitters.Type): (const.emitters.Code): * wasm/LowLevelBinary.js: (export.default.LowLevelBinary.prototype.block_type): (export.default.LowLevelBinary.prototype.inline_signature_type): Deleted. * wasm/WASM.js: * wasm/js-api/test_basic_api.js: * wasm/self-test/test_BuilderWebAssembly.js: (EmptyModule): (CustomSection): * wasm/self-test/test_WASM.js: * wasm/wasm.json: 2016-12-02 Keith Miller Add Wasm copysign https://bugs.webkit.org/show_bug.cgi?id=165355 Reviewed by Filip Pizlo. * wasm/function-tests/copysign.js: Added. 2016-12-03 Commit Queue Unreviewed, rolling out r209298. https://bugs.webkit.org/show_bug.cgi?id=165359 broke the build (Requested by smfr on #webkit). Reverted changeset: "Add Wasm copysign" https://bugs.webkit.org/show_bug.cgi?id=165355 http://trac.webkit.org/changeset/209298 2016-12-02 Keith Miller Add Wasm copysign https://bugs.webkit.org/show_bug.cgi?id=165355 Reviewed by Filip Pizlo. * wasm/function-tests/copysign.js: Added. 2016-12-02 Keith Miller Unreviewed, fix git having a breakdown over trying to reland a rollout. 2016-12-02 Keith Miller Add Wasm floating point nearest and trunc https://bugs.webkit.org/show_bug.cgi?id=165339 Reviewed by Saam Barati. * wasm/function-tests/nearest.js: Added. * wasm/function-tests/trunc.js: Added. 2016-12-02 Caitlin Potter [JSC] add additional bit to JSTokenType bitfield https://bugs.webkit.org/show_bug.cgi?id=165091 Reviewed by Geoffrey Garen. * stress/bug-165091.js: Added. (shouldThrowSyntaxError): 2016-12-02 Commit Queue Unreviewed, rolling out r209275 and r209276. https://bugs.webkit.org/show_bug.cgi?id=165348 "broke the arm build" (Requested by keith_miller on #webkit). Reverted changesets: "Add Wasm floating point nearest and trunc" https://bugs.webkit.org/show_bug.cgi?id=165339 http://trac.webkit.org/changeset/209275 "Unreviewed, forgot to change instruction after renaming." http://trac.webkit.org/changeset/209276 2016-12-02 Keith Miller Add Wasm floating point nearest and trunc https://bugs.webkit.org/show_bug.cgi?id=165339 Reviewed by Filip Pizlo. * wasm/function-tests/nearest.js: Added. * wasm/function-tests/trunc.js: Added. 2016-12-02 JF Bastien WebAssembly: revert patch causing odd breakage https://bugs.webkit.org/show_bug.cgi?id=165308 Unreviewed. Bug #164724 seems to cause build issues which I haven't tracked down yet. WasmOps.h can't be found: ./Source/JavaScriptCore/wasm/WasmFormat.h:34:10: fatal error: 'WasmOps.h' file not found It's weird since the file is auto-generated and has been for a while. #164724 merely includes it in WasmFormat.h. * wasm/Builder.js: (const._normalizeFunctionSignature): * wasm/Builder_WebAssemblyBinary.js: (const.emitters.Type): (const.emitters.Code): * wasm/LowLevelBinary.js: (export.default.LowLevelBinary.prototype.inline_signature_type): (export.default.LowLevelBinary.prototype.block_type): Deleted. * wasm/WASM.js: * wasm/js-api/test_basic_api.js: * wasm/self-test/test_BuilderWebAssembly.js: (EmptyModule): (CustomSection): * wasm/self-test/test_WASM.js: * wasm/wasm.json: 2016-12-01 Ryan Haddad Skip flaky test ChakraCore/test/fieldopts/objtypespec-newobj-invalidation.1.js https://bugs.webkit.org/show_bug.cgi?id=162567 Reviewed by Saam Barati. * ChakraCore.yaml: 2016-12-01 Keith Miller Add wasm int to floating point opcodes https://bugs.webkit.org/show_bug.cgi?id=165252 Reviewed by Geoffrey Garen. Add tests for Wasm integral to floating point conversion opcodes. * wasm/function-tests/int-to-floating-point.js: Added. * wasm/wasm.json: 2016-12-01 Geoffrey Garen Land a test case for https://bugs.webkit.org/show_bug.cgi?id=165272 Reviewed by Saam Barati. * stress/marked-argument-buffer.js: Added. (allocate): (test.o.toString): (test): 2016-11-29 Per Arne Vollan [Win] Skip failing JSC tests. https://bugs.webkit.org/show_bug.cgi?id=165140 Reviewed by Mark Lam. * ChakraCore.yaml: * microbenchmarks/tan.js: 2016-11-30 JF Bastien WebAssembly builder: don't throw when checker not implemented https://bugs.webkit.org/show_bug.cgi?id=165219 Reviewed by Mark Lam. We should perform whichever checks we've implemented, and assume the rest are OK until bug #163421 is fixed. * wasm/Builder.js: * wasm/README.md: * wasm/function-tests/add-12.js: * wasm/function-tests/br-if-loop-less-than.js: * wasm/function-tests/brTableAsIf.js: * wasm/function-tests/brTableManyValues.js: * wasm/function-tests/brTableWithLoop.js: * wasm/function-tests/dumb-eq-if-then-else.js: * wasm/function-tests/dumb-less-than-fallthrough.js: * wasm/function-tests/dumb-less-than-ite.js: * wasm/function-tests/eqz.js: * wasm/function-tests/factorial.js: * wasm/function-tests/float-sub.js: * wasm/function-tests/i32-load.js: * wasm/function-tests/i32-load8-s.js: * wasm/function-tests/if-then-else-fallthrough.js: * wasm/function-tests/if-then-fallthrough.js: * wasm/function-tests/loop-mult.js: * wasm/function-tests/loop-sum.js: * wasm/function-tests/max.js: * wasm/function-tests/min.js: * wasm/function-tests/ret5.js: * wasm/function-tests/select.js: * wasm/self-test/test_BuilderJSON.js: 2016-11-29 JF Bastien WebAssembly JS API: improve Instance https://bugs.webkit.org/show_bug.cgi?id=164757 Reviewed by Keith Miller. An Instance's `exports` property wasn't populated with exports. A follow-up patch will do imports. A few things of note: - LowLevelBinary: support 3-byte integers. - LowLevelBinary: support proper UTF-8 2003 code points (instead of UTF-16). * wasm/Builder.js: * wasm/Builder_WebAssemblyBinary.js: wire up exports, stub other things out some more (const.emitters.Export): * wasm/LowLevelBinary.js: (export.default.LowLevelBinary.prototype.uint24): add, used for UTF-8 (export.default.LowLevelBinary.prototype.string): support UTF-8 (export.default.LowLevelBinary.prototype.getUint24): add, used for UTF-8 (export.default.LowLevelBinary.prototype.getVaruint1): was missing (export.default.LowLevelBinary.prototype.getString): support UTF-8 (export.default.LowLevelBinary): * wasm/js-api/test_Instance.js: instance.exports.answer() // <-- this is where the magic of this entire patch is (ExportedAnswerI32): * wasm/js-api/test_basic_api.js: punt test to later (const.c.in.constructorProperties.switch): * wasm/self-test/test_BuilderWebAssembly.js: UTF-8 (CustomSection): * wasm/self-test/test_LowLevelBinary_string.js: UTF-8 now works * wasm/self-test/test_LowLevelBinary_uint16.js: was missing one value * wasm/self-test/test_LowLevelBinary_uint24.js: Copied from JSTests/wasm/self-test/test_LowLevelBinary_uint8.js. * wasm/self-test/test_LowLevelBinary_uint8.js: was missing one value * wasm/self-test/test_LowLevelBinary_varuint1.js: Added. * wasm/utilities.js: this `dump` thing was useful (const._dump): 2016-11-29 Saam Barati We should be able optimize the pattern where we spread a function's rest parameter to another call https://bugs.webkit.org/show_bug.cgi?id=163865 Reviewed by Filip Pizlo. * microbenchmarks/default-derived-constructor.js: Added. (createClassHierarchy.let.currentClass): (createClassHierarchy): * stress/call-varargs-spread.js: Added. (assert): (bar): (foo): * stress/load-varargs-on-new-array-with-spread-convert-to-static-loads.js: Added. (assert): (baz): (bar): (foo): * stress/new-array-with-spread-with-normal-spread-and-phantom-spread.js: Added. (assert): (foo): (escape): (bar): * stress/phantom-new-array-with-spread-osr-exit.js: Added. (assert): (baz): (bar): (effects): (foo): * stress/phantom-spread-forward-varargs.js: Added. (assert): (test1.bar): (test1.foo): (test1): (test2.bar): (test2.foo): (test3.baz): (test3.bar): (test3.foo): (test4.baz): (test4.bar): (test4.foo): (test5.baz): (test5.bar): (test5.foo): * stress/phantom-spread-osr-exit.js: Added. (assert): (baz): (bar): (effects): (foo): * stress/spread-call-convert-to-static-call.js: Added. (assert): (baz): (bar): (foo): * stress/spread-forward-call-varargs-stack-overflow.js: Added. (assert): (identity): (bar): (foo): * stress/spread-forward-varargs-rest-parameter-change-iterator-protocol-2.js: Added. (assert): (baz.Array.prototype.Symbol.iterator): (baz): (bar): (foo): (test): * stress/spread-forward-varargs-rest-parameter-change-iterator-protocol.js: Added. (assert): (baz.Array.prototype.Symbol.iterator): (baz): (bar): (foo): * stress/spread-forward-varargs-stack-overflow.js: Added. (assert): (bar): (foo): 2016-11-29 Caitlin Potter [JSC] always wrap AwaitExpression operand in a new Promise https://bugs.webkit.org/show_bug.cgi?id=165181 Reviewed by Yusuke Suzuki. * stress/async-await-basic.js: (async.awaitedPromisesAreWrapped): 2016-11-29 Keith Miller Add simple way to implement Wasm ops that require more than one B3 opcode https://bugs.webkit.org/show_bug.cgi?id=165129 Reviewed by Geoffrey Garen. * wasm/function-tests/eqz.js: Added. * wasm/function-tests/max.js: Added. * wasm/function-tests/min.js: Added. * wasm/wasm.json: 2016-11-21 Yusuke Suzuki Crash in com.apple.JavaScriptCore: WTF::ThreadSpecific [JSC] speed up parsing of async functions https://bugs.webkit.org/show_bug.cgi?id=164808 Reviewed by Yusuke Suzuki. Add tests for line terminator following "async" keyword in async function syntax. * stress/async-await-syntax.js: (shouldBe): 2016-11-19 Mark Lam op_mod-* JSC tests needs a longer timeout too. https://bugs.webkit.org/show_bug.cgi?id=164994 Reviewed by Yusuke Suzuki. * stress/op_mod-ConstVar.js: * stress/op_mod-VarConst.js: * stress/op_mod-VarVar.js: 2016-11-19 Mark Lam Add --timeoutMultiplier option to allow some tests more time to run. https://bugs.webkit.org/show_bug.cgi?id=164951 Reviewed by Yusuke Suzuki. Extended the timeout for these tests by 50% more because they run quite slow on low-end machines. * stress/op_div-ConstVar.js: * stress/op_div-VarConst.js: * stress/op_div-VarVar.js: 2016-11-18 Yusuke Suzuki REGRESSION(r208867): JSC test failure: ChakraCore.yaml/ChakraCore/test/strict/05.arguments_sm.js.default https://bugs.webkit.org/show_bug.cgi?id=164929 Reviewed by Mark Lam. ES2017 drops arguments.caller and JavaScriptCore is updated to meet the spec. This patch rebaselines the result of ChakraCore test for JSC. * ChakraCore/test/strict/05.arguments_sm.baseline-jsc: 2016-11-18 Joseph Pecoraro Web Inspector: Generator functions should have a displayable name when shown in stack traces https://bugs.webkit.org/show_bug.cgi?id=164844 Reviewed by Yusuke Suzuki. * stress/generator-function-name.js: Add another test now that we name the inner generator function that we do not break the lexical resolution of names. 2016-11-17 Yusuke Suzuki [JSC] Drop arguments.caller https://bugs.webkit.org/show_bug.cgi?id=164859 Reviewed by Saam Barati. * stress/strict-mode-arguments-caller.js: Added. (strictArguments): (shouldBe): 2016-11-17 Keith Miller Add rotate to Wasm https://bugs.webkit.org/show_bug.cgi?id=164871 Reviewed by Filip Pizlo. * wasm/wasm.json: 2016-11-17 Keith Miller Add sqrt to Wasm https://bugs.webkit.org/show_bug.cgi?id=164877 Reviewed by Mark Lam. B3 already has a Sqrt opcode we just need to map Wasm to it. * wasm/wasm.json: 2016-11-17 Saam Barati Remove async/await compile time flag and enable tests https://bugs.webkit.org/show_bug.cgi?id=164828 Reviewed by Yusuke Suzuki. * stress/async-arrow-functions-lexical-arguments-binding.js: * stress/async-arrow-functions-lexical-new.target-binding.js: * stress/async-arrow-functions-lexical-super-binding.js: * stress/async-arrow-functions-lexical-this-binding.js: * stress/async-await-basic.js: * stress/async-await-long-loop.js: * stress/async-await-module-reserved-word.js: * stress/async-await-mozilla.js: (mozSyntaxErrors): * stress/async-await-reserved-word.js: * stress/async-await-syntax.js: * stress/async-await-throw-loop.js: * stress/async-function-create-nobaseline.js: * stress/async-function-create-optimized.js: * stress/async-function-declaration-sinking-no-double-allocate.js: * stress/async-function-declaration-sinking-osrexit.js: * stress/async-function-declaration-sinking-put.js: * stress/async-function-expression-sinking-no-double-allocate.js: * stress/async-function-expression-sinking-osrexit.js: * stress/async-function-expression-sinking-put.js: * test262.yaml: 2016-11-15 Mark Lam Make JSC test functions more robust. https://bugs.webkit.org/show_bug.cgi?id=164807 Reviewed by Keith Miller. * stress/jsc-test-functions-should-be-more-robust.js: Added. 2016-11-15 Keith Miller B3 should support UDiv/UMod https://bugs.webkit.org/show_bug.cgi?id=164811 Reviewed by Filip Pizlo. Link new instructions to wasm. * wasm/wasm.json: 2016-11-15 Saam Barati Debug JSC test timeout: stress/has-own-property-name-cache-symbols-and-strings.js.ftl-no-cjit-small-pool https://bugs.webkit.org/show_bug.cgi?id=163012 Unreviewed. This patch makes a test run for less time because it's timing out on the bots. * stress/has-own-property-name-cache-symbols-and-strings.js: 2016-11-15 Mark Lam The jsc shell's setImpureGetterDelegate() should ensure that the set value is an ImpureGetter. https://bugs.webkit.org/show_bug.cgi?id=164781 Reviewed by Geoffrey Garen and Michael Saboff. * stress/jsc-setImpureGetterDelegate-on-bad-type.js: Added. 2016-11-15 Yusuke Suzuki [DOMJIT] Allow using macro assembler scratches in FTL CheckDOM https://bugs.webkit.org/show_bug.cgi?id=164727 Reviewed by Filip Pizlo. * stress/check-dom-with-signature.js: Added. (shouldBe): (calling): (i.array.forEach): 2016-11-14 Caitlin Potter [JSC] do not reference AwaitExpression Promises in async function Promise chain https://bugs.webkit.org/show_bug.cgi?id=164753 Reviewed by Yusuke Suzuki. * asyncFunctionTests.yaml: * stress/async-await-long-loop.js: Added. (shouldBe): (async.longLoop): * stress/async-await-throw-loop.js: Added. (shouldBe): (async.thrower): (async.throwLoop): 2016-11-14 Keith Miller Add Wasm select https://bugs.webkit.org/show_bug.cgi?id=164743 Reviewed by Saam Barati. * wasm/function-tests/select.js: Added. 2016-11-14 Caitlin Potter [JSC] Handle new_async_func / new_async_func_exp in DFG / FTL https://bugs.webkit.org/show_bug.cgi?id=164037 Reviewed by Yusuke Suzuki. Add tests based on tests from https://trac.webkit.org/changeset/194216. * asyncFunctionTests.yaml: * stress/async-function-create-nobaseline.js: Added. * stress/async-function-create-optimized.js: Added. * stress/async-function-declaration-sinking-no-double-allocate.js: Added. * stress/async-function-declaration-sinking-osrexit.js: Added. * stress/async-function-declaration-sinking-put.js: Added. * stress/async-function-expression-sinking-no-double-allocate.js: Added. * stress/async-function-expression-sinking-osrexit.js: Added. * stress/async-function-expression-sinking-put.js: Added. 2016-11-14 Mark Lam Some of JSStringView::SafeView methods are not idiomatically safe for JSString to StringView conversions. https://bugs.webkit.org/show_bug.cgi?id=164701 Reviewed by Darin Adler. * stress/string-prototype-charCodeAt-on-too-long-rope.js: Added. 2016-11-14 Mark Lam RegExpObject::exec/match should handle errors gracefully. https://bugs.webkit.org/show_bug.cgi?id=155145 Reviewed by Keith Miller. * stress/regexp-prototype-exec-on-too-long-rope.js: Added. * stress/regexp-prototype-match-on-too-long-rope.js: Added. * stress/regexp-prototype-test-on-too-long-rope.js: Added. 2016-11-14 Mark Lam Enhance run-jsc-stress-test script to allow optional test specific options to be added for all test run configurations. https://bugs.webkit.org/show_bug.cgi?id=164695 Reviewed by Keith Miller. Replace use of runMisc* test run configurations with equivalents. * stress/licm-no-pre-header-nested.js: * stress/licm-no-pre-header.js: * stress/licm-pre-header-cannot-exit-nested.js: * stress/licm-pre-header-cannot-exit.js: * stress/make-dictionary-repatch.js: * stress/retry-cache-later.js: * stress/shadow-chicken-reading-from-scope-after-ftl-osr-exit-bytecode-liveness.js: * stress/slow-path-generator-updating-current-node-dfg.js: * stress/unshift-array-storage.js: 2016-11-11 Joseph Pecoraro test262: DataView with explicit undefined byteLength should be the same as it not being present https://bugs.webkit.org/show_bug.cgi?id=164453 Reviewed by Darin Adler. * stress/dataview-construct.js: Added. (assert): (shouldThrow): * test262.yaml: 2016-11-11 Joseph Pecoraro test262: DataView get methods should allow for missing offset, set methods should allow for missing value https://bugs.webkit.org/show_bug.cgi?id=164451 Reviewed by Darin Adler. * test262.yaml: 2016-11-11 Saam Barati We should have a more concise way of determining when we're varargs calling a function using rest parameters https://bugs.webkit.org/show_bug.cgi?id=164258 Reviewed by Yusuke Suzuki. * microbenchmarks/call-using-spread.js: Added. (bar): (foo): * microbenchmarks/spread-large-array.js: Added. (foo): (arrays.push): * microbenchmarks/spread-small-array.js: Added. (foo): * stress/spread-array-iterator-watchpoint-2.js: Added. (foo): (arrayIterator.next): * stress/spread-array-iterator-watchpoint.js: Added. (foo): (Array.prototype.Symbol.iterator): * stress/spread-non-array.js: Added. (assert): (foo): (let.customIterator.Symbol.iterator): (bar): 2016-11-11 Keith Miller Relocate wasm tests and actually add them to the test runner https://bugs.webkit.org/show_bug.cgi?id=164668 Reviewed by Yusuke Suzuki. This moves the Wasm tests from their current location down a level. Without relocating, the tests cannot properly be run by the wasm test runner. * wasm.yaml: * wasm/Builder.js: Fix typos, yay lazy synatx checking! * wasm/LowLevelBinary.js: Fix typos, yay lazy synatx checking! (export.default.LowLevelBinary.prototype.get return): * wasm/function-tests/add-12.js: Renamed from JSTests/wasm/js-api/function-tests/add-12.js. * wasm/function-tests/br-if-loop-less-than.js: Renamed from JSTests/wasm/js-api/function-tests/br-if-loop-less-than.js. * wasm/function-tests/brTableAsIf.js: Renamed from JSTests/wasm/js-api/function-tests/brTableAsIf.js. * wasm/function-tests/brTableManyValues.js: Renamed from JSTests/wasm/js-api/function-tests/brTableManyValues.js. * wasm/function-tests/brTableWithLoop.js: Renamed from JSTests/wasm/js-api/function-tests/brTableWithLoop.js. * wasm/function-tests/dumb-eq-if-then-else.js: Renamed from JSTests/wasm/js-api/function-tests/dumb-eq-if-then-else.js. * wasm/function-tests/dumb-less-than-fallthrough.js: Renamed from JSTests/wasm/js-api/function-tests/dumb-less-than-fallthrough.js. * wasm/function-tests/dumb-less-than-ite.js: Renamed from JSTests/wasm/js-api/function-tests/dumb-less-than-ite.js. * wasm/function-tests/factorial.js: Renamed from JSTests/wasm/js-api/function-tests/factorial.js. * wasm/function-tests/float-sub.js: Renamed from JSTests/wasm/js-api/function-tests/float-sub.js. * wasm/function-tests/i32-load.js: Renamed from JSTests/wasm/js-api/function-tests/i32-load.js. * wasm/function-tests/i32-load8-s.js: Renamed from JSTests/wasm/js-api/function-tests/i32-load8-s.js. * wasm/function-tests/if-then-else-fallthrough.js: Renamed from JSTests/wasm/js-api/function-tests/if-then-else-fallthrough.js. * wasm/function-tests/if-then-fallthrough.js: Renamed from JSTests/wasm/js-api/function-tests/if-then-fallthrough.js. * wasm/function-tests/loop-mult.js: Renamed from JSTests/wasm/js-api/function-tests/loop-mult.js. * wasm/function-tests/loop-sum.js: Renamed from JSTests/wasm/js-api/function-tests/loop-sum.js. * wasm/function-tests/ret5.js: Renamed from JSTests/wasm/js-api/function-tests/ret5.js. * wasm/self-test/test_BuilderJSON.js: Rebasline 2016-11-11 Keith Miller Move Wasm tests to JS https://bugs.webkit.org/show_bug.cgi?id=164611 Reviewed by Geoffrey Garen. This patch translates most of the tests from testWasm.cpp to the JS testing api. Most of the ommited tests were earliest tests, which tested trivial things, like adding two constants. Some tests are ommited for other reasons, however. These are: 1) Tests using I64 since the testing api does not yet know how to handle 64-bit numbers. 2) Tests that would validate the memory of the module once wasm was done with it since that's not really possible in JS. In order to make such a translation easier this patch also adds some features to the JS testing api: 1) Blocks can now be done lexically by adding a lambda as the last argument of the block opcode. For example one can do: ... .Block("i32", b => b.I32Const(1) ) and the nested lambda will automatically have an end attached. 2) The JS testing api can now handle inline signature types. 3) Relocate some code to make it easier to follow and prevent 44 space indentation. 4) Rename varuint/varint to varuint32/varint32, this lets them be directly called from the wasm.json without being remapped. 5) Add support for Memory and Function sections to the Builder. 6) Add support for local variables. On the JSC side, we needed to expose a new function to validate the compiled wasm code behaves the way we expect. At least until the JS Wasm API is finished. The new validation function, testWasmModuleFunctions, takes an array buffer containing the wasm binary, the number of functions in the blob and tests for each of those functions. * wasm/Builder.js: (const._maybeRegisterType): (const): Deleted. (switch.typeof): Deleted. * wasm/Builder_WebAssemblyBinary.js: (const.emitters.Type): (const.emitters.Import): (const.emitters.Function): (const.emitters.Memory): (const.emitters.Code): (export.const.Binary): * wasm/LowLevelBinary.js: (export.default.LowLevelBinary.prototype.get return): (export.default.LowLevelBinary.prototype.varuint32): (export.default.LowLevelBinary.prototype.varint32): (export.default.LowLevelBinary.prototype.varuint1): (export.default.LowLevelBinary.prototype.varint7): (export.default.LowLevelBinary.prototype.varuint7): (export.default.LowLevelBinary.prototype.inline_signature_type): (export.default.LowLevelBinary.prototype.string): (export.default.LowLevelBinary.prototype.getVaruint32): (export.default.LowLevelBinary.prototype.getVarint32): (export.default.LowLevelBinary.prototype.getVaruint7): (export.default.LowLevelBinary.prototype.getString): (export.default.LowLevelBinary): (export.default.LowLevelBinary.prototype.varuint): Deleted. (export.default.LowLevelBinary.prototype.varint): Deleted. (export.default.LowLevelBinary.prototype.getVaruint): Deleted. (export.default.LowLevelBinary.prototype.getVarint): Deleted. * wasm/js-api/test_old_tests.js: Added. (ret5): (brTableWithLoop): (brTableManyValues): (run.brTableManyValues.brTableAsIf): (ifThenFallthrough): (ifThenElseFallthrough): (dumbLessThanFallthrough): (run.dumbLessThanFallthrough.floatSub): (run.floatSub.add12): (run.add12.factorial): (i32load): (run.i32load.i32load8s): (run.i32load8s.dumbEqIfThenElse): (run.dumbEqIfThenElse.dumbEqIfThenElse): (run.dumbEqIfThenElse.dumbLessThanIfThenElse): (run.dumbLessThanIfThenElse.loopSum): (run.loopSum.loopMult): (brIfLoopLessThan): (run.brIfLoopLessThan.run): * wasm/self-test/test_LowLevelBinary_varint32.js: Renamed from JSTests/wasm/self-test/test_LowLevelBinary_varint.js. * wasm/self-test/test_LowLevelBinary_varuint32.js: Renamed from JSTests/wasm/self-test/test_LowLevelBinary_varuint.js. * wasm/Builder.js: (const._maybeRegisterType): (const): Deleted. (switch.typeof): Deleted. * wasm/Builder_WebAssemblyBinary.js: (const.emitters.Type): (const.emitters.Import): (const.emitters.Function): (const.emitters.Memory): (const.emitters.Code): (export.const.Binary): * wasm/LowLevelBinary.js: (export.default.LowLevelBinary.prototype.get return): (export.default.LowLevelBinary.prototype.varuint32): (export.default.LowLevelBinary.prototype.varint32): (export.default.LowLevelBinary.prototype.varuint1): (export.default.LowLevelBinary.prototype.varint7): (export.default.LowLevelBinary.prototype.varuint7): (export.default.LowLevelBinary.prototype.inline_signature_type): (export.default.LowLevelBinary.prototype.string): (export.default.LowLevelBinary.prototype.getVaruint32): (export.default.LowLevelBinary.prototype.getVarint32): (export.default.LowLevelBinary.prototype.getVaruint7): (export.default.LowLevelBinary.prototype.getString): (export.default.LowLevelBinary): (export.default.LowLevelBinary.prototype.varuint): Deleted. (export.default.LowLevelBinary.prototype.varint): Deleted. (export.default.LowLevelBinary.prototype.getVaruint): Deleted. (export.default.LowLevelBinary.prototype.getVarint): Deleted. * wasm/js-api/function-tests/add-12.js: Added. * wasm/js-api/function-tests/br-if-loop-less-than.js: Added. * wasm/js-api/function-tests/brTableAsIf.js: Added. * wasm/js-api/function-tests/brTableManyValues.js: Added. * wasm/js-api/function-tests/brTableWithLoop.js: Added. * wasm/js-api/function-tests/dumb-eq-if-then-else.js: Added. * wasm/js-api/function-tests/dumb-less-than-fallthrough.js: Added. * wasm/js-api/function-tests/dumb-less-than-ite.js: Added. * wasm/js-api/function-tests/factorial.js: Added. * wasm/js-api/function-tests/float-sub.js: Added. * wasm/js-api/function-tests/i32-load.js: Added. * wasm/js-api/function-tests/i32-load8-s.js: Added. * wasm/js-api/function-tests/if-then-else-fallthrough.js: Added. * wasm/js-api/function-tests/if-then-fallthrough.js: Added. * wasm/js-api/function-tests/loop-mult.js: Added. * wasm/js-api/function-tests/loop-sum.js: Added. * wasm/js-api/function-tests/ret5.js: Added. * wasm/self-test/test_LowLevelBinary_varint32.js: Renamed from JSTests/wasm/self-test/test_LowLevelBinary_varint.js. * wasm/self-test/test_LowLevelBinary_varuint32.js: Renamed from JSTests/wasm/self-test/test_LowLevelBinary_varuint.js. 2016-11-11 Saam Barati We recursively grab a lock in the DFGBytecodeParser causing us to deadlock https://bugs.webkit.org/show_bug.cgi?id=164650 Reviewed by Geoffrey Garen. * stress/dont-dead-lock-put-by-val-as-put-by-id.js: Added. (ident): (let.o.set foo): (foo): 2016-11-11 Chris Dumez Unreviewed, rolling out r208584. Seems to have regressed Speedometer by 1% on Mac Reverted changeset: "We should have a more concise way of determining when we're varargs calling a function using rest parameters" https://bugs.webkit.org/show_bug.cgi?id=164258 http://trac.webkit.org/changeset/208584 2016-11-11 Chris Dumez Unreviewed, rolling out r208117 and r208160. Regressed Speedometer by >1.5% Reverted changesets: "We should have a way of profiling when a get_by_id is pure and to emit a PureGetById in the DFG/FTL" https://bugs.webkit.org/show_bug.cgi?id=163305 http://trac.webkit.org/changeset/208117 "Debug JSC test microbenchmarks/pure-get-by-id-cse-2.js timing out" https://bugs.webkit.org/show_bug.cgi?id=164227 http://trac.webkit.org/changeset/208160 2016-11-11 Saam Barati We should have a more concise way of determining when we're varargs calling a function using rest parameters https://bugs.webkit.org/show_bug.cgi?id=164258 Reviewed by Yusuke Suzuki. * microbenchmarks/call-using-spread.js: Added. (bar): (foo): * microbenchmarks/spread-large-array.js: Added. (foo): (arrays.push): * microbenchmarks/spread-small-array.js: Added. (foo): * stress/spread-array-iterator-watchpoint-2.js: Added. (foo): (arrayIterator.next): * stress/spread-array-iterator-watchpoint.js: Added. (foo): (Array.prototype.Symbol.iterator): * stress/spread-non-array.js: Added. (assert): (foo): (let.customIterator.Symbol.iterator): (bar): 2016-11-10 Mark Lam Fix broken have-a-bad-time-with-arguments.js test. https://bugs.webkit.org/show_bug.cgi?id=164626 Reviewed by Filip Pizlo. But also saved a copy of the broken one as broken-have-a-bad-time-with-arguments-for-gc-testing.js because coincidentally, it stresses the GC in ways that help reveal bugs. * stress/broken-have-a-bad-time-with-arguments-for-gc-testing.js: Added. (testFunction): (warmupFunction): (let.argsDeclIndex.in.argumentsDecls.let.indexToReturnIndex.in.indicesToReturn.let.insertElementActionIndex.in.insertElementActions.let.tierWarmupCountIndex.in.tierWarmupCounts.let.testArgsIndex.in.testArgsList.catch): * stress/have-a-bad-time-with-arguments.js: 2016-11-10 JF Bastien ASSERTION FAILED: length > offset encountered with wasm.yaml/wasm/js-api/test_Module.js.default-wasm https://bugs.webkit.org/show_bug.cgi?id=164597 Reviewed by Keith Miller. Trim the array buffer before returning it: it's optimistically over-allocated to avoid growing all the time, but when parsed it can't have extra content. * wasm/Builder_WebAssemblyBinary.js: (export.const.Binary): * wasm/LowLevelBinary.js: (export.default.LowLevelBinary.prototype.get return): 2016-11-10 Joseph Pecoraro test262: DataView / TypedArray methods should throw RangeErrors for negative numbers (ToIndex) https://bugs.webkit.org/show_bug.cgi?id=164450 Reviewed by Darin Adler. * stress/dataview-typedarray-toindex.js: Added. Tests for all cases where ToIndex should be used. * test262.yaml: New passing tests. 2016-11-10 Mark Lam Graph::methodOfGettingAValueProfileFor() should be returning the profile for the operand node. https://bugs.webkit.org/show_bug.cgi?id=164600 Reviewed by Filip Pizlo. * stress/osr-exit-on-op-negate-should-no-fail-assertions.js: Added. 2016-11-08 Yusuke Suzuki [JSC] Avoid cloned arguments allocation in ArrayPrototype methods https://bugs.webkit.org/show_bug.cgi?id=164502 Reviewed by Saam Barati. * stress/argument-intrinsic-basic.js: Added. (shouldBe): (builtin.createBuiltin): * stress/argument-intrinsic-inlining-with-result-escape.js: Added. (shouldBe): (builtin.createBuiltin): (escape): * stress/argument-intrinsic-nested-inlining.js: Added. (shouldBe): (builtin.createBuiltin): (builtinCaller1): (builtinCaller2): (escape): * stress/argument-intrinsic-not-convert-to-get-argument.js: Added. (shouldBe): (builtin.createBuiltin): * stress/argument-intrinsic-with-stack-write.js: Added. (shouldBe): (builtin.createBuiltin): 2016-11-09 Saam Barati Math.min()/Math.max() with no arguments is lowered incorrectly in the BytecodeParser https://bugs.webkit.org/show_bug.cgi?id=164464 Reviewed by Darin Adler. * stress/math-max-min-no-arguments.js: Added. (assert): (min): (max): (test): 2016-11-09 Saam Barati TypeProfiler and running GC collection on another thread don't play nicely with each other https://bugs.webkit.org/show_bug.cgi?id=164441 Reviewed by Geoffrey Garen. * typeProfiler/type-profiler-gc.js: Added. (bar): (foo): 2016-11-04 Mark Lam Error description code should be able to handle Symbol values. https://bugs.webkit.org/show_bug.cgi?id=164436 Reviewed by Filip Pizlo and Saam Barati. * stress/error-description-on-symbols-should-not-crash.js: Added. 2016-11-03 Geoffrey Garen EvalCodeCache should not give up in strict mode and other cases https://bugs.webkit.org/show_bug.cgi?id=164357 Reviewed by Michael Saboff. * microbenchmarks/eval-cached.js: Added. 45x faster now. * stress/eval-cached.js: Added. Try running the same eval text in a bunch of different scopes and verify that we access the right scope. 2016-11-04 JF Bastien WebAssembly JS API: implement more sections https://bugs.webkit.org/show_bug.cgi?id=164023 Reviewed by Keith Miller. On the JSC side: - Put in parser stubs for all WebAssembly sections. - Parse Import, Export sections. - Use tryReserveCapacity instead of reserve, and bail out of the parser if it fails. This prevents the parser from bringing everything down when faced with a malicious input. - Encapsulate all parsed module information into its own structure, making it easier to pass around (from parser to Plan to Module to Instance). - Create WasmFormat.cpp to hold parsed module information's dtor to avoid including WasmMemory.h needlessly. - parseCode: avoid overflow through function size. - Remove all remainders of polyfill-prototype-1, and update license. - Add missing WasmOps.h and WasmValidateInlines.h auto-generation for cmake build. On the Builder.js testing side: - Implement Type, Import (function only), Export (function only) sections. - Check section order and uniqueness. - Optionally auto-generate the Type section from subsequent Export / Import / Code entries. - Allow re-exporting an import. * wasm/Builder.js: build type, import, and export sections (const._normalizeFunctionSignature): * wasm/Builder_WebAssemblyBinary.js: Added. Forked from Builder.js (const.emitters.Type): (const.emitters.Import): (const.emitters.Function): (const.emitters.Table): (const.emitters.Memory): (const.emitters.Global): (const.emitters.Export): (const.emitters.Start): (const.emitters.Element): (const.emitters.Code): (const.emitters.Data): (export.const.Binary): * wasm/LowLevelBinary.js: Add a few useful outputs (export.default.LowLevelBinary.prototype.varuint1): (export.default.LowLevelBinary.prototype.varint7): * wasm/WASM.js: value type and external kind helpers * wasm/assert.js: array element-wise equality comparison (const._eq): * wasm/js-api/test_Module.js: (ModuleWithImports): * wasm/self-test/test_BuilderJSON.js: many more tests for all the new Builder APIs, and update to some older tests which now require a Type section or rejiggered Function signature (const.assertOpThrows): (SectionsWithSameCustomName): (TwoTypeSections): (EmptyImportSection): (ImportBeforeTypeSections): * wasm/self-test/test_BuilderWebAssembly.js: remove a test which wasn't helpful and is now obsolete (CustomSection): 2016-11-03 Mark Lam ClonedArguments need to also support haveABadTime mode. https://bugs.webkit.org/show_bug.cgi?id=164200 Reviewed by Geoffrey Garen. * stress/have-a-bad-time-with-arguments.js: Added. 2016-11-03 Filip Pizlo DFG plays fast and loose with the shadow values of a Phi https://bugs.webkit.org/show_bug.cgi?id=164309 Reviewed by Saam Barati. This test demonstrates why the DFG needs to recognize the shadow value of a Phi. * stress/dfg-ssa-swap.js: Added. (foo): 2016-11-03 Commit Queue Unreviewed, rolling out r208364. https://bugs.webkit.org/show_bug.cgi?id=164402 broke the build (Requested by smfr on #webkit). Reverted changeset: "DFG plays fast and loose with the shadow values of a Phi" https://bugs.webkit.org/show_bug.cgi?id=164309 http://trac.webkit.org/changeset/208364 2016-11-03 Filip Pizlo DFG plays fast and loose with the shadow values of a Phi https://bugs.webkit.org/show_bug.cgi?id=164309 Reviewed by Saam Barati. This test demonstrates why the DFG needs to recognize the shadow value of a Phi. * stress/dfg-ssa-swap.js: Added. (foo): 2016-11-03 Saam Barati Asking for a value profile prediction should be defensive against not finding a value profile https://bugs.webkit.org/show_bug.cgi?id=164306 Reviewed by Mark Lam. * stress/inlined-tail-call-in-inlined-setter-should-not-crash-when-getting-value-profile.js: Added. (let.o.set foo): (bar): 2016-11-02 Saam Barati Allocation elimination of rest parameter doesn't take into account indexed properties on Array.prototype/Object.prototype https://bugs.webkit.org/show_bug.cgi?id=164301 Reviewed by Geoffrey Garen. * stress/rest-parameter-allocation-elimination-watchpoints-2.js: Added. (assert): (foo): * stress/rest-parameter-allocation-elimination-watchpoints-3.js: Added. (assert): (foo): * stress/rest-parameter-allocation-elimination-watchpoints-4.js: Added. (assert): (foo): * stress/rest-parameter-allocation-elimination-watchpoints-5.js: Added. (assert): (foo): * stress/rest-parameter-allocation-elimination-watchpoints-6.js: Added. (assert): (foo): * stress/rest-parameter-allocation-elimination-watchpoints.js: Added. (assert): (foo): 2016-11-01 Saam Barati We should be able to eliminate rest parameter allocations https://bugs.webkit.org/show_bug.cgi?id=163925 Reviewed by Filip Pizlo. * microbenchmarks/rest-parameter-allocation-elimination.js: Added. (assert): (test1.bar): (test1): (test2.jaz): (test2.jaz2.kaz): (test2.jaz2): (test2): (test3.foo): (test3.baz): (test3.jaz): (test3): (test4.baz): (test4.jaz): (test4): (test5.baz): (test5.jaz): (test5): (test6.baz): (test6.jaz): (test6): (test7.baz): (test7.jaz): (test7.check): (test7): (test8.baz): (test8.jaz): (test8.check): (test8): (test9.baz): (test9.jaz): (test9.check): (test9): (test10.baz): (test10.jaz): (test10): (test11.bar): (test11.foo): (test11.makeArguments): (test11.): (test12): (test12.bar): (test12.foo): (test12.makeArguments): (test12.): (test13.bar): (test13.top): (test13.foo): (test13.makeArguments): (test13.): (test13): (test14.bar): (test14.top): (test14.foo): (test14.makeArguments): (test14.): (test14): (test15.bar): (test15.top): (test15.foo): (test15.makeArguments): (test15.): (test15): 2016-11-01 Commit Queue Unreviewed, rolling out r208208 and r208210. https://bugs.webkit.org/show_bug.cgi?id=164276 This change caused 28 JSC test failures. (Requested by ryanhaddad on #webkit). Reverted changesets: "We should be able to eliminate rest parameter allocations" https://bugs.webkit.org/show_bug.cgi?id=163925 http://trac.webkit.org/changeset/208208 "Fix the EFL build." http://trac.webkit.org/changeset/208210 2016-10-31 Filip Pizlo JSC should support SharedArrayBuffer https://bugs.webkit.org/show_bug.cgi?id=163986 Reviewed by Keith Miller. This adds our own test for the various corner cases of SharedArrayBuffer. This test is meant to check all of the things that don't require concurrency. * stress/SharedArrayBuffer.js: Added. (checkAtomics): (shouldFail): (Symbol): (runAtomic): 2016-10-31 Saam Barati We should be able to eliminate rest parameter allocations https://bugs.webkit.org/show_bug.cgi?id=163925 Reviewed by Filip Pizlo. * microbenchmarks/rest-parameter-allocation-elimination.js: Added. (assert): (test1.bar): (test1): (test2.jaz): (test2.jaz2.kaz): (test2.jaz2): (test2): (test3.foo): (test3.baz): (test3.jaz): (test3): (test4.baz): (test4.jaz): (test4): (test5.baz): (test5.jaz): (test5): (test6.baz): (test6.jaz): (test6): (test7.baz): (test7.jaz): (test7.check): (test7): (test8.baz): (test8.jaz): (test8.check): (test8): (test9.baz): (test9.jaz): (test9.check): (test9): (test10.baz): (test10.jaz): (test10): (test11.bar): (test11.foo): (test11.makeArguments): (test11.): (test12): (test12.bar): (test12.foo): (test12.makeArguments): (test12.): (test13.bar): (test13.top): (test13.foo): (test13.makeArguments): (test13.): (test13): (test14.bar): (test14.top): (test14.foo): (test14.makeArguments): (test14.): (test14): (test15.bar): (test15.top): (test15.foo): (test15.makeArguments): (test15.): (test15): 2016-10-31 Saam Barati Debug JSC test microbenchmarks/pure-get-by-id-cse-2.js timing out https://bugs.webkit.org/show_bug.cgi?id=164227 Unreviewed timeout fix. * microbenchmarks/pure-get-by-id-cse-2.js: 2016-10-31 Keith Miller autogenerated files from wasm.json should be in derived sources. https://bugs.webkit.org/show_bug.cgi?id=164152 Reviewed by Filip Pizlo. Delete generation script since it is no longer used. * wasm/generate-wasmops-header.js: Removed. 2016-10-29 Yusuke Suzuki [JSC] JSON.stringify should handle Proxy which is non JSArray but isArray is true https://bugs.webkit.org/show_bug.cgi?id=164123 Reviewed by Mark Lam. * stress/json-stringify-with-non-jsarray-array.js: Added. (shouldBe): (shouldBe.JSON.stringify.new.Proxy): 2016-10-29 Saam Barati We should have a way of profiling when a get_by_id is pure and to emit a PureGetById in the DFG/FTL https://bugs.webkit.org/show_bug.cgi?id=163305 Reviewed by Keith Miller. * microbenchmarks/pure-get-by-id-cse-2.js: Added. (foo): * microbenchmarks/pure-get-by-id-cse.js: Added. (foo): * stress/pure-get-by-id-cse-correctness.js: Added. (assert): (foo): * stress/pure-get-by-id-on-non-object.js: Added. (assert): (foo): 2016-10-28 Csaba Osztrogonác Skip JSTests/microbenchmarks/dense-set.js on memory limited devices https://bugs.webkit.org/show_bug.cgi?id=164128 Reviewed by Mark Lam. * microbenchmarks/dense-set.js: 2016-10-20 Caitlin Potter [JSC] implement runtime for async functions https://bugs.webkit.org/show_bug.cgi?id=163760 Reviewed by Yusuke Suzuki. * stress/async-await-basic.js: Added. (shouldBe): (shouldBeAsync): (shouldThrow): (shouldThrowAsync): (shouldThrowSyntaxError): (let.AsyncFunction.async): (async.asyncFunctionForProto): (Object.getPrototypeOf.async): (Object.getPrototypeOf.async.method): (async): (async.method): (async.asyncNonConstructorDecl): (shouldThrow.new.async): (shouldThrow.new.async.nonConstructor): (async.asyncDecl): (async.f): (MyError): (async.asyncDeclThrower): (shouldThrowAsync.async): (resolveLater): (rejectLater): (async.resumeAfterNormal): (O.async.resumeAfterNormal): (resumeAfterNormalArrow.async): (async.resumeAfterThrow): (O.async.resumeAfterThrow): (resumeAfterThrowArrow.async): (catch): * stress/async-await-module-reserved-word.js: Added. (shouldThrow): (SyntaxError.Canstring_appeared_hereawait.checkModuleSyntaxError.String.raw.await): (checkModuleSyntaxError.String.raw.await): (checkModuleSyntaxError.String.raw.async.await): (SyntaxError.Cannot.declare.named): * stress/async-await-mozilla.js: Added. (shouldBe): (shouldBeAsync): (shouldThrow): (shouldThrowAsync): (assert): (shouldThrowSyntaxError): (mozSemantics.async.empty): (mozSemantics.async.simpleReturn): (mozSemantics.async.simpleAwait): (mozSemantics.async.simpleAwaitAsync): (mozSemantics.async.returnOtherAsync): (mozSemantics.async.simpleThrower): (mozSemantics.async.delegatedThrower): (mozSemantics.async.tryCatch): (mozSemantics.async.tryCatchThrow): (mozSemantics.async.wellFinally): (mozSemantics.async.finallyMayFail): (mozSemantics.async.embedded.async.inner): (mozSemantics.async.embedded): (mozSemantics.async.fib): (mozSemantics.async.isOdd.async.isEven): (mozSemantics.async.isOdd): (mozSemantics.hardcoreFib.async.fib2): (mozSemantics.namedAsyncExpr.async.simple): (mozSemantics.async.executionOrder.async.first): (mozSemantics.async.executionOrder.async.second): (mozSemantics.async.executionOrder.async.third): (mozSemantics.async.executionOrder): (mozSemantics.async.miscellaneous): (mozSemantics.thrower): (mozSemantics.async.defaultArgs): (mozSemantics.shouldThrow): (mozSemantics): (mozMethods.X): (mozMethods.X.prototype.async.getValue): (mozMethods.X.prototype.setValue): (mozMethods.X.prototype.async.increment): (mozMethods.X.prototype.async.getBaseClassName): (mozMethods.X.async.getStaticValue): (mozMethods.Y.prototype.async.getBaseClassName): (mozMethods.Y): (mozFunctionNameInferrence.async.test): (mozSyntaxErrors): * stress/async-await-reserved-word.js: Added. (assert): (shouldThrowSyntaxError): (AsyncFunction.async): * stress/async_arrow_functions_lexical_arguments_binding.js: Added. (shouldBe): (shouldBeAsync): (shouldThrowAsync): (noArgumentsArrow2.async): * stress/async_arrow_functions_lexical_new.target_binding.js: Added. (shouldBe): (shouldBeAsync): (shouldThrowAsync): (C1): (C2): (shouldThrowAsync.async): * stress/async_arrow_functions_lexical_super_binding.js: Added. (shouldBe): (shouldBeAsync): (BaseClass.prototype.baseClassValue): (BaseClass.prototype.get property): (BaseClass): (ChildClass.prototype.asyncSuperProp): (ChildClass.prototype.asyncSuperProp2): (ChildClass): (ChildClass2): * stress/async_arrow_functions_lexical_this_binding.js: Added. (shouldBe): (shouldBeAsync): (d.y): 2016-10-28 Csaba Osztrogonác Skip 2 JS stress tests on memory limited devices https://bugs.webkit.org/show_bug.cgi?id=164125 Unreviewed quick fix to unbreak JSCOnly ARM bots as soon as possible. * stress/joined-strings-should-not-exceed-max-string-length.js: * stress/string-prototype-replace-should-throw-out-of-memory-error-when-using-too-much-memory.js: 2016-10-27 Caitlin Potter [JSC] forbid lexical redeclaration of generator formal parameters https://bugs.webkit.org/show_bug.cgi?id=163930 Reviewed by Yusuke Suzuki. * stress/async-await-syntax.js: * stress/generator-syntax.js: (testSyntaxError.gen): (testSyntaxError.arguments): (testSyntaxError.eval): * test262.yaml: 2016-10-26 JF Bastien WebAssembly API: implement Instance As described in: https://github.com/WebAssembly/design/blob/master/JS.md#webassemblyinstance-objects - Take ownership of Wasm::Plan's compilation result when successfully creating a JSWebAssemblyModule object. - Construct a basic Instance with a Module. - Handle second argument (importObject) of WebAssembly.Instance. - Add reference text from the spec to WebAssembly.Module's code. - Expose and test an empty 'exports' ModuleNamespaceObject on WebAssembly.Instance. The implementation isn't complete yet: it relies on further work for which I've filed bugs. WebAssembly API: implement Instance https://bugs.webkit.org/show_bug.cgi?id=163998 Reviewed by Keith Miller. * wasm/js-api/test_Instance.js: Added. (EmptyModule): use the Builder, create the simplest Module possible, and create an Instance from it * wasm/js-api/test_basic_api.js: (const.c.in.constructorProperties.switch): basic tests of the API 2016-10-26 Mark Lam JSGenericTypedArrayView::set() should check for exceptions. https://bugs.webkit.org/show_bug.cgi?id=164007 Reviewed by Filip Pizlo. * stress/typed-array-view-set-should-not-crash-on-exception.js: Added. 2016-10-25 Mark Lam String.prototype.replace() should throw an OutOfMemoryError when using too much memory. https://bugs.webkit.org/show_bug.cgi?id=163996 Reviewed by Geoffrey Garen. * stress/string-prototype-replace-should-throw-out-of-memory-error-when-using-too-much-memory.js: Added. 2016-10-25 Mark Lam JSStringJoiner::joinedLength() should limit joined string lengths to INT_MAX. https://bugs.webkit.org/show_bug.cgi?id=163937 Reviewed by Geoffrey Garen. * stress/joined-strings-should-not-exceed-max-string-length.js: Added. 2016-10-25 JF Bastien WebAssembly JS API: simple Module test https://bugs.webkit.org/show_bug.cgi?id=163963 Reviewed by Filip Pizlo. * wasm/LowLevelBinary.js: (export.default.LowLevelBinary.prototype.get return): get the ArrayBuffer (export.default.LowLevelBinary.prototype.hexdump): Deleted. (export.default.LowLevelBinary.prototype._maybeGrow): Deleted. * wasm/js-api/test_Module.js: Added. (EmptyModule): The most basic module possible 2016-10-25 JF Bastien WebAssembly JS API: implement Module This implementation allows us to: - Syncrhonously create a WebAssembly.Module with a typed array. - Creates a compilation plan. - Parse the Module and creates corresponding code. - Throw WebAssembly.CompileError with mildly helpful [*] error messages on failure. Consult the API documentation for expected behavior: https://github.com/WebAssembly/design/blob/master/JS.md#webassemblymodule-constructor For now the implementation discards the generated code. The next steps will be: - Expose a Module's exports. - Implement WebAssembly.Instance, which allows instantiating and running a compiled Module. - Beef up the testing infrastructure under JSTests/wasm so that more complex modules can be created and tested (instead of writing the bits by hand). This patch also: - Adds assert.instanceof in assert.js. - Refactors Wasm::Parser and friends to accept const uint8_t* as well as a Vector, to avoid copying when invoked synchronously. - Remove useless Structure from some of the wasm constructors: they're already on the JSGlobalObject, visited properly and all. - Fix off-by-one error in parsing: Parser::parseUInt32 failed if the integer was exactly at end of file. [*] On error messages while parsing: I filed https://bugs.webkit.org/show_bug.cgi?id=163919 WebAssembly JS API: implement Module https://bugs.webkit.org/show_bug.cgi?id=163903 Reviewed by Keith Miller. * wasm/assert.js: use underscore in name, and remove when exporting to avoid clasing with builtin names (const._notUndef): (const._isUndef): (const._eq): (const._ge): (const._throws): * wasm/js-api/test_basic_api.js: test the WebAssembly.Module API (const.c.in.constructorProperties.switch): 2016-10-25 Keith Miller Add trivial Wasm conversion opcodes https://bugs.webkit.org/show_bug.cgi?id=163950 Reviewed by Filip Pizlo. This patch differentiates between Wasm opcodes that are trivially mapped to a B3 opcode and those that are not. Some of the Wasm opcodes that are currently a non-simple opcode will become simple as we add B3 opcodes for Wasm operations. The remaining opcodes will need to be added via patchpoints in a later patch. * wasm/generate-wasmops-header.js: (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.Wasm.inline.bool.isSimple): * wasm/wasm.json: 2016-10-24 Yusuke Suzuki Arrow functions with concise bodies cannot return regular expressions https://bugs.webkit.org/show_bug.cgi?id=163162 Reviewed by Filip Pizlo. * ChakraCore/test/Operators/instanceof.baseline-jsc: * ChakraCore/test/Regex/nul_character.baseline-jsc: * ChakraCore/test/es5/Lex_u3.baseline-jsc: * stress/parse-regexp-as-token.js: Added. (shouldBe): 2016-10-24 Keith Miller Wasm should support floating point operations. https://bugs.webkit.org/show_bug.cgi?id=163770 Reviewed by Michael Saboff. Add appropriate b3op names for floating point wasm bytecodes, where they exist. Also, fix some WASM => Wasm in WasmOps.h generator script that I missed the first time I made the change. * wasm/generate-wasmops-header.js: (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.template.typename.Int.inline.bool.isValidOpType): Deleted. (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.BinaryOpType): Deleted. (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.UnaryOpType): Deleted. (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.LoadOpType): Deleted. (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.StoreOpType): Deleted. (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.undef.CREATE_ENUM_VALUE.inline.bool.isControlOp): Deleted. * wasm/wasm.json: 2016-10-21 Saam Barati SpeculativeJIT::compileTryGetById needs to pass in NeedsToSpill along both the cell speculation and untyped speculation path https://bugs.webkit.org/show_bug.cgi?id=163622 Reviewed by Yusuke Suzuki. * stress/try-get-by-id-should-spill-registers-dfg.js: Added. (let.f.createBuiltin): 2016-10-21 Caitlin Potter [JSC] don't crash when arguments to `new Function()` produce unexpected AST https://bugs.webkit.org/show_bug.cgi?id=163748 Reviewed by Mark Lam. * stress/regress-163748.js: Added. (assert): (shouldThrowSyntaxError): (GeneratorFunction): 2016-10-20 Keith Miller Add support for WASM calls https://bugs.webkit.org/show_bug.cgi?id=161727 Reviewed by Filip Pizlo and Michael Saboff. Add members of the Call category to the WASMOps special group. * wasm/generate-wasmops-header.js: 2016-10-20 Yusuke Suzuki [JSC] Drop isEnvironmentRecord type info flag and use JSType information instead https://bugs.webkit.org/show_bug.cgi?id=163761 Reviewed by Keith Miller. * modules/string-prototype-module-scope.js: Added. (shouldBe): (catch): (refer): * stress/string-prototype-scopes-global-lexical-environment-strict.js: Added. (shouldBe): (catch): * stress/string-prototype-scopes-global-lexical-environment.js: Added. (shouldBe): (catch): * stress/string-prototype-scopes-strict.js: Added. (shouldBe): (catch): (try.refer): (refer): * stress/string-prototype-scopes.js: Added. (shouldBe): (catch): (try.refer): (refer): (object.toString): (with): 2016-10-20 JF Bastien WebAssembly API: implement exception constructors properly - Rename WebAssemblyObject to JSWebAssembly for consistency. - WebAssembly object now has its own prototype: add WebAssemblyPrototype, and use it to register JSWebAssembly's function properties through auto-generated .lut.h, instead of manually. - The error constructors used to throw (e.g. `new WebAssembly.CompileError()`). - Register WebAssembly's constructors from the global object, and hold a reference to their structure and prototype so that invoking the constructor can use the structure directly from the global object. - Add a prototype base field to global object creation. Previous ones all had Object's prototype as their base, but WebAssembly's error constructors have Error as their base. - Test for the error object's correctness. - Add missing #if ENABLE(WEBASSEMBLY) WebAssembly API: implement exception constructors properly https://bugs.webkit.org/show_bug.cgi?id=163699 Reviewed by Keith Miller. * wasm/js-api/test_basic_api.js: (const.c.in.constructorProperties): more tests 2016-10-20 Caitlin Potter [JSC] disallow references to `await` in AsyncFunction formal parameters https://bugs.webkit.org/show_bug.cgi?id=163694 Reviewed by Saam Barati. * stress/async-await-syntax.js: 2016-10-20 Keith Miller Invalid assertion in arguments elimination https://bugs.webkit.org/show_bug.cgi?id=163740 Reviewed by Michael Saboff. * stress/direct-arguments-osr-entry.js: Added. (foo.): (foo): 2016-10-20 Caitlin Potter [JSC] throw TypeError when constructing dynamically created JSGeneratorFunction https://bugs.webkit.org/show_bug.cgi?id=163714 Reviewed by Mark Lam. Add missing test coverage that dynamically created JSGeneratorFunctions can not be constructed. * stress/generator-function-constructor.js: (shouldThrow): 2016-10-19 JF Bastien JavaScript WebAssembly API: baby steps - Expand WebAssembly constructors into their own files. This requires a lot of boilerplate, as well as adding the .lut.h files. All of the JSWebAssembly*.{h,cpp}, as well as Constructor and Prototype files, are currently the same between the 4 specified WebAssembly constructors. It'll be easy to implement individual functions on constructed objects as per the spec, and have each of these files diverge. The error constructors are also similar, except that their instance derives from ErrorInstance. - Use constructor macro when initializing the global object. - Dramatically improve testing of the WebAssembly API by checking for properties specified in the spec [*]. - Clean up assert.js' exception testing. - Fix a copy-paste bug in wasm.json: floating-point const return values were swapped. [*] https://github.com/WebAssembly/design/blob/master/JS.md Implement more of the JavaScript WebAssembly API https://bugs.webkit.org/show_bug.cgi?id=163571 Reviewed by Keith Miller. * wasm/assert.js: (export.const.isUndef): add this useful helper (export.const.throws): fold other throw checks into this one, and check message as well * wasm/js-api/test_basic_api.js: (const.checkOwnPropertyDescriptor): check own property descriptor follows the spec * wasm/self-test/test_BuilderJSON.js: (const.assertOpThrows): use new assert API (CheckedOpcodeArgumentsTooMany): ditto (CheckedOpcodeArgumentsNotEnough): ditto (CallInvalid): ditto (I32ConstInvalid): ditto (F32ConstInvalid): ditto (and this caugth the JSON copy-paste bug) (F64ConstInvalid): ditto * wasm/self-test/test_LowLevelBinary_varint.js: use new assert API * wasm/self-test/test_LowLevelBinary_varuint.js: use new assert API * wasm/utilities.js: add "global" object, used in basic API test (to access global.WebAssembly). * wasm/wasm.json: fix copy-paste 2016-10-19 Caitlin Potter [JSC] forbid "use strict" directive in generator functions with non-simple parameters https://bugs.webkit.org/show_bug.cgi?id=163683 Reviewed by Geoffrey Garen. Update various generator*-non-simple-param.js tests to be passing. * test262.yaml: 2016-10-18 Mark Lam Invoking Object.prototype.__proto__ accessors directly should throw a TypeError. https://bugs.webkit.org/show_bug.cgi?id=154377 Reviewed by Filip Pizlo and Saam Barati. * stress/object-prototype-proto-accessors-should-throw-on-undefined-this.js: Added. 2016-10-18 Keith Miller GetByVal to GetById conversion in the DFG is incorrect for getters with control flow https://bugs.webkit.org/show_bug.cgi?id=163629 Reviewed by Yusuke Suzuki. * stress/get-by-val-to-id-with-getter.js: Added. (foo): (o.get hello): 2016-10-15 Filip Pizlo DFG and FTL should be able to use DirectCall ICs when they proved the callee or its executable https://bugs.webkit.org/show_bug.cgi?id=163371 Reviewed by Geoffrey Garen and Saam Barati. Add microbenchmarks for all of the cases that this patch optimizes. * microbenchmarks/direct-call-arity-mismatch.js: Added. (foo): (bar): * microbenchmarks/direct-call.js: Added. (foo): (bar): * microbenchmarks/direct-construct-arity-mismatch.js: Added. (Foo): (bar): * microbenchmarks/direct-construct.js: Added. (Foo): (bar): * microbenchmarks/direct-tail-call-arity-mismatch.js: Added. (foo): (bar): * microbenchmarks/direct-tail-call-inlined-caller-arity-mismatch.js: Added. (foo): (bar): (baz): * microbenchmarks/direct-tail-call-inlined-caller.js: Added. (foo): (bar): (baz): * microbenchmarks/direct-tail-call.js: Added. (foo): (bar): 2016-10-18 Caitlin Potter [JSC] ES6 Method functions should not have prototype https://bugs.webkit.org/show_bug.cgi?id=162530 Reviewed by Saam Barati. Fix test262 expectations about MethodDefinitions * ChakraCore/test/strict/05.arguments_sm.baseline-jsc: * stress/reflect-set.js: * test262.yaml: 2016-10-17 Keith Miller Add support for WASM Memory. https://bugs.webkit.org/show_bug.cgi?id=161710 Reviewed by Geoffrey Garen. Add store and load opcodes to wasm.json. Additionally, add new enums for those opcodes in the generator. * stress/wasm/generate-wasmops-header.js: (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.LoadOpType): (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.StoreOpType): 2016-10-17 Saam Barati Add more tests for the double->String conversion in ValueAdd constant folding https://bugs.webkit.org/show_bug.cgi?id=163517 Reviewed by Yusuke Suzuki. * microbenchmarks/string-add-constant-folding.js: (test): 2016-10-17 JF Bastien WebAssembly JS API: implement basic stub Implement the global WebAssembly JavaScript object, and its constructor + function properties as described in: https://github.com/WebAssembly/design/blob/master/JS.md These don't do anything at the moment, the parent bug will take care of adding more functionality and associated tests. WebAssembly JS API: implement basic stub https://bugs.webkit.org/show_bug.cgi?id=163404 Reviewed by Keith Miller. * wasm.yaml: * wasm/js-api/test_basic_api.js: Added. (const.f.of.functionProperties.WebAssembly.f.undefined.throw.new.Error.Couldn.const.c.of.constructorProperties.WebAssembly.c.undefined.throw.new.Error.Couldn): (const.c.of.constructorProperties.catch): 2016-10-17 Yusuke Suzuki [DOMJIT] Use DOMJIT::Patchpoint in IC https://bugs.webkit.org/show_bug.cgi?id=163223 Reviewed by Saam Barati. * stress/domjit-exception-ic.js: Added. (shouldBe): (access): * stress/domjit-exception.js: Added. (shouldBe): (access): * stress/domjit-getter-complex-with-incorrect-object.js: Added. (shouldThrow): (access): (i.shouldThrow): * stress/domjit-getter-complex.js: Added. (shouldBe): (access): * stress/domjit-getter-try-catch-getter-as-get-by-id-register-restoration.js: Added. (assert): (bar): (foo): 2016-10-15 Saam Barati Assertion failed under operationToLowerCase with a rope with zero length https://bugs.webkit.org/show_bug.cgi?id=163314 Reviewed by Mark Lam. * stress/to-lower-case-intrinsic-on-empty-rope.js: Added. (assert): (returnRope.helper): (returnRope): (lower): 2016-10-14 Benjamin Poulain [JSC] op_negate should with any type https://bugs.webkit.org/show_bug.cgi?id=162587 Reviewed by Saam Barati. * stress/arith-abs-to-arith-negate-range-optimizaton.js: Added. Cover OSR Exits when converting Math.abs() into ArithNegate. * stress/arith-negate-on-various-types.js: Added. Cover ArithNegate with all types. 2016-10-14 JF Bastien Basic WebAssembly testing Create a small DSL in JavaScript which can build WebAssembly binary modules based on the JSON description of the format as described in: https://github.com/WebAssembly/design/blob/master/BinaryEncoding.md This DSL can then be used to write small text description of valid and invalid WebAssembly binaries, making testing the JSC implementation much easier. Details and example in README.md. Basic WebAssembly testing https://bugs.webkit.org/show_bug.cgi?id=163267 Reviewed by Keith Miller. * stress/wasm/wasm.json: Removed. * wasm.yaml: Added. * wasm/Builder.js: Added. (const._isValidValue): (const._BuildWebAssemblyBinary): (export.default.Builder): (export.default.Builder.prototype.setChecked): (export.default.Builder.prototype.setPreamble): (export.default.Builder.prototype._registerSectionBuilders.switch.case.string_appeared_here.this.section): (export.default.Builder.prototype._registerSectionBuilders.this.Unknown): (export.default.Builder.prototype._registerSectionBuilders): (export.default.Builder.prototype._addSection): (export.default.Builder.prototype.optimize): (export.default.Builder.prototype.json): (export.default.Builder.prototype.AsmJS): (export.default.Builder.prototype.WebAssembly): * wasm/LowLevelBinary.js: Added. (const._getterRangeCheck): (const._hexdump): (export.default.LowLevelBinary): (export.default.LowLevelBinary.prototype.newPatchable): (export.default.LowLevelBinary.prototype.hexdump): (export.default.LowLevelBinary.prototype._maybeGrow): (export.default.LowLevelBinary.prototype._push8): (export.default.LowLevelBinary.prototype.uint8): (export.default.LowLevelBinary.prototype.uint16): (export.default.LowLevelBinary.prototype.uint32): (export.default.LowLevelBinary.prototype.varuint): (export.default.LowLevelBinary.prototype.varint): (export.default.LowLevelBinary.prototype.varuint7): (export.default.LowLevelBinary.prototype.string): (export.default.LowLevelBinary.prototype.getSize): (export.default.LowLevelBinary.prototype.getUint8): (export.default.LowLevelBinary.prototype.getUint16): (export.default.LowLevelBinary.prototype.getUint32): (export.default.LowLevelBinary.prototype.getVaruint): (export.default.LowLevelBinary.prototype.getVarint): (export.default.LowLevelBinary.prototype.getVaruint7): (export.default.LowLevelBinary.prototype.getString): (PatchableLowLevelBinary): (PatchableLowLevelBinary.prototype._push8): (PatchableLowLevelBinary.prototype.apply): * wasm/README.md: Added. * wasm/WASM.js: Added. * wasm/assert.js: Added. (export.const.notUndef): (export.const.eq): (export.const.ge): (export.const.throwsError): (export.const.throwsRangeError): * wasm/generate-wasmops-header.js: Renamed from JSTests/stress/wasm/generate-wasmops-header.js. * wasm/self-test/test_BuilderJSON.js: Added. (const.assertOpThrows): (EmptyModule): (CustomMagicNumber): (CustomVersion): (CustomSection): (CustomSectionAllBytes): (CustomSectionInvalidByte): (TwoCustomSections): (EmptyCodeSection): (CodeSectionWithEmptyFunction): (CodeSectionWithEmptyFunctionWithParameters): (InvalidFunctionParameters): (SimpleFunction): (TwoSimpleFunctions): (TwoBuildersAtTheSameTime): (CheckedOpcodeArgumentsTooMany): (CheckedOpcodeArgumentsNotEnough): (CallNoArguments): (CallInvalid): (I32ConstInvalid): (F32ConstInvalid): (F64ConstInvalid): (CallManyFromStack): (OpcodeAdd): (OpcodeUnreachable): (OpcodeUnreachableCombinations): (OpcodeSelect): * wasm/self-test/test_BuilderWebAssembly.js: Added. (EmptyModule): (CustomSection): (Basic): * wasm/self-test/test_LowLevelBinary_encode.js: Added. * wasm/self-test/test_LowLevelBinary_string.js: Added. * wasm/self-test/test_LowLevelBinary_uint16.js: Added. * wasm/self-test/test_LowLevelBinary_uint32.js: Added. * wasm/self-test/test_LowLevelBinary_uint8.js: Added. * wasm/self-test/test_LowLevelBinary_varint.js: Added. * wasm/self-test/test_LowLevelBinary_varuint.js: Added. * wasm/self-test/test_LowLevelBinary_varuint7.js: Added. * wasm/self-test/test_WASM.js: Added. * wasm/test.sh: Added. * wasm/utilities.js: Added. (const._read.filename.switch): (const._load.filename.switch): (const._json.filename.switch): * wasm/wasm.json: Added. 2016-10-14 Joseph Pecoraro test262: @isConstructor incorrectly thinks Math.cos is a constructor https://bugs.webkit.org/show_bug.cgi?id=163437 Reviewed by Saam Barati. * stress/is-constructor.js: Added. (assert): (prototype.assert): New test to cover the @isConstructor builtin. * test262.yaml: Test now passes. 2016-10-14 Ryan Haddad Unreviewed, rolling out r207322. This change caused JSC test failures Reverted changeset: "Fix Array.prototype.splice ES6 compliance." https://bugs.webkit.org/show_bug.cgi?id=163372 http://trac.webkit.org/changeset/207322 2016-10-14 Mark Lam JSON.parse should not modify frozen objects. https://bugs.webkit.org/show_bug.cgi?id=163430 Reviewed by Saam Barati. * stress/json-parse-on-frozen-object.js: Added. 2016-10-14 Joseph Pecoraro test262: Failure with RegExp.prototype.compile when pattern is undefined https://bugs.webkit.org/show_bug.cgi?id=163431 Reviewed by Yusuke Suzuki. * test262.yaml: 2016-10-13 Joseph Pecoraro Exception message for expressions with multiple bracket accesses is inconsistent / incorrect https://bugs.webkit.org/show_bug.cgi?id=163426 Reviewed by Geoffrey Garen. * ChakraCore/test/Error/CallNonFunction_3.baseline-jsc: * ChakraCore/test/Object/null.baseline-jsc: * stress/exception-in-to-property-key-should-be-handled-early.js: Better exception messages. 2016-10-13 Mark Lam Fix Array.prototype.splice ES6 compliance. https://bugs.webkit.org/show_bug.cgi?id=163372 Reviewed by Geoffrey Garen and Yusuke Suzuki. * stress/array-splice-on-frozen-object.js: Added. 2016-10-12 Keith Miller Handle non-function, non-undefined comparator in Array.prototype.sort https://bugs.webkit.org/show_bug.cgi?id=163085 Reviewed by Yusuke Suzuki. * ChakraCore/test/Array/array_sort.baseline-jsc: * stress/array-sort-bad-comparator.js: Added. (test): 2016-10-12 Mark Lam Array.prototype.slice should not modify frozen objects. https://bugs.webkit.org/show_bug.cgi?id=163338 Reviewed by Filip Pizlo. * stress/array-slice-on-frozen-object.js: Added. 2016-10-11 Mark Lam Array.prototype.concat should not modify frozen objects. https://bugs.webkit.org/show_bug.cgi?id=163302 Reviewed by Filip Pizlo. * stress/array-concat-on-frozen-object.js: Added. 2016-10-11 Saam Barati ValueAdd should be constant folded if the operands are constant String,Primitive or Primitive,String https://bugs.webkit.org/show_bug.cgi?id=163182 Reviewed by Filip Pizlo. * microbenchmarks/string-add-constant-folding.js: Added. (assert): (runTests): (add): (test): 2016-10-07 Mark Lam Object.freeze() and seal() should throw if [[PreventExtensions]]() fails. https://bugs.webkit.org/show_bug.cgi?id=163160 Reviewed by Saam Barati. * stress/object-freeze-with-proxy-preventExtensions.js: Added. * stress/object-seal-with-proxy-preventExtensions.js: Added. 2016-10-05 Yusuke Suzuki [DOMJIT] Add initial CheckDOM and CallDOM implementations https://bugs.webkit.org/show_bug.cgi?id=162941 Reviewed by Filip Pizlo. * stress/domjit-getter-poly.js: Added. (shouldBe): (access): * stress/domjit-getter-proto.js: Added. (shouldBe): (access): * stress/domjit-getter-super-poly.js: Added. (shouldBe): (access): * stress/domjit-getter.js: Added. (shouldBe): (access): 2016-10-04 Saam Barati String.prototype.toLowerCase should be a DFG/FTL intrinsic https://bugs.webkit.org/show_bug.cgi?id=162887 Reviewed by Filip Pizlo and Yusuke Suzuki. * microbenchmarks/to-lower-case.js: Added. (assert): (foo): (bar): * stress/to-lower-case.js: Added. (assert): (foo): 2016-10-04 JF Bastien WebAssembly: handle a few corner cases https://bugs.webkit.org/show_bug.cgi?id=162884 Reviewed by Keith Miller. * stress/wasm/generate-wasmops-header.js: (const.opcodeIterator): max opcode value 2016-10-03 JF Bastien Auto-generate WASMOps.h, share with testing JSON file https://bugs.webkit.org/show_bug.cgi?id=162870 Reviewed by Keith Miller. * stress/wasm/to-c++.js: Added. Generates WASMOps.h, siilar to the current one but with more data. (const.opcode_iterator): (opcode_macroizer): * stress/wasm/wasm.json: Added. Data from 0xC binary format version. 2016-10-03 Saam Barati MapHash should speculate on the type of its child node https://bugs.webkit.org/show_bug.cgi?id=161922 Reviewed by Filip Pizlo. * microbenchmarks/map-key-well-typed.js: Added. (assert): (intKey): (doubleKey): (objectKey): (stringKey): (booleanKey): (symbolKey): (cellKey): (assert.doubleKey): (assert.booleanKey): 2016-10-03 Yusuke Suzuki [ES6] GeneratorFunction (a.k.a. GeneratorWrapperFunction)'s prototype object does not have constructor property https://bugs.webkit.org/show_bug.cgi?id=162849 Reviewed by Geoffrey Garen. * test262.yaml: 2016-10-01 Yusuke Suzuki [ES6] Align attributes of Generator related properties to spec https://bugs.webkit.org/show_bug.cgi?id=162839 Reviewed by Saam Barati. * test262.yaml: 2016-10-01 Yusuke Suzuki [ES6] GeneratorFunction constructor should instantiate generator function https://bugs.webkit.org/show_bug.cgi?id=162838 Reviewed by Saam Barati. * stress/generator-function-constructor-is-subclassible.js: Added. (shouldBe): (GeneratorFunction): (prototype.hello): * stress/generator-function-constructor.js: * test262.yaml: 2016-09-30 Saam Barati Arrow functions should not allow duplicate parameter names https://bugs.webkit.org/show_bug.cgi?id=162741 Reviewed by Filip Pizlo. * test262.yaml: 2016-09-30 Saam Barati Make some microbenchmarks run for less time. Rubber stamped by Filip Pizlo. * microbenchmarks/bound-function-construction-performance.js: (foo): * microbenchmarks/getter-richards-try-catch.js: 2016-09-29 Joseph Pecoraro Arrow functions do not infer name from computed property but normal functions do https://bugs.webkit.org/show_bug.cgi?id=162720 Reviewed by Saam Barati. * stress/inferred-names.js: 2016-09-29 Mark Lam Break some slow running tests into smaller bits so they don't time out. https://bugs.webkit.org/show_bug.cgi?id=162743 Reviewed by Keith Miller. The following tests have shown to be slow running: op_div.js op_lshift.js op_mod.js op_mul.js op_rshift.js op_sub.js op_urshift These tests auto-generate permutations of values to apply to binary operations. They also test the operations with 3 permutations of value types: 1. VarVar - both operands variables 2. VarConst - variable operand 1, constant / literal operand 2 3. ConstVar - constant / literal operand 1, variable operand 2 We can prevent these tests from timing out by breaking each up to only run 1 of the 3 permutations of value types. * stress/op_div-ConstVar.js: Added. * stress/op_div-VarConst.js: Added. * stress/op_div-VarVar.js: Copied from JSTests/stress/op_div.js. (o1.valueOf): Deleted. * stress/op_div.js: Removed. * stress/op_lshift-ConstVar.js: Added. * stress/op_lshift-VarConst.js: Added. * stress/op_lshift-VarVar.js: Copied from JSTests/stress/op_lshift.js. (o1.valueOf): Deleted. * stress/op_lshift.js: Removed. * stress/op_mod-ConstVar.js: Added. * stress/op_mod-VarConst.js: Added. * stress/op_mod-VarVar.js: Copied from JSTests/stress/op_mod.js. (o1.valueOf): Deleted. * stress/op_mod.js: Removed. * stress/op_mul-ConstVar.js: Added. * stress/op_mul-VarConst.js: Added. * stress/op_mul-VarVar.js: Copied from JSTests/stress/op_mul.js. (o1.valueOf): Deleted. * stress/op_mul.js: Removed. * stress/op_rshift-ConstVar.js: Added. * stress/op_rshift-VarConst.js: Added. * stress/op_rshift-VarVar.js: Copied from JSTests/stress/op_rshift.js. (o1.valueOf): Deleted. * stress/op_rshift.js: Removed. * stress/op_sub-ConstVar.js: Added. * stress/op_sub-VarConst.js: Added. * stress/op_sub-VarVar.js: Copied from JSTests/stress/op_sub.js. (o1.valueOf): Deleted. * stress/op_sub.js: Removed. * stress/op_urshift-ConstVar.js: Added. * stress/op_urshift-VarConst.js: Added. * stress/op_urshift-VarVar.js: Copied from JSTests/stress/op_urshift.js. (o1.valueOf): Deleted. * stress/op_urshift.js: Removed. * stress/resources/binary-op-values.js: Added. (o1.valueOf): 2016-09-29 Joseph Pecoraro test262: class and function names should be inferred in assignment https://bugs.webkit.org/show_bug.cgi?id=146262 Reviewed by Saam Barati. * stress/arrowfunction-name.js: Added. Quick tests for arrow function names. * stress/inferred-names.js: Added. General test for inferred function names. * test262.yaml: Pass many tests checking inferred function names. 2016-09-29 Saam Barati We don't properly propagate non-simple-parameter-list when parsing a setter https://bugs.webkit.org/show_bug.cgi?id=160483 Reviewed by Joseph Pecoraro. * test262.yaml: 2016-09-28 Saam Barati stringProtoFuncRepeatCharacter will return `null` when it should not https://bugs.webkit.org/show_bug.cgi?id=161944 Reviewed by Yusuke Suzuki. * stress/pad-start-calls-repeat-character-with-double.js: Added. (logLinesWithContext): 2016-09-27 Filip Pizlo B3::lowerMacros forgets to before->updatePredecessorsAfter() when lowering ChillMod on ARM64 https://bugs.webkit.org/show_bug.cgi?id=162644 Reviewed by Keith Miller. * stress/chill-mod-chill-mod.js: Added. (foo): 2016-09-26 Csaba Osztrogonác Skip stress/string-joining-long-strings-should-not-crash.js on memory limited devices https://bugs.webkit.org/show_bug.cgi?id=162386 Unreviewed, relanding r206317 after typo fix. * stress/string-joining-long-strings-should-not-crash.js: 2016-09-24 Caitlin Potter [JSTests] fix test262 expectations following r206333 https://bugs.webkit.org/show_bug.cgi?id=162533 Reviewed by Yusuke Suzuki. * test262.yaml: 2016-09-23 Caitlin Potter [JSC] Implement parsing of Async Functions https://bugs.webkit.org/show_bug.cgi?id=161409 Reviewed by Yusuke Suzuki. * stress/async-await-syntax.js: Added. (testSyntax): (testSyntaxError): (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntax): (testTopLevelAsyncAwaitSyntaxSloppyMode): (testTopLevelAsyncAwaitSyntaxStrictMode): (testTopLevelAsyncAwaitSyntaxStrictMode.testSyntax): (testNestedAsyncAwaitSyntax.async): (testNestedAsyncAwaitSyntax.foo): (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntaxError): 2016-09-23 Ryan Haddad Unreviewed, rolling out r206317. This change caused timeouts on El Capitan Release JSC tests Reverted changeset: "Skip stress/string-joining-long-strings-should-not-crash.js on memory limited devices" https://bugs.webkit.org/show_bug.cgi?id=162386 http://trac.webkit.org/changeset/206317 2016-09-23 Csaba Osztrogonác Skip mozilla-tests.yaml/js1_5/Array/regress-157652 on memory limited devices https://bugs.webkit.org/show_bug.cgi?id=162381 Reviewed by Mark Lam. * mozilla/mozilla-tests.yaml: 2016-09-23 Csaba Osztrogonác Skip stress/string-joining-long-strings-should-not-crash.js on memory limited devices https://bugs.webkit.org/show_bug.cgi?id=162386 Reviewed by Mark Lam. * stress/string-joining-long-strings-should-not-crash.js: 2016-09-22 Benjamin Poulain [JSC] Use an inline cache to generate op_negate https://bugs.webkit.org/show_bug.cgi?id=162371 Reviewed by Saam Barati. * stress/op-negate-inline-cache.js: Added. 2016-09-22 Mark Lam Array.prototype.join should do overflow checks on string joins. https://bugs.webkit.org/show_bug.cgi?id=162459 Reviewed by Saam Barati. * stress/array-join-on-strings-need-overflow-checks.js: Added. (assert): (catch): 2016-09-22 Joseph Pecoraro test262: Function length should be number of parameters before parameters with default values https://bugs.webkit.org/show_bug.cgi?id=162377 Reviewed by Saam Barati. * stress/es6-default-parameters.js: Add our own tests for function lengths with default parameters. * test262.yaml: We now pass all dflt-length tests. 2016-09-20 Benjamin Poulain [JSC] Do not use EagerRun on tests counting recompilation https://bugs.webkit.org/show_bug.cgi?id=162248 Reviewed by Geoffrey Garen. This patch adds defaultNoEagerRun to all the tests for which recompilation is the symptom of a bug. The reason is that an OSR Exit can be unrelated to the tested nodes when we are running in Eager mode. * stress/arith-abs-on-various-types.js: * stress/arith-ceil-on-various-types.js: * stress/arith-clz32-on-various-types.js: * stress/arith-cos-on-various-types.js: * stress/arith-floor-on-various-types.js: * stress/arith-fround-on-various-types.js: * stress/arith-log-on-various-types.js: * stress/arith-round-on-various-types.js: * stress/arith-sin-on-various-types.js: * stress/arith-sqrt-on-various-types.js: * stress/arith-tan-on-various-types.js: * stress/arith-trunc-on-various-types.js: * stress/compare-strict-eq-on-various-types.js: (testAllTypesCall): The value 2 came from the other tests. CompareStrictEq supports many more cases, the worst case is bool->int->int52->number->polymorphic. 2016-09-20 Filip Pizlo Make MarkedBlock state tracking support overlapped allocation and marking state https://bugs.webkit.org/show_bug.cgi?id=161581 Reviewed by Geoffrey Garen. Add a microbenchmark for why we want to reclaim empty blocks from other allocators. * microbenchmarks/switching-size-classes.js: Added. 2016-09-20 Saam Barati Unreviewed, added test for x86 32-bit failure for HasOwnProperty node in DFG. * stress/has-own-property-called-on-non-object.js: Added. (let.objs): (new.String): (foo): 2016-09-20 Yusuke Suzuki [JSC] Add `typeof value === "symbol"` handling to bytecode compiler https://bugs.webkit.org/show_bug.cgi?id=162253 Reviewed by Sam Weinig. * microbenchmarks/is-symbol-mixed.js: Added. (isSymbol): (i.let.pair.of.list.String): * microbenchmarks/is-symbol.js: Added. (isSymbol): 2016-09-19 Saam Barati Make HasOwnProperty faster https://bugs.webkit.org/show_bug.cgi?id=161708 Reviewed by Geoffrey Garen. * microbenchmarks/has-own-property-name-cache.js: Added. (foo): * stress/has-own-property-cache-basics.js: Added. (assert): (foo): * stress/has-own-property-name-cache-string-keys.js: Added. (assert): (foo): * stress/has-own-property-name-cache-symbol-keys.js: Added. (assert): (foo): * stress/has-own-property-name-cache-symbols-and-strings.js: Added. (assert): (foo): 2016-09-19 Benjamin Poulain [JSC] Make the rounding-related nodes support any type https://bugs.webkit.org/show_bug.cgi?id=161895 Reviewed by Geoffrey Garen. * stress/arith-ceil-on-various-types.js: Added. * stress/arith-floor-on-various-types.js: Added. * stress/arith-round-on-various-types.js: Added. * stress/arith-trunc-on-various-types.js: Added. 2016-09-18 Yusuke Suzuki [JSC] Do not need to use defineProperty to define methods for object literals https://bugs.webkit.org/show_bug.cgi?id=162111 Reviewed by Saam Barati. * stress/object-literal-methods.js: Added. (shouldBe): (throw.new.Error.let.object.get name): (throw.new.Error): (shouldBe.let.object.get name): (shouldBe.let.object.get prototype): (shouldBe.let.object.get 42): 2016-09-16 Yusuke Suzuki [DFG] Introduce IsCellWithType node and unify IsJSArray, IsRegExpObject and newly added IsProxyObject https://bugs.webkit.org/show_bug.cgi?id=162000 Reviewed by Filip Pizlo. * microbenchmarks/is-array-for-array.js: Added. (isArray): * microbenchmarks/is-array-for-mixed-case.js: Added. (isArray): * microbenchmarks/is-array-for-non-array-object.js: Added. (isArray): * microbenchmarks/is-array-for-proxy.js: Added. (isArray): (isArray.proxy.throw.new.Error.isArray): (isArray.proxy.throw.new.Error): 2016-09-16 Yusuke Suzuki Unreviewed, gardening test262 results Some tests are now passed with JSC, but marked as failed. * test262.yaml: 2016-09-16 Joseph Pecoraro test262: Various Constructors length properties should be configurable https://bugs.webkit.org/show_bug.cgi?id=161998 Reviewed by Saam Barati. * test262.yaml: 2016-09-15 Commit Queue Unreviewed, rolling out r205931. https://bugs.webkit.org/show_bug.cgi?id=162021 Tests for this change fail on 32-bit JSC bots (Requested by ryanhaddad on #webkit). Reverted changeset: "[JSC] Make the rounding-related nodes support any type" https://bugs.webkit.org/show_bug.cgi?id=161895 http://trac.webkit.org/changeset/205931 2016-09-15 Joseph Pecoraro test262: Should be a SyntaxError for duplicate parameter names in function with default parameters https://bugs.webkit.org/show_bug.cgi?id=162013 Reviewed by Saam Barati. * stress/es6-default-parameters.js: * test262.yaml: 2016-09-14 Joseph Pecoraro ASSERT_NOT_REACHED when using spread inside an array literal with Function.prototype.apply https://bugs.webkit.org/show_bug.cgi?id=162003 Reviewed by Saam Barati. * stress/spread-calling.js: * test262.yaml: 2016-09-14 Michael Saboff YARR doesn't check for invalid flags for literal regular expressions https://bugs.webkit.org/show_bug.cgi?id=161995 Reviewed by Mark Lam. New test. * stress/regress-161995.js: Added. (testStatic): (catch): 2016-09-14 Joseph Pecoraro test262: TypedArray constructors length should be 3 and configurable https://bugs.webkit.org/show_bug.cgi?id=161955 Reviewed by Mark Lam. * test262.yaml: 2016-09-14 Benjamin Poulain [JSC] Make the rounding-related nodes support any type https://bugs.webkit.org/show_bug.cgi?id=161895 Reviewed by Geoffrey Garen. * stress/arith-ceil-on-various-types.js: Added. * stress/arith-floor-on-various-types.js: Added. * stress/arith-round-on-various-types.js: Added. * stress/arith-trunc-on-various-types.js: Added. 2016-09-14 Joseph Pecoraro TaggedTemplateString function calls should emit tail position calls https://bugs.webkit.org/show_bug.cgi?id=161948 Reviewed by Yusuke Suzuki. * stress/tail-call-recognize.js: (runTests): Ensure a tagged template string function call is tail call. * test262.yaml: These now pass. 2016-09-14 Joseph Pecoraro test262: Array.prototype.slice should always set length https://bugs.webkit.org/show_bug.cgi?id=161953 Reviewed by Mark Lam. * test262.yaml: 2016-09-13 JF Bastien Support jsc shell builtin `read` https://bugs.webkit.org/show_bug.cgi?id=161662 Reviewed by Keith Miller. * stress/jsc-read.js: Added. (test): test `read` and `readFile` shell builtins, in string and binary mode. 2016-09-12 Skachkov Oleksandr ES6: Classes: Should be allowed to create a static method with name "arguments" https://bugs.webkit.org/show_bug.cgi?id=152985 Reviewed by Keith Miller. * test262.yaml: 2016-09-12 Saam Barati Speed up Function.prototype.bind a bit by making it a builtin https://bugs.webkit.org/show_bug.cgi?id=161879 Reviewed by Filip Pizlo. * microbenchmarks/function-bind-inlining.js: Added. (assert): (test): (test2): (foo): * microbenchmarks/function-bind-no-inlining.js: Added. (assert): (test): (test2): (foo): 2016-09-12 Saam Barati HashMapImpl should take into account m_deleteCount in its load factor and it should be able to rehash the table to be smaller https://bugs.webkit.org/show_bug.cgi?id=161640 Reviewed by Geoffrey Garen. * microbenchmarks/map-rehash.js: Added. * stress/map-delete.js: Added. (assert): * stress/map-rehash-2.js: Added. (assert): * stress/map-rehash.js: Added. (assert): 2016-09-12 Yusuke Suzuki Unreviewed, fix tests for different libm environments https://bugs.webkit.org/show_bug.cgi?id=161857 * stress/ftl-arithtan.js: 2016-09-12 Benjamin Poulain [JSC] Use GetArrayLength for JSArray.length even when the array type is undecided https://bugs.webkit.org/show_bug.cgi?id=161671 Reviewed by Geoffrey Garen. * stress/get-array-length-on-undecided.js: Added. 2016-09-12 Yusuke Suzuki [DFG][FTL] Add ArithTan https://bugs.webkit.org/show_bug.cgi?id=161857 Reviewed by Filip Pizlo. * microbenchmarks/tan.js: Added. * stress/arith-tan-on-various-types.js: Added. (let.validInputTypedTestCases.validInputTestCases.map): (isIdentical): (opaqueTanNoArgument): (testNoArgument): (opaqueAllTypesTan): (testAllTypesCall): (testTangleTypeCall): (testConstant): (opaqueTanForSideEffects): (testSideEffect.let.testObject.valueOf): (testSideEffect): (opaqueTanForCSE): (testCSE.let.testObject.valueOf): (testCSE): (opaqueTanForDCE): (testDCE.let.testObject.valueOf): (testDCE): (testException.opaqueTanWithException): (testException): * stress/ftl-arithtan.js: Added. (foo): 2016-09-12 Saam Barati MapHash should do constant folding when it has a constant argument and its legal to hash that value https://bugs.webkit.org/show_bug.cgi?id=161639 Reviewed by Filip Pizlo. * microbenchmarks/map-constant-key.js: Added. (assert): (test): (foo): 2016-09-12 Michael Saboff JSC test timeout: ChakraCore.yaml/ChakraCore/test/Bugs/bug56026_trycatch.js.default https://bugs.webkit.org/show_bug.cgi?id=161863 Reviewed by Saam Barati. * ChakraCore.yaml: Disabled Bugs/bug56026_trycatch.js. 2016-09-09 Michael Saboff Unreviewed, rolling r205759 back in with a fix. The expectation file, JSTests/ChakraCore/test/Lib/tostring.baseline-jsc, should be named "toString.baseline-jsc". * ChakraCore/test/Lib/toString.baseline-jsc: Copied from JSTests/ChakraCore/test/Lib/tostring.baseline-jsc. * ChakraCore/test/Lib/tostring.baseline-jsc: Removed. 2016-09-09 Michael Saboff Disable three flakey Chakra Tests https://bugs.webkit.org/show_bug.cgi?id=161807 Reviewed by Saam Barati. * ChakraCore.yaml: Disabled the flakey tests ChakraCore/test/Array/protoLookup_native.js ChakraCore/test/LetConst/delete.js ChakraCore/test/fieldopts/fieldhoist_sideeffect.js 2016-09-08 Saam Barati We should inline operationConvertJSValueToBoolean into JIT code https://bugs.webkit.org/show_bug.cgi?id=161729 Reviewed by Filip Pizlo. * stress/value-to-boolean.js: Added. (assert): (test1): (test2): (test3): 2016-09-08 Mark Lam REGRESSION (r205569?): 32-bit JSC test timeout: stress/rest-parameter-many-arguments.js.dfg-maximal-flush-validate-no-cjit https://bugs.webkit.org/show_bug.cgi?id=161756 Reviewed by Saam Barati. It looks like the 32-bit JSC bot is just too slow at running this test with the dfg-maximal-flush-validate-no-cjit configuration. We'll try excluding that configuration. * stress/rest-parameter-many-arguments.js: 2016-09-08 JF Bastien Delete older WebAssembly tests https://bugs.webkit.org/show_bug.cgi?id=161758 Reviewed by Filip Pizlo. They're not running, rely on the older polyfill prototype, and the older code was deleted in: https://trac.webkit.org/changeset/204180 * stress/wasm-arithmetic-float32.js: Removed. * stress/wasm-arithmetic-float64.js: Removed. * stress/wasm-arithmetic-int32.js: Removed. * stress/wasm-calls.js: Removed. * stress/wasm-comma.js: Removed. * stress/wasm-control-flow.js: Removed. * stress/wasm-globals.js: Removed. * stress/wasm-linear-memory.js: Removed. * stress/wasm-locals.js: Removed. * stress/wasm-relational.js: Removed. * stress/wasm-type-conversion.js: Removed. * stress/wasm/arithmetic-float32.wasm: Removed. * stress/wasm/arithmetic-float64.wasm: Removed. * stress/wasm/arithmetic-int32.wasm: Removed. * stress/wasm/calls.wasm: Removed. * stress/wasm/comma.wasm: Removed. * stress/wasm/control-flow.wasm: Removed. * stress/wasm/globals.wasm: Removed. * stress/wasm/linear-memory.wasm: Removed. * stress/wasm/locals.wasm: Removed. * stress/wasm/relational.wasm: Removed. * stress/wasm/type-conversion.wasm: Removed. 2016-09-08 Per Arne Vollan [Win] Exception fuzz tests fail https://bugs.webkit.org/show_bug.cgi?id=140928 Reviewed by Mark Lam. Unskip tests. * exceptionFuzz.yaml: 2016-09-06 Saam Barati ProxyObject's structure should not have ObjectPrototype as its prototype and it should not have special behavior for intercepting "__proto__" https://bugs.webkit.org/show_bug.cgi?id=161558 Reviewed by Benjamin Poulain. * stress/proxy-get-prototype-of.js: * stress/proxy-set-prototype-of.js: (let.handler.setPrototypeOf): Deleted. * stress/proxy-underscore-proto.js: Added. (assert): 2016-09-06 Saam Barati Make JSMap and JSSet faster https://bugs.webkit.org/show_bug.cgi?id=160989 Reviewed by Filip Pizlo. * microbenchmarks/dense-set.js: Added. (bench): * microbenchmarks/large-map-iteration-with-additions.js: Added. (bar): (foo): * microbenchmarks/large-map-iteration-with-mutation.js: Added. (bar): (foo): * microbenchmarks/large-map-iteration.js: Added. (bar): (foo): * microbenchmarks/map-get-get-cse.js: Added. (bar): (foo): * microbenchmarks/map-has-get-cse-opportunity.js: Added. (bar): (foo): * microbenchmarks/sparse-set.js: Added. (bench): * stress/map-cse-correctness.js: Added. (assert): (testHas): (testGet): (foo): * stress/map-iteration.js: Added. (assert): (test1): (test2): (test3): (test4): (test5): (test6): (test7): (test8): (test9): (test10): (test11): (test12): (test13): (test14): (test15): (test16): (test17): (test18): 2016-09-06 Benjamin Poulain [JSC] Make ArithClz32 work with Cell arguments https://bugs.webkit.org/show_bug.cgi?id=161369 Reviewed by Geoffrey Garen. * stress/arith-clz32-on-various-types.js: Added. 2016-09-06 Commit Queue Unreviewed, rolling out r205504. https://bugs.webkit.org/show_bug.cgi?id=161645 Broke the iOS device build (Requested by ryanhaddad on #webkit). Reverted changeset: "Make JSMap and JSSet faster" https://bugs.webkit.org/show_bug.cgi?id=160989 http://trac.webkit.org/changeset/205504 2016-09-06 Saam Barati Make JSMap and JSSet faster https://bugs.webkit.org/show_bug.cgi?id=160989 Reviewed by Filip Pizlo. * microbenchmarks/dense-set.js: Added. (bench): * microbenchmarks/large-map-iteration-with-additions.js: Added. (bar): (foo): * microbenchmarks/large-map-iteration-with-mutation.js: Added. (bar): (foo): * microbenchmarks/large-map-iteration.js: Added. (bar): (foo): * microbenchmarks/map-get-get-cse.js: Added. (bar): (foo): * microbenchmarks/map-has-get-cse-opportunity.js: Added. (bar): (foo): * microbenchmarks/sparse-set.js: Added. (bench): * stress/map-cse-correctness.js: Added. (assert): (testHas): (testGet): (foo): * stress/map-iteration.js: Added. (assert): (test1): (test2): (test3): (test4): (test5): (test6): (test7): (test8): (test9): (test10): (test11): (test12): (test13): (test14): (test15): (test16): (test17): (test18): 2016-08-31 Filip Pizlo Butterflies should be allocated in Auxiliary MarkedSpace instead of CopiedSpace and we should rewrite as much of the GC as needed to make this not a regression https://bugs.webkit.org/show_bug.cgi?id=160125 Reviewed by Geoffrey Garen and Keith Miller. Most of the things I did properly covered by existing tests, but I found some simple cases of unshifting that had sketchy coverage. * stress/array-storage-array-unshift.js: Added. * stress/contiguous-array-unshift.js: Added. * stress/double-array-unshift.js: Added. * stress/int32-array-unshift.js: Added. 2016-09-02 Michael Saboff Unreviewed fix after importing Chakra test * ChakraCore.yaml: Skipped ChakraCore/test/UnifiedRegex/crazy.js because the original test contained tab characters. I removed the tabs before landing. This test depended on the tab characters and now fails after they were removed. test. 2016-09-01 Michael Saboff Import Chakra tests to JSC https://bugs.webkit.org/show_bug.cgi?id=154697 Reviewed by Saam Barati. Added Chakra tests. All these tests are under Chakra/test. This is the same layout for tests in the Chakra tree. Created a ChakraCore.yaml file to be used with run-jsc-stress-tests. This file contains the tests that are run when the original Chakra runtests.py script is run. That script is the test driver for *nix platforms and does not attempt to run all tests or all variations of tests. The runtest.py driver consults rlexe.xml files in each test subdirectory to determine the test to run, the options to pass to the test and how to determine pass/fail of the test. With runtests.py as the start, tests that didn't pass directly where either skipped, with a message describing why or through adjustments to the test infrastructure, as described below, where made to pass. The only modification to the test infrastrucutre are: 1) Added simple mapping of Chakra expected exception text to JSC expected text in test/UnitTestFramework/UnitTestFramework.js. It would make sense to also map some JSC specific exception text to more generic text for the cases where that text contains indetifier names or other source specific strings and the Chakra equivolent exception texts are generic. 2) Created JSC specific expected text files where it is clear that the text work as expected on JSC but the test output is different. Typically the differences fall into three categories, different exception output, different output from toString() of a function, slight numeric differences, and test that rely on iteration order. 3) Stripped the CR's from the CR-LF line terminations of the files. No actual test .js files were modified. * ChakraCore: Added. * ChakraCore.yaml: Added. * ChakraCore/CONTRIBUTING.md: Added. * ChakraCore/LICENSE.txt: Added. * ChakraCore/README.md: Added. * ChakraCore/THIRD-PARTY-NOTICES.txt: Added. * ChakraCore/test: Added this directory and the tests included therein. 2016-09-01 JF Bastien GetByIdWithThis/GetByValWithThis should have ValueProfiles so that they can predict their result types https://bugs.webkit.org/show_bug.cgi?id=160922 Reviewed by Keith Miller. Benchmark GetBy{Id,Val}WithThis in monomorphic and polymorphic uses. The value profile is used by the calc functions, which do some mild math with the result. These benchmarks get ~4% faster with value profiling. * microbenchmarks/super-get-by-id-with-this-monomorphic.js: Added. (A): (A.prototype.set value): (A.prototype.get value): (B.prototype.set value): (B.prototype.get value): (B): (const.bench): * microbenchmarks/super-get-by-id-with-this-polymorphic.js: Added. (A): (A.prototype.set value): (A.prototype.get value): (B.prototype.set value): (B.prototype.get value): (B): (const.bench): * microbenchmarks/super-get-by-val-with-this-monomorphic.js: Added. (value): (A): (A.prototype.set v): (A.prototype.get v): (B.prototype.set v): (B.prototype.get v): (B): (const.bench): * microbenchmarks/super-get-by-val-with-this-polymorphic.js: Added. (value): (A): (A.prototype.set v): (A.prototype.get v): (B.prototype.set v): (B.prototype.get v): (B): (const.bench): 2016-09-01 Benjamin Poulain arith-abs-on-various-types.js is flaky Unreviewed. * stress/arith-abs-on-various-types.js: Two compilation is too small for the worst case. Math.abs() can be typed integer->number->untyped if we are very unlucky. 2016-09-01 Filip Pizlo ObjectAllocationSinkingPhase::insertOSRHintsForUpdate() fails to emit updated hints in some cases https://bugs.webkit.org/show_bug.cgi?id=161492 Reviewed by Mark Lam. This bug affected function->activation references but not object->object field references, because object->object field references are !neededForMaterialization(). So, the object test always passed but the activation/function test used to always fail. It passes now. * stress/materialize-activation-referenced-from-phantom-function.js: Added. (bar): (inc): (dec): (foo): (test): * stress/materialize-object-referenced-from-phantom-object.js: Added. (bar): (foo): (test): 2016-08-31 Yusuke Suzuki stress/random-53bit.js.ftl-no-cjit-no-inline-validate sometimes fails https://bugs.webkit.org/show_bug.cgi?id=161436 Reviewed by Filip Pizlo. The test checks Math.random() correctly produces 53bit random values. The test can fail by design, but this should be fairly rare. However, when introducing, we wrap the `test()` with 1e4 to ensure the FTL compilation, and this increases the failure rate. By increasing the MAX in the test, we make the failures much more rare case. And we also add getRandomSeed() and setRandomSeed(seed) JSC shell helpers to dump more useful information and reproduce the situation easily. * stress/random-53bit.js: (test): 2016-08-29 Benjamin Poulain [JSC] Improve ArithAbs with polymorphic input https://bugs.webkit.org/show_bug.cgi?id=161286 Reviewed by Saam Barati. * stress/arith-abs-on-various-types.js: Added. New tests. * stress/arith-cos-on-various-types.js: * stress/arith-fround-on-various-types.js: * stress/arith-log-on-various-types.js: * stress/arith-sin-on-various-types.js: * stress/arith-sqrt-on-various-types.js: Extend the existing tests to cover the DCE case. 2016-08-26 Benjamin Poulain [JSC] Implement CompareStrictEq(String, Untyped) in FTL https://bugs.webkit.org/show_bug.cgi?id=161229 Reviewed by Geoffrey Garen. * stress/compare-strict-eq-on-various-types.js: Added. 2016-08-26 Yusuke Suzuki [ES6] newPromiseCapabilities should check the given argument is constructor https://bugs.webkit.org/show_bug.cgi?id=161226 Reviewed by Mark Lam. The arrow function should not be a constructor. So the error should be raised. * stress/new-promise-capabilities-requires-constructor.js: Added. (shouldThrow): 2016-08-25 Benjamin Poulain [JSC] Clean up the abstract interpreter for cos/sin/sqrt/fround/log https://bugs.webkit.org/show_bug.cgi?id=161181 Reviewed by Geoffrey Garen. Extend the tests to constants. Add no-argument cases where needed. * stress/arith-cos-on-various-types.js: * stress/arith-fround-on-various-types.js: * stress/arith-log-on-various-types.js: * stress/arith-sin-on-various-types.js: * stress/arith-sqrt-on-various-types.js: 2016-08-25 Yusuke Suzuki [DFG][FTL] Implement ES6 Generators in DFG / FTL https://bugs.webkit.org/show_bug.cgi?id=152723 Reviewed by Filip Pizlo. * stress/generator-fib-ftl-and-array.js: Added. (fib): * stress/generator-fib-ftl-and-object.js: Added. (fib): * stress/generator-fib-ftl-and-string.js: Added. (fib): * stress/generator-fib-ftl.js: Added. (fib): * stress/generator-frame-empty.js: Added. (shouldThrow): (shouldThrow.fib): * stress/generator-reduced-save-point-put-to-scope.js: Added. (shouldBe): (gen): * stress/generator-transfer-register-beyond-mutiple-yields.js: Added. (shouldBe): (gen): 2016-08-25 JF Bastien TryGetById should have a ValueProfile so that it can predict its output type https://bugs.webkit.org/show_bug.cgi?id=160921 Reviewed by Saam Barati. * microbenchmarks/try-get-by-id-basic.js: Added. (const.check): (const.bench.f.const.fooPlusBar.createBuiltin): * microbenchmarks/try-get-by-id-polymorphic.js: Added. (const.check): (fooPlusBar.createBuiltin): (bench): 2016-08-25 Caio Lima NewRegexp should not prevent inlining https://bugs.webkit.org/show_bug.cgi?id=154808 Reviewed by Geoffrey Garen. Added test where functions with NewRegExp can be inlined right now. * stress/new-regex-inline.js: Added. (assert): (testRegexpInline): (toInlineGlobal): (withRegexp): (inlineRegexpNotGlobal): (toInlineRecursive): (regexpContainsRecursive): 2016-08-24 Benjamin Poulain [JSC] Make FRound work with any type https://bugs.webkit.org/show_bug.cgi?id=161129 Reviewed by Geoffrey Garen. * stress/arith-fround-on-various-types.js: Added. 2016-08-24 Filip Pizlo Unreviewed, roll out r204901, r204897, r204866, r204856, r204854. * stress/array-storage-array-unshift.js: Removed. * stress/contiguous-array-unshift.js: Removed. * stress/double-array-unshift.js: Removed. * stress/int32-array-unshift.js: Removed. 2016-08-24 Skachkov Oleksandr [ES2016] Allow assignment in for-in head in not-strict mode https://bugs.webkit.org/show_bug.cgi?id=160955 Reviewed by Saam Barati. * stress/for-in-tests.js: (foo): (boo): (catch): 2016-08-23 Benjamin Poulain [JSC] Make ArithLog works with any type https://bugs.webkit.org/show_bug.cgi?id=161110 Reviewed by Geoffrey Garen. * stress/arith-log-on-various-types.js: Added. 2016-08-23 Saam Barati JSC should have a "microbenchmarks" directory instead of "regress" directory https://bugs.webkit.org/show_bug.cgi?id=161096 Rubber stamped by Mark Lam. * microbenchmarks: Copied from LayoutTests/js/regress/script-tests. 2016-08-23 Keith Miller %TypedArray%.prototype.slice needs to check that the source and destination have not been detached. https://bugs.webkit.org/show_bug.cgi?id=161031 Reviewed by Geoffrey Garen. * stress/typedarray-slice.js: (get let): (get try): (testSpeciesWithTransferring): 2016-08-22 Filip Pizlo Butterflies should be allocated in Auxiliary MarkedSpace instead of CopiedSpace and we should rewrite as much of the GC as needed to make this not a regression https://bugs.webkit.org/show_bug.cgi?id=160125 Reviewed by Geoffrey Garen. Most of the things I did properly covered by existing tests, but I found some simple cases of unshifting that had sketchy coverage. * stress/array-storage-array-unshift.js: Added. * stress/contiguous-array-unshift.js: Added. * stress/double-array-unshift.js: Added. * stress/int32-array-unshift.js: Added. 2016-08-23 Keith Miller Update/add new test262 tests https://bugs.webkit.org/show_bug.cgi?id=161098 Reviewed by Saam Barati. * test262.yaml: * test262/test/annexB/language/statements/for-in/bare-initializer.js: Added. * test262/test/annexB/language/statements/for-in/const-initializer.js: Added. * test262/test/annexB/language/statements/for-in/let-initializer.js: Added. * test262/test/annexB/language/statements/for-in/nonstrict-initializer.js: Added. (a): * test262/test/annenxB/language/statements/for-in/strict-initializer.js: Added. * test262/test/annexB/language/statements/for-in/var-arraybindingpattern-initializer.js: Added. * test262/test/annexB/language/statements/for-in/var-objectbindingpattern-initializer.js: Added. * test262/test/built-ins/AsyncFunction/AsyncFunction-construct.js: Added. (AsyncFunction.async.foo): * test262/test/built-ins/AsyncFunction/AsyncFunction-is-extensible.js: Added. (AsyncFunction.async): * test262/test/built-ins/AsyncFunction/AsyncFunction-is-subclass.js: Added. (async.foo): * test262/test/built-ins/AsyncFunction/AsyncFunction-length.js: Added. (AsyncFunction.async.foo): * test262/test/built-ins/AsyncFunction/AsyncFunction-name.js: Added. (AsyncFunction.async.foo): * test262/test/built-ins/AsyncFunction/AsyncFunction-prototype.js: Added. (AsyncFunction.async.foo): * test262/test/built-ins/AsyncFunction/AsyncFunction.js: Added. (AsyncFunction.async.foo): * test262/test/built-ins/AsyncFunction/AsyncFunctionPrototype-is-extensible.js: Added. (AsyncFunction.async.foo): * test262/test/built-ins/AsyncFunction/AsyncFunctionPrototype-prototype.js: Added. (AsyncFunction.async.foo): * test262/test/built-ins/AsyncFunction/AsyncFunctionPrototype-to-string.js: Added. (AsyncFunction.async.foo): * test262/test/built-ins/AsyncFunction/instance-construct.js: Added. (async.foo): * test262/test/built-ins/AsyncFunction/instance-has-name.js: Added. (async.foo): * test262/test/built-ins/AsyncFunction/instance-length.js: Added. (async.l0): (async.l1): (async.l2): * test262/test/built-ins/AsyncFunction/instance-prototype-property.js: Added. (async.foo): * test262/test/built-ins/AsyncFunction/is-not-a-global.js: Added. * test262/test/built-ins/DataView/prototype/getFloat32/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/getFloat32/detached-buffer-after-integer-byteoffset.js. * test262/test/built-ins/DataView/prototype/getFloat32/detached-buffer-before-outofrange-byteoffset.js: * test262/test/built-ins/DataView/prototype/getFloat64/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/getFloat64/detached-buffer-after-integer-byteoffset.js. * test262/test/built-ins/DataView/prototype/getFloat64/detached-buffer-before-outofrange-byteoffset.js: * test262/test/built-ins/DataView/prototype/getInt16/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/getInt16/detached-buffer-after-integer-byteoffset.js. * test262/test/built-ins/DataView/prototype/getInt16/detached-buffer-before-outofrange-byteoffset.js: * test262/test/built-ins/DataView/prototype/getInt32/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/getInt32/detached-buffer-after-integer-byteoffset.js. * test262/test/built-ins/DataView/prototype/getInt32/detached-buffer-before-outofrange-byteoffset.js: * test262/test/built-ins/DataView/prototype/getInt8/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/getInt8/detached-buffer-after-integer-byteoffset.js. * test262/test/built-ins/DataView/prototype/getInt8/detached-buffer-before-outofrange-byteoffset.js: * test262/test/built-ins/DataView/prototype/getUint16/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/getUint16/detached-buffer-after-integer-byteoffset.js. * test262/test/built-ins/DataView/prototype/getUint16/detached-buffer-before-outofrange-byteoffset.js: * test262/test/built-ins/DataView/prototype/getUint32/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/getUint32/detached-buffer-after-integer-byteoffset.js. * test262/test/built-ins/DataView/prototype/getUint32/detached-buffer-before-outofrange-byteoffset.js: * test262/test/built-ins/DataView/prototype/getUint8/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/getUint8/detached-buffer-after-integer-byteoffset.js. * test262/test/built-ins/DataView/prototype/getUint8/detached-buffer-before-outofrange-byteoffset.js: * test262/test/built-ins/DataView/prototype/setFloat32/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/setFloat32/detached-buffer-after-integer-byteoffset.js. * test262/test/built-ins/DataView/prototype/setFloat32/detached-buffer-before-outofrange-byteoffset.js: * test262/test/built-ins/DataView/prototype/setFloat32/index-check-before-value-conversion.js: * test262/test/built-ins/DataView/prototype/setFloat32/range-check-after-value-conversion.js: * test262/test/built-ins/DataView/prototype/setFloat64/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/setFloat64/detached-buffer-after-integer-byteoffset.js. * test262/test/built-ins/DataView/prototype/setFloat64/detached-buffer-before-outofrange-byteoffset.js: * test262/test/built-ins/DataView/prototype/setFloat64/index-check-before-value-conversion.js: * test262/test/built-ins/DataView/prototype/setFloat64/range-check-after-value-conversion.js: * test262/test/built-ins/DataView/prototype/setInt16/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/setInt16/detached-buffer-after-integer-byteoffset.js. * test262/test/built-ins/DataView/prototype/setInt16/detached-buffer-before-outofrange-byteoffset.js: * test262/test/built-ins/DataView/prototype/setInt16/index-check-before-value-conversion.js: * test262/test/built-ins/DataView/prototype/setInt16/range-check-after-value-conversion.js: * test262/test/built-ins/DataView/prototype/setInt32/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/setInt32/detached-buffer-after-integer-byteoffset.js. * test262/test/built-ins/DataView/prototype/setInt32/detached-buffer-before-outofrange-byteoffset.js: * test262/test/built-ins/DataView/prototype/setInt32/index-check-before-value-conversion.js: * test262/test/built-ins/DataView/prototype/setInt32/range-check-after-value-conversion.js: * test262/test/built-ins/DataView/prototype/setInt8/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/setInt8/detached-buffer-after-integer-byteoffset.js. * test262/test/built-ins/DataView/prototype/setInt8/detached-buffer-before-outofrange-byteoffset.js: * test262/test/built-ins/DataView/prototype/setInt8/index-check-before-value-conversion.js: * test262/test/built-ins/DataView/prototype/setInt8/range-check-after-value-conversion.js: * test262/test/built-ins/DataView/prototype/setUint16/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/setUint16/detached-buffer-after-integer-byteoffset.js. * test262/test/built-ins/DataView/prototype/setUint16/detached-buffer-before-outofrange-byteoffset.js: * test262/test/built-ins/DataView/prototype/setUint16/index-check-before-value-conversion.js: * test262/test/built-ins/DataView/prototype/setUint16/range-check-after-value-conversion.js: * test262/test/built-ins/DataView/prototype/setUint32/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/setUint32/detached-buffer-after-integer-byteoffset.js. * test262/test/built-ins/DataView/prototype/setUint32/detached-buffer-before-outofrange-byteoffset.js: * test262/test/built-ins/DataView/prototype/setUint32/index-check-before-value-conversion.js: * test262/test/built-ins/DataView/prototype/setUint32/range-check-after-value-conversion.js: * test262/test/built-ins/DataView/prototype/setUint8/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/setUint8/detached-buffer-after-integer-byteoffset.js. * test262/test/built-ins/DataView/prototype/setUint8/detached-buffer-before-outofrange-byteoffset.js: * test262/test/built-ins/DataView/prototype/setUint8/index-check-before-value-conversion.js: * test262/test/built-ins/DataView/prototype/setUint8/range-check-after-value-conversion.js: * test262/test/built-ins/Function/prototype/bind/instance-construct-newtarget-boundtarget-bound.js: Added. (A): * test262/test/built-ins/Function/prototype/bind/instance-construct-newtarget-boundtarget.js: Added. (A): * test262/test/built-ins/Function/prototype/bind/instance-construct-newtarget-self-new.js: Added. (A): * test262/test/built-ins/Function/prototype/bind/instance-construct-newtarget-self-reflect.js: Added. (A): * test262/test/built-ins/Function/prototype/toString/AsyncFunction.js: Added. (async.f): * test262/test/built-ins/Function/prototype/toString/async-function-declaration.js: Added. (async.f): * test262/test/built-ins/Function/prototype/toString/async-function-expression.js: Added. (let.f.async.f): * test262/test/built-ins/Function/prototype/toString/async-method.js: Added. (let.f.async.f): (let.g.async.string_appeared_here): * test262/test/built-ins/JSON/parse/reviver-array-define-prop-err.js: Added. (defineProperty): * test262/test/built-ins/JSON/parse/reviver-array-delete-err.js: Added. (deleteProperty): * test262/test/built-ins/JSON/parse/reviver-array-length-coerce-err.js: Added. (uncoercible.valueOf): (get if): * test262/test/built-ins/JSON/parse/reviver-array-length-get-err.js: Added. (get if): * test262/test/built-ins/JSON/parse/reviver-call-err.js: Added. * test262/test/built-ins/JSON/parse/reviver-get-name-err.js: Added. (thrower): * test262/test/built-ins/JSON/parse/reviver-object-define-prop-err.js: Added. (defineProperty): * test262/test/built-ins/JSON/parse/reviver-object-delete-err.js: Added. (deleteProperty): * test262/test/built-ins/JSON/parse/reviver-object-own-keys-err.js: Added. (ownKeys): * test262/test/built-ins/Number/prototype/toExponential/infinity.js: Added. * test262/test/built-ins/Number/prototype/toExponential/nan.js: Added. * test262/test/built-ins/Number/prototype/toExponential/prop-desc.js: Added. * test262/test/built-ins/Number/prototype/toExponential/return-abrupt-tointeger-fractiondigits-symbol.js: Added. * test262/test/built-ins/Number/prototype/toExponential/return-abrupt-tointeger-fractiondigits.js: Added. (fd1.valueOf): (fd2.toString): * test262/test/built-ins/Number/prototype/toExponential/return-values.js: Added. * test262/test/built-ins/Number/prototype/toExponential/this-is-0-fractiondigits-is-0.js: Added. * test262/test/built-ins/Number/prototype/toExponential/this-is-0-fractiondigits-is-not-0.js: Added. * test262/test/built-ins/Number/prototype/toExponential/this-type-not-number-or-number-object.js: Added. * test262/test/built-ins/Number/prototype/toExponential/tointeger-fractiondigits.js: Added. * test262/test/built-ins/Number/prototype/toExponential/undefined-fractiondigits.js: Added. * test262/test/built-ins/Object/getOwnPropertyDescriptors/duplicate-keys.js: * test262/test/built-ins/Object/getOwnPropertyDescriptors/proxy-undefined-descriptor.js: Added. (badProxyHandlers.allowProxyTraps.getOwnPropertyDescriptor): (badProxyHandlers.allowProxyTraps.ownKeys): * test262/test/built-ins/Proxy/setPrototypeOf/boolean-trap-result-extensible-target.js: Removed. (setPrototypeOf): Deleted. * test262/test/built-ins/Proxy/setPrototypeOf/internals-call-order.js: Added. (target.new.Proxy.Object.create.isExtensible): (target.new.Proxy.Object.create.getPrototypeOf): (target.new.Proxy.Object.create): (setPrototypeOf): * test262/test/built-ins/Proxy/setPrototypeOf/not-extensible-target-not-same-target-prototype.js: (setPrototypeOf): * test262/test/built-ins/Proxy/setPrototypeOf/not-extensible-target-same-target-prototype.js: (setPrototypeOf): * test262/test/built-ins/Proxy/setPrototypeOf/not-extensible-trap-is-false-return-false.js: Removed. (setPrototypeOf): Deleted. * test262/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-get-trap.js: Added. * test262/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-isextensible-target.js: Added. (isExtensible): (setPrototypeOf): * test262/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-target-getprototypeof.js: Added. (getPrototypeOf): (setPrototypeOf): * test262/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-trap.js: Renamed from JSTests/test262/test/built-ins/Proxy/setPrototypeOf/return-is-abrupt.js. (setPrototypeOf): * test262/test/built-ins/Proxy/setPrototypeOf/return-is-abrupt.js: (setPrototypeOf): Deleted. * test262/test/built-ins/Proxy/setPrototypeOf/toboolean-trap-result-false.js: Added. (isExtensible): (setPrototypeOf): * test262/test/built-ins/Proxy/setPrototypeOf/toboolean-trap-result-true-target-is-extensible.js: Added. (isExtensible): (getPrototypeOf): (setPrototypeOf): * test262/test/built-ins/Proxy/setPrototypeOf/trap-is-not-callable.js: * test262/test/built-ins/Proxy/setPrototypeOf/trap-is-undefined-or-null.js: Added. (setPrototypeOf): * test262/test/built-ins/Proxy/setPrototypeOf/trap-is-undefined.js: Removed. * test262/test/built-ins/RegExp/lastIndex.js: Added. * test262/test/built-ins/RegExp/prototype/global/15.10.7.2-1.js: Removed. * test262/test/built-ins/RegExp/prototype/global/this-val-invalid-obj.js: Added. (get Object): * test262/test/built-ins/RegExp/prototype/global/this-val-non-obj.js: Added. (get Object): * test262/test/built-ins/RegExp/prototype/global/this-val-regexp-prototype.js: Added. * test262/test/built-ins/RegExp/prototype/ignoreCase/15.10.7.3-1.js: Removed. * test262/test/built-ins/RegExp/prototype/ignoreCase/this-val-invalid-obj.js: Added. (get Object): * test262/test/built-ins/RegExp/prototype/ignoreCase/this-val-non-obj.js: Added. (get Object): * test262/test/built-ins/RegExp/prototype/ignoreCase/this-val-regexp-prototype.js: Added. * test262/test/built-ins/RegExp/prototype/lastIndex/15.10.7.5-1.js: Removed. * test262/test/built-ins/RegExp/prototype/lastIndex/15.10.7.5-2.js: Removed. * test262/test/built-ins/RegExp/prototype/lastIndex/S15.10.7.5_A8.js: Removed. (__re.hasOwnProperty): Deleted. (__re.propertyIsEnumerable): Deleted. (count.0): Deleted. * test262/test/built-ins/RegExp/prototype/lastIndex/S15.10.7.5_A9.js: Removed. (__re.hasOwnProperty): Deleted. (catch): Deleted. * test262/test/built-ins/RegExp/prototype/multiline/15.10.7.4-1.js: Removed. * test262/test/built-ins/RegExp/prototype/multiline/this-val-invalid-obj.js: Added. (get Object): * test262/test/built-ins/RegExp/prototype/multiline/this-val-non-obj.js: Added. (get Object): * test262/test/built-ins/RegExp/prototype/multiline/this-val-regexp-prototype.js: Added. * test262/test/built-ins/RegExp/prototype/no-regexp-matcher.js: Added. * test262/test/built-ins/RegExp/prototype/source/15.10.7.1-1.js: Removed. * test262/test/built-ins/RegExp/prototype/source/this-val-invalid-obj.js: Added. (get Object): * test262/test/built-ins/RegExp/prototype/source/this-val-non-obj.js: Added. (get Object): * test262/test/built-ins/RegExp/prototype/source/this-val-regexp-prototype.js: Added. * test262/test/built-ins/RegExp/prototype/source/value-empty.js: Added. * test262/test/built-ins/RegExp/prototype/source/value-line-terminator.js: Added. * test262/test/built-ins/RegExp/prototype/source/value-u.js: Added. * test262/test/built-ins/RegExp/prototype/source/value.js: Added. * test262/test/built-ins/RegExp/prototype/sticky/this-val-invalid-obj.js: Renamed from JSTests/test262/test/built-ins/RegExp/prototype/sticky/this-invalid-obj.js. * test262/test/built-ins/RegExp/prototype/sticky/this-val-non-obj.js: Renamed from JSTests/test262/test/built-ins/RegExp/prototype/sticky/this-non-obj.js. * test262/test/built-ins/RegExp/prototype/sticky/this-val-regexp-prototype.js: Added. * test262/test/built-ins/RegExp/prototype/sticky/this-val-regexp.js: Renamed from JSTests/test262/test/built-ins/RegExp/prototype/sticky/this-regexp.js. * test262/test/built-ins/RegExp/prototype/unicode/this-val-invalid-obj.js: Renamed from JSTests/test262/test/built-ins/RegExp/prototype/unicode/this-invald-obj.js. * test262/test/built-ins/RegExp/prototype/unicode/this-val-non-obj.js: Renamed from JSTests/test262/test/built-ins/RegExp/prototype/unicode/this-non-obj.js. * test262/test/built-ins/RegExp/prototype/unicode/this-val-regexp-prototype.js: Added. * test262/test/built-ins/RegExp/prototype/unicode/this-val-regexp.js: Renamed from JSTests/test262/test/built-ins/RegExp/prototype/unicode/this-regexp.js. * test262/test/built-ins/String/numeric-properties.js: Added. * test262/test/intl402/DateTimeFormat/prototype/formatToParts/date-is-infinity-throws.js: Added. * test262/test/intl402/DateTimeFormat/prototype/formatToParts/date-is-nan-throws.js: Added. * test262/test/intl402/DateTimeFormat/prototype/formatToParts/formatToParts.js: Added. * test262/test/intl402/DateTimeFormat/prototype/formatToParts/length.js: Added. * test262/test/intl402/DateTimeFormat/prototype/formatToParts/main.js: Added. (reduce): (compareFTPtoFormat): * test262/test/intl402/DateTimeFormat/prototype/formatToParts/name.js: Added. * test262/test/intl402/DateTimeFormat/prototype/formatToParts/return-abrupt-tonumber-date.js: Added. (obj1.valueOf): (obj2.toString): * test262/test/intl402/DateTimeFormat/prototype/formatToParts/this-has-not-internal-throws.js: Added. * test262/test/intl402/DateTimeFormat/prototype/formatToParts/this-is-not-object-throws.js: Added. * test262/test/intl402/NumberFormat/prototype/formatToParts/formatToParts.js: Added. * test262/test/intl402/NumberFormat/prototype/formatToParts/length.js: Added. * test262/test/intl402/NumberFormat/prototype/formatToParts/main.js: Added. (reduce): (compareFTPtoFormat): * test262/test/intl402/NumberFormat/prototype/formatToParts/name.js: Added. * test262/test/intl402/NumberFormat/prototype/formatToParts/return-abrupt-tonumber.js: Added. (obj1.valueOf): (obj2.toString): * test262/test/intl402/NumberFormat/prototype/formatToParts/this-has-not-internal-throws.js: Added. * test262/test/intl402/NumberFormat/prototype/formatToParts/this-is-not-object-throws.js: Added. * test262/test/language/arguments-object/10.6-10-c-ii-2-s.js: (foo): Deleted. * test262/test/language/arguments-object/unmapped/via-params-dflt.js: Added. (dflt): * test262/test/language/arguments-object/unmapped/via-params-dstr.js: Added. (dstr): * test262/test/language/arguments-object/unmapped/via-params-rest.js: Added. (rest): * test262/test/language/arguments-object/unmapped/via-strict.js: Renamed from JSTests/test262/test/language/arguments-object/10.6-10-c-ii-2-s.js. (foo): * test262/test/language/block-scope/syntax/redeclaration-global/allowed-to-redeclare-function-declaration-with-function-declaration.js: (f): Deleted. * test262/test/language/eval-code/direct/super-call-arrow.js: Added. (catch): * test262/test/language/eval-code/direct/super-call-fn.js: Added. (f): * test262/test/language/eval-code/direct/super-call.js: Added. (catch): * test262/test/language/eval-code/direct/super-prop-arrow.js: Added. (catch): * test262/test/language/eval-code/direct/super-prop-method.js: Added. (o.method): * test262/test/language/eval-code/direct/super-prop.js: Added. (catch): * test262/test/language/eval-code/indirect/super-call.js: Added. (catch): (try.m): * test262/test/language/eval-code/indirect/super-prop.js: Added. (catch): (try.m): * test262/test/language/expressions/arrow-function/params-trailing-comma-length.js: Added. (assert.sameValue): * test262/test/language/expressions/arrow-function/params-trailing-comma.js: Added. * test262/test/language/expressions/async-arrow-function/arrow-returns-promise.js: Added. (p.then): * test262/test/language/expressions/async-arrow-function/early-errors-arrow-NSPL-with-USD.js: Added. (async): * test262/test/language/expressions/async-arrow-function/early-errors-arrow-arguments-in-formal-parameters.js: Added. (async): * test262/test/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals-default.js: Added. (async): * test262/test/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals.js: Added. (async): * test262/test/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-call.js: Added. (async): * test262/test/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-property.js: Added. (async): * test262/test/language/expressions/async-arrow-function/early-errors-arrow-duplicate-parameters.js: Added. (async): * test262/test/language/expressions/async-arrow-function/early-errors-arrow-eval-in-formal-parameters.js: Added. (async): * test262/test/language/expressions/async-arrow-function/early-errors-arrow-formals-body-duplicate.js: Added. (async): * test262/test/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-call.js: Added. (async.foo.super): * test262/test/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-property.js: Added. (async): * test262/test/language/expressions/async-function/early-errors-expression-NSPL-with-USD.js: Added. (async): * test262/test/language/expressions/async-function/early-errors-expression-binding-identifier-arguments.js: Added. (async.arguments): * test262/test/language/expressions/async-function/early-errors-expression-binding-identifier-eval.js: Added. (async.eval): * test262/test/language/expressions/async-function/early-errors-expression-body-contains-super-call.js: Added. (async.foo): * test262/test/language/expressions/async-function/early-errors-expression-body-contains-super-property.js: Added. (async.foo): * test262/test/language/expressions/async-function/early-errors-expression-eval-in-formal-parameters.js: Added. (async.foo): * test262/test/language/expressions/async-function/early-errors-expression-formals-body-duplicate.js: Added. (async.foo): * test262/test/language/expressions/async-function/early-errors-expression-formals-contains-super-call.js: Added. (async.foo): * test262/test/language/expressions/async-function/early-errors-expression-formals-contains-super-property.js: Added. (async.foo): * test262/test/language/expressions/async-function/early-errors-expression-not-simple-assignment-target.js: Added. (async.foo): * test262/test/language/expressions/async-function/expression-returns-promise.js: Added. (p.async): * test262/test/language/expressions/async-function/syntax-expression-is-PrimaryExpression.js: Added. (async.foo): * test262/test/language/expressions/await/await-BindingIdentifier-in-global.js: Added. (async.await): * test262/test/language/expressions/await/await-BindingIdentifier-nested.js: Added. (async.foo.await): (async.foo): * test262/test/language/expressions/await/await-awaits-thenable-not-callable.js: Added. (async.foo): * test262/test/language/expressions/await/await-awaits-thenables-that-throw.js: Added. (thenable.then): (async.foo): * test262/test/language/expressions/await/await-awaits-thenables.js: Added. (thenable.then): (async.foo): * test262/test/language/expressions/await/await-in-function.js: Added. (foo): * test262/test/language/expressions/await/await-in-generator.js: Added. (foo): * test262/test/language/expressions/await/await-in-global.js: Added. * test262/test/language/expressions/await/await-in-nested-function.js: Added. (async.foo.bar): (async.foo): * test262/test/language/expressions/await/await-in-nested-generator.js: Added. (async.foo.bar): (async.foo): * test262/test/language/expressions/await/await-throws-rejections.js: Added. (async.foo): * test262/test/language/expressions/await/early-errors-await-not-simple-assignment-target.js: Added. (async.foo): * test262/test/language/expressions/await/no-operand.js: Added. (async.foo): * test262/test/language/expressions/await/syntax-await-has-UnaryExpression-with-MultiplicativeExpression.js: Added. (async.foo): * test262/test/language/expressions/await/syntax-await-has-UnaryExpression.js: Added. (async.foo): * test262/test/language/expressions/call/trailing-comma.js: Added. (foo): * test262/test/language/expressions/function/arguments-with-arguments-fn.js: Added. (f): * test262/test/language/expressions/function/arguments-with-arguments-lex.js: Added. (f): * test262/test/language/expressions/function/params-trailing-comma-arguments.js: Added. (f1): (f2): * test262/test/language/expressions/function/params-trailing-comma-length.js: Added. (assert.sameValue): * test262/test/language/expressions/function/params-trailing-comma.js: Added. * test262/test/language/expressions/generators/arguments-with-arguments-fn.js: Added. (g): * test262/test/language/expressions/generators/arguments-with-arguments-lex.js: Added. (g): * test262/test/language/expressions/generators/params-trailing-comma-arguments.js: Added. (f1): (f2): * test262/test/language/expressions/generators/params-trailing-comma-length.js: Added. (assert.sameValue): * test262/test/language/expressions/generators/params-trailing-comma.js: Added. * test262/test/language/expressions/object/computed-property-evaluation-order.js: Added. * test262/test/language/expressions/object/method-definition/async-super-call-body.js: Added. (sup.method): (child.async.method): * test262/test/language/expressions/object/method-definition/async-super-call-param.js: Added. (sup.method): (child.async.method.x.super.method): * test262/test/language/expressions/object/method-definition/early-errors-object-method-NSPL-with-USD.js: Added. (foo): * test262/test/language/expressions/object/method-definition/early-errors-object-method-arguments-in-formal-parameters.js: Added. (async.foo): * test262/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals-default.js: Added. (async.foo): * test262/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals.js: Added. (async.foo): * test262/test/language/expressions/object/method-definition/early-errors-object-method-body-contains-super-call.js: Added. (async.foo): * test262/test/language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js: Added. (async.foo): * test262/test/language/expressions/object/method-definition/early-errors-object-method-eval-in-formal-parameters.js: Added. (async.foo): * test262/test/language/expressions/object/method-definition/early-errors-object-method-formals-body-duplicate.js: Added. (async.foo): * test262/test/language/expressions/object/method-definition/early-errors-object-method-formals-contains-super-call.js: Added. (async.foo.foo.super): * test262/test/language/expressions/object/method-definition/object-method-returns-promise.js: Added. (obj.async.method): * test262/test/language/expressions/object/method-definition/params-trailing-comma-arguments.js: Added. (obj.f1): (obj.f2): * test262/test/language/expressions/object/method-definition/params-trailing-comma-length.js: Added. (obj.one): (obj.two): * test262/test/language/expressions/object/method-definition/params-trailing-comma-rest.js: Added. (m): * test262/test/language/expressions/object/method-definition/params-trailing-comma.js: Added. (one): (two): * test262/test/language/global-code/decl-func-dup.js: Renamed from JSTests/test262/test/language/block-scope/syntax/redeclaration-global/allowed-to-redeclare-function-declaration-with-function-declaration.js. (f): * test262/test/language/global-code/decl-func.js: Added. (brandNew): * test262/test/language/global-code/decl-lex-configurable-global.js: Added. * test262/test/language/global-code/decl-lex-deletion.js: Added. (test262class): * test262/test/language/global-code/decl-lex-restricted-global.js: Added. * test262/test/language/global-code/decl-lex.js: Added. (test262class): * test262/test/language/global-code/decl-var.js: Added. * test262/test/language/global-code/return.js: Added. * test262/test/language/global-code/script-decl-func-dups.js: Added. * test262/test/language/global-code/script-decl-func-err-non-configurable.js: Added. * test262/test/language/global-code/script-decl-func-err-non-extensible.js: Added. * test262/test/language/global-code/script-decl-func.js: Added. * test262/test/language/global-code/script-decl-lex-deletion.js: Added. * test262/test/language/global-code/script-decl-lex-lex.js: Added. (test262Class): * test262/test/language/global-code/script-decl-lex-restricted-global.js: Added. * test262/test/language/global-code/script-decl-lex-var.js: Added. (test262Fn): * test262/test/language/global-code/script-decl-lex.js: Added. * test262/test/language/global-code/script-decl-var-collision.js: Added. (test262Class): * test262/test/language/global-code/script-decl-var-err.js: Added. * test262/test/language/global-code/script-decl-var.js: Added. * test262/test/language/global-code/super-call-arrow.js: Added. * test262/test/language/global-code/super-call.js: Added. * test262/test/language/global-code/super-prop-arrow.js: Added. * test262/test/language/global-code/super-prop.js: Added. * test262/test/language/global-code/yield-non-strict.js: Added. (catch): * test262/test/language/global-code/yield-strict.js: Added. * test262/test/language/literals/regexp/lastIndex.js: Added. * test262/test/language/literals/regexp/u-unicode-esc-bounds.js: * test262/test/language/literals/regexp/y-assertion-start.js: Added. * test262/test/language/module-code/instn-star-err-not-found-faulty_FIXTURE.js: * test262/test/language/module-code/instn-star-err-not-found.js: * test262/test/language/module-code/namespace/internals/get-own-property-str-found-init.js: * test262/test/language/module-code/parse-err-return.js: Added. * test262/test/language/module-code/parse-err-yield.js: Added. * test262/test/language/rest-parameters/params-trailing-comma-rest.js: Added. * test262/test/language/statements/async-function/declaration-returns-promise.js: Added. (async.foo): * test262/test/language/statements/async-function/early-errors-declaration-NSPL-with-USD.js: Added. (async.foo): * test262/test/language/statements/async-function/early-errors-declaration-arguments-in-formal-parameters.js: Added. (async.foo): * test262/test/language/statements/async-function/early-errors-declaration-await-in-formals-default.js: Added. (async.foo): * test262/test/language/statements/async-function/early-errors-declaration-await-in-formals.js: Added. (async.foo): * test262/test/language/statements/async-function/early-errors-declaration-binding-identifier-arguments.js: Added. (async.arguments): * test262/test/language/statements/async-function/early-errors-declaration-binding-identifier-eval.js: Added. (async.eval): * test262/test/language/statements/async-function/early-errors-declaration-body-contains-super-call.js: Added. (async.foo): * test262/test/language/statements/async-function/early-errors-declaration-body-contains-super-property.js: Added. (async.foo): * test262/test/language/statements/async-function/early-errors-declaration-duplicate-parameters.js: Added. (async.foo): * test262/test/language/statements/async-function/early-errors-declaration-eval-in-formal-parameters.js: Added. (async.foo): * test262/test/language/statements/async-function/early-errors-declaration-formals-body-duplicate.js: Added. (async.foo): * test262/test/language/statements/async-function/early-errors-declaration-formals-contains-super-call.js: Added. (async.foo): * test262/test/language/statements/async-function/early-errors-declaration-formals-contains-super-property.js: Added. (async.foo): * test262/test/language/statements/async-function/early-errors-no-async-generator.js: Added. (async.foo): * test262/test/language/statements/async-function/evaluation-body-that-returns-after-await.js: Added. (async.foo): (foo.then): * test262/test/language/statements/async-function/evaluation-body-that-returns.js: Added. (async.foo): (foo.then): * test262/test/language/statements/async-function/evaluation-body-that-throws-after-await.js: Added. (async.foo): (foo.then): * test262/test/language/statements/async-function/evaluation-body-that-throws.js: Added. (async.foo): (foo.then): * test262/test/language/statements/async-function/evaluation-body.js: Added. (async.foo): * test262/test/language/statements/async-function/evaluation-default-that-throws.js: Added. (async.foo): (foo.then): * test262/test/language/statements/async-function/evaluation-mapped-arguments.js: Added. (async.foo): * test262/test/language/statements/async-function/evaluation-this-value-global.js: Added. (async.foo): * test262/test/language/statements/async-function/evaluation-this-value-passed.js: Added. (async.foo): * test262/test/language/statements/async-function/evaluation-unmapped-arguments.js: Added. (async.foo): * test262/test/language/statements/async-function/syntax-declaration-line-terminators-allowed.js: Added. (async.foo): * test262/test/language/statements/async-function/syntax-declaration-no-line-terminator.js: Added. (async.foo): * test262/test/language/statements/async-function/syntax-declaration.js: Added. (async.foo): (foo.then): * test262/test/language/statements/class/definition/class-method-returns-promise.js: Added. (Foo.prototype.async.method): (Foo): * test262/test/language/statements/class/definition/early-errors-class-method-NSPL-with-USD.js: Added. (Foo.prototype.async.bar): (Foo): * test262/test/language/statements/class/definition/early-errors-class-method-arguments-in-formal-parameters.js: Added. (Foo.prototype.async.foo): (Foo): * test262/test/language/statements/class/definition/early-errors-class-method-await-in-formals-default.js: Added. (Foo.prototype.async.foo): (Foo): * test262/test/language/statements/class/definition/early-errors-class-method-await-in-formals.js: Added. (Foo.prototype.async.foo): (Foo): * test262/test/language/statements/class/definition/early-errors-class-method-body-contains-super-call.js: Added. (Foo.prototype.async.foo): (Foo): * test262/test/language/statements/class/definition/early-errors-class-method-duplicate-parameters.js: Added. (Foo.prototype.async.foo): (Foo): * test262/test/language/statements/class/definition/early-errors-class-method-eval-in-formal-parameters.js: Added. (Foo.prototype.async.foo): (Foo): * test262/test/language/statements/class/definition/early-errors-class-method-formals-body-duplicate.js: Added. (Foo.async.foo): (Foo): * test262/test/language/statements/class/definition/early-errors-class-method-formals-contains-super-call.js: Added. (Foo.prototype.async.foo): (Foo): * test262/test/language/statements/class/definition/methods-async-super-call-body.js: Added. (A.prototype.async.method): (A): (B.prototype.async.method): (B): * test262/test/language/statements/class/definition/methods-async-super-call-param.js: Added. (A.prototype.async.method): (A): (B.prototype.async.method): (B): * test262/test/language/statements/class/definition/params-trailing-comma-arguments.js: Added. (C.prototype.f1): (C.prototype.f2): (C): * test262/test/language/statements/class/definition/params-trailing-comma-length.js: Added. (C.prototype.one): (C.prototype.two): (C): * test262/test/language/statements/class/definition/params-trailing-comma-rest.js: Added. (C.prototype.m): (C): * test262/test/language/statements/class/definition/params-trailing-comma.js: Added. (C.prototype.one): (C.prototype.two): (C): * test262/test/language/statements/function/arguments-with-arguments-fn.js: Added. (f): * test262/test/language/statements/function/arguments-with-arguments-lex.js: Added. (f): * test262/test/language/statements/function/params-trailing-comma-arguments.js: Added. (f1): (f2): * test262/test/language/statements/function/params-trailing-comma-length.js: Added. (one): (two): * test262/test/language/statements/function/params-trailing-comma.js: Added. (one): (two): * test262/test/language/statements/generators/arguments-with-arguments-fn.js: Added. (g): * test262/test/language/statements/generators/arguments-with-arguments-lex.js: Added. (g): * test262/test/language/statements/generators/params-trailing-comma-length.js: Added. (one): (two): * test262/test/language/statements/generators/params-trailing-comma.js: Added. (one): (two): * test262/test262-Revision.txt: 2016-08-23 Benjamin Poulain [JSC] Make Math.cos() and Math.sin() work with any argument type https://bugs.webkit.org/show_bug.cgi?id=161069 Reviewed by Geoffrey Garen. * stress/arith-cos-on-various-types.js: Added. * stress/arith-sin-on-various-types.js: Added. 2016-08-23 Yusuke Suzuki [ES6] Module namespace object's Symbol.iterator method should only accept module namespace objects https://bugs.webkit.org/show_bug.cgi?id=161097 Reviewed by Keith Miller. * test262.yaml: 2016-08-22 Yusuke Suzuki [ES6] Modules' `export default function/class` should be declaration https://bugs.webkit.org/show_bug.cgi?id=160499 Reviewed by Saam Barati. Add several module tests. And flip the failed tests flags in test262. * modules/export-default-function-name-in-assignment-expression.js: Added. (export.default): * modules/export-default-function-name-in-class-declaration.js: Added. * modules/export-default-function-name-in-function-declaration.js: Added. (export.default): * modules/export-default-function-name-in-generator-declaration.js: Added. (export.default): * stress/method-name.js: Added. (testSyntax): (testSyntaxError): (testSyntaxError.Hello.prototype.hello.hello): (testSyntaxError.Hello): (SyntaxError.Unexpected.identifier.string_appeared_here.Expected.an.opening.string_appeared_here.before.a.method.testSyntaxError.let.obj.hello.hello): (testSyntaxError.Hello.prototype.get hello): (testSyntaxError.Hello.prototype.set hello): * test262.yaml: 2016-08-22 Yusuke Suzuki [ES6] Module should not allow HTML comments https://bugs.webkit.org/show_bug.cgi?id=161041 Reviewed by Saam Barati. * modules/html-comments.js: Added. (shouldThrow): * test262.yaml: 2016-08-21 Yusuke Suzuki [DFG] Should not fixup AnyIntUse in 32_64 https://bugs.webkit.org/show_bug.cgi?id=161029 Reviewed by Saam Barati. * typeProfiler/int52-dfg.js: Added. (test): 2016-08-21 Yusuke Suzuki Unreviewed, rolling out r204697 https://bugs.webkit.org/show_bug.cgi?id=161029 * typeProfiler/int52-dfg.js: Removed. (test): Deleted. * typeProfiler/number-filter-dfg.js: Removed. (test): Deleted. 2016-08-21 Yusuke Suzuki [DFG] Should not fixup AnyIntUse in 32_64 https://bugs.webkit.org/show_bug.cgi?id=161029 Reviewed by Saam Barati. * typeProfiler/int52-dfg.js: Added. (test): * typeProfiler/number-filter-dfg.js: Added. (test): 2016-08-19 Benjamin Poulain [JSC] ArithSqrt should work with any argument type https://bugs.webkit.org/show_bug.cgi?id=160954 Reviewed by Saam Barati. * stress/arith-sqrt-on-various-types.js: Added. (let.validInputTypedTestCases.validInputTestCases.map): (isIdentical): (opaqueAllTypesSqrt): (testAllTypesCall): (testSingleTypeCall): (opaqueSqrtForSideEffects): (testSideEffect.let.testObject.valueOf): (testSideEffect): (opaqueSqrtForCSE): (testCSE.let.testObject.valueOf): (testCSE): (testException.opaqueSqrtWithException): (testException): 2016-08-19 Joseph Pecoraro Make custom Error properties (line, column, sourceURL) configurable and writable https://bugs.webkit.org/show_bug.cgi?id=160984 Reviewed by Saam Barati. * stress/native-error-properties.js: Added. (assert): (shouldNotThrow): (checkEmptyErrorPropertiesDescriptors): (checkNonEmptyErrorPropertiesDescriptors): The spec only describes the "message" property, so ensure it has the right descriptor attributes. (checkErrorPropertiesWritable): Ensure common error property names are writable. In strict mode this would have thrown an exception if they were readonly. 2016-08-18 Mark Lam ScopedArguments is using the wrong owner object for a write barrier. https://bugs.webkit.org/show_bug.cgi?id=160976 Reviewed by Keith Miller. * stress/scoped-arguments-write-barrier-should-be-on-scope-object.js: Added. 2016-08-17 JF Bastien We allow assignments to const variables when in a for-in/for-of loop https://bugs.webkit.org/show_bug.cgi?id=156673 Reviewed by Filip Pizlo. * stress/for-in-of-const.js: Added. (expect_nothrow): (expect_throw): (capture): 2016-08-17 Mark Lam Remove an invalid assertion in the DFG backend's GetById emitter. https://bugs.webkit.org/show_bug.cgi?id=160925 Reviewed by Filip Pizlo. * stress/dfg-get-by-id-should-not-assert-non-null-prediction.js: Added. 2016-08-16 Ryan Haddad Unreviewed, rolling out r204464. This is no longer needed after r204495. Reverted changeset: "Skip failing test mozilla/ecma/LexicalConventions/7.7.3.js" https://bugs.webkit.org/show_bug.cgi?id=160662 http://trac.webkit.org/changeset/204464 2016-08-15 Ryan Haddad Skip failing test mozilla/ecma/LexicalConventions/7.7.3.js https://bugs.webkit.org/show_bug.cgi?id=160662 Unreviewed test gardening. * mozilla/ecma/LexicalConventions/7.7.3.js: 2016-08-14 Skachkov Oleksandr [2016] Set correct status for test262 after implementation of Object.values&Object.entries https://bugs.webkit.org/show_bug.cgi?id=160844 Reviewed by Saam Barati. Patch contains fix statuses of specs in the test262 test collection after implementation of Object.values and Object.entries functions. Also patch contains small fixes in tests of the tests for Object.values/entries functions. * stress/object-entries.js: (Object.getOwnPropertyDescriptor): * stress/object-values.js: (Object.getOwnPropertyDescriptor): * test262.yaml: 2016-08-12 Saam Barati Inline store loop for CopyRest in DFG and FTL for certain array modes https://bugs.webkit.org/show_bug.cgi?id=159612 Reviewed by Filip Pizlo. * stress/rest-parameter-having-a-bad-time.js: Added. * stress/rest-parameter-many-arguments.js: Added. * stress/rest-parameter-various-types.js: Added. 2016-08-12 Skachkov Oleksandr [ES2016] Implement Object.entries https://bugs.webkit.org/show_bug.cgi?id=160412 Reviewed by Saam Barati. Patch contains tests for Object.entries function and fix of wrong tests for Object.values function. * stress/object-entries.js: (compare): (string_appeared_here.forEach): (const.getInvokedFunctions.): (const.getInvokedFunctions): (Array.prototype.push): * stress/object-values.js: 2016-08-11 Mark Lam OverridesHasInstance should not branch across register allocations. https://bugs.webkit.org/show_bug.cgi?id=160792 Reviewed by Benjamin Poulain. * stress/OverrideHasInstance-should-not-branch-across-register-allocations.js: Added. 2016-08-11 Mark Lam The jsc shell's Element host constructor should throw if it fails to construct an object. https://bugs.webkit.org/show_bug.cgi?id=160773 Reviewed by Saam Barati. * stress/generational-opaque-roots.js: 2016-08-11 Mark Lam Disallow synchronous sweeping for eden GCs. https://bugs.webkit.org/show_bug.cgi?id=160716 Reviewed by Geoffrey Garen. * stress/eden-gc-with-retired-blocks.js: Added. - This test is just in case we add back support for eden GCs with synchronous sweeping in the future. 2016-08-10 Michael Saboff Baseline GetByVal and PutByVal for cache ID stubs need to handle exceptions https://bugs.webkit.org/show_bug.cgi?id=160749 Reviewed by Filip Pizlo. New test that causes baseline GetByValWithCachedId and PutByValWithCachedId stubs to be generated and then throws exceptions for those stub to handle to verify that they are properly handled. * stress/regress-160749.js: Added. (testCachedGetByVal.): (testCachedGetByVal.get for): (testCachedGetByVal): (testCachedPutByVal.): (testCachedPutByVal.set for): (testCachedPutByVal): 2016-08-10 Mark Lam DFG's flushForTerminal() needs to add PhantomLocals for bytecode live locals. https://bugs.webkit.org/show_bug.cgi?id=160755 Reviewed by Filip Pizlo. * stress/need-bytecode-liveness-for-unreachable-blocks-at-dfg-time.js: Added. 2016-08-09 Skachkov Oleksandr [ES2016] Implement Object.values https://bugs.webkit.org/show_bug.cgi?id=160410 Reviewed by Saam Barati, Yusuke Suzuki. * stress/object-values.js: Added. (compare): (string_appeared_here.forEach): (const.getInvokedFunctions.): (const.getInvokedFunctions): (Array.prototype.push): 2016-08-09 Saam Barati JSBoundFunction should lazily generate its name string https://bugs.webkit.org/show_bug.cgi?id=160678 Reviewed by Mark Lam. * stress/bound-function-lazy-name-generation.js: Added. (assert): (test.let.f): (test.f): (test): 2016-08-08 Mark Lam ASSERTION FAILED: hasInlineStorage() in JSFinalObject::visitChildren(). https://bugs.webkit.org/show_bug.cgi?id=160666 Reviewed by Keith Miller. * stress/object-constructor-should-be-new-target-aware.js: 2016-08-07 Yusuke Suzuki [ES6] Module namespace object should not allow unset IC https://bugs.webkit.org/show_bug.cgi?id=160553 Reviewed by Saam Barati. * modules/namespace-object-get-property.js: Added. (import.as.ns.from.string_appeared_here.shouldThrow): * modules/namespace-object-has-property.js: Added. * modules/namespace-object-inline-caching.js: Added. (import.as.A.from.string_appeared_here.import.as.B.from.string_appeared_here.lookup): (shouldBe.lookup.lookup): (shouldBe.lookup): * modules/namespace-object-inline-caching/a.js: Added. * modules/namespace-object-inline-caching/b.js: Added. * modules/namespace-object-try-get.js: Added. (import.as.ns.from.string_appeared_here.tryGetByIdText): (tryGetByIdTextStrict): * modules/namespace-object-typed-array-fast-path.js: Added. * test262.yaml: 2016-08-05 Saam Barati various math operations don't properly check for an exception after calling toNumber() on the lhs https://bugs.webkit.org/show_bug.cgi?id=160154 Reviewed by Mark Lam. * stress/to-number-throws-correct-exception.js: Added. (test.let.test.runTest.): (test.let.test.runTest.get f): (test.let.test.runTest): (test.let.test): (test): (test2.runTest.): (test2.runTest.get f): (test2.runTest): (test2): 2016-08-05 Saam Barati Assertion failure when accessing TDZ variable in catch through eval https://bugs.webkit.org/show_bug.cgi?id=160554 Reviewed by Mark Lam and Keith Miller. * stress/catch-variables-under-tdz.js: Added. (test): 2016-08-04 Yusuke Suzuki [ES6] JSModuleNamespaceObject's Symbol.iterator function should have name https://bugs.webkit.org/show_bug.cgi?id=160549 Reviewed by Saam Barati. * modules/namespace-object-symbol-iterator-name.js: Added. * test262.yaml: 2016-08-04 Keith Miller ASSERTION FAILED: !hasInstanceValueNode->isCellConstant() || defaultHasInstanceFunction == hasInstanceValueNode->asCell() https://bugs.webkit.org/show_bug.cgi?id=160562 Reviewed by Mark Lam. * stress/instanceof-late-constant-folding.js: Added. (Constructor): (value): (body): 2016-08-04 Caitlin Potter [JSC] fix generator-syntax.js JSTest again after yield grammar fix https://bugs.webkit.org/show_bug.cgi?id=160550 Reviewed by Yusuke Suzuki. * stress/generator-syntax.js: (testYieldBindingIdentifier): 2016-08-03 Caitlin Potter Clarify SyntaxErrors around yield and unskip tests https://bugs.webkit.org/show_bug.cgi?id=158460 Reviewed by Saam Barati. Fix and unskip tests which erroneously asserted that `yield` is not a valid BindingIdentifier, and improve error message for YieldExpressions occuring in Arrow formal parameters. * stress/generator-syntax.js: * stress/yield-out-of-generator.js: 2016-08-03 Filip Pizlo REGRESSION(r203368): broke some test262 tests https://bugs.webkit.org/show_bug.cgi?id=160479 Reviewed by Mark Lam. Added a stress test for this case, since we don't always run test262. * stress/freeze-setter.js: Added. (let.o.set foo): 2016-08-03 Saam Barati Implement nested rest destructuring w.r.t the ES7 spec https://bugs.webkit.org/show_bug.cgi?id=160423 Reviewed by Filip Pizlo. * stress/destructuring-rest-element.js: Added. (assert): (test): (arr): (eq): (gen): (fakeGen.return.Symbol.iterator): (fakeGen): * stress/rest-elements.js: (testSyntaxError.String.raw): * stress/rest-parameter-is-destructuring.js: Added. (assert): (test): (foo): (bar): * test262.yaml: 2016-08-02 Saam Barati Rename Changelog to ChangeLog Rubber stamped by Keith Miller. * Changelog: Removed. 2016-08-02 Saam Barati update a class extending null w.r.t the ES7 spec https://bugs.webkit.org/show_bug.cgi?id=160417 Reviewed by Keith Miller. * Changelog: * stress/class-derived-from-null.js: Added. (assert): (test): (test1.C): (test1): (jsNull): (test2.C): (test2): (test3.C): (test3.D): (test3.E): (test3): (test4.E): (test4): (test5.E): (test5): (test6.Base): (test6.D): (test6.E): (test6.F): (test6.G): (test6): * test262.yaml: 2016-08-01 Filip Pizlo Rationalize varargs stack overflow checks https://bugs.webkit.org/show_bug.cgi?id=160425 Reviewed by Michael Saboff. * stress/arity-check-ftl-throw-more-args.js: Added. (catch): 2016-08-01 Keith Miller We should not keep the JavaScript tests inside the Source/JavaScriptCore/ directory. https://bugs.webkit.org/show_bug.cgi?id=160372 Rubber stamped by Geoffrey Garen. This patch moves all the JavaScript tests from Source/JavaScriptCore/tests to a new top level directory, JSTests. Having the tests in the Source directory was both confusing an inconvenient for people that just want to checkout the source code of WebKit. Since there is no other obvious place to put all the JavaScript tests a new top level directory seemed the most sensible. * tests/: Deleted.