1 2017-05-18 Filip Pizlo <fpizlo@apple.com>
3 Constructor calls set this too early
4 https://bugs.webkit.org/show_bug.cgi?id=172302
6 Reviewed by Saam Barati.
8 This tests all three kinds of constructs in BytecodeGenerator. All three were previously
11 * stress/construct-overwritten-variable.js: Added.
13 * stress/construct-spread-overwritten-variable-2.js: Added.
15 * stress/construct-spread-overwritten-variable.js: Added.
18 2017-05-18 Saam Barati <sbarati@apple.com>
20 WebAssembly: perform stack checks
21 https://bugs.webkit.org/show_bug.cgi?id=165546
22 <rdar://problem/29760307>
24 Reviewed by Filip Pizlo.
27 * wasm/function-tests/factorial.js:
28 * wasm/function-tests/float-sub.js:
29 * wasm/function-tests/stack-overflow.js: Added.
30 (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance):
31 (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.assertOverflows):
32 (assertOverflows.makeInstance):
33 (assertOverflows.makeInstance2):
34 (assertOverflows.assertThrows):
36 (assertThrows.test.makeSignature):
37 (assertThrows.test.makeInstance):
41 2017-05-18 Keith Miller <keith_miller@apple.com>
43 WebAssembly API: test with neutered inputs
44 https://bugs.webkit.org/show_bug.cgi?id=163899
46 Reviewed by JF Bastien.
48 * wasm/js-api/neutered-inputs.js: Added.
50 (const.testConstructor):
51 * wasm/js-api/test_basic_api.js:
52 (const.c.in.constructorProperties.switch):
54 2017-05-18 Filip Pizlo <fpizlo@apple.com>
56 DFG inlining should be hardened for the no-result case
57 https://bugs.webkit.org/show_bug.cgi?id=172290
59 Reviewed by Saam Barati.
61 * stress/array-constructor-no-result.js: Added.
63 * stress/pow-no-result.js: Added.
66 2017-05-18 Commit Queue <commit-queue@webkit.org>
68 Unreviewed, rolling out r217031, r217032, and r217037.
69 https://bugs.webkit.org/show_bug.cgi?id=172293
71 cause linking errors in Windows (Requested by yusukesuzuki on
76 "[JSC][DFG][DOMJIT] Extend CheckDOM to CheckSubClass"
77 https://bugs.webkit.org/show_bug.cgi?id=172098
78 http://trac.webkit.org/changeset/217031
80 "Unreviewed, rebaseline for newly added ClassInfo"
81 https://bugs.webkit.org/show_bug.cgi?id=172098
82 http://trac.webkit.org/changeset/217032
84 "Unreviewed, fix debug and non-JIT build"
85 https://bugs.webkit.org/show_bug.cgi?id=172098
86 http://trac.webkit.org/changeset/217037
88 2017-05-16 Yusuke Suzuki <utatane.tea@gmail.com>
90 [JSC][DFG][DOMJIT] Extend CheckDOM to CheckSubClass
91 https://bugs.webkit.org/show_bug.cgi?id=172098
93 Reviewed by Saam Barati.
95 * stress/check-sub-class.js: Added.
102 2017-05-17 Filip Pizlo <fpizlo@apple.com>
104 Unreviewed, address mlam's review feedback.
106 * stress/arguments-elimination-varargs-too-many-args-arg-count.js:
108 2017-05-17 Saam Barati <sbarati@apple.com>
110 We don't do context switches for Wasm->Wasm call indirect
111 https://bugs.webkit.org/show_bug.cgi?id=172188
112 <rdar://problem/32231828>
114 Reviewed by Keith Miller.
116 * wasm/function-tests/context-switch.js: Added.
117 (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance):
118 (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance2):
119 (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.const.i2.makeInstance2):
122 (assert.eq.makeInstance):
123 (assert.eq.makeInstance2):
126 2017-05-17 Filip Pizlo <fpizlo@apple.com>
128 JSC: Incorrect LoadVarargs handling in ArgumentsEliminationPhase::transform
129 https://bugs.webkit.org/show_bug.cgi?id=172208
131 Reviewed by Saam Barati.
133 * stress/arguments-elimination-varargs-too-many-args-arg-count.js: Added.
138 2017-05-16 Yusuke Suzuki <utatane.tea@gmail.com>
140 [DFG] Constant Folding Phase should convert MakeRope("", String) => Identity(String)
141 https://bugs.webkit.org/show_bug.cgi?id=172115
143 Reviewed by Saam Barati.
145 * stress/constant-folding-should-fold-make-rope-with-empty-strings.js: Added.
153 2017-05-16 JF Bastien <jfbastien@apple.com>
155 WebAssembly: add memory fuzzer
156 https://bugs.webkit.org/show_bug.cgi?id=169976
157 <rdar://problem/31965328>
159 Reviewed by Keith Miller.
161 * wasm/fuzz/memory.js: Added.
163 (const.action.string_appeared_here):
164 (const.performAction):
167 2017-05-16 JF Bastien <jfbastien@apple.com>
169 WebAssembly: validate load / store alignment
170 https://bugs.webkit.org/show_bug.cgi?id=168836
171 <rdar://problem/31965349>
173 Reviewed by Keith Miller.
175 * wasm/WASM.js: fix regular expression greed
176 * wasm/function-tests/memory-alignment.js: Added.
177 (const.op.of.WASM.opcodes):
178 * wasm/wasm.json: fix formatting
180 2017-05-15 Mark Lam <mark.lam@apple.com>
182 Rolling out r214038 and r213697: Crashes when using computed properties with rest destructuring and object spread.
183 https://bugs.webkit.org/show_bug.cgi?id=172147
185 Rubber-stamped by Saam Barati.
187 * stress/object-rest-deconstruct.js: Removed.
188 * stress/object-spread.js: Removed.
190 2017-05-11 JF Bastien <jfbastien@apple.com>
192 WebAssembly: stop supporting 0xD
193 https://bugs.webkit.org/show_bug.cgi?id=168788
194 <rdar://problem/31880922>
196 Reviewed by Saam Barati.
198 Test that only version 1 is supported.
200 * wasm/js-api/version.js: Added.
202 2017-05-10 JF Bastien <jfbastien@apple.com>
204 WebAssemby: builder doesn't do Memory section maximum correctly
205 https://bugs.webkit.org/show_bug.cgi?id=171931
207 Reviewed by Keith Miller.
210 (export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):
211 * wasm/Builder_WebAssemblyBinary.js:
212 (const.emitters.Memory):
213 * wasm/function-tests/memory-grow-invalid.js: Added.
215 2017-05-10 JF Bastien <jfbastien@apple.com>
217 WebAssembly: support name section
218 https://bugs.webkit.org/show_bug.cgi?id=171263
220 Reviewed by Keith Miller.
222 * wasm/function-tests/nameSection.js: Added.
224 * wasm/function-tests/nameSection.wasm: Added.
225 * wasm/function-tests/stack-trace.js: Update format
227 2017-05-10 Filip Pizlo <fpizlo@apple.com>
229 Null pointer dereference in WTF::RefPtr<WTF::StringImpl>::operator!() under slow_path_get_direct_pname
230 https://bugs.webkit.org/show_bug.cgi?id=171801
232 Reviewed by Michael Saboff.
234 These tests used to crash. The prefix and postfix tests cover different paths, except
235 postfix-ignored goes down the same path as prefix due to an optimization.
237 * stress/for-in-postfix-ignored-index.js: Added.
239 * stress/for-in-postfix-index.js: Added.
241 * stress/for-in-prefix-index.js: Added.
244 2017-05-08 Mark Lam <mark.lam@apple.com>
246 op_throw_static_error's use of its first operand should be reflected in DFG BytecodeUseDef as well.
247 https://bugs.webkit.org/show_bug.cgi?id=171786
248 <rdar://problem/32051023>
250 Reviewed by Saam Barati.
252 * stress/bug-171786.js: Added.
254 2017-05-06 Oleksandr Skachkov <gskachkov@gmail.com>
256 [ES6] Arrow function. Issue in access to this after eval('super()') within constructor
257 https://bugs.webkit.org/show_bug.cgi?id=171543
259 Reviewed by Saam Barati.
261 * stress/arrowfunction-lexical-bind-supercall-4.js:
265 2017-05-05 Saam Barati <sbarati@apple.com>
267 putDirectIndex does not properly do defineOwnProperty
268 https://bugs.webkit.org/show_bug.cgi?id=171591
269 <rdar://problem/31735695>
271 Reviewed by Geoffrey Garen.
273 * stress/array-prototype-splice-making-typed-array.js:
275 * stress/array-species-config-array-constructor.js:
278 * stress/put-direct-index-broken-2.js: Added.
281 (makeLengthWritable):
282 (set get restoreOldDesc):
283 * stress/put-direct-index-broken.js: Added.
287 * stress/put-indexed-getter-setter.js: Added.
288 (foo.X.prototype.set 7):
289 (foo.X.prototype.get 7):
293 2017-05-04 Yusuke Suzuki <utatane.tea@gmail.com>
295 [JSC] Math unary functions should be handled by DFG
296 https://bugs.webkit.org/show_bug.cgi?id=171269
298 Reviewed by Saam Barati.
300 * stress/arith-acos-on-various-types.js: Added.
301 (let.validInputTypedTestCases.validInputTestCases.map):
303 (opaqueACosNoArgument):
305 (opaqueAllTypesACos):
307 (testSingleTypeCall):
309 (opaqueACosForSideEffects):
310 (testSideEffect.let.testObject.valueOf):
313 (testCSE.let.testObject.valueOf):
316 (testDCE.let.testObject.valueOf):
318 (testException.opaqueACosWithException):
320 * stress/arith-acosh-on-various-types.js: Added.
321 (let.validInputTypedTestCases.validInputTestCases.map):
323 (opaqueACoshNoArgument):
325 (opaqueAllTypesACosh):
327 (testSingleTypeCall):
329 (opaqueACoshForSideEffects):
330 (testSideEffect.let.testObject.valueOf):
333 (testCSE.let.testObject.valueOf):
336 (testDCE.let.testObject.valueOf):
338 (testException.opaqueACoshWithException):
340 * stress/arith-asin-on-various-types.js: Added.
341 (let.validInputTypedTestCases.validInputTestCases.map):
343 (opaqueASinNoArgument):
345 (opaqueAllTypesASin):
347 (testSingleTypeCall):
349 (opaqueASinForSideEffects):
350 (testSideEffect.let.testObject.valueOf):
353 (testCSE.let.testObject.valueOf):
356 (testDCE.let.testObject.valueOf):
358 (testException.opaqueASinWithException):
360 * stress/arith-asinh-on-various-types.js: Added.
361 (let.validInputTypedTestCases.validInputTestCases.map):
363 (opaqueASinhNoArgument):
365 (opaqueAllTypesASinh):
367 (testSingleTypeCall):
369 (opaqueASinhForSideEffects):
370 (testSideEffect.let.testObject.valueOf):
373 (testCSE.let.testObject.valueOf):
376 (testDCE.let.testObject.valueOf):
378 (testException.opaqueASinhWithException):
380 * stress/arith-atan-on-various-types.js: Added.
381 (let.validInputTypedTestCases.validInputTestCases.map):
383 (opaqueATanNoArgument):
385 (opaqueAllTypesATan):
387 (testSingleTypeCall):
389 (opaqueATanForSideEffects):
390 (testSideEffect.let.testObject.valueOf):
393 (testCSE.let.testObject.valueOf):
396 (testDCE.let.testObject.valueOf):
398 (testException.opaqueATanWithException):
400 * stress/arith-atanh-on-various-types.js: Added.
401 (let.validInputTypedTestCases.validInputTestCases.map):
403 (opaqueATanhNoArgument):
405 (opaqueAllTypesATanh):
407 (testSingleTypeCall):
409 (opaqueATanhForSideEffects):
410 (testSideEffect.let.testObject.valueOf):
413 (testCSE.let.testObject.valueOf):
416 (testDCE.let.testObject.valueOf):
418 (testException.opaqueATanhWithException):
420 * stress/arith-cbrt-on-various-types.js: Added.
421 (let.validInputTypedTestCases.validInputTestCases.map):
423 (opaqueCbrtNoArgument):
425 (opaqueAllTypesCbrt):
427 (testSingleTypeCall):
429 (opaqueCbrtForSideEffects):
430 (testSideEffect.let.testObject.valueOf):
433 (testCSE.let.testObject.valueOf):
436 (testDCE.let.testObject.valueOf):
438 (testException.opaqueCbrtWithException):
440 * stress/arith-cosh-on-various-types.js: Added.
441 (let.validInputTypedTestCases.validInputTestCases.map):
443 (opaqueCoshNoArgument):
445 (opaqueAllTypesCosh):
447 (testSingleTypeCall):
449 (opaqueCoshForSideEffects):
450 (testSideEffect.let.testObject.valueOf):
453 (testCSE.let.testObject.valueOf):
456 (testDCE.let.testObject.valueOf):
458 (testException.opaqueCoshWithException):
460 * stress/arith-expm1-on-various-types.js: Added.
461 (let.validInputTypedTestCases.validInputTestCases.map):
463 (opaqueExpm1NoArgument):
465 (opaqueAllTypesExpm1):
467 (testSingleTypeCall):
469 (opaqueExpm1ForSideEffects):
470 (testSideEffect.let.testObject.valueOf):
473 (testCSE.let.testObject.valueOf):
476 (testDCE.let.testObject.valueOf):
478 (testException.opaqueExpm1WithException):
480 * stress/arith-log10-on-various-types.js: Added.
481 (let.validInputTypedTestCases.validInputTestCases.map):
483 (opaqueLog10NoArgument):
485 (opaqueAllTypesLog10):
487 (testSingleTypeCall):
489 (opaqueLog10ForSideEffects):
490 (testSideEffect.let.testObject.valueOf):
493 (testCSE.let.testObject.valueOf):
496 (testDCE.let.testObject.valueOf):
498 (testException.opaqueLog10WithException):
500 * stress/arith-log2-on-various-types.js: Added.
501 (let.validInputTypedTestCases.validInputTestCases.map):
503 (opaqueLog2NoArgument):
505 (opaqueAllTypesLog2):
507 (testSingleTypeCall):
509 (opaqueLog2ForSideEffects):
510 (testSideEffect.let.testObject.valueOf):
513 (testCSE.let.testObject.valueOf):
516 (testDCE.let.testObject.valueOf):
518 (testException.opaqueLog2WithException):
520 * stress/arith-sinh-on-various-types.js: Added.
521 (let.validInputTypedTestCases.validInputTestCases.map):
523 (opaqueSinhNoArgument):
525 (opaqueAllTypesSinh):
527 (testSingleTypeCall):
529 (opaqueSinhForSideEffects):
530 (testSideEffect.let.testObject.valueOf):
533 (testCSE.let.testObject.valueOf):
536 (testDCE.let.testObject.valueOf):
538 (testException.opaqueSinhWithException):
540 * stress/arith-tan-on-various-types.js:
542 * stress/arith-tanh-on-various-types.js: Added.
543 (let.validInputTypedTestCases.validInputTestCases.map):
545 (opaqueTanhNoArgument):
547 (opaqueAllTypesTanh):
549 (testSingleTypeCall):
551 (opaqueTanhForSideEffects):
552 (testSideEffect.let.testObject.valueOf):
555 (testCSE.let.testObject.valueOf):
558 (testDCE.let.testObject.valueOf):
560 (testException.opaqueTanhWithException):
563 2017-05-03 Keith Miller <keith_miller@apple.com>
565 Array.prototype.sort should also allow a null comparator
566 https://bugs.webkit.org/show_bug.cgi?id=171621
568 Reviewed by Michael Saboff.
570 Add test to make it less likely we revert to the incompatable behavior.
571 Also, fix now incorrect tests.
573 * ChakraCore/test/Array/array_sort.baseline-jsc:
574 * stress/array-sort-bad-comparator.js:
576 * stress/sort-null-comparator.js: Added.
579 2017-05-03 Caitlin Potter <caitp@igalia.com>
581 [JSC] remove unneeded asyncFunctionTests.yaml
582 https://bugs.webkit.org/show_bug.cgi?id=171611
584 Reviewed by Yusuke Suzuki.
586 Async functions have shipped, and those tests are run as part of
587 JSTests/stress and JSTests/test262.yaml. The file is no longer needed.
589 * asyncFunctionTests.yaml: Removed.
590 * stress/async-await-long-loop.js:
591 * stress/async-await-throw-loop.js:
593 2017-05-03 Keith Miller <keith_miller@apple.com>
595 Different behaviour with the .sort(callback) method (unlike Firefox & Chrome)
596 https://bugs.webkit.org/show_bug.cgi?id=47825
598 Reviewed by Saam Barati.
600 * stress/sorting-boolean-result-comparator.js: Added.
603 2017-05-02 David Kilzer <ddkilzer@apple.com>
605 check-webkit-style should keep JavaScript test functions in sync
606 <https://webkit.org/b/171424>
608 Reviewed by Joseph Pecoraro.
610 This change makes shouldBe(), shouldNotBe(), shouldNotThrow()
611 and shouldThrow() in sync with other copies of these methods.
613 * stress/resources/standalone-pre.js:
614 (shouldBe): Fix whitespace. Prefix 'exception' and 'quiet'
615 variables with underscore.
616 (shouldThrow): Fix whitespace.
618 2017-04-30 Oleksandr Skachkov <gskachkov@gmail.com>
620 We initialize functions too early in an eval
621 https://bugs.webkit.org/show_bug.cgi?id=161099
623 Reviewed by Saam Barati.
625 * stress/eval-func-decl-with-let-const-class.js: Added.
627 2017-04-30 Oleksandr Skachkov <gskachkov@gmail.com>
629 [ES6]. Implement Annex B.3.3 function hoisting rules for eval
630 https://bugs.webkit.org/show_bug.cgi?id=163208
632 Reviewed by Saam Barati.
634 * stress/eval-func-decl-block-scoping-reassign.js: Added.
638 * stress/eval-func-decl-block-with-remove.js: Added.
642 * stress/eval-func-decl-block-with-var-and-remove.js: Added.
649 * stress/eval-func-decl-block-with-var-sinthesize.js: Added.
657 * stress/eval-func-decl-in-block-scope-and-bind-to-top-eval-scope.js: Added.
658 * stress/eval-func-decl-in-eval-within-block-with-let.js: Added.
664 * stress/eval-func-decl-in-eval-within-with-scope.js: Added.
671 * stress/eval-func-decl-in-frozen-global.js: Added.
676 * stress/eval-func-decl-in-global-of-eval.js: Added.
682 * stress/eval-func-decl-in-global.js: Added.
685 * stress/eval-func-decl-in-if.js: Added.
687 * stress/eval-func-decl-within-eval-with-reassign-to-var.js: Added.
697 * stress/eval-func-decl-within-eval-without-reassign-to-let.js: Added.
703 * stress/variable-under-tdz-eval-tricky.js:
707 2017-04-27 Mark Lam <mark.lam@apple.com>
709 Fix some RELEASE_ASSERT failures caused by OutOfMemoryErrors.
710 https://bugs.webkit.org/show_bug.cgi?id=171404
711 <rdar://problem/31876178>
713 Reviewed by Saam Barati.
715 * stress/js-fixed-array-out-of-memory.js: Added.
717 2017-04-27 David Kilzer <ddkilzer@apple.com>
719 Enhance shouldBe()/shouldNotBe() to accept anonymous function arguments
720 <https://webkit.org/b/171362>
721 <rdar://problem/31867686>
723 Reviewed by Joseph Pecoraro.
725 * stress/resources/standalone-pre.js:
729 - Update shouldBe() to accept anonymous function arguments.
730 (The shouldNotBe() function was never copied over.)
731 - Also fix shouldThrow()/shouldNotThrow() to accept anonymous
732 function arguments (which were missed in r202609 for Bug
735 2017-04-27 Yusuke Suzuki <utatane.tea@gmail.com>
737 [JSC] Handle PhantomSpread in LoadVarargs as the same to the others
738 https://bugs.webkit.org/show_bug.cgi?id=171262
740 Reviewed by Saam Barati.
742 * stress/spread-outer-create-rest.js: Added.
748 2017-04-26 Saam Barati <sbarati@apple.com>
750 Print Wasm function index in stack trace
751 https://bugs.webkit.org/show_bug.cgi?id=171349
753 Reviewed by JF Bastien.
755 * wasm/function-tests/stack-trace.js: Added.
756 (import.Builder.from.string_appeared_here.assert):
758 * wasm/function-tests/trap-after-cross-instance-call.js:
759 (wasmFrameCountFromError):
760 * wasm/function-tests/trap-load-2.js:
761 (wasmFrameCountFromError):
762 * wasm/function-tests/trap-load.js:
763 (wasmFrameCountFromError):
765 2017-04-26 Saam Barati <sbarati@apple.com>
767 ASSERTION FAILED: inIndex != notFound in JSC::invalidParameterInSourceAppender()
768 https://bugs.webkit.org/show_bug.cgi?id=170924
769 <rdar://problem/31721052>
771 Reviewed by Mark Lam.
773 * stress/error-message-for-function-base-not-found.js: Added.
776 * stress/error-messages-for-in-operator-should-not-crash.js: Added.
779 2017-04-26 Keith Miller <keith_miller@apple.com>
781 WebAssembly: Implement tier up
782 https://bugs.webkit.org/show_bug.cgi?id=170134
784 Reviewed by Filip Pizlo.
786 * wasm/function-tests/trap-after-cross-instance-call.js:
787 * wasm/tier-up/js-to-wasm.js: Added.
789 * wasm/tier-up/wasm-to-wasm.js: Added.
792 2017-04-26 Caitlin Potter <caitp@igalia.com>
794 [JSC] Object.keys() must discard property names with no PropertyDescriptor
795 https://bugs.webkit.org/show_bug.cgi?id=171291
797 Reviewed by Yusuke Suzuki.
799 * es6/Proxy_ownKeys_duplicates.js:
800 * stress/proxy-own-keys.js:
801 (let.handler.getOwnPropertyDescriptor):
802 (let.handler.ownKeys):
804 2017-04-25 Commit Queue <commit-queue@webkit.org>
806 Unreviewed, rolling out r215476.
807 https://bugs.webkit.org/show_bug.cgi?id=171304
809 "It broke JSBench" (Requested by saamyjoon on #webkit).
813 "[ES6]. Implement Annex B.3.3 function hoisting rules for
815 https://bugs.webkit.org/show_bug.cgi?id=163208
816 http://trac.webkit.org/changeset/215476
818 2017-04-25 Saam Barati <sbarati@apple.com>
820 JSArray::isArrayPrototypeIteratorProtocolFastAndNonObservable is wrong because it does not do the necessary checks on the base object
821 https://bugs.webkit.org/show_bug.cgi?id=171150
822 <rdar://problem/31771880>
824 Reviewed by Sam Weinig.
826 * stress/spread-optimized-properly.js: Added.
833 (test.arr.__proto__.Symbol.iterator):
834 (test.arr.Symbol.iterator):
840 2017-04-25 Mark Lam <mark.lam@apple.com>
842 [Follow up] Array.prototype.slice() should ensure that end >= begin.
843 https://bugs.webkit.org/show_bug.cgi?id=170989
844 <rdar://problem/31705652>
848 Follow up to rename a test file that was accidentally named wrongly.
850 * stress/regress-170989.js: Copied from JSTests/stress/regress-170989.patch.
851 * stress/regress-170989.patch: Removed.
853 2017-04-25 Mark Lam <mark.lam@apple.com>
855 Array.prototype.slice() should ensure that end >= begin.
856 https://bugs.webkit.org/show_bug.cgi?id=170989
857 <rdar://problem/31705652>
859 Reviewed by Saam Barati.
861 * stress/regress-170989.patch: Added.
863 2017-04-25 Mark Lam <mark.lam@apple.com>
865 Local CSE wrongly CSEs array accesses with different result types.
866 https://bugs.webkit.org/show_bug.cgi?id=170990
867 <rdar://problem/31705945>
869 Reviewed by Saam Barati.
871 * stress/regress-170990.js: Added.
873 2017-04-25 Yusuke Suzuki <utatane.tea@gmail.com>
875 WebAssembly: exporting a property with a name that's a number doesn't work
876 https://bugs.webkit.org/show_bug.cgi?id=168857
878 Reviewed by JF Bastien.
880 r213453 allows Wasm instances to expose indexed properties. We activate the tests.
882 * wasm/js-api/test_Instance.js:
885 2017-04-24 Joseph Pecoraro <pecoraro@apple.com>
887 test262: test262/test/language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js
888 https://bugs.webkit.org/show_bug.cgi?id=171190
890 Reviewed by Saam Barati.
892 * stress/async-await-syntax.js:
895 2017-04-24 Yusuke Suzuki <utatane.tea@gmail.com>
897 [JSC] Use JSFixedArray directly when using call_varargs
898 https://bugs.webkit.org/show_bug.cgi?id=171057
900 Reviewed by Saam Barati.
902 * stress/spread-capture-rest.js: Added.
907 * stress/spread-multi-layers.js: Added.
913 * stress/spread-non-varargs.js: Added.
918 2017-04-24 Joseph Pecoraro <pecoraro@apple.com>
920 test262: test262/test/language/computed-property-names/class/static/getter-prototype.js
921 https://bugs.webkit.org/show_bug.cgi?id=170897
923 Reviewed by Saam Barati.
927 2017-04-24 Joseph Pecoraro <pecoraro@apple.com>
929 Address some FIXMEs in JavaScript tests for bugs that have been fixed
930 https://bugs.webkit.org/show_bug.cgi?id=171191
932 Reviewed by JF Bastien.
934 * stress/proxy-is-extensible.js:
936 2017-04-24 Joseph Pecoraro <pecoraro@apple.com>
938 test262: test262/test/language/statements/for-of/dstr-array-elem-init-fn-name-arrow.js
939 https://bugs.webkit.org/show_bug.cgi?id=171160
941 Reviewed by JF Bastien.
943 * stress/inferred-names.js:
946 2017-04-24 Joseph Pecoraro <pecoraro@apple.com>
948 test262: test262/test/language/expressions/generators/yield-as-label.js
949 https://bugs.webkit.org/show_bug.cgi?id=170979
951 Reviewed by Saam Barati.
953 * stress/async-await-module-reserved-word.js:
954 * stress/async-await-reserved-word.js:
955 Converge on "Cannot" instead of "Can't".
957 * catch-parameter-syntax.js:
958 * yield-named-variable-generator.js:
959 * yield-named-variable.js:
960 * stress/yield-label-generator.js:
961 * stress/yield-label.js:
962 * stress/yield-reserved-word.js: Added.
963 More complete list of when 'yield' is allowed.
965 * ChakraCore/test/strict/23.reservedWords_sm.baseline-jsc:
968 2017-04-23 Commit Queue <commit-queue@webkit.org>
970 Unreviewed, rolling out r215674.
971 https://bugs.webkit.org/show_bug.cgi?id=171212
973 Possible unintended commit. This patch was on the wrong bug.
974 (Requested by JoePeck on #webkit).
978 "test262: test262/test/language/expressions/generators/yield-
980 https://bugs.webkit.org/show_bug.cgi?id=170979
981 http://trac.webkit.org/changeset/215674
983 2017-04-23 Joseph Pecoraro <pecoraro@apple.com>
985 test262: test262/test/built-ins/Number/prototype/toPrecision/nan.js
986 https://bugs.webkit.org/show_bug.cgi?id=171197
988 Reviewed by Saam Barati.
992 2017-04-23 Joseph Pecoraro <pecoraro@apple.com>
994 test262: test262/test/language/expressions/generators/yield-as-label.js
995 https://bugs.webkit.org/show_bug.cgi?id=170979
997 Reviewed by Saam Barati.
999 * stress/async-await-module-reserved-word.js:
1000 * stress/async-await-reserved-word.js:
1001 Converge on "Cannot" instead of "Can't".
1003 * catch-parameter-syntax.js:
1004 * yield-named-variable-generator.js:
1005 * yield-named-variable.js:
1006 * stress/yield-label-generator.js:
1007 * stress/yield-label.js:
1008 * stress/yield-reserved-word.js: Added.
1009 More complete list of when 'yield' is allowed.
1011 * ChakraCore/test/strict/23.reservedWords_sm.baseline-jsc:
1014 2017-04-23 Joseph Pecoraro <pecoraro@apple.com>
1016 test262: test262/test/built-ins/Number/parseFloat.js
1017 https://bugs.webkit.org/show_bug.cgi?id=171193
1019 Reviewed by Yusuke Suzuki.
1023 2017-04-22 JF Bastien <jfbastien@apple.com>
1025 WebAssembly: Module.exports, Module.imports, Module.customSections are wrong
1026 https://bugs.webkit.org/show_bug.cgi?id=171078
1028 Reviewed by Saam Barati.
1030 They're static properties of Module, not instance properties of a module.
1031 https://github.com/WebAssembly/design/blob/master/JS.md#webassemblymoduleexports
1033 * wasm/js-api/Module.customSection.js:
1034 (assert.throws.WebAssembly.Module.customSections):
1036 (assert.throws.WebAssembly.Module.prototype.customSections): Deleted.
1037 * wasm/js-api/Module.exports.js:
1038 (assert.throws.WebAssembly.Module.exports):
1040 (assert.throws.WebAssembly.Module.prototype.exports): Deleted.
1041 * wasm/js-api/Module.imports.js:
1042 (assert.throws.WebAssembly.Module.imports):
1044 (assert.throws.WebAssembly.Module.prototype.imports): Deleted.
1046 2017-04-21 JF Bastien <jfbastien@apple.com>
1050 Unreviewed, Fil / Michael and I talked about it in the corridor. I
1051 just forgot to set verbose to false before commit.
1053 * wasm/stress/oom.js:
1055 2017-04-20 Yusuke Suzuki <utatane.tea@gmail.com>
1057 [JSC][FTL] FTL should support Arrayify
1058 https://bugs.webkit.org/show_bug.cgi?id=169596
1060 Reviewed by Saam Barati.
1062 * stress/arrayify.js: Added.
1065 (arrayifyContiguous):
1067 2017-04-20 Mark Lam <mark.lam@apple.com>
1069 virtualThunkFor() needs to materialize its of tagMaskRegister for tail calls.
1070 https://bugs.webkit.org/show_bug.cgi?id=171079
1071 <rdar://problem/31684756>
1073 Reviewed by Saam Barati.
1075 * stress/regress-171079.js: Added.
1077 2017-04-15 Filip Pizlo <fpizlo@apple.com>
1079 Optimize SharedArrayBuffer in the DFG+FTL
1080 https://bugs.webkit.org/show_bug.cgi?id=164108
1082 Reviewed by Saam Barati.
1084 Added a fairly comprehensive test of the intrinsics. This creates a function for each possible
1085 combination of type and operation, and then first uses it nicely and then tries a bunch of
1086 erroneous conditions like OOB.
1088 * stress/SharedArrayBuffer-opt.js: Added.
1089 (string_appeared_here.switch):
1090 (string_appeared_here.str):
1094 (string_appeared_here.a.of.arrays.m.of.atomics):
1095 * stress/SharedArrayBuffer.js:
1097 2017-04-19 Mark Lam <mark.lam@apple.com>
1099 B3StackmapSpecial should handle when stackmap values are not recoverable from a Def'ed arg.
1100 https://bugs.webkit.org/show_bug.cgi?id=170973
1101 <rdar://problem/30318657>
1103 Reviewed by Filip Pizlo.
1105 * stress/regress-170973.js: Added.
1107 2017-04-19 JF Bastien <jfbastien@apple.com>
1109 WebAssembly: limit slow memories
1110 https://bugs.webkit.org/show_bug.cgi?id=170825
1112 Reviewed by Saam Barati.
1115 * wasm/stress/oom.js: Added.
1116 (try.true.WebAssemblyMemoryMode):
1119 2017-04-19 JF Bastien <jfbastien@apple.com>
1121 WebAssembly: don't expose any WebAssembly JS object if JIT is off
1122 https://bugs.webkit.org/show_bug.cgi?id=170782
1124 Reviewed by Saam Barati.
1127 * wasm/noJIT/noJIT.js: Added.
1129 2017-04-18 Mark Lam <mark.lam@apple.com>
1131 r211670 broke double to int conversion.
1132 https://bugs.webkit.org/show_bug.cgi?id=170961
1133 <rdar://problem/31687696>
1135 Reviewed by Yusuke Suzuki.
1137 * microbenchmarks/double-to-int32.js: Added.
1138 * stress/to-int32-sensible2.js: Added.
1140 2017-04-18 Oleksandr Skachkov <gskachkov@gmail.com>
1142 [ES6]. Implement Annex B.3.3 function hoisting rules for eval
1143 https://bugs.webkit.org/show_bug.cgi?id=163208
1145 Reviewed by Saam Barati.
1147 * stress/eval-func-decl-block-scoping-reassign.js: Added.
1149 (throw.new.Error.f):
1151 * stress/eval-func-decl-block-with-remove.js: Added.
1155 * stress/eval-func-decl-block-with-var-and-remove.js: Added.
1162 * stress/eval-func-decl-block-with-var-sinthesize.js: Added.
1170 * stress/eval-func-decl-in-block-scope-and-bind-to-top-eval-scope.js: Added.
1171 * stress/eval-func-decl-in-eval-within-block-with-let.js: Added.
1177 * stress/eval-func-decl-in-eval-within-with-scope.js: Added.
1184 * stress/eval-func-decl-in-frozen-global.js: Added.
1189 * stress/eval-func-decl-in-global-of-eval.js: Added.
1195 * stress/eval-func-decl-in-global.js: Added.
1198 * stress/eval-func-decl-in-if.js: Added.
1200 * stress/eval-func-decl-within-eval-with-reassign-to-var.js: Added.
1210 * stress/eval-func-decl-within-eval-without-reassign-to-let.js: Added.
1216 * stress/variable-under-tdz-eval-tricky.js:
1220 2017-04-18 Filip Pizlo <fpizlo@apple.com>
1222 wasm/function-tests/memory-multiagent times out sometimes
1223 https://bugs.webkit.org/show_bug.cgi?id=170958
1225 Reviewed by Keith Miller.
1227 Add the ability to skip tests easily. Skip the test.
1230 * wasm/function-tests/memory-multiagent.js:
1232 2017-04-18 Saam Barati <sbarati@apple.com>
1234 Follow up to debug build stack overflow in test after r215453
1236 Rubber stamped by Mark Lam.
1238 * stress/call-apply-exponential-bytecode-size.js: Decrease the call
1239 size to prevent stack overflow errors on debug builds.
1241 2017-04-18 Yusuke Suzuki <utatane.tea@gmail.com>
1243 [DFG] Convert ValueAdd(Int32, String) => MakeRope(ToString(Int32), String)
1244 https://bugs.webkit.org/show_bug.cgi?id=170943
1246 Reviewed by Geoffrey Garen.
1248 * microbenchmarks/number-to-string-with-add-empty.js: Added.
1251 * microbenchmarks/number-to-string-with-add-in-loop.js: Added.
1254 * microbenchmarks/number-to-string-with-add.js: Added.
1257 * stress/number-to-string-with-add.js: Added.
1260 (toStringLeftEmpty):
1261 (toStringRightEmpty):
1263 2017-04-18 Yusuke Suzuki <utatane.tea@gmail.com>
1265 [DFG] Drop unknown use of CheckCell's child2 to work ObjectAllocationSinking for Array iterator object
1266 https://bugs.webkit.org/show_bug.cgi?id=170940
1268 Reviewed by Filip Pizlo.
1270 * microbenchmarks/for-of-array.js: Added.
1273 2017-04-17 Saam Barati <sbarati@apple.com>
1275 BytecodeGenerator ".call" and ".apply" is exponential in nesting depth
1276 https://bugs.webkit.org/show_bug.cgi?id=139847
1277 <rdar://problem/19321122>
1279 Reviewed by Oliver Hunt.
1281 * stress/call-apply-exponential-bytecode-size.js: Added.
1286 (randomApplyOrCall):
1292 2017-04-17 Mark Lam <mark.lam@apple.com>
1294 JSArray::appendMemcpy() needs to handle copying from Undecided indexing type too.
1295 https://bugs.webkit.org/show_bug.cgi?id=170896
1296 <rdar://problem/31651319>
1298 Reviewed by JF Bastien and Keith Miller.
1300 * stress/regress-170896.js: Added.
1302 2017-04-16 Joseph Pecoraro <pecoraro@apple.com>
1304 test262: test262/test/built-ins/Object/prototype/toLocaleString/primitive_this_value.js
1305 https://bugs.webkit.org/show_bug.cgi?id=170882
1307 Reviewed by Saam Barati.
1311 2017-04-16 Joseph Pecoraro <pecoraro@apple.com>
1313 test262: test262/test/built-ins/isNaN/toprimitive-not-callable-throws.js
1314 https://bugs.webkit.org/show_bug.cgi?id=170888
1316 Reviewed by Saam Barati.
1318 * stress/computed-accessor.js:
1319 * stress/eval-in-arrow-function.js:
1320 * stress/rest-elements.js:
1321 * stress/string-object-define-own-property.js:
1322 Remove unused shouldThrow.
1324 * stress/symbol-toprimitive-errors.js: Added.
1325 Check for ToPrimitive TypeErrors.
1329 2017-04-16 Joseph Pecoraro <pecoraro@apple.com>
1331 test262: test262/test/language/expressions/tagged-template/template-object.js
1332 https://bugs.webkit.org/show_bug.cgi?id=170878
1334 Reviewed by Saam Barati.
1336 * stress/array-length-not-writable.js: Added.
1340 2017-04-16 Joseph Pecoraro <pecoraro@apple.com>
1342 test262: test262/test/built-ins/Object/getOwnPropertyNames/15.2.3.4-4-44.js
1343 https://bugs.webkit.org/show_bug.cgi?id=170879
1345 Reviewed by Saam Barati.
1347 * ChakraCore/test/es5/enumerable.baseline-jsc:
1350 2017-04-16 Joseph Pecoraro <pecoraro@apple.com>
1352 test262: test262/test/built-ins/Date/prototype/Symbol.toPrimitive/name.js
1353 https://bugs.webkit.org/show_bug.cgi?id=170884
1355 Reviewed by Yusuke Suzuki.
1359 2017-04-15 Joseph Pecoraro <pecoraro@apple.com>
1361 test262: test262/test/language/global-code/new.target-arrow.js
1362 https://bugs.webkit.org/show_bug.cgi?id=170872
1364 Reviewed by Saam Barati.
1366 * stress/async-arrow-functions-lexical-new.target-binding.js:
1367 (shouldThrowAsync): Deleted.
1368 (shouldThrowAsync.async): Deleted.
1369 This code should have thrown a SyntaxError. Instead it was throwing
1370 a ReferenceError for the internal @newTargetLocal variable.
1372 * stress/new-target-syntax-errors.js:
1373 Cover the arrow function in global code cases.
1376 * ChakraCore/test/es6/globalLambdaNewTargetSyntaxError.baseline-jsc:
1377 We now pass with an expected SyntaxError. Our error message is different.
1381 2017-04-14 Saam Barati <sbarati@apple.com>
1383 ParseInt intrinsic in DFG backend doesn't properly flush its operands
1384 https://bugs.webkit.org/show_bug.cgi?id=170865
1386 Reviewed by Mark Lam and Geoffrey Garen.
1388 * stress/parse-int-intrinsic-dfg-backend-flush.js: Added.
1392 2017-04-14 Caitlin Potter <caitp@igalia.com>
1394 [JSC] use ExpressionErrorClassifier for AwaitExpression operand
1395 https://bugs.webkit.org/show_bug.cgi?id=170844
1397 Reviewed by Saam Barati.
1399 * stress/regress-170732.js: Added.
1401 2017-04-14 Oleksandr Skachkov <gskachkov@gmail.com>
1403 Safari 10.1 JSON.parse returns incorrect object for numeric keys with decimal values
1404 https://bugs.webkit.org/show_bug.cgi?id=170442
1406 Reviewed by Yusuke Suzuki.
1408 * stress/object-number-properties.js:
1410 2017-04-13 Yusuke Suzuki <utatane.tea@gmail.com>
1412 [JSC] Date.parse should accept wider range of representation
1413 https://bugs.webkit.org/show_bug.cgi?id=170720
1415 Reviewed by Darin Adler.
1417 * stress/date-relaxed.js: Added.
1421 2017-04-13 Mark Lam <mark.lam@apple.com>
1423 Should use flushDirect() when flushing the scopeRegister due to needsScopeRegister().
1424 https://bugs.webkit.org/show_bug.cgi?id=170661
1425 <rdar://problem/31579046>
1427 Reviewed by Filip Pizlo.
1429 * stress/regress-170661.js: Added.
1431 2017-04-13 JF Bastien <jfbastien@apple.com>
1433 WebAssembly: manage memory better
1434 https://bugs.webkit.org/show_bug.cgi?id=170628
1436 Reviewed by Keith Miller, Michael Saboff.
1438 * wasm/Builder.js: move a helper out so tests can use it
1439 (export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):
1440 * wasm/WASM.js: add utilities to classify opcodes
1442 (export.const.memoryAccessInfo.op.const.sign):
1443 * wasm/function-tests/memory-access-past-4gib.js: Added. This test
1444 fails before this patch.
1445 (const.op.of.WASM.opcodes):
1446 * wasm/function-tests/memory-many.js: Added. This simple tests
1447 just shouldn't crash. In verbose mode it's useful at determining
1448 if the GC falls behind or not.
1449 * wasm/function-tests/memory-multiagent.js: Added. Emulate postMessage.
1450 (const.startAgents.numAgentsToStart.a.agent.receiveBroadcast):
1451 (const.startAgents.numAgentsToStart.a.write.const.idx.Math.random):
1452 (const.broadcastToAgents):
1453 * wasm/js-api/extension-MemoryMode.js: verbose logging.
1456 (testInstanceNoMemory):
1457 (testInstanceNoMax):
1459 * wasm/utilities.js: move a utility here.
1461 2017-04-12 Joseph Pecoraro <pecoraro@apple.com>
1463 test262: test262/test/built-ins/NativeErrors/EvalError/proto.js
1464 https://bugs.webkit.org/show_bug.cgi?id=170668
1466 Reviewed by Keith Miller.
1469 * ChakraCore/test/Lib/error.baseline-jsc: Added.
1470 This test does not match the spec.
1474 2017-04-12 Joseph Pecoraro <pecoraro@apple.com>
1476 test262: test262/test/language/literals/regexp/u-dec-esc.js
1477 https://bugs.webkit.org/show_bug.cgi?id=170687
1479 Reviewed by Michael Saboff.
1483 2017-04-11 Michael Saboff <msaboff@apple.com>
1485 Implement Object.isFrozen() and Object.isSealed() per ECMA spec
1486 https://bugs.webkit.org/show_bug.cgi?id=170753
1488 Reviewed by Mark Lam.
1490 Added JSC baseline and enabled defineIndexProperty test.
1492 Note that JSC differs from Chakra in that a JSC doesn't use indexed
1493 properties placed on the Array prototype when sorting the indexed
1494 properties of an Object. This is behavior is considered undefined
1498 * ChakraCore/test/es5/defineIndexProperty.baseline-jsc: Added.
1500 2017-04-11 Joseph Pecoraro <pecoraro@apple.com>
1502 test262: test262/test/annexB/language/comments/multi-line-html-close.js
1503 https://bugs.webkit.org/show_bug.cgi?id=170648
1505 Reviewed by Keith Miller.
1509 2017-04-11 Joseph Pecoraro <pecoraro@apple.com>
1511 test262: test262/test/built-ins/Array/S15.4.3_A2.2.js
1512 https://bugs.webkit.org/show_bug.cgi?id=170652
1514 Reviewed by Michael Saboff.
1516 * stress/native-constructors-length.js: Added.
1517 (assertLengthDescriptorAttributes):
1518 Add a quick test for the length properties of all native constructors.
1520 * ChakraCore/test/es5/enumerable.baseline-jsc:
1521 Rebaseline expectations for this test.
1525 2017-04-10 Keith Miller <keith_miller@apple.com>
1527 WebAssembly: Update spec tests
1528 https://bugs.webkit.org/show_bug.cgi?id=170683
1530 Rubber-stamped by JF Bastien.
1533 * wasm/spec-tests/br_table.wast.js:
1534 * wasm/spec-tests/conversions.wast.js: Removed.
1535 * wasm/spec-tests/f32_bitwise.wast.js: Added.
1536 * wasm/spec-tests/f32_cmp.wast.js:
1537 * wasm/spec-tests/f64_bitwise.wast.js: Added.
1538 * wasm/spec-tests/f64_cmp.wast.js:
1539 * wasm/spec-tests/i32.wast.js:
1540 * wasm/spec-tests/i64.wast.js:
1541 * wasm/spec-tests/int_exprs.wast.js:
1542 * wasm/spec-tests/memory.wast.js:
1544 2017-04-09 Joseph Pecoraro <pecoraro@apple.com>
1546 test262: test262/test/annexB/language/expressions/object/__proto__-fn-name.js
1547 https://bugs.webkit.org/show_bug.cgi?id=170650
1549 Reviewed by Saam Barati.
1551 * stress/inferred-names.js:
1554 2017-04-09 Joseph Pecoraro <pecoraro@apple.com>
1556 test262: test262/test/annexB/language/literals/regexp/identity-escape.js
1557 https://bugs.webkit.org/show_bug.cgi?id=170651
1559 Reviewed by Saam Barati.
1563 2017-04-07 Michael Saboff <msaboff@apple.com>
1565 Fix and enable ChakraCore/test/es6/ES6Function_bugs.js after r215072
1566 https://bugs.webkit.org/show_bug.cgi?id=170580
1568 Reviewed by JF Bastien.
1570 Commented out subtest that expects defineProperty("length") to a getter on a
1571 sealed function shouldn't throw.
1574 * ChakraCore/test/es6/ES6Function_bugs.js:
1576 2017-04-06 Michael Saboff <msaboff@apple.com>
1578 Cannot Object.seal() or Object.freeze() global "this"
1579 https://bugs.webkit.org/show_bug.cgi?id=170549
1581 Reviewed by Mark Lam.
1583 Enabled failing tests fixed by the corresponding code change:
1584 ChakraCore/test/LetConst/delete.js
1585 ChakraCore/test/LetConst/dop.js
1586 ChakraCore/test/LetConst/dop1.js
1589 * ChakraCore/test/LetConst/dop.baseline-jsc: Added JSC specific expected output.
1590 * ChakraCore/test/LetConst/dop1.baseline-jsc: Added JSC specific expected output.
1592 2017-04-05 Joseph Pecoraro <pecoraro@apple.com>
1594 test262: ES2017 test progressions need updated expectations (arguments.caller removed)
1595 https://bugs.webkit.org/show_bug.cgi?id=170536
1597 Reviewed by Mark Lam.
1600 After r208867 the tests are out of date and are now expected to fail.
1602 2017-04-05 Joseph Pecoraro <pecoraro@apple.com>
1604 test262: Final rebaseline of existing tests, a few tests have started failing
1605 https://bugs.webkit.org/show_bug.cgi?id=170538
1607 Reviewed by Mark Lam.
1610 These tests started failing a while ago. Mark them as legitmate failures.
1612 2017-04-05 Joseph Pecoraro <pecoraro@apple.com>
1614 test262: Rebaseline expectations for now passing tests
1615 https://bugs.webkit.org/show_bug.cgi?id=170532
1617 Reviewed by Ryosuke Niwa.
1620 Update expectations for tests we are now passing.
1622 2017-04-05 Joseph Pecoraro <pecoraro@apple.com>
1624 test262: module test progressions need updated expectations (@@iterator changes)
1625 https://bugs.webkit.org/show_bug.cgi?id=170535
1627 Reviewed by Saam Barati.
1630 After r212430 the tests are out of date and are now expected to fail.
1632 2017-04-05 Michael Saboff <msaboff@apple.com>
1634 Unreviewed rollout of r214642 as the test still intermittently fails.
1636 Disabled ChakraCore/test/fieldopts/objtypespec-newobj-invalidation.1.js.
1640 2017-04-05 Michael Saboff <msaboff@apple.com>
1642 REGRESSION (Safari 10.1): Inserting elements into arrays fails when array contains very large numbers
1643 https://bugs.webkit.org/show_bug.cgi?id=170264
1644 <rdar://problem/31375593>
1646 Rubber-stamped by Saam Barati.
1648 The original bug was fixed in: https://trac.webkit.org/changeset/214714
1649 I'm just adding another test for good measure.
1651 * stress/double-array-to-array-storage.js: Added.
1654 2017-04-05 Keith Miller <keith_miller@apple.com>
1656 WebAssembly: We shouldn't need to pin size registers if we have a fast memory.
1657 https://bugs.webkit.org/show_bug.cgi?id=170504
1659 Reviewed by Mark Lam.
1661 * wasm/function-tests/trap-after-cross-instance-call.js: Added.
1662 (b.new.WebAssembly.Memory):
1663 (importObject.foo.bar):
1664 (wasmFrameCountFromError):
1666 2017-03-16 Yusuke Suzuki <utatane.tea@gmail.com>
1668 [JSC] Generate TemplateObjects at linking time
1669 https://bugs.webkit.org/show_bug.cgi?id=169743
1671 Reviewed by Keith Miller.
1673 * stress/template-string-tags-eval.js: Added.
1677 2017-04-04 Mark Lam <mark.lam@apple.com>
1679 On ARM64, DFG::SpeculativeJIT::compileArithMod() failed to ensure result is of DataFormatInt32.
1680 https://bugs.webkit.org/show_bug.cgi?id=170473
1681 <rdar://problem/29912391>
1683 Reviewed by Saam Barati.
1685 * stress/regress-170473.js: Added.
1687 2017-04-03 Mark Lam <mark.lam@apple.com>
1689 Fix incorrect capacity delta calculation reported in SparseArrayValueMap::add().
1690 https://bugs.webkit.org/show_bug.cgi?id=170412
1691 <rdar://problem/29697336>
1693 Reviewed by Filip Pizlo.
1695 * stress/regress-170412.js: Added.
1697 2017-04-03 Keith Miller <keith_miller@apple.com>
1699 WebAssembly: Update spec tests
1700 https://bugs.webkit.org/show_bug.cgi?id=170361
1702 Rubber-stamped by Saam Barati.
1704 Update the spec tests to run tests generated by the newer spec
1705 test builder wasm-spec/test/builder.py. This patch also adds the
1706 necessary harness code in spec-harness.js so we can run the tests.
1709 * wasm/import-spec-tests.rb:
1710 * wasm/spec-harness.js: Added.
1711 (import.string_appeared_here.then):
1714 (let.assert_unreached):
1715 * wasm/spec-harness/index.js: Added.
1721 (Result.prototype.isError):
1726 (assert_soft_invalid):
1732 (assert_unlinkable):
1733 (assert_uninstantiable):
1737 (assert_exhaustion):
1739 (assert_return_nan):
1740 * wasm/spec-harness/testharness.css: Added.
1746 (table#results th:first-child,):
1747 (table#results th:last-child,):
1748 (table#results.assertions th:last-child,):
1751 (tr.pass > td:first-child):
1752 (tr.fail > td:first-child):
1753 (tr.timeout > td:first-child):
1754 (tr.notrun > td:first-child):
1755 (.pass > td:first-child, .fail > td:first-child, .timeout > td:first-child, .notrun > td:first-child):
1756 (table#results span):
1757 (table#results span.expected):
1758 (table#results span.actual):
1762 (span.ok, span.timeout, span.error):
1763 * wasm/spec-harness/testharness.js: Added.
1764 (WindowTestEnvironment):
1765 (WindowTestEnvironment.prototype._dispatch):
1766 (WindowTestEnvironment.prototype._forEach_windows):
1767 (WindowTestEnvironment.prototype.on_tests_ready):
1768 (WindowTestEnvironment.prototype.setup_messages):
1769 (WindowTestEnvironment.prototype.next_default_test_name):
1770 (WindowTestEnvironment.prototype.on_new_harness_properties):
1771 (WindowTestEnvironment.prototype.add_on_loaded_callback):
1772 (WindowTestEnvironment.prototype.test_timeout):
1773 (WindowTestEnvironment.prototype.global_scope):
1774 (WorkerTestEnvironment):
1775 (WorkerTestEnvironment.prototype._dispatch):
1776 (WorkerTestEnvironment.prototype._add_message_port):
1777 (WorkerTestEnvironment.prototype.next_default_test_name):
1778 (WorkerTestEnvironment.prototype.on_new_harness_properties):
1779 (WorkerTestEnvironment.prototype.on_tests_ready):
1780 (WorkerTestEnvironment.prototype.add_on_loaded_callback):
1781 (WorkerTestEnvironment.prototype.test_timeout):
1782 (WorkerTestEnvironment.prototype.global_scope):
1783 (DedicatedWorkerTestEnvironment):
1784 (DedicatedWorkerTestEnvironment.prototype.on_tests_ready):
1785 (SharedWorkerTestEnvironment):
1786 (SharedWorkerTestEnvironment.prototype.on_tests_ready):
1787 (ServiceWorkerTestEnvironment):
1788 (ServiceWorkerTestEnvironment.prototype.add_on_loaded_callback):
1789 (create_test_environment):
1791 (is_service_worker):
1804 * wasm/spec-harness/testharnessreport.js: Added.
1805 * wasm/spec-harness/wasm-constants.js: Added.
1816 * wasm/spec-harness/wasm-module-builder.js: Added.
1817 (Binary.prototype.emit_u8):
1818 (Binary.prototype.emit_u16):
1819 (Binary.prototype.emit_u32):
1820 (Binary.prototype.emit_u32v):
1821 (Binary.prototype.emit_bytes):
1822 (Binary.prototype.emit_string):
1823 (Binary.prototype.emit_header):
1824 (Binary.prototype.emit_section):
1826 (WasmFunctionBuilder):
1827 (WasmFunctionBuilder.prototype.exportAs):
1828 (WasmFunctionBuilder.prototype.exportFunc):
1829 (WasmFunctionBuilder.prototype.addBody):
1830 (WasmFunctionBuilder.prototype.addLocals):
1831 (WasmFunctionBuilder.prototype.end):
1832 (WasmGlobalBuilder):
1833 (WasmGlobalBuilder.prototype.exportAs):
1834 (WasmModuleBuilder):
1835 (WasmModuleBuilder.prototype.addStart):
1836 (WasmModuleBuilder.prototype.addMemory):
1837 (WasmModuleBuilder.prototype.addExplicitSection):
1838 (WasmModuleBuilder.prototype.addType):
1839 (WasmModuleBuilder.prototype.addGlobal):
1840 (WasmModuleBuilder.prototype.addFunction):
1841 (WasmModuleBuilder.prototype.addImport):
1842 (WasmModuleBuilder.prototype.addImportedGlobal):
1843 (WasmModuleBuilder.prototype.addImportedMemory):
1844 (WasmModuleBuilder.prototype.addImportedTable):
1845 (WasmModuleBuilder.prototype.addExport):
1846 (WasmModuleBuilder.prototype.addExportOfKind):
1847 (WasmModuleBuilder.prototype.addDataSegment):
1848 (WasmModuleBuilder.prototype.exportMemoryAs):
1849 (WasmModuleBuilder.prototype.addFunctionTableInit):
1850 (WasmModuleBuilder.prototype.appendToTable):
1851 (WasmModuleBuilder.prototype.setFunctionTableLength):
1852 (WasmModuleBuilder.prototype.toArray):
1853 (WasmModuleBuilder.prototype.toBuffer):
1854 (WasmModuleBuilder.prototype.instantiate):
1855 * wasm/spec-harness/wast.js: Added.
1857 (require.else._registry.name):
1882 (instr.else.switch.case.0.f):
1883 (instr.else.switch.case.1.f.1):
1884 (instr.else.switch.case.2.f.2):
1907 (module_with_var_opt):
1914 (_registry.string_appeared_here):
1954 (array1_of_genarray):
1955 (array2_of_genarray):
1956 (array3_of_genarray):
1977 (advance_to_closing):
1978 (advance_to_non_alpha):
2008 (caml_array_concat):
2014 (caml_int32_float_of_bits):
2015 (caml_int32_bits_of_float):
2016 (caml_classify_float):
2020 (caml_copysign_float):
2026 (int_of_string_base):
2027 (parse_sign_and_base):
2028 (caml_int_of_string.aux):
2029 (caml_int_of_string):
2030 (caml_int64_of_string.aux):
2031 (caml_int64_of_string):
2034 (finish_formatting):
2036 (caml_int64_format):
2037 (caml_format_float):
2071 (bits_of_float.to_nat):
2082 (param_format_of_ignored_format):
2083 (buffer_check_size):
2085 (buffer_add_string):
2091 (set while.set var):
2092 (set while.set else):
2098 (bprint_ignored_flag):
2102 (bprint_iconv_flag):
2104 (bprint_altint_fmt):
2105 (bprint_fconv_flag):
2107 (string_of_formatting_lit):
2108 (string_of_formatting_gen):
2109 (bprint_char_literal):
2110 (bprint_string_literal):
2112 (int_of_custom_arity):
2118 (fmtty_of_formatting_gen):
2121 (fmtty_of_padding_fmtty):
2122 (fmtty_of_precision_fmtty):
2125 (type_ignored_param_one):
2127 (type_ignored_format_substitution):
2131 (fix_int_precision):
2132 (string_to_caml_string):
2138 (convert_nativeint):
2145 (else.switch.k.prime):
2146 (else.switch.else.):
2147 (else.switch.else.k.prime.1):
2151 (make_string_padding):
2152 (make_int_padding_precision):
2157 (failwith_message.k):
2159 (open_box_of_string.else.invalid_box):
2160 (open_box_of_string.else.parse_spaces):
2161 (open_box_of_string.else.parse_lword):
2162 (open_box_of_string.else.parse_int):
2163 (open_box_of_string):
2164 (make_padding_fmt_ebb):
2165 (make_precision_fmt_ebb):
2166 (make_padprec_fmt_ebb):
2167 (invalid_format_message):
2168 (invalid_format_without):
2169 (expected_character):
2171 (incompatible_flag):
2174 (parse_after_precision):
2175 (else.parse_literal):
2176 (parse_after_padding):
2182 (compute_float_conv):
2183 (search_subformat_end):
2187 (else.switch.case.99.char_format):
2188 (else.switch.scan_format):
2195 (fail_single_percent):
2196 (parse_char_set_after_char):
2197 (parse_char_set_content):
2198 (parse_char_set_start):
2202 (fmt_ebb_of_string):
2203 (format_of_string_fmtty):
2204 (format_of_string_format):
2206 (caml_ml_open_descriptor_in):
2207 (caml_ml_open_descriptor_out):
2210 (caml_ml_output_char):
2212 (caml_ml_input_char):
2213 (caml_ml_out_channels_list):
2219 (caml_new_lex_engine):
2221 (caml_obj_truncate):
2222 (caml_lazy_make_forward):
2223 (caml_update_dummy):
2228 (caml_greaterequal):
2231 (caml_get_public_method):
2232 (caml_parse_engine):
2233 (caml_set_parser_trace):
2234 (js_string_of_char):
2236 (caml_create_string):
2237 (caml_string_compare):
2243 (caml_string_of_char_array):
2244 (caml_is_printable):
2245 (caml_string_get16):
2246 (caml_string_get32):
2318 (mutability.get if):
2326 (import_kind.get if):
2333 (export_kind.get if):
2360 (encode.patch_gap32):
2361 (encode.value_type):
2362 (encode.stack_type):
2365 (encode.table_type):
2366 (encode.memory_type):
2367 (encode.global_type):
2373 (encode.type_section):
2375 (encode.import_section):
2377 (encode.func_section):
2379 (encode.table_section):
2381 (encode.memory_section):
2383 (encode.global_section):
2384 (encode.export_kind):
2386 (encode.export_section):
2387 (encode.start_section):
2392 (encode.code_section):
2394 (encode.table_segment):
2395 (encode.elem_section):
2396 (encode.memory_segment):
2401 (print_nan_significand_digits):
2405 (Make.canonicalize_nan):
2406 (Make.determine_binary_nan):
2407 (Make.determine_unary_nan):
2430 (Make.of_signless_string):
2441 (pp_force_break_line):
2447 (enqueue_string_as):
2454 (pp_set_print_tags):
2456 (pp_get_print_tags):
2459 (pp_get_formatter_tag_functions):
2460 (pp_set_formatter_tag_functions):
2476 (pp_print_if_newline):
2490 (pp_over_max_boxes):
2491 (pp_get_ellipsis_text):
2493 (pp_set_max_indent):
2494 (pp_get_max_indent):
2497 (pp_set_formatter_out_functions):
2498 (pp_get_formatter_out_functions):
2499 (pp_set_formatter_output_functions):
2500 (pp_get_formatter_output_functions):
2501 (pp_set_all_formatter_output_functions):
2502 (pp_get_all_formatter_output_functions):
2509 (pp_set_formatter_out_channel):
2510 (default_pp_mark_open_tag):
2511 (default_pp_mark_close_tag):
2512 (default_pp_print_open_tag):
2513 (default_pp_print_close_tag):
2514 (pp_make_formatter):
2518 (formatter_of_out_channel):
2519 (formatter_of_buffer):
2520 (flush_str_formatter):
2521 (flush_buf_formatter):
2553 (set_ellipsis_text):
2554 (get_ellipsis_text):
2555 (set_formatter_out_channel):
2556 (set_formatter_out_functions):
2557 (get_formatter_out_functions):
2558 (set_formatter_output_functions):
2559 (get_formatter_output_functions):
2560 (set_all_formatter_output_functions):
2561 (get_all_formatter_output_functions):
2562 (set_formatter_tag_functions):
2563 (get_formatter_tag_functions):
2570 (output_formatting_lit):
2598 (Make.clamp_rotate_count):
2626 (token.else.switch):
2627 (token.else.switch.):
2629 (__ocaml_lex_comment_rec):
2639 (sub_lexeme_char_opt):
2700 (Make.remove_min_binding):
2708 (Make.add_min_binding):
2709 (Make.add_max_binding):
2712 (Make.concat_or_join):
2721 (Make.bindings_aux):
2775 (positions_to_region):
2805 (current_lookahead_fun):
2806 (catch.else.current_lookahead_fun.0):
2817 (is_current_lookahead):
2827 (valid_float_lexem):
2845 (unsafe_really_input):
2847 (really_input_string):
2848 (input_line.build_result):
2866 (at_exit.exit_function.0):
2870 (output_binary_int):
2873 (out_channel_length):
2874 (set_binary_mode_out):
2879 (in_channel_length):
2881 (set_binary_mode_in):
2894 (escaped.needs_escape):
2898 (string_of_value_type):
2899 (string_of_value_types):
2900 (string_of_elem_type):
2902 (string_of_table_type):
2903 (string_of_global_type):
2904 (string_of_stack_type):
2905 (string_of_func_type):
2915 * wasm/spec-tests/address.wast.js:
2916 (register): Deleted.
2918 (instance): Deleted.
2919 (assert_malformed): Deleted.
2920 (assert_invalid): Deleted.
2921 (assert_soft_invalid): Deleted.
2922 (assert_unlinkable): Deleted.
2923 (assert_uninstantiable): Deleted.
2924 (assert_trap): Deleted.
2925 (assert_return): Deleted.
2926 (assert_return_nan): Deleted.
2927 * wasm/spec-tests/binary.wast.js:
2928 (register): Deleted.
2930 (instance): Deleted.
2931 (assert_malformed): Deleted.
2932 (assert_invalid): Deleted.
2933 (assert_soft_invalid): Deleted.
2934 (assert_unlinkable): Deleted.
2935 (assert_uninstantiable): Deleted.
2936 (assert_trap): Deleted.
2937 (assert_return): Deleted.
2938 (assert_return_nan): Deleted.
2939 * wasm/spec-tests/block.wast.js:
2940 (register): Deleted.
2942 (instance): Deleted.
2943 (assert_malformed): Deleted.
2944 (assert_invalid): Deleted.
2945 (assert_soft_invalid): Deleted.
2946 (assert_unlinkable): Deleted.
2947 (assert_uninstantiable): Deleted.
2948 (assert_trap): Deleted.
2949 (assert_return): Deleted.
2950 (assert_return_nan): Deleted.
2951 * wasm/spec-tests/br.wast.js:
2952 (register): Deleted.
2954 (instance): Deleted.
2955 (assert_malformed): Deleted.
2956 (assert_invalid): Deleted.
2957 (assert_soft_invalid): Deleted.
2958 (assert_unlinkable): Deleted.
2959 (assert_uninstantiable): Deleted.
2960 (assert_trap): Deleted.
2961 (assert_return): Deleted.
2962 (assert_return_nan): Deleted.
2963 * wasm/spec-tests/br_if.wast.js:
2964 (register): Deleted.
2966 (instance): Deleted.
2967 (assert_malformed): Deleted.
2968 (assert_invalid): Deleted.
2969 (assert_soft_invalid): Deleted.
2970 (assert_unlinkable): Deleted.
2971 (assert_uninstantiable): Deleted.
2972 (assert_trap): Deleted.
2973 (assert_return): Deleted.
2974 (assert_return_nan): Deleted.
2975 * wasm/spec-tests/br_table.wast.js:
2976 (register): Deleted.
2978 (instance): Deleted.
2979 (assert_malformed): Deleted.
2980 (assert_invalid): Deleted.
2981 (assert_soft_invalid): Deleted.
2982 (assert_unlinkable): Deleted.
2983 (assert_uninstantiable): Deleted.
2984 (assert_trap): Deleted.
2985 (assert_return): Deleted.
2986 (assert_return_nan): Deleted.
2987 * wasm/spec-tests/break-drop.wast.js:
2988 (register): Deleted.
2990 (instance): Deleted.
2991 (assert_malformed): Deleted.
2992 (assert_invalid): Deleted.
2993 (assert_soft_invalid): Deleted.
2994 (assert_unlinkable): Deleted.
2995 (assert_uninstantiable): Deleted.
2996 (assert_trap): Deleted.
2997 (assert_return): Deleted.
2998 (assert_return_nan): Deleted.
2999 * wasm/spec-tests/call.wast.js:
3000 (register): Deleted.
3002 (instance): Deleted.
3003 (assert_malformed): Deleted.
3004 (assert_invalid): Deleted.
3005 (assert_soft_invalid): Deleted.
3006 (assert_unlinkable): Deleted.
3007 (assert_uninstantiable): Deleted.
3008 (assert_trap): Deleted.
3009 (assert_return): Deleted.
3010 (assert_return_nan): Deleted.
3011 * wasm/spec-tests/call_indirect.wast.js:
3012 (register): Deleted.
3014 (instance): Deleted.
3015 (assert_malformed): Deleted.
3016 (assert_invalid): Deleted.
3017 (assert_soft_invalid): Deleted.
3018 (assert_unlinkable): Deleted.
3019 (assert_uninstantiable): Deleted.
3020 (assert_trap): Deleted.
3021 (assert_return): Deleted.
3022 (assert_return_nan): Deleted.
3023 * wasm/spec-tests/comments.wast.js:
3024 (register): Deleted.
3026 (instance): Deleted.
3027 (assert_malformed): Deleted.
3028 (assert_invalid): Deleted.
3029 (assert_soft_invalid): Deleted.
3030 (assert_unlinkable): Deleted.
3031 (assert_uninstantiable): Deleted.
3032 (assert_trap): Deleted.
3033 (assert_return): Deleted.
3034 (assert_return_nan): Deleted.
3035 * wasm/spec-tests/conversions.wast.js:
3036 (register): Deleted.
3038 (instance): Deleted.
3039 (assert_malformed): Deleted.
3040 (assert_invalid): Deleted.
3041 (assert_soft_invalid): Deleted.
3042 (assert_unlinkable): Deleted.
3043 (assert_uninstantiable): Deleted.
3044 (assert_trap): Deleted.
3045 (assert_return): Deleted.
3046 (assert_return_nan): Deleted.
3047 * wasm/spec-tests/custom_section.wast.js:
3048 (register): Deleted.
3050 (instance): Deleted.
3051 (assert_malformed): Deleted.
3052 (assert_invalid): Deleted.
3053 (assert_soft_invalid): Deleted.
3054 (assert_unlinkable): Deleted.
3055 (assert_uninstantiable): Deleted.
3056 (assert_trap): Deleted.
3057 (assert_return): Deleted.
3058 (assert_return_nan): Deleted.
3059 * wasm/spec-tests/endianness.wast.js:
3060 (register): Deleted.
3062 (instance): Deleted.
3063 (assert_malformed): Deleted.
3064 (assert_invalid): Deleted.
3065 (assert_soft_invalid): Deleted.
3066 (assert_unlinkable): Deleted.
3067 (assert_uninstantiable): Deleted.
3068 (assert_trap): Deleted.
3069 (assert_return): Deleted.
3070 (assert_return_nan): Deleted.
3071 * wasm/spec-tests/exports.wast.js:
3072 (register): Deleted.
3074 (instance): Deleted.
3075 (assert_malformed): Deleted.
3076 (assert_invalid): Deleted.
3077 (assert_soft_invalid): Deleted.
3078 (assert_unlinkable): Deleted.
3079 (assert_uninstantiable): Deleted.
3080 (assert_trap): Deleted.
3081 (assert_return): Deleted.
3082 (assert_return_nan): Deleted.
3083 * wasm/spec-tests/f32.wast.js: Removed.
3084 * wasm/spec-tests/f32_cmp.wast.js:
3085 (register): Deleted.
3087 (instance): Deleted.
3088 (assert_malformed): Deleted.
3089 (assert_invalid): Deleted.
3090 (assert_soft_invalid): Deleted.
3091 (assert_unlinkable): Deleted.
3092 (assert_uninstantiable): Deleted.
3093 (assert_trap): Deleted.
3094 (assert_return): Deleted.
3095 (assert_return_nan): Deleted.
3096 * wasm/spec-tests/f64.wast.js: Removed.
3097 * wasm/spec-tests/f64_cmp.wast.js:
3098 (register): Deleted.
3100 (instance): Deleted.
3101 (assert_malformed): Deleted.
3102 (assert_invalid): Deleted.
3103 (assert_soft_invalid): Deleted.
3104 (assert_unlinkable): Deleted.
3105 (assert_uninstantiable): Deleted.
3106 (assert_trap): Deleted.
3107 (assert_return): Deleted.
3108 (assert_return_nan): Deleted.
3109 * wasm/spec-tests/fac.wast.js:
3110 (register): Deleted.
3112 (instance): Deleted.
3113 (assert_malformed): Deleted.
3114 (assert_invalid): Deleted.
3115 (assert_soft_invalid): Deleted.
3116 (assert_unlinkable): Deleted.
3117 (assert_uninstantiable): Deleted.
3118 (assert_trap): Deleted.
3119 (assert_return): Deleted.
3120 (assert_return_nan): Deleted.
3121 * wasm/spec-tests/float_exprs.wast.js: Removed.
3122 * wasm/spec-tests/float_literals.wast.js:
3123 (register): Deleted.
3125 (instance): Deleted.
3126 (assert_malformed): Deleted.
3127 (assert_invalid): Deleted.
3128 (assert_soft_invalid): Deleted.
3129 (assert_unlinkable): Deleted.
3130 (assert_uninstantiable): Deleted.
3131 (assert_trap): Deleted.
3132 (assert_return): Deleted.
3133 (assert_return_nan): Deleted.
3134 * wasm/spec-tests/float_memory.wast.js:
3135 (register): Deleted.
3137 (instance): Deleted.
3138 (assert_malformed): Deleted.
3139 (assert_invalid): Deleted.
3140 (assert_soft_invalid): Deleted.
3141 (assert_unlinkable): Deleted.
3142 (assert_uninstantiable): Deleted.
3143 (assert_trap): Deleted.
3144 (assert_return): Deleted.
3145 (assert_return_nan): Deleted.
3146 * wasm/spec-tests/float_misc.wast.js: Removed.
3147 * wasm/spec-tests/forward.wast.js:
3148 (register): Deleted.
3150 (instance): Deleted.
3151 (assert_malformed): Deleted.
3152 (assert_invalid): Deleted.
3153 (assert_soft_invalid): Deleted.
3154 (assert_unlinkable): Deleted.
3155 (assert_uninstantiable): Deleted.
3156 (assert_trap): Deleted.
3157 (assert_return): Deleted.
3158 (assert_return_nan): Deleted.
3159 * wasm/spec-tests/func.wast.js:
3160 (register): Deleted.
3162 (instance): Deleted.
3163 (assert_malformed): Deleted.
3164 (assert_invalid): Deleted.
3165 (assert_soft_invalid): Deleted.
3166 (assert_unlinkable): Deleted.
3167 (assert_uninstantiable): Deleted.
3168 (assert_trap): Deleted.
3169 (assert_return): Deleted.
3170 (assert_return_nan): Deleted.
3171 * wasm/spec-tests/func_ptrs.wast.js:
3172 (register): Deleted.
3174 (instance): Deleted.
3175 (assert_malformed): Deleted.
3176 (assert_invalid): Deleted.
3177 (assert_soft_invalid): Deleted.
3178 (assert_unlinkable): Deleted.
3179 (assert_uninstantiable): Deleted.
3180 (assert_trap): Deleted.
3181 (assert_return): Deleted.
3182 (assert_return_nan): Deleted.
3183 * wasm/spec-tests/get_local.wast.js:
3184 (register): Deleted.
3186 (instance): Deleted.
3187 (assert_malformed): Deleted.
3188 (assert_invalid): Deleted.
3189 (assert_soft_invalid): Deleted.
3190 (assert_unlinkable): Deleted.
3191 (assert_uninstantiable): Deleted.
3192 (assert_trap): Deleted.
3193 (assert_return): Deleted.
3194 (assert_return_nan): Deleted.
3195 * wasm/spec-tests/globals.wast.js:
3196 (register): Deleted.
3198 (instance): Deleted.
3199 (assert_malformed): Deleted.
3200 (assert_invalid): Deleted.
3201 (assert_soft_invalid): Deleted.
3202 (assert_unlinkable): Deleted.
3203 (assert_uninstantiable): Deleted.
3204 (assert_trap): Deleted.
3205 (assert_return): Deleted.
3206 (assert_return_nan): Deleted.
3207 * wasm/spec-tests/i32.wast.js:
3208 (register): Deleted.
3210 (instance): Deleted.
3211 (assert_malformed): Deleted.
3212 (assert_invalid): Deleted.
3213 (assert_soft_invalid): Deleted.
3214 (assert_unlinkable): Deleted.
3215 (assert_uninstantiable): Deleted.
3216 (assert_trap): Deleted.
3217 (assert_return): Deleted.
3218 (assert_return_nan): Deleted.
3219 * wasm/spec-tests/i64.wast.js:
3220 (register): Deleted.
3222 (instance): Deleted.
3223 (assert_malformed): Deleted.
3224 (assert_invalid): Deleted.
3225 (assert_soft_invalid): Deleted.
3226 (assert_unlinkable): Deleted.
3227 (assert_uninstantiable): Deleted.
3228 (assert_trap): Deleted.
3229 (assert_return): Deleted.
3230 (assert_return_nan): Deleted.
3231 * wasm/spec-tests/if.wast.js: Added.
3232 * wasm/spec-tests/imports.wast.js:
3233 (register): Deleted.
3235 (instance): Deleted.
3236 (assert_malformed): Deleted.
3237 (assert_invalid): Deleted.
3238 (assert_soft_invalid): Deleted.
3239 (assert_unlinkable): Deleted.
3240 (assert_uninstantiable): Deleted.
3241 (assert_trap): Deleted.
3242 (assert_return): Deleted.
3243 (assert_return_nan): Deleted.
3244 * wasm/spec-tests/int_exprs.wast.js:
3245 (register): Deleted.
3247 (instance): Deleted.
3248 (assert_malformed): Deleted.
3249 (assert_invalid): Deleted.
3250 (assert_soft_invalid): Deleted.
3251 (assert_unlinkable): Deleted.
3252 (assert_uninstantiable): Deleted.
3253 (assert_trap): Deleted.
3254 (assert_return): Deleted.
3255 (assert_return_nan): Deleted.
3256 * wasm/spec-tests/int_literals.wast.js:
3257 (register): Deleted.
3259 (instance): Deleted.
3260 (assert_malformed): Deleted.
3261 (assert_invalid): Deleted.
3262 (assert_soft_invalid): Deleted.
3263 (assert_unlinkable): Deleted.
3264 (assert_uninstantiable): Deleted.
3265 (assert_trap): Deleted.
3266 (assert_return): Deleted.
3267 (assert_return_nan): Deleted.
3268 * wasm/spec-tests/jsapi.js: Added.
3269 (testJSAPI.get test):
3271 (testJSAPI.set test):
3272 (testJSAPI.assertCompileError):
3273 (testJSAPI.assertCompileSuccess):
3275 * wasm/spec-tests/labels.wast.js: Added.
3276 * wasm/spec-tests/left-to-right.wast.js:
3277 (register): Deleted.
3279 (instance): Deleted.
3280 (assert_malformed): Deleted.
3281 (assert_invalid): Deleted.
3282 (assert_soft_invalid): Deleted.
3283 (assert_unlinkable): Deleted.
3284 (assert_uninstantiable): Deleted.
3285 (assert_trap): Deleted.
3286 (assert_return): Deleted.
3287 (assert_return_nan): Deleted.
3288 * wasm/spec-tests/linking.wast.js:
3289 (register): Deleted.
3291 (instance): Deleted.
3292 (assert_malformed): Deleted.
3293 (assert_invalid): Deleted.
3294 (assert_soft_invalid): Deleted.
3295 (assert_unlinkable): Deleted.
3296 (assert_uninstantiable): Deleted.
3297 (assert_trap): Deleted.
3298 (assert_return): Deleted.
3299 (assert_return_nan): Deleted.
3300 * wasm/spec-tests/loop.wast.js:
3301 (register): Deleted.
3303 (instance): Deleted.
3304 (assert_malformed): Deleted.
3305 (assert_invalid): Deleted.
3306 (assert_soft_invalid): Deleted.
3307 (assert_unlinkable): Deleted.
3308 (assert_uninstantiable): Deleted.
3309 (assert_trap): Deleted.
3310 (assert_return): Deleted.
3311 (assert_return_nan): Deleted.
3312 * wasm/spec-tests/memory.wast.js:
3313 (register): Deleted.
3315 (instance): Deleted.
3316 (assert_malformed): Deleted.
3317 (assert_invalid): Deleted.
3318 (assert_soft_invalid): Deleted.
3319 (assert_unlinkable): Deleted.
3320 (assert_uninstantiable): Deleted.
3321 (assert_trap): Deleted.
3322 (assert_return): Deleted.
3323 (assert_return_nan): Deleted.
3324 * wasm/spec-tests/memory_redundancy.wast.js:
3325 (register): Deleted.
3327 (instance): Deleted.
3328 (assert_malformed): Deleted.
3329 (assert_invalid): Deleted.
3330 (assert_soft_invalid): Deleted.
3331 (assert_unlinkable): Deleted.
3332 (assert_uninstantiable): Deleted.
3333 (assert_trap): Deleted.
3334 (assert_return): Deleted.
3335 (assert_return_nan): Deleted.
3336 * wasm/spec-tests/memory_trap.wast.js: Removed.
3337 * wasm/spec-tests/names.wast.js:
3338 (register): Deleted.
3340 (instance): Deleted.
3341 (assert_malformed): Deleted.
3342 (assert_invalid): Deleted.
3343 (assert_soft_invalid): Deleted.
3344 (assert_unlinkable): Deleted.
3345 (assert_uninstantiable): Deleted.
3346 (assert_trap): Deleted.
3347 (assert_return): Deleted.
3348 (assert_return_nan): Deleted.
3349 * wasm/spec-tests/nop.wast.js:
3350 (register): Deleted.
3352 (instance): Deleted.
3353 (assert_malformed): Deleted.
3354 (assert_invalid): Deleted.
3355 (assert_soft_invalid): Deleted.
3356 (assert_unlinkable): Deleted.
3357 (assert_uninstantiable): Deleted.
3358 (assert_trap): Deleted.
3359 (assert_return): Deleted.
3360 (assert_return_nan): Deleted.
3361 * wasm/spec-tests/resizing.wast.js:
3362 (register): Deleted.
3364 (instance): Deleted.
3365 (assert_malformed): Deleted.
3366 (assert_invalid): Deleted.
3367 (assert_soft_invalid): Deleted.
3368 (assert_unlinkable): Deleted.
3369 (assert_uninstantiable): Deleted.
3370 (assert_trap): Deleted.
3371 (assert_return): Deleted.
3372 (assert_return_nan): Deleted.
3373 * wasm/spec-tests/return.wast.js:
3374 (register): Deleted.
3376 (instance): Deleted.
3377 (assert_malformed): Deleted.
3378 (assert_invalid): Deleted.
3379 (assert_soft_invalid): Deleted.
3380 (assert_unlinkable): Deleted.
3381 (assert_uninstantiable): Deleted.
3382 (assert_trap): Deleted.
3383 (assert_return): Deleted.
3384 (assert_return_nan): Deleted.
3385 * wasm/spec-tests/select.wast.js:
3386 (register): Deleted.
3388 (instance): Deleted.
3389 (assert_malformed): Deleted.
3390 (assert_invalid): Deleted.
3391 (assert_soft_invalid): Deleted.
3392 (assert_unlinkable): Deleted.
3393 (assert_uninstantiable): Deleted.
3394 (assert_trap): Deleted.
3395 (assert_return): Deleted.
3396 (assert_return_nan): Deleted.
3397 * wasm/spec-tests/set_local.wast.js:
3398 (register): Deleted.
3400 (instance): Deleted.
3401 (assert_malformed): Deleted.
3402 (assert_invalid): Deleted.
3403 (assert_soft_invalid): Deleted.
3404 (assert_unlinkable): Deleted.
3405 (assert_uninstantiable): Deleted.
3406 (assert_trap): Deleted.
3407 (assert_return): Deleted.
3408 (assert_return_nan): Deleted.
3409 * wasm/spec-tests/skip-stack-guard-page.wast.js:
3410 (register): Deleted.
3412 (instance): Deleted.
3413 (assert_malformed): Deleted.
3414 (assert_invalid): Deleted.
3415 (assert_soft_invalid): Deleted.
3416 (assert_unlinkable): Deleted.
3417 (assert_uninstantiable): Deleted.
3418 (assert_trap): Deleted.
3419 (assert_return): Deleted.
3420 (assert_return_nan): Deleted.
3421 * wasm/spec-tests/stack.wast.js:
3422 (register): Deleted.
3424 (instance): Deleted.
3425 (assert_malformed): Deleted.
3426 (assert_invalid): Deleted.
3427 (assert_soft_invalid): Deleted.
3428 (assert_unlinkable): Deleted.
3429 (assert_uninstantiable): Deleted.
3430 (assert_trap): Deleted.
3431 (assert_return): Deleted.
3432 (assert_return_nan): Deleted.
3433 * wasm/spec-tests/start.wast.js:
3434 (register): Deleted.
3436 (instance): Deleted.
3437 (assert_malformed): Deleted.
3438 (assert_invalid): Deleted.
3439 (assert_soft_invalid): Deleted.
3440 (assert_unlinkable): Deleted.
3441 (assert_uninstantiable): Deleted.
3442 (assert_trap): Deleted.
3443 (assert_return): Deleted.
3444 (assert_return_nan): Deleted.
3445 * wasm/spec-tests/store_retval.wast.js:
3446 (register): Deleted.
3448 (instance): Deleted.
3449 (assert_malformed): Deleted.
3450 (assert_invalid): Deleted.
3451 (assert_soft_invalid): Deleted.
3452 (assert_unlinkable): Deleted.
3453 (assert_uninstantiable): Deleted.
3454 (assert_trap): Deleted.
3455 (assert_return): Deleted.
3456 (assert_return_nan): Deleted.
3457 * wasm/spec-tests/switch.wast.js:
3458 (register): Deleted.
3460 (instance): Deleted.
3461 (assert_malformed): Deleted.
3462 (assert_invalid): Deleted.
3463 (assert_soft_invalid): Deleted.
3464 (assert_unlinkable): Deleted.
3465 (assert_uninstantiable): Deleted.
3466 (assert_trap): Deleted.
3467 (assert_return): Deleted.
3468 (assert_return_nan): Deleted.
3469 * wasm/spec-tests/tee_local.wast.js:
3470 (register): Deleted.
3472 (instance): Deleted.
3473 (assert_malformed): Deleted.
3474 (assert_invalid): Deleted.
3475 (assert_soft_invalid): Deleted.
3476 (assert_unlinkable): Deleted.
3477 (assert_uninstantiable): Deleted.
3478 (assert_trap): Deleted.
3479 (assert_return): Deleted.
3480 (assert_return_nan): Deleted.
3481 * wasm/spec-tests/traps.wast.js:
3482 (register): Deleted.
3484 (instance): Deleted.
3485 (assert_malformed): Deleted.
3486 (assert_invalid): Deleted.
3487 (assert_soft_invalid): Deleted.
3488 (assert_unlinkable): Deleted.
3489 (assert_uninstantiable): Deleted.
3490 (assert_trap): Deleted.
3491 (assert_return): Deleted.
3492 (assert_return_nan): Deleted.
3493 * wasm/spec-tests/typecheck.wast.js:
3494 (register): Deleted.
3496 (instance): Deleted.
3497 (assert_malformed): Deleted.
3498 (assert_invalid): Deleted.
3499 (assert_soft_invalid): Deleted.
3500 (assert_unlinkable): Deleted.
3501 (assert_uninstantiable): Deleted.
3502 (assert_trap): Deleted.
3503 (assert_return): Deleted.
3504 (assert_return_nan): Deleted.
3505 * wasm/spec-tests/unreachable.wast.js:
3506 (register): Deleted.
3508 (instance): Deleted.
3509 (assert_malformed): Deleted.
3510 (assert_invalid): Deleted.
3511 (assert_soft_invalid): Deleted.
3512 (assert_unlinkable): Deleted.
3513 (assert_uninstantiable): Deleted.
3514 (assert_trap): Deleted.
3515 (assert_return): Deleted.
3516 (assert_return_nan): Deleted.
3517 * wasm/spec-tests/unreached-invalid.wast.js: Added.
3518 * wasm/spec-tests/unwind.wast.js:
3519 (register): Deleted.
3521 (instance): Deleted.
3522 (assert_malformed): Deleted.
3523 (assert_invalid): Deleted.
3524 (assert_soft_invalid): Deleted.
3525 (assert_unlinkable): Deleted.
3526 (assert_uninstantiable): Deleted.
3527 (assert_trap): Deleted.
3528 (assert_return): Deleted.
3529 (assert_return_nan): Deleted.
3531 2017-04-01 Oleksandr Skachkov <gskachkov@gmail.com>
3533 Object with numerical keys with gaps gets filled by NaN values
3534 https://bugs.webkit.org/show_bug.cgi?id=164412
3536 Reviewed by Merk Lam.
3538 * stress/object-number-properties.js: Added.
3542 2017-03-30 Michael Saboff <msaboff@apple.com>
3544 Turning ChakraCore/test/fieldopts/objtypespec-newobj-invalidation.1.js back as it appears to always work
3545 https://bugs.webkit.org/show_bug.cgi?id=170313
3547 Reviewed by Saam Barati.
3549 Enable ChakraCore/test/fieldopts/objtypespec-newobj-invalidation.1.js as it seems solid.
3553 2017-03-30 Michael Saboff <msaboff@apple.com>
3555 Enable ChakraCore/Function/FuncBody.js test as it now works
3556 https://bugs.webkit.org/show_bug.cgi?id=170301
3558 Reviewed by Mark Lam.
3560 This test no longer crashes, so enable it and create a JSC specific
3564 * ChakraCore/test/Function/FuncBodyES5.baseline-jsc: Added.
3566 2017-03-30 JF Bastien <jfbastien@apple.com>
3568 WebAssembly: fix misc JS API implementation inconsistencies
3569 https://bugs.webkit.org/show_bug.cgi?id=170187
3571 Reviewed by Keith Miller.
3573 Verify that WebAssembly function are on the object's __proto__.
3575 * wasm/js-api/Module-compile.js:
3576 * wasm/js-api/validate.js:
3577 * wasm/js-api/web-assembly-instantiate.js:
3579 2017-03-29 JF Bastien <jfbastien@apple.com>
3581 WebAssembly: add shell-only Memory mode helper
3582 https://bugs.webkit.org/show_bug.cgi?id=170227
3584 Reviewed by Mark Lam.
3586 * wasm/assert.js: fix a prior debug thing I forgot to remove
3587 * wasm/function-tests/memory-section-and-import.js: the assert
3588 issue was hiding a failure in error message here
3589 * wasm/js-api/element.js: the assert issue was hiding a failure in
3591 (badInstantiation.test):
3593 * wasm/js-api/extension-MemoryMode.js: Added.
3594 (const.validateMode.what.switch):
3597 (testInstanceNoMemory):
3598 (testInstanceNoMax):
3600 * wasm/js-api/test_memory.js: the assert issue was hiding a
3601 failure in error message here
3604 2017-03-28 Keith Miller <keith_miller@apple.com>
3606 WebAssembly: Make WebAssembly.instantiate/compile truly asynchronous
3607 https://bugs.webkit.org/show_bug.cgi?id=169187
3609 Reviewed by Saam Barati.
3612 * wasm/js-api/Module-compile.js:
3613 (async.testPromiseAPI):
3614 * wasm/js-api/web-assembly-compile-parallel.js: Added.
3617 * wasm/js-api/web-assembly-instantiate-parallel.js: Added.
3619 * wasm/js-api/web-assembly-instantiate.js:
3620 (assert.eq.async.test):
3622 (assert.asyncTest.async.test):
3624 (assert.truthy.async.test): Deleted.
3625 (assert.truthy): Deleted.
3627 2017-03-28 JF Bastien <jfbastien@apple.com>
3629 WebAssembly: implement Module imports/exports
3630 https://bugs.webkit.org/show_bug.cgi?id=166982
3632 Reviewed by Saam Barati.
3634 * wasm/js-api/Module.exports.js: Added.
3635 (assert.throws.WebAssembly.Module.prototype.exports):
3637 * wasm/js-api/Module.imports.js: Added.
3638 (assert.throws.WebAssembly.Module.prototype.imports):
3641 2017-03-27 JF Bastien <jfbastien@apple.com>
3643 WebAssembly: misc memory testing
3644 https://bugs.webkit.org/show_bug.cgi?id=170137
3646 Reviewed by Keith Miller.
3648 * wasm/assert.js: handle newlines in code we print out, avoid regex
3649 * wasm/function-tests/memory-import-and-grow.js: Added.
3650 (const.instantiate):
3652 * wasm/function-tests/memory-section-and-import.js: Added.
3653 (const.instantiate):
3655 2017-03-23 Yusuke Suzuki <utatane.tea@gmail.com>
3657 [JSC] Use jsNontrivialString agressively for ToString(Int52)
3658 https://bugs.webkit.org/show_bug.cgi?id=170002
3660 Reviewed by Sam Weinig.
3662 * stress/to-string-int52.js: Added.
3667 2017-03-23 Yusuke Suzuki <utatane.tea@gmail.com>
3669 [JSC][DFG] Make addShouldSpeculateAnyInt more conservative to avoid regression caused by Double <-> Int52 conversions
3670 https://bugs.webkit.org/show_bug.cgi?id=169998
3672 Reviewed by Saam Barati.
3674 * microbenchmarks/int52-back-and-forth.js: Added.
3678 2017-03-23 Mark Lam <mark.lam@apple.com>
3680 Clients of JSArray::tryCreateForInitializationPrivate() should do their own null checks.
3681 https://bugs.webkit.org/show_bug.cgi?id=169783
3683 Reviewed by Saam Barati.
3685 * stress/regress-169783.js: Added.
3687 2017-03-22 Yusuke Suzuki <utatane.tea@gmail.com>
3689 [JSC][DFG] Propagate AnyIntAsDouble information carefully to utilize it in fixup
3690 https://bugs.webkit.org/show_bug.cgi?id=169914
3692 Reviewed by Saam Barati.
3694 * stress/any-int-as-double-add.js: Added.
3697 * stress/to-this-numbers.js: Added.
3699 (Number.prototype.toThis):
3701 2017-03-22 Mark Lam <mark.lam@apple.com>
3703 Add support for Error.stackTraceLimit.
3704 https://bugs.webkit.org/show_bug.cgi?id=169904
3706 Reviewed by Saam Barati.
3708 * stress/error-stack-trace-limit.js: Added.
3710 2017-03-22 Yusuke Suzuki <utatane.tea@gmail.com>
3712 [JSC] Use jsNontrivialString for Number toString operations
3713 https://bugs.webkit.org/show_bug.cgi?id=169965
3715 Reviewed by Mark Lam.
3717 * stress/to-string-int32.js: Added.
3722 2017-03-22 JF Bastien <jfbastien@apple.com>
3724 WebAssembly: test module namespace object for WebAssembly.Instance
3725 https://bugs.webkit.org/show_bug.cgi?id=169951
3727 Reviewed by Saam Barati.
3729 * wasm/js-api/test_basic_api.js:
3730 (const.c.in.constructorProperties.switch):
3732 2017-03-22 JF Bastien <jfbastien@apple.com>
3734 WebAssembly: constructors without new don't throw
3735 https://bugs.webkit.org/show_bug.cgi?id=165995
3737 Reviewed by Saam Barati.
3739 * wasm/js-api/test_basic_api.js:
3740 (const.c.in.constructorProperties.switch):
3742 2017-03-21 Yusuke Suzuki <utatane.tea@gmail.com>
3744 [JSC] Optimize Number.prototype.toString on Int32 / Int52 / Double
3745 https://bugs.webkit.org/show_bug.cgi?id=167454
3747 Reviewed by Saam Barati.
3749 * stress/number-to-string-abstract-operation.js: Added.
3752 (shouldBe.int32ToString.new.Number.int52ToString):
3753 (shouldBe.int32ToString.new.Number):
3754 (shouldBe.doubleToString):
3755 * stress/number-to-string-radix.js: Added.
3758 (shouldBe.int32ToString.new.Number.int52ToString):
3759 (shouldBe.int32ToString.new.Number):
3760 (shouldBe.doubleToString):
3761 * stress/number-to-string.js: Added.
3764 (shouldBe.int32ToString.new.Number.int52ToString):
3765 (shouldBe.int32ToString.new.Number):
3766 (shouldBe.doubleToString):
3768 2017-03-19 Chris Dumez <cdumez@apple.com>