[Linux] JSTests/wasm/stress/oom.js should not run on Linux
[WebKit-https.git] / JSTests / ChangeLog
1 2017-08-02  Carlos Alberto Lopez Perez  <clopez@igalia.com>
2
3         [Linux] JSTests/wasm/stress/oom.js should not run on Linux
4         https://bugs.webkit.org/show_bug.cgi?id=175100
5
6         Reviewed by Mark Lam.
7
8         The JSC test JSTests/wasm/stress/oom.js tries to use all the
9         available memory until an out of memory exception happens.
10
11         The Linux kernel is more tuned for server workloads than for GUI
12         responsiveness. When a process tries to use a lot of memory, Linux
13         will do its best to serve the request. This usually translates to
14         free physical RAM by writing to disk dirty pages and/or moving out
15         less recently used pages to swap (disk storage).
16         Meanwhile it does this, the system will become unresponsive and this
17         leads to freezes that can last even some minutes on the worst cases.
18
19         Therefore, let's skip this test on Linux as it will cause more harm
20         than good on the Linux bots or on the machines of Linux developers.
21
22         * wasm/stress/oom.js:
23
24 2017-08-01  Oleksandr Skachkov  <gskachkov@gmail.com>
25
26         [JSC] Remove unnecessary print from stress\promise-finally.js test
27         https://bugs.webkit.org/show_bug.cgi?id=175015
28
29         Reviewed by Yusuke Suzuki.
30
31         * stress/promise-finally.js:
32         (p.finally):
33         (then):
34
35 2017-07-31  Yusuke Suzuki  <utatane.tea@gmail.com>
36
37         Unreviewed, update test262 results for optional catch binding
38
39         * test262.yaml:
40
41 2017-07-31  Yusuke Suzuki  <utatane.tea@gmail.com>
42
43         [JSC] Support optional catch binding
44         https://bugs.webkit.org/show_bug.cgi?id=174981
45
46         Reviewed by Saam Barati.
47
48         * stress/optional-catch-binding-syntax.js: Added.
49         (testSyntax):
50         (testSyntaxError):
51         (catch.catch):
52         * stress/optional-catch-binding.js: Added.
53         (shouldBe):
54         (throwException):
55
56 2017-07-28  Mark Lam  <mark.lam@apple.com>
57
58         ObjectToStringAdaptiveStructureWatchpoint should not fire if it's dying imminently.
59         https://bugs.webkit.org/show_bug.cgi?id=174948
60         <rdar://problem/33495680>
61
62         Reviewed by Filip Pizlo.
63
64         * stress/regress-174948.js: Added.
65
66 2017-07-28  Yusuke Suzuki  <utatane.tea@gmail.com>
67
68         ASSERTION FAILED: candidate->op() == PhantomCreateRest || candidate->op() == PhantomDirectArguments || candidate->op() == PhantomClonedArguments || candidate->op() == PhantomSpread || candidate->op() == PhantomNewArrayWithSpread
69         https://bugs.webkit.org/show_bug.cgi?id=174900
70
71         Reviewed by Saam Barati.
72
73         * stress/arguments-elimination-candidate-listings-should-respect-pseudo-terminals.js: Added.
74         (sideEffect):
75         (args):
76         (test):
77
78 2017-07-27  Yusuke Suzuki  <utatane.tea@gmail.com>
79
80         Hoist DOM binding attribute getter prologue into JavaScriptCore taking advantage of DOMJIT / CheckSubClass
81         https://bugs.webkit.org/show_bug.cgi?id=171637
82
83         Reviewed by Darin Adler.
84
85         * stress/domjit-getter-complex-with-incorrect-object.js:
86         (i.shouldThrow):
87         * stress/domjit-getter-type-check.js: Copied from JSTests/stress/domjit-getter-complex-with-incorrect-object.js.
88         (shouldBe):
89         (i.shouldThrow):
90
91 2017-07-26  JF Bastien  <jfbastien@apple.com>
92
93         WebAssembly: test throwing out of the start function
94         https://bugs.webkit.org/show_bug.cgi?id=165714
95         <rdar://problem/29760251>
96
97         Reviewed by Keith Miller.
98
99         * wasm/assert.js:
100         * wasm/function-tests/trap-from-start.js: Added.
101         (StartTraps):
102         * wasm/function-tests/trap-from-start-async.js: Added.
103         (async.StartTrapsAsync):
104
105 2017-07-21  Yusuke Suzuki  <utatane.tea@gmail.com>
106
107         [FTL] Arguments elimination is suppressed by unreachable blocks
108         https://bugs.webkit.org/show_bug.cgi?id=174352
109
110         Reviewed by Filip Pizlo.
111
112         * stress/arguments-elimination-force-exit.js: Added.
113         (shouldBe):
114         (strict):
115         (sloppy):
116         * stress/arguments-elimination-throw.js: Added.
117         (shouldBe):
118         (shouldThrow):
119         (sloppy):
120         (isArguments):
121
122 2017-07-13  Mark Lam  <mark.lam@apple.com>
123
124         Add some additional test cases for bug 170896.
125         https://bugs.webkit.org/show_bug.cgi?id=174491
126
127         Reviewed by Filip Pizlo.
128
129         * stress/regress-170896-with-contiguous-shape-profile.js: Copied from JSTests/stress/regress-170896.js.
130         * stress/regress-170896-with-double-shape-profile.js: Added.
131         (test):
132         * stress/regress-170896-with-int32-shape-profile.js: Added.
133         (test):
134         * stress/regress-170896.js: Removed.
135
136 2017-07-13  Saam Barati  <sbarati@apple.com>
137
138         Missing exception check in JSObject::hasInstance
139         https://bugs.webkit.org/show_bug.cgi?id=174455
140         <rdar://problem/31384608>
141
142         Reviewed by Mark Lam.
143
144         * stress/has-instance-exception-check.js: Added.
145         (assert):
146         (let.getter.Object.getOwnPropertyDescriptor.get foo):
147
148 2017-07-13  Caio Lima  <ticaiolima@gmail.com>
149
150         [ESnext] Implement Object Spread
151         https://bugs.webkit.org/show_bug.cgi?id=167963
152
153         Reviewed by Saam Barati.
154
155         * stress/obj-rest-destructuring-order.js: Added.
156         (assert):
157         (o.get z):
158         (o.get a):
159         * stress/obj-spread-order.js: Added.
160         (assert):
161         (o.get z):
162         (o.get a):
163         * stress/object-spread.js: Added.
164         (let.assert):
165         (assert.sameValue):
166         (let.o.get a):
167         (let.obj.get c):
168         (cthulhu.get x):
169         (let.obj.set c):
170         (calls.o.get z):
171         (calls.o.get a):
172         (try.let.obj.get foo):
173         (get calls):
174
175 2017-07-12  Saam Barati  <sbarati@apple.com>
176
177         GenericArguments consults the wrong state when tracking modified argument descriptors and mapped arguments
178         https://bugs.webkit.org/show_bug.cgi?id=174411
179         <rdar://problem/31696186>
180
181         Reviewed by Mark Lam.
182
183         * stress/generic-arguments-correct-delete-behavior.js: Added.
184         (assert):
185         (makeTest):
186
187 2017-07-07  Mark Lam  <mark.lam@apple.com>
188
189         \n\r is not the same as \r\n.
190         https://bugs.webkit.org/show_bug.cgi?id=173053
191
192         Reviewed by Keith Miller.
193
194         * stress/regress-173053.js: Added.
195         * stress/template-literal-line-terminators.js:
196
197 2017-07-06  Saam Barati  <sbarati@apple.com>
198
199         We are missing places where we invalidate the for-in context
200         https://bugs.webkit.org/show_bug.cgi?id=174184
201
202         Reviewed by Geoffrey Garen.
203
204         * stress/for-in-invalidate-context-weird-assignments.js: Added.
205         (assert):
206         (test):
207
208 2017-07-05  Saam Barati  <sbarati@apple.com>
209
210         NewArray in FTLLowerDFGToB3 does not handle speculating on doubles when having a bad time
211         https://bugs.webkit.org/show_bug.cgi?id=174188
212         <rdar://problem/30581423>
213
214         Reviewed by Mark Lam.
215
216         * stress/new-array-having-a-bad-time-double.js: Added.
217         (assert):
218         (foo):
219
220 2017-07-05  Yusuke Suzuki  <utatane.tea@gmail.com>
221
222         WTF::StringImpl::copyChars segfaults when built with GCC 7
223         https://bugs.webkit.org/show_bug.cgi?id=173407
224
225         Reviewed by Andreas Kling.
226
227         * stress/string-repeat-copy-chars-crash.js: Added.
228         (shouldBe):
229
230 2017-07-03  Saam Barati  <sbarati@apple.com>
231
232         Skip unshiftCountSlowCase-correct-postCapacity.js on debug builds since it takes a long time to run.
233
234         * stress/unshiftCountSlowCase-correct-postCapacity.js:
235
236 2017-07-03  Yusuke Suzuki  <utatane.tea@gmail.com>
237
238         Unreviewed, annotate dont--reserve-huge-capacity-lexer.js with $memoryLimited
239
240         It requires too much memory.
241
242         * stress/dont-reserve-huge-capacity-lexer.js:
243
244 2017-06-30  Michael Saboff  <msaboff@apple.com>
245
246         Skip a test on ARM64 platform since we run out of address space.
247
248         Rubber stamped by Saam Barati.
249
250         * stress/dont-reserve-huge-capacity-lexer.js:
251
252 2017-06-30  Michael Saboff  <msaboff@apple.com>
253
254         RegExp's  anchored with .* with \g flag can return wrong match start for strings with multiple matches
255         https://bugs.webkit.org/show_bug.cgi?id=174044
256
257         Reviewed by Oliver Hunt.
258
259         New regression test.
260
261         * stress/regress-174044.js: Added.
262         (test1):
263         (test2):
264
265 2017-06-30  Filip Pizlo  <fpizlo@apple.com>
266
267         RegExpCachedResult::setInput should reify left and right contexts
268         https://bugs.webkit.org/show_bug.cgi?id=173818
269
270         Reviewed by Keith Miller.
271
272         * stress/right-left-context-invalidated-by-input.js: Added.
273         (test.validateContexts):
274         (test):
275
276 2017-06-29  Saam Barati  <sbarati@apple.com>
277
278         Calculating postCapacity in unshiftCountSlowCase is wrong
279         https://bugs.webkit.org/show_bug.cgi?id=173992
280         <rdar://problem/32283199>
281
282         Reviewed by Keith Miller.
283
284         * stress/unshiftCountSlowCase-correct-postCapacity.js: Added.
285         (temp):
286
287 2017-06-29  Commit Queue  <commit-queue@webkit.org>
288
289         Unreviewed, rolling out r218512.
290         https://bugs.webkit.org/show_bug.cgi?id=173981
291
292         "It changes the behavior of the JS API's JSEvaluateScript
293         which breaks TurboTax" (Requested by saamyjoon on #webkit).
294
295         Reverted changeset:
296
297         "test262: Completion values for control flow do not match the
298         spec"
299         https://bugs.webkit.org/show_bug.cgi?id=171265
300         http://trac.webkit.org/changeset/218512
301
302 2017-06-27  JF Bastien  <jfbastien@apple.com>
303
304         WebAssembly: running out of executable memory should throw OoM
305         https://bugs.webkit.org/show_bug.cgi?id=171537
306         <rdar://problem/32963338>
307
308         Reviewed by Saam Barati.
309
310         * wasm.yaml:
311         * wasm/lowExecutableMemory/executable-memory-oom.js: Added.
312         (const.invoke):
313         (failCount.0.catch):
314         (failCount.0.module.undefined.catch):
315         * wasm/lowExecutableMemory/exports-oom.js: Added.
316         (const.type):
317         (const.params):
318         (const.randomProgram):
319         (failCount.0.catch):
320         (failCount.0.module.undefined.catch):
321         * wasm/lowExecutableMemory/imports-oom.js: Added.
322         (const.type):
323         (const.params):
324         (const.randomProgram):
325         (f.imports.push):
326         (failCount.0.catch):
327         (failCount.0.module.undefined.catch):
328
329 2017-06-27  Caio Lima  <ticaiolima@gmail.com>
330
331         [ESnext] Implement Object Rest - Implementing Object Rest Destructuring
332         https://bugs.webkit.org/show_bug.cgi?id=167962
333
334         Reviewed by Saam Barati.
335
336         * stress/object-rest-deconstruct.js: Added.
337         (let.assert):
338         (let.assertPropDescriptor):
339         (catch):
340         (get 3):
341         (foo):
342         (let.src.get y):
343         (let.src.set y):
344         (let.gen):
345
346 2017-06-27  Saam Barati  <sbarati@apple.com>
347
348         Function constructor needs to follow the spec and validate parameters and body independently
349         https://bugs.webkit.org/show_bug.cgi?id=173303
350         <rdar://problem/32732526>
351
352         Reviewed by Keith Miller.
353
354         * ChakraCore/test/Function/FuncBodyES5.baseline-jsc:
355         * stress/function-constructor-semantics.js: Added.
356         (assert):
357         (hasSyntaxError):
358         (foo):
359         (async.foo):
360         (testError):
361         (testOK.toString):
362         (toString):
363
364 2017-06-26  Saam Barati  <sbarati@apple.com>
365
366         RegExpPrototype.js builtin uses for-of iteration which is almost certainly incorrect
367         https://bugs.webkit.org/show_bug.cgi?id=173740
368
369         Reviewed by Mark Lam.
370
371         * stress/regexp-prototype-replace-builtin-should-not-use-for-of.js: Added.
372         (Array.prototype.Symbol.iterator):
373
374 2017-06-26  Saam Barati  <sbarati@apple.com>
375
376         Skip a test on 32-bit platforms since we run out of address space.
377
378         Rubber stamped by Mark Lam.
379
380         * stress/dont-reserve-huge-capacity-lexer.js:
381
382 2017-06-26  Saam Barati  <sbarati@apple.com>
383
384         Crash in JSC::Lexer<unsigned char>::setCode
385         https://bugs.webkit.org/show_bug.cgi?id=172754
386
387         Reviewed by Mark Lam.
388
389         * stress/dont-reserve-huge-capacity-lexer.js: Added.
390         (catch):
391
392 2017-06-24  Yusuke Suzuki  <utatane.tea@gmail.com>
393
394         [JSC] Clean up Object.entries implementation
395         https://bugs.webkit.org/show_bug.cgi?id=173759
396
397         Reviewed by Sam Weinig.
398
399         * microbenchmarks/object-entries.js: Added.
400         (test):
401
402 2017-06-24  Joseph Pecoraro  <pecoraro@apple.com>
403
404         Remove Reflect.enumerate
405         https://bugs.webkit.org/show_bug.cgi?id=173806
406
407         Reviewed by Yusuke Suzuki.
408
409         * ChakraCore.yaml:
410         * es6.yaml:
411         These tests now fail because they use Reflect.enumerate.
412
413         * test262.yaml:
414         This test now passes, it checked that Reflect.enumerate is undefined!
415
416         * stress/property-name-enumerator-should-not-look-into-indexed-values-when-it-is-a-dictionary.js:
417         Convert to for..in which presented the original issue. See bug <https://webkit.org/b/149811>
418
419         * stress/reflect-enumerate.js: Removed.
420         Remove a test solely for Reflect.enumerate.
421
422 2017-06-22  Saam Barati  <sbarati@apple.com>
423
424         ValueRep(DoubleRep(@v)) can not simply convert to @v
425         https://bugs.webkit.org/show_bug.cgi?id=173687
426         <rdar://problem/32855563>
427
428         Reviewed by Mark Lam.
429
430         * stress/dont-strength-reduce-valuerep-of-doublerep.js: Added.
431         (i.catch):
432
433 2017-06-22  Yusuke Suzuki  <utatane.tea@gmail.com>
434
435         [JSC] Object.values should be implemented in C++
436         https://bugs.webkit.org/show_bug.cgi?id=173703
437
438         Reviewed by Sam Weinig.
439
440         * microbenchmarks/object-keys-map-values.js: Added.
441         (test):
442         * microbenchmarks/object-values.js: Added.
443         (test):
444         * stress/object-values-changing-properties.js: Added.
445         (shouldBe):
446         (throw.new.Error.let.source.get x):
447         (throw.new.Error):
448         (shouldBe.let.handler.get order):
449         (get let):
450         (shouldBe.let.handler.get return):
451         (let.handler.get order):
452
453 2017-06-21  Saam Barati  <sbarati@apple.com>
454
455         eval virtual call is incorrect in the baseline JIT
456         https://bugs.webkit.org/show_bug.cgi?id=173587
457         <rdar://problem/32867897>
458
459         Reviewed by Michael Saboff.
460
461         * stress/do-eval-virtual-call-correctly.js: Added.
462         (assert):
463         (f):
464         (i.test):
465         (catch):
466
467 2017-06-20  Ryan Haddad  <ryanhaddad@apple.com>
468
469         Update test262 test expectations after r218581.
470
471         Unreviewed test gardening.
472
473         * test262.yaml:
474
475 2017-06-20  Oleksandr Skachkov  <gskachkov@gmail.com>
476
477         Revert changes in bug#160417 about extending `null` not being a derived class
478         https://bugs.webkit.org/show_bug.cgi?id=169293
479
480         Reviewed by Saam Barati.
481
482         * stress/class-derived-from-null.js:
483         (assertThrow):
484         (test1):
485         (test2):
486         (test3):
487         (test4):
488         (test5):
489         (test6):
490
491 2017-06-13  Yusuke Suzuki  <utatane.tea@gmail.com>
492
493         [DFG] More ArrayIndexOf fixups for various types
494         https://bugs.webkit.org/show_bug.cgi?id=173176
495
496         Reviewed by Saam Barati.
497
498         * stress/array-indexof-arraystorage.js: Added.
499         (shouldBe):
500         (indexOfInt32Other):
501         (indexOfInt32Cell):
502         (indexOfInt32Boolean):
503         (indexOfDoubleOther):
504         (indexOfDoubleCell):
505         (indexOfDoubleBoolean):
506         (indexOfInt32):
507         (indexOfDouble):
508         * stress/array-indexof-constant-folding.js: Added.
509         (shouldBe):
510         (indexOfInt32Other):
511         (indexOfInt32Cell):
512         (indexOfInt32Boolean):
513         (indexOfDoubleOther):
514         (indexOfDoubleCell):
515         (indexOfDoubleBoolean):
516         * stress/array-indexof-hole-and-other.js: Added.
517         (shouldBe):
518         (indexOf):
519         * stress/array-indexof-other.js: Added.
520         (shouldBe):
521         (indexOfInt32):
522         (indexOfDouble):
523         (indexOfString):
524         (indexOfObject):
525         * stress/array-indexof-symbol.js: Added.
526         (shouldBe):
527         (indexOfInt32):
528         (indexOfDouble):
529         (indexOfString):
530         (indexOfObject):
531
532 2017-06-19  Joseph Pecoraro  <pecoraro@apple.com>
533
534         test262: Completion values for control flow do not match the spec
535         https://bugs.webkit.org/show_bug.cgi?id=171265
536
537         Reviewed by Saam Barati.
538
539         * stress/completion-value.js:
540         Condensed test for completion values in top level statements.
541
542         * stress/super-get-by-id.js:
543         ClassDeclaration when evaled no longer produce values. Convert
544         these to ClassExpressions so they produce the class value.
545         
546         * ChakraCore/test/GlobalFunctions/evalreturns3.baseline-jsc:
547         This is a progression for currect spec behavior.
548
549         * mozilla/mozilla-tests.yaml:
550         This test is now outdated, so mark it as failing for that reason.
551
552         * test262.yaml:
553         Passing all "cptn" completion value tests.
554
555 2017-06-17  Keith Miller  <keith_miller@apple.com>
556
557         ArrayBuffer constructor needs to create subclass structures before its buffer
558         https://bugs.webkit.org/show_bug.cgi?id=173510
559
560         Reviewed by Yusuke Suzuki.
561
562         * test262.yaml:
563
564 2017-06-17  Keith Miller  <keith_miller@apple.com>
565
566         ArrayPrototype methods should use JSValue::toLength for non-Arrays.
567         https://bugs.webkit.org/show_bug.cgi?id=173506
568
569         Reviewed by Ryosuke Niwa.
570
571         Re-baseline tests.
572
573         * ChakraCore/test/Function/apply3.baseline-jsc:
574         * test262.yaml:
575
576 2017-06-16  Yusuke Suzuki  <utatane.tea@gmail.com>
577
578         [JSC] Add fast path for Object.assign
579         https://bugs.webkit.org/show_bug.cgi?id=173416
580
581         Reviewed by Mark Lam.
582
583         * stress/object-assign-changing-properties.js: Added.
584         (shouldBe):
585         (throw.new.Error.let.source.get x):
586         (throw.new.Error):
587         (shouldBe.let.source.get x):
588         (shouldBe.let.target.set x):
589         (shouldBe.let.target.get x):
590         * stress/object-assign-proxy.js: Added.
591         (shouldBe):
592         (throw.new.Error.let.handler.get order):
593
594 2017-06-15  Yusuke Suzuki  <utatane.tea@gmail.com>
595
596         [JSC] Implement Object.assign in C++
597         https://bugs.webkit.org/show_bug.cgi?id=173414
598
599         Reviewed by Saam Barati.
600
601         * stress/object-assign-string-first.js: Added.
602         (shouldBe):
603         (source.get Symbol):
604         (source.get 1):
605         (source.get cocoa):
606
607 2017-06-14  JF Bastien  <jfbastien@apple.com>
608
609         WebAssembly: remove empty test files
610         https://bugs.webkit.org/show_bug.cgi?id=173382
611
612         Reviewed by Saam Barati.
613
614         The following files:
615                 JSTests/wasm/function-tests/call-indirect-params.js
616                 JSTests/wasm/function-tests/call-indirect.js
617                 JSTests/wasm/js-api/call-indirect-results.js
618         Were changed to empty files in https://trac.webkit.org/changeset/209771
619
620         They were testing call_indirect with the wrong semantics, before
621         we implemented tables. That change implemented tables and
622         therefore removed the erroneous tests.
623
624         We have a few tests for call_indirect which already do the right thing:
625                 JSTests/wasm/function-tests/context-switch.js
626                 JSTests/wasm/function-tests/exceptions.js
627                 JSTests/wasm/function-tests/grow-memory-2.js
628                 JSTests/wasm/function-tests/stack-overflow.js
629                 JSTests/wasm/function-tests/table-basic-2.js
630                 JSTests/wasm/function-tests/table-basic.js
631                 JSTests/wasm/js-api/call-indirect.js
632                 JSTests/wasm/js-api/table.js
633                 JSTests/wasm/js-api/unique-signature.js
634                 JSTests/wasm/js-api/wrapper-function.js
635
636         I also just imported the updated spec tests which, among other
637         things, test call_indirect:
638                 core/br.wast
639                 core/br_table.wast
640                 core/call_indirect.wast
641                 core/func.wast
642                 core/func_ptrs.wast
643                 core/imports.wast
644                 core/left-to-right.wast
645                 core/linking.wast
646                 core/nop.wast
647                 core/return.wast
648                 core/typecheck.wast
649                 core/unreachable.wast
650
651         So I think it's OK to just delete the tests which should just have
652         been deleted back when tables were added.
653
654         * wasm/function-tests/call-indirect-params.js: Removed.
655         * wasm/function-tests/call-indirect.js: Removed.
656         * wasm/js-api/call-indirect-results.js: Removed.
657
658 2017-06-13  JF Bastien  <jfbastien@apple.com>
659
660         WebAssembly: import updated spec tests
661         https://bugs.webkit.org/show_bug.cgi?id=173287
662         <rdar://problem/32725975>
663
664         Reviewed by Saam Barati.
665
666         Import spec tests as of 31c641cc15f2aedbec2fa45a5185f68416df578b,
667         with a few modifications so things work.
668
669         Fix a bunch of bugs found through this process, and punt a few tests (which I
670         marked as blocked by this bug).
671
672         Fixes:
673
674         Fix load / store alignment: r216908 erroneously implemented it as bit alignment
675         instead of byte alignment. It was also missing memory-alignment.js despite it
676         being in the ChangeLog, so add it too. This allows spec-test/align.wast.js to
677         pass.
678
679         Tables can be imported or in a section. There can be only one, but sections can
680         be empty. An Elements section can exist if there's no Table, as long as it is
681         also empty.
682
683         Memories can be imported or in a section. There can be only one, but sections
684         can be empty. A Data section can exist if there's no Memory, as long as it is
685         also empty.
686
687         Prototypes: stringify without .prototype. in the string.
688
689         WebAssembly.Table.prototype.grow was plain wrong: it takes a delta parameter,
690         not a final size, and throws a RangeError on failure, not a TypeError.
691
692         Fix compile / instantiate so the reject the promise if given an argument of the
693         wrong type (instead of failing instantly).
694
695         Fix async on neuter test.
696
697         Element section shouldn't affect any Table if any of the elements are out of
698         bounds. We need to process it in two passes.
699
700         Segment section shouldn't affect any Data if any of the segments are out of
701         bounds. We need to process it in two passes.
702
703         Empty data segments are valid, but only when there is no memory. Their index
704         still gets validated, and has to be zero.
705
706         Punts:
707
708         Error messages with context, the test seems overly restrictive but this is
709         minor.
710
711         compile/instantiate/validate property descriptors.
712
713         UTF-8 bugs.
714
715         Temporarily disable NaN tests. We need to go back and implement the following
716         semantics: https://github.com/WebAssembly/spec/pull/414 This doesn't matter as
717         much as getting all the other tests passing.
718
719         Worth noting for NaNs: f64.no_fold_mul_one (also a NaN test) as well as
720         no_fold_promote_demote (an interesting corner case which we get wrong). mul by
721         one is (assert_return (invoke \"f64.no_fold_mul_one\" (i64.const
722         0x7ff4000000000000)) (i64.const 0x7ff8000000000000)) which means converting sNaN
723         to qNaN, and promote/demote is (assert_return (invoke \"no_fold_promote_demote\"
724         (i32.const 0x7fa00000)) (i32.const 0x7fc00000)) which is the same. I'm not sure
725         why they're not allowed.
726
727         * wasm.yaml:
728         * wasm/function-tests/i32-load8-s.js:
729         * wasm/function-tests/memory-access-past-4gib.js:
730         (const.op.of.WASM.opcodes):
731         * wasm/function-tests/memory-alignment.js: Added.
732         (const.op.of.WASM.opcodes):
733         * wasm/function-tests/memory-section-and-import.js:
734         * wasm/js-api/Module-compile.js:
735         (async.testPromiseAPI):
736         * wasm/js-api/dont-mmap-zero-byte-memory.js:
737         (testMems):
738         * wasm/js-api/element.js:
739         (assert.throws.new.WebAssembly.Module.builder.WebAssembly):
740         * wasm/js-api/neutered-inputs.js:
741         (const.testFunction): Deleted.
742         (const.testConstructor): Deleted.
743         * wasm/js-api/table.js:
744         (assert.throws.new.WebAssembly.Module.builder.WebAssembly):
745         (new.WebAssembly.Module):
746         (assert.throws):
747         (assertBadTableImport):
748         (assert.throws.WebAssembly.Table.prototype.grow):
749         (assertBadTableInstance): Deleted.
750         * wasm/js-api/test_Data.js:
751         (DataSectionWithoutMemory):
752         * wasm/spec-harness/index.js:
753         (module):
754         (uniqueTest): Deleted.
755         (assert_invalid): Deleted.
756         (assert_soft_invalid): Deleted.
757         (register): Deleted.
758         (call): Deleted.
759         (get instance): Deleted.
760         (exports): Deleted.
761         (run): Deleted.
762         (assert_unlinkable): Deleted.
763         (assert_uninstantiable): Deleted.
764         (assert_trap): Deleted.
765         (try.f): Deleted.
766         (catch): Deleted.
767         (assert_exhaustion): Deleted.
768         (assert_return): Deleted.
769         (assert_return_nan): Deleted.
770         * wasm/spec-harness/testharness.css: Removed.
771         * wasm/spec-harness/testharness.js: Removed.
772         * wasm/spec-harness/testharnessreport.js: Removed.
773         * wasm/spec-harness/wasm-constants.js:
774         (assertTraps):
775         (assertWasmThrows):
776         * wasm/spec-harness/wasm-module-builder.js:
777         (Binary.prototype.emit_section):
778         (Binary):
779         (WasmFunctionBuilder.prototype.addBody):
780         (WasmFunctionBuilder.prototype.end):
781         (WasmFunctionBuilder):
782         (WasmModuleBuilder.prototype.stringToBytes):
783         (WasmModuleBuilder.prototype.addCustomSection):
784         (WasmModuleBuilder.prototype.addFunctionTableInit):
785         (WasmModuleBuilder.prototype.appendToTable):
786         (WasmModuleBuilder.prototype.toArray):
787         (WasmModuleBuilder.prototype.toBuffer):
788         (WasmModuleBuilder.prototype.instantiate):
789         (WasmModuleBuilder):
790         * wasm/spec-tests/address.wast.js:
791         * wasm/spec-tests/align.wast.js: Added.
792         * wasm/spec-tests/binary.wast.js:
793         * wasm/spec-tests/block.wast.js:
794         * wasm/spec-tests/br.wast.js:
795         * wasm/spec-tests/br_if.wast.js:
796         * wasm/spec-tests/br_table.wast.js:
797         * wasm/spec-tests/call.wast.js:
798         * wasm/spec-tests/call_indirect.wast.js:
799         * wasm/spec-tests/comments.wast.js:
800         * wasm/spec-tests/const.wast.js: Added.
801         * wasm/spec-tests/conversions.wast.js: Added.
802         * wasm/spec-tests/custom_section.wast.js:
803         * wasm/spec-tests/exports.wast.js:
804         * wasm/spec-tests/f32.wast.js: Added.
805         * wasm/spec-tests/f64.wast.js: Added.
806         * wasm/spec-tests/fac.wast.js:
807         * wasm/spec-tests/float_exprs.wast.js: Added.
808         * wasm/spec-tests/float_misc.wast.js: Added.
809         * wasm/spec-tests/func.wast.js:
810         * wasm/spec-tests/globals.wast.js:
811         * wasm/spec-tests/if.wast.js:
812         * wasm/spec-tests/imports.wast.js:
813         * wasm/spec-tests/inline-module.wast.js: Added.
814         * wasm/spec-tests/jsapi.js:
815         (testJSAPI.test):
816         (testJSAPI):
817         * wasm/spec-tests/labels.wast.js:
818         * wasm/spec-tests/loop.wast.js:
819         * wasm/spec-tests/memory.wast.js:
820         * wasm/spec-tests/memory_trap.wast.js: Added.
821         * wasm/spec-tests/names.wast.js:
822         * wasm/spec-tests/nop.wast.js:
823         * wasm/spec-tests/return.wast.js:
824         * wasm/spec-tests/stack.wast.js:
825         * wasm/spec-tests/token.wast.js: Added.
826         * wasm/spec-tests/type.wast.js: Added.
827         * wasm/spec-tests/typecheck.wast.js:
828         * wasm/spec-tests/unreachable.wast.js:
829         * wasm/spec-tests/unreached-invalid.wast.js:
830         * wasm/spec-tests/unwind.wast.js:
831         * wasm/spec-tests/utf8-custom-section-id.wast.js: Added.
832         * wasm/spec-tests/utf8-import-field.wast.js: Added.
833         * wasm/spec-tests/utf8-import-module.wast.js: Added.
834
835 2017-06-13  Ryan Haddad  <ryanhaddad@apple.com>
836
837         Unreviewed JSC test gardening.
838
839         * stress/check-string-ident.js:
840         * stress/new-largeish-contiguous-array-with-size.js:
841
842 2017-06-13  Michael Saboff  <msaboff@apple.com>
843
844         DFG doesn't properly handle a property that is change to read only in a prototype
845         https://bugs.webkit.org/show_bug.cgi?id=173321
846
847         Reviewed by Filip Pizlo.
848
849         * ChakraCore.yaml: Renabled fieldopts/objtypespec-newobj-invalidation.1.js.
850         * stress/regress-173321.js: Added new regression test.
851         (shouldBe):
852         (SimpleObject):
853         (test):
854
855 2017-06-12  Saam Barati  <sbarati@apple.com>
856
857         Update test262 test expectation since r218082 makes new tests pass.
858
859         * test262.yaml:
860
861 2017-06-12  Saam Barati  <sbarati@apple.com>
862
863         We should not claim that SpecEmpty is filtered out of cell checks on 64 bit platforms
864         https://bugs.webkit.org/show_bug.cgi?id=172957
865         <rdar://problem/32602704>
866
867         Reviewed by Filip Pizlo.
868
869         * stress/spec-empty-flows-through-cell-checks.js: Added.
870         (A):
871         (B):
872         (i.catch):
873
874 2017-06-12  Oleksandr Skachkov  <gskachkov@gmail.com>
875
876         We incorrectly allow escaped characters in keyword tokens
877         https://bugs.webkit.org/show_bug.cgi?id=171310
878
879         Reviewed by Yusuke Suzuki.
880
881         * stress/destructuring-assignment-syntax.js:
882         * stress/error-messages-for-in-operator-should-not-crash.js:
883         (catch):
884         * stress/reserved-word-with-escape.js:
885         (testSyntaxError.String.raw.v):
886         (String.raw.SyntaxError.Cannot.use.the.keyword.string_appeared_here.as.a.name):
887         (testSyntaxError.String.raw.a):
888         * JSTests/ChakraCore/test/Basics/IdsWithEscapes.baseline-jsc:
889
890 2017-06-09  Yusuke Suzuki  <utatane.tea@gmail.com>
891
892         [DFG] Add ArrayIndexOf intrinsic
893         https://bugs.webkit.org/show_bug.cgi?id=172421
894
895         Reviewed by Saam Barati.
896
897         * stress/array-indexof-array-prototype-change.js: Added.
898         (shouldBe):
899         (indexOfInt32):
900         * stress/array-indexof-have-a-bad-time-getter.js: Added.
901         (shouldBe):
902         (indexOfInt32):
903         * stress/array-indexof-have-a-bad-time.js: Added.
904         (shouldBe):
905         (indexOfInt32):
906         * stress/array-indexof-hole-with-prototype.js: Added.
907         (shouldBe):
908         (indexOf):
909         * stress/array-indexof-hole.js: Added.
910         (shouldBe):
911         (indexOf):
912         * stress/array-indexof-index.js: Added.
913         (shouldBe):
914         (indexOfInt32):
915         (indexOfDouble):
916         (indexOfString):
917         (indexOfObject):
918         (indexOfValue):
919         * stress/array-indexof-negative-index.js: Added.
920         (shouldBe):
921         (indexOfInt32):
922         (indexOfDouble):
923         (indexOfString):
924         (indexOfObject):
925         (indexOfValue):
926         * stress/array-indexof-non-int32-start-index.js: Added.
927         (shouldBe):
928         (indexOf):
929         (object.valueOf):
930         * stress/array-indexof-object-prototype-change.js: Added.
931         (shouldBe):
932         (indexOfInt32):
933         * stress/array-indexof-object.js: Added.
934         (shouldBe):
935         (indexOf):
936         * stress/array-indexof-original-array.js: Added.
937         (shouldBe):
938         (indexOfInt32):
939         * stress/array-indexof-string.js: Added.
940         (shouldBe):
941         (indexOf):
942         * stress/array-indexof-structure-change-convert.js: Added.
943         (shouldBe):
944         (indexOf):
945         * stress/array-indexof-structure-change.js: Added.
946         (shouldBe):
947         (indexOf):
948         * stress/array-indexof.js: Added.
949         (shouldBe):
950         (indexOf):
951
952 2017-06-11  Keith Miller  <keith_miller@apple.com>
953
954         TypedArray constructor with string shouldn't throw
955         https://bugs.webkit.org/show_bug.cgi?id=173181
956
957         Reviewed by JF Bastien.
958
959         We should be coercing primitive arguments to numbers in the various
960         TypedArray constructors.
961
962         * stress/typedarray-constructor.js:
963
964 2017-06-11  Yusuke Suzuki  <utatane.tea@gmail.com>
965
966         Unreviewed, update test results part 3
967         https://bugs.webkit.org/show_bug.cgi?id=173227
968
969         * microbenchmarks/regexp-prototype-search-observable-side-effects.js:
970
971 2017-06-10  Yusuke Suzuki  <utatane.tea@gmail.com>
972
973         Unreviewed, update test results part 2
974         https://bugs.webkit.org/show_bug.cgi?id=173227
975
976         * test262.yaml:
977
978 2017-06-10  Yusuke Suzuki  <utatane.tea@gmail.com>
979
980         Unreviewed, update test results
981         https://bugs.webkit.org/show_bug.cgi?id=173227
982
983         * microbenchmarks/string-prototype-search-observable-side-effects.js:
984         * test262.yaml:
985
986 2017-06-10  Yusuke Suzuki  <utatane.tea@gmail.com>
987
988         [JSC] Update RegExp.prototype.[@@search]] implementation according to the latest spec
989         https://bugs.webkit.org/show_bug.cgi?id=173227
990
991         Reviewed by Mark Lam.
992
993         Update the test.
994
995         * es6/Proxy_internal_get_calls_RegExp.prototype[Symbol.search].js:
996
997 2017-06-08  Keith Miller  <keith_miller@apple.com>
998
999         WebAssembly: We should only create wrappers for functions that can be exported
1000         https://bugs.webkit.org/show_bug.cgi?id=173088
1001
1002         Reviewed by Saam Barati.
1003
1004         Remove a bunch of old tests that are actually duplicates of the spec-tests and rely
1005         on the old testWasmModuleFunctions api, which has been removed.
1006
1007         * wasm/function-tests/copysign.js: Removed.
1008         * wasm/function-tests/ctz.js: Removed.
1009         * wasm/function-tests/drop.js: Removed.
1010         * wasm/function-tests/dumb-eq-if-then-else.js: Removed.
1011         * wasm/function-tests/dumb-less-than-fallthrough.js: Removed.
1012         * wasm/function-tests/dumb-less-than-ite.js: Removed.
1013         * wasm/function-tests/eqz.js: Removed.
1014         * wasm/function-tests/i32-trunc-s-f32.js: Removed.
1015         * wasm/function-tests/i32-trunc-s-f64.js: Removed.
1016         * wasm/function-tests/i32-trunc-u-f32.js: Removed.
1017         * wasm/function-tests/i32-trunc-u-f64.js: Removed.
1018         * wasm/function-tests/i64-trunc-s-f32.js: Removed.
1019         * wasm/function-tests/i64-trunc-s-f64.js: Removed.
1020         * wasm/function-tests/i64-trunc-u-f32.js: Removed.
1021         * wasm/function-tests/i64-trunc-u-f64.js: Removed.
1022         * wasm/function-tests/if-then-else-fallthrough.js: Removed.
1023         * wasm/function-tests/if-then-fallthrough.js: Removed.
1024         * wasm/function-tests/int-to-floating-point.js: Removed.
1025         * wasm/function-tests/loop-mult.js:
1026         * wasm/function-tests/loop-sum.js:
1027         * wasm/function-tests/max.js: Removed.
1028         * wasm/function-tests/min.js: Removed.
1029         * wasm/function-tests/nearest.js: Removed.
1030         * wasm/function-tests/nop.js: Removed.
1031         * wasm/function-tests/popcnt.js: Removed.
1032         * wasm/function-tests/ret5.js:
1033         * wasm/function-tests/select.js: Removed.
1034         * wasm/function-tests/tee-local.js: Removed.
1035         * wasm/function-tests/trunc.js: Removed.
1036
1037 2017-06-07  JF Bastien  <jfbastien@apple.com>
1038
1039         WebAssembly: test imports and exports with 16-bit characters
1040         https://bugs.webkit.org/show_bug.cgi?id=165977
1041         <rdar://problem/29760130>
1042
1043         Reviewed by Saam Barati.
1044
1045         The output for import failure was improved, so many tests need to
1046         be updated here. Only one has new tests as noted below.
1047
1048         * wasm/function-tests/memory-import-and-grow.js:
1049         * wasm/js-api/Instance.imports.exports.unicode.js: Added. Main new test.
1050         (idxModule):
1051         * wasm/js-api/global-error.js:
1052         (new.Number):
1053         (assert.throws):
1054         * wasm/js-api/table.js:
1055         (assert.throws):
1056         (new.WebAssembly.Table):
1057         * wasm/js-api/test_memory.js:
1058         (test):
1059         * wasm/js-api/wasm-to-wasm-bad-signature.js:
1060         (BadSignatureDropStartParams.):
1061         (BadSignatureDropStartParams):
1062         (BadSignatureDropEndParams.):
1063         (BadSignatureSwapParam.):
1064         (BadSignatureRet.):
1065         * wasm/js-api/web-assembly-instantiate.js:
1066         (assert.asyncTest.async.test):
1067         (assert.asyncTest):
1068         * wasm/js-api/wrapper-function.js:
1069         (return.new.WebAssembly.Module):
1070
1071 2017-06-07  Mark Lam  <mark.lam@apple.com>
1072
1073         Restrict the regress-173035.js test to only run on Darwin x86-64.
1074         https://bugs.webkit.org/show_bug.cgi?id=173075
1075
1076         Reviewed by Saam Barati.
1077
1078         This is because the 32-bit x86 build will fail to mmap the 0x3f900000 bytes that
1079         this test will require to succeed.  Here's an example of this failure:
1080         https://build.webkit.org/builders/Apple%20Sierra%2032-bit%20JSC%20%28BuildAndTest%29/builds/866/steps/webkit-32bit-jsc-test/logs/stdio
1081
1082         Since the issue is due to allocation of a very large amount of memory, the test
1083         will probably fail on iOS and other platforms as well.  Hence, we should just
1084         skip this test for any platforms that is not Darwin x86-64.
1085
1086         * stress/regress-173035.js:
1087
1088 2017-06-07  Mark Lam  <mark.lam@apple.com>
1089
1090         ASSERTION failure: !masqueradesAsUndefinedWatchpointIsStillValid() || !isKnownCell(operand.node())
1091         https://bugs.webkit.org/show_bug.cgi?id=168587
1092
1093         Not reviewed.
1094
1095         Unskipping the test because the issue has been fixed in https://bugs.webkit.org/show_bug.cgi?id=172673.
1096
1097         * stress/test-finally.js:
1098
1099 2017-06-06  Mark Lam  <mark.lam@apple.com>
1100
1101         Contiguous storage butterfly length should not exceed MAX_STORAGE_VECTOR_LENGTH.
1102         https://bugs.webkit.org/show_bug.cgi?id=173035
1103         <rdar://problem/32554593>
1104
1105         Reviewed by Geoffrey Garen and Filip Pizlo.
1106
1107         * stress/regress-173035.js: Added.
1108
1109 2017-06-06  Saam Barati  <sbarati@apple.com>
1110
1111         Make sure we restore SP when doing calls that could be to JS
1112         https://bugs.webkit.org/show_bug.cgi?id=172946
1113         <rdar://problem/32579026>
1114
1115         Reviewed by JF Bastien.
1116
1117         * wasm/function-tests/many-args-tail-call-sp-restored.js: Added.
1118         (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.f1):
1119         (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.end):
1120         (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.f2):
1121         (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.let.instance.new.WebAssembly.Instance.new.WebAssembly.Module.builder.WebAssembly):
1122
1123 2017-06-06  Joseph Pecoraro  <pecoraro@apple.com>
1124
1125         Unreviewed rollout r217807. Caused a test to crash.
1126
1127         * heapProfiler/class-names.js: Removed.
1128         * heapProfiler/driver/driver.js:
1129         (CheapHeapSnapshotNode):
1130         (CheapHeapSnapshot):
1131         (createCheapHeapSnapshot):
1132         (HeapSnapshot):
1133         (createHeapSnapshot):
1134         * typeProfiler/inheritance.js:
1135         (wrapper.A):
1136         (wrapper.B):
1137         (wrapper.C):
1138         (wrapper):
1139
1140 2017-06-06  Filip Pizlo  <fpizlo@apple.com>
1141
1142         index out of bound in bytecodebasicblock
1143         https://bugs.webkit.org/show_bug.cgi?id=172963
1144
1145         Reviewed by Saam Barati and Mark Lam.
1146
1147         * stress/dfg-call-class-constructor.js: Added.
1148         (Foo):
1149         (i.catch):
1150
1151 2017-06-05  Joseph Pecoraro  <pecoraro@apple.com>
1152
1153         Web Inspector: Improve ES6 Class instances in Heap Snapshot instances view
1154         https://bugs.webkit.org/show_bug.cgi?id=172848
1155         <rdar://problem/25709212>
1156
1157         Reviewed by Saam Barati.
1158
1159         * typeProfiler/inheritance.js:
1160         Rewrite the test slightly for clarity. The hoisting was confusing.
1161
1162         * heapProfiler/class-names.js: Added.
1163         (MyES5Class):
1164         (MyES6Class):
1165         (MyES6Subclass):
1166         Test object types and improved class names.
1167
1168         * heapProfiler/driver/driver.js:
1169         (CheapHeapSnapshotNode):
1170         (CheapHeapSnapshot):
1171         (createCheapHeapSnapshot):
1172         (HeapSnapshot):
1173         (createHeapSnapshot):
1174         Update snapshot parsing from version 1 to version 2.
1175
1176 2017-06-02  Yusuke Suzuki  <utatane.tea@gmail.com>
1177
1178         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
1179         https://bugs.webkit.org/show_bug.cgi?id=168844
1180
1181         Reviewed by Saam Barati.
1182
1183         * modules/async-function-export.js: Added.
1184         (f):
1185         (export.async.f):
1186
1187 2017-06-02  Yusuke Suzuki  <utatane.tea@gmail.com>
1188
1189         ES2015 modules - Export default function hoisting
1190         https://bugs.webkit.org/show_bug.cgi?id=170174
1191
1192         Reviewed by Saam Barati.
1193
1194         This issue itself is solved by fixing function declaration hoisting rules.
1195         This patch just adds the specific test to modules tests to ensure the bug
1196         is fixed.
1197
1198         * modules/export-default-function-hoisting.js: Added.
1199         * modules/export-default-function-hoisting/cappuccino.js: Added.
1200         (import.drinkCocoa.from.string_appeared_here.export.default.drinkCappuccino):
1201         * modules/export-default-function-hoisting/cocoa.js: Added.
1202         (export.default.drinkCocoa):
1203
1204 2017-06-01  Oleksandr Skachkov  <gskachkov@gmail.com>
1205
1206         Class Proxy can't be extended
1207         https://bugs.webkit.org/show_bug.cgi?id=169040
1208
1209         Reviewed by Saam Barati.
1210
1211         Adding tests that check correctness of Proxy to ES6 `class`
1212         Bug is already fixed in https://bugs.webkit.org/show_bug.cgi?id=164849
1213
1214         * stress/proxy-class.js: Added.
1215         (assert):
1216         (throw.new.Error.SuperClass):
1217         (throw.new.Error.A):
1218         (throw.new.Error):
1219
1220 2017-05-31  Yusuke Suzuki  <utatane.tea@gmail.com>
1221
1222         [JSC] Implement String.prototype.concat in JS builtins
1223         https://bugs.webkit.org/show_bug.cgi?id=172798
1224
1225         Reviewed by Sam Weinig.
1226
1227         * microbenchmarks/string-concat-convert.js: Added.
1228         (test):
1229         * microbenchmarks/string-concat-long-convert.js: Added.
1230         (test):
1231         * microbenchmarks/string-concat-long.js: Added.
1232         (test):
1233         * microbenchmarks/string-concat.js: Added.
1234         (test):
1235
1236 2017-05-31  Oleksandr Skachkov  <gskachkov@gmail.com>
1237
1238         Rolling out: Prevent async methods named 'function'
1239         https://bugs.webkit.org/show_bug.cgi?id=172776
1240
1241         Reviewed by Mark Lam.
1242
1243         * stress/async-await-syntax.js:
1244         (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntax):
1245         (testTopLevelAsyncAwaitSyntaxSloppyMode):
1246         (prototype.testTopLevelAsyncAwaitSyntaxStrictMode.testSyntax):
1247         (prototype.testTopLevelAsyncAwaitSyntaxStrictMode):
1248         (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntaxError):
1249
1250 2017-05-31  Ryan Haddad  <ryanhaddad@apple.com>
1251
1252         Skip flaky JSC test stress/test-finally.js
1253         https://bugs.webkit.org/show_bug.cgi?id=168587
1254
1255         Unreviewed test gardening.
1256
1257         * stress/test-finally.js:
1258
1259 2017-05-30  Oleksandr Skachkov  <gskachkov@gmail.com>
1260
1261         Prevent async methods named 'function' in Object literal
1262         https://bugs.webkit.org/show_bug.cgi?id=172660
1263
1264         Reviewed by Saam Barati.
1265
1266         * stress/async-await-syntax.js:
1267         (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntaxError):
1268
1269 2017-05-30  Oleksandr Skachkov  <gskachkov@gmail.com>
1270
1271         ASSERTION FAILED: generator.isConstructor() || generator.derivedContextType() == DerivedContextType::DerivedConstructorContext
1272         https://bugs.webkit.org/show_bug.cgi?id=171274
1273
1274         Reviewed by Saam Barati.
1275
1276         * stress/async-arrow-functions-lexical-binding-in-class.js:
1277         (shouldBeAsync):
1278         (shouldBeAsyncAndStoreBind):
1279         (promise.new.Promise):
1280         (ChildClass4):
1281         (ChildClass4.prototype.classValue):
1282         (ChildClass4.prototype.get classProperty):
1283         * stress/async-arrow-functions-lexical-super-binding.js:
1284         (A):
1285         (const.childA1.new.prototype.var.f.async):
1286         (const.childA1.new.var):
1287         (const.childA1.new):
1288         (const.childA2.new.prototype.var.f.async):
1289         (const.childA2.new.var):
1290         (const.childA2.new):
1291         (const.childA3.new.prototype.var.f.async):
1292         (const.childA3.new.var):
1293         (const.childA3.new):
1294         (try.childA4.new.prototype.var.f.async):
1295         (try.childA4.new.var):
1296         (try.childA4.new):
1297         (catch):
1298         (const.childA5.new.prototype.var.f.async):
1299         (const.childA5.new.var):
1300         (const.childA5.new):
1301         (checkClass):
1302         (checkClass.new.prototype.var.f.async):
1303         (checkClass.new.var):
1304         (checkClass.new):
1305         (checkClass.new.prototype.method):
1306         (checkClass.new.prototype.prop):
1307
1308 2017-05-27  Yusuke Suzuki  <utatane.tea@gmail.com>
1309
1310         [JSC] Map and Set constructors should have fast path for cloning
1311         https://bugs.webkit.org/show_bug.cgi?id=172413
1312
1313         Reviewed by Saam Barati.
1314
1315         * stress/map-clone-instance-iterator-change.js: Added.
1316         (shouldBe):
1317         (map.Symbol.iterator):
1318         * stress/map-clone-iterator-change.js: Added.
1319         (shouldBe):
1320         (Map.prototype.Symbol.iterator):
1321         * stress/map-clone-next-change.js: Added.
1322         (shouldBe):
1323         (map.Symbol.iterator.__proto__.next):
1324         * stress/map-clone.js: Added.
1325         (shouldBe):
1326         (Map.prototype):
1327         * stress/map-inherit-set.js: Added.
1328         (shouldBe):
1329         (DerivedMap):
1330         (set for):
1331         * stress/set-clone-instance-iterator-change.js: Added.
1332         (shouldBe):
1333         (set Symbol.iterator):
1334         * stress/set-clone-iterator-change.js: Added.
1335         (shouldBe):
1336         (set Set.prototype.Symbol.iterator):
1337         * stress/set-clone-next-change.js: Added.
1338         (shouldBe):
1339         (set Symbol.iterator.__proto__.next):
1340         * stress/set-clone.js: Added.
1341         (shouldBe):
1342         (set Set.prototype.add):
1343         * stress/set-inherit-add.js: Added.
1344         (shouldBe):
1345         (DerivedSet.set add):
1346
1347 2017-05-26  Ryan Haddad  <ryanhaddad@apple.com>
1348
1349         Unreviewed, rolling out r217458.
1350
1351         This change caused 55 JSC test failures.
1352
1353         Reverted changeset:
1354
1355         "Date should use historical data if it's available."
1356         https://bugs.webkit.org/show_bug.cgi?id=172592
1357         http://trac.webkit.org/changeset/217458
1358
1359 2017-05-26  Yusuke Suzuki  <utatane.tea@gmail.com>
1360
1361         Give ModuleProgram the same treatment that we did for ProgramCode in bug#167725
1362         https://bugs.webkit.org/show_bug.cgi?id=167805
1363
1364         Reviewed by Saam Barati.
1365
1366         * modules/module-jit-reachability.js: Added.
1367
1368 2017-05-26  Oleksandr Skachkov  <gskachkov@gmail.com>
1369
1370         Prevent async methods named 'function'
1371         https://bugs.webkit.org/show_bug.cgi?id=172598
1372
1373         Reviewed by Mark Lam.
1374
1375         * stress/async-await-syntax.js:
1376         (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntax):
1377         (testTopLevelAsyncAwaitSyntaxSloppyMode):
1378         (prototype.testTopLevelAsyncAwaitSyntaxStrictMode.testSyntax):
1379         (prototype.testTopLevelAsyncAwaitSyntaxStrictMode):
1380         (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntaxError):
1381
1382 2017-05-25  Keith Miller  <keith_miller@apple.com>
1383
1384         Date should use historical data if it's available.
1385         https://bugs.webkit.org/show_bug.cgi?id=172592
1386
1387         Reviewed by Mark Lam.
1388
1389         Remove parts of the date tests that rely on the absence of
1390         historical data in Date.
1391
1392         * mozilla/ecma/Date/15.9.5.31-1.js:
1393         (getTestCases):
1394         * mozilla/ecma/Date/15.9.5.35-1.js:
1395         (getTestCases):
1396
1397 2017-05-25  Saam Barati  <sbarati@apple.com>
1398
1399         Our for-in optimization in the bytecode generator does its static analysis incorrectly
1400         https://bugs.webkit.org/show_bug.cgi?id=172532
1401         <rdar://problem/32369452>
1402
1403         Reviewed by Mark Lam.
1404
1405         * stress/for-in-invalidation-for-any-write.js: Added.
1406         (assert):
1407         (test):
1408         (test.i):
1409
1410 2017-05-25  Mark Lam  <mark.lam@apple.com>
1411
1412         ObjectToStringAdaptiveInferredPropertyValueWatchpoint should not reinstall itself nor handleFire if it's dying shortly.
1413         https://bugs.webkit.org/show_bug.cgi?id=172548
1414         <rdar://problem/31458393>
1415
1416         Reviewed by Filip Pizlo.
1417
1418         * stress/regress-172548.patch: Added.
1419
1420 2017-05-23  Saam Barati  <sbarati@apple.com>
1421
1422         We should not mmap zero bytes for a memory in Wasm
1423         https://bugs.webkit.org/show_bug.cgi?id=172528
1424         <rdar://problem/32257076>
1425
1426         Reviewed by Mark Lam.
1427
1428         * wasm/js-api/dont-mmap-zero-byte-memory.js: Added.
1429         (testMems):
1430
1431 2017-05-23  Saam Barati  <sbarati@apple.com>
1432
1433         CFGSimplificationPhase should not merge a block with itself
1434         https://bugs.webkit.org/show_bug.cgi?id=172508
1435         <rdar://problem/28424006>
1436
1437         Reviewed by Keith Miller.
1438
1439         * stress/dont-crash-in-cfg-simplification.js: Added.
1440         (bar):
1441         (baz):
1442         (foo):
1443
1444 2017-05-20  Yusuke Suzuki  <utatane.tea@gmail.com>
1445
1446         [FTL] Support GetByVal with ArrayStorage and SlowPutArrayStorage
1447         https://bugs.webkit.org/show_bug.cgi?id=172216
1448
1449         Reviewed by Saam Barati.
1450
1451         * stress/array-storage-get-by-val.js: Added.
1452         (shouldBe):
1453         (testOutOfBound):
1454         (testInBound):
1455         (testSlowPutOutOfBound):
1456         (testSlowPutInBound):
1457
1458 2017-05-21  Yusuke Suzuki  <utatane.tea@gmail.com>
1459
1460         Unreviewed, fix commented out tests
1461         https://bugs.webkit.org/show_bug.cgi?id=172225
1462
1463         * stress/get-by-val-string.js:
1464         (object.43):
1465         (Hello):
1466         (Hello.prototype.get 42):
1467         (Hello.prototype.43):
1468         (Derived):
1469         (shouldBe):
1470         (throw.new.Error): Deleted.
1471
1472 2017-05-21  Saam Barati  <sbarati@apple.com>
1473
1474         We incorrectly throw a syntax error when declaring a top level for-loop iteration variable the same as a parameter
1475         https://bugs.webkit.org/show_bug.cgi?id=171041
1476         <rdar://problem/32082516>
1477
1478         Reviewed by Yusuke Suzuki.
1479
1480         * stress/lexical-scoping-for-loop.js: Added.
1481         (assert):
1482         (test1):
1483         (test2):
1484         (test3):
1485         (test4):
1486         (test5):
1487         (test6):
1488         (let.test7):
1489         (let.test8):
1490         (let.test9):
1491         (let.test10):
1492         (let.test11):
1493         (let.test12):
1494
1495 2017-05-19  Yusuke Suzuki  <utatane.tea@gmail.com>
1496
1497         [JSC] Make get_by_val & string "499" to number 499
1498         https://bugs.webkit.org/show_bug.cgi?id=172225
1499
1500         Reviewed by Saam Barati.
1501
1502         * stress/get-by-val-string.js: Added.
1503         (shouldBe):
1504         (shouldThrow):
1505         (object.43):
1506         (Hello):
1507         (Hello.prototype.get 42):
1508         (Hello.prototype.43):
1509         (Derived):
1510
1511 2017-05-19  Mark Lam  <mark.lam@apple.com>
1512
1513         [Re-landing] DFG::SpeculativeJIT::pickCanTrample() is wrongly ignoring result registers.
1514         https://bugs.webkit.org/show_bug.cgi?id=172383
1515         <rdar://problem/31418651>
1516
1517         Reviewed by Filip Pizlo.
1518
1519         * stress/regress-172383.js: Added.
1520
1521 2017-05-19  Ryan Haddad  <ryanhaddad@apple.com>
1522
1523         Unreviewed, rolling out r217156.
1524
1525         This change broke the iOS build.
1526
1527         Reverted changeset:
1528
1529         "DFG::SpeculativeJIT::pickCanTrample() is wrongly ignoring
1530         result registers."
1531         https://bugs.webkit.org/show_bug.cgi?id=172383
1532         http://trac.webkit.org/changeset/217156
1533
1534 2017-05-19  Mark Lam  <mark.lam@apple.com>
1535
1536         Add missing exception check.
1537         https://bugs.webkit.org/show_bug.cgi?id=172346
1538         <rdar://problem/32289640>
1539
1540         Reviewed by Geoffrey Garen.
1541
1542         * stress/regress-172346.js: Added.
1543
1544 2017-05-19  Mark Lam  <mark.lam@apple.com>
1545
1546         DFG::SpeculativeJIT::pickCanTrample() is wrongly ignoring result registers.
1547         https://bugs.webkit.org/show_bug.cgi?id=172383
1548         <rdar://problem/31418651>
1549
1550         Reviewed by Filip Pizlo.
1551
1552         * stress/regress-172383.js: Added.
1553
1554 2017-05-19  Filip Pizlo  <fpizlo@apple.com>
1555
1556         arrayProtoPrivateFuncConcatMemcpy needs to be down with firstArray being undecided
1557         https://bugs.webkit.org/show_bug.cgi?id=172369
1558
1559         Reviewed by Mark Lam.
1560
1561         * stress/undecided-concat.js: Added.
1562
1563 2017-05-19  Yusuke Suzuki  <utatane.tea@gmail.com>
1564
1565         [JSC][DFG][DOMJIT] Extend CheckDOM to CheckSubClass
1566         https://bugs.webkit.org/show_bug.cgi?id=172098
1567
1568         Reviewed by Saam Barati.
1569
1570         * stress/check-sub-class.js: Added.
1571         (shouldBe):
1572         (shouldThrow):
1573         (calling):
1574         (array.forEach):
1575         (i.array.forEach):
1576
1577 2017-05-18  JF Bastien  <jfbastien@apple.com>
1578
1579         WebAssembly: exports is a getter
1580         https://bugs.webkit.org/show_bug.cgi?id=172129
1581
1582         Reviewed by Saam Barati.
1583
1584         Update test to reflect new semantics.
1585
1586         * wasm/js-api/test_basic_api.js:
1587         (const.c.in.constructorProperties.switch):
1588
1589 2017-05-18  Saam Barati  <sbarati@apple.com>
1590
1591         Proxy's [[Get]] passes incorrect receiver
1592         https://bugs.webkit.org/show_bug.cgi?id=164849
1593         <rdar://problem/31767058>
1594
1595         Reviewed by Yusuke Suzuki.
1596
1597         * stress/proxy-get-set-correct-receiver.js: Added.
1598         (assert):
1599         (test):
1600         (test.let.target.set prop):
1601         (test.let.target.get prop):
1602         (test.get let):
1603         * stress/proxy-set.js:
1604         (let.target.get x):
1605         * stress/reflect-set-proxy-set.js:
1606         (let.target.get x):
1607         * stress/reflect-set-receiver-proxy-set.js:
1608         (let.target.get x):
1609
1610 2017-05-18  Filip Pizlo  <fpizlo@apple.com>
1611
1612         Constructor calls set this too early
1613         https://bugs.webkit.org/show_bug.cgi?id=172302
1614
1615         Reviewed by Saam Barati.
1616         
1617         This tests all three kinds of constructs in BytecodeGenerator. All three were previously
1618         wrong.
1619
1620         * stress/construct-overwritten-variable.js: Added.
1621         (new.x.x):
1622         * stress/construct-spread-overwritten-variable-2.js: Added.
1623         (new.x.x):
1624         * stress/construct-spread-overwritten-variable.js: Added.
1625         (new.x.x):
1626
1627 2017-05-18  Saam Barati  <sbarati@apple.com>
1628
1629         WebAssembly: perform stack checks
1630         https://bugs.webkit.org/show_bug.cgi?id=165546
1631         <rdar://problem/29760307>
1632
1633         Reviewed by Filip Pizlo.
1634
1635         * wasm.yaml:
1636         * wasm/function-tests/factorial.js:
1637         * wasm/function-tests/float-sub.js:
1638         * wasm/function-tests/stack-overflow.js: Added.
1639         (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance):
1640         (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.assertOverflows):
1641         (assertOverflows.makeInstance):
1642         (assertOverflows.makeInstance2):
1643         (assertOverflows.assertThrows):
1644         (assertOverflows):
1645         (assertThrows.test.makeSignature):
1646         (assertThrows.test.makeInstance):
1647         (assertThrows.test):
1648         (assertThrows):
1649
1650 2017-05-18  Keith Miller  <keith_miller@apple.com>
1651
1652         WebAssembly API: test with neutered inputs
1653         https://bugs.webkit.org/show_bug.cgi?id=163899
1654
1655         Reviewed by JF Bastien.
1656
1657         * wasm/js-api/neutered-inputs.js: Added.
1658         (const.testFunction):
1659         (const.testConstructor):
1660         * wasm/js-api/test_basic_api.js:
1661         (const.c.in.constructorProperties.switch):
1662
1663 2017-05-18  Filip Pizlo  <fpizlo@apple.com>
1664
1665         DFG inlining should be hardened for the no-result case
1666         https://bugs.webkit.org/show_bug.cgi?id=172290
1667
1668         Reviewed by Saam Barati.
1669
1670         * stress/array-constructor-no-result.js: Added.
1671         (foo):
1672         * stress/pow-no-result.js: Added.
1673         (foo):
1674
1675 2017-05-18  Commit Queue  <commit-queue@webkit.org>
1676
1677         Unreviewed, rolling out r217031, r217032, and r217037.
1678         https://bugs.webkit.org/show_bug.cgi?id=172293
1679
1680         cause linking errors in Windows (Requested by yusukesuzuki on
1681         #webkit).
1682
1683         Reverted changesets:
1684
1685         "[JSC][DFG][DOMJIT] Extend CheckDOM to CheckSubClass"
1686         https://bugs.webkit.org/show_bug.cgi?id=172098
1687         http://trac.webkit.org/changeset/217031
1688
1689         "Unreviewed, rebaseline for newly added ClassInfo"
1690         https://bugs.webkit.org/show_bug.cgi?id=172098
1691         http://trac.webkit.org/changeset/217032
1692
1693         "Unreviewed, fix debug and non-JIT build"
1694         https://bugs.webkit.org/show_bug.cgi?id=172098
1695         http://trac.webkit.org/changeset/217037
1696
1697 2017-05-16  Yusuke Suzuki  <utatane.tea@gmail.com>
1698
1699         [JSC][DFG][DOMJIT] Extend CheckDOM to CheckSubClass
1700         https://bugs.webkit.org/show_bug.cgi?id=172098
1701
1702         Reviewed by Saam Barati.
1703
1704         * stress/check-sub-class.js: Added.
1705         (shouldBe):
1706         (shouldThrow):
1707         (calling):
1708         (array.forEach):
1709         (i.array.forEach):
1710
1711 2017-05-17  Filip Pizlo  <fpizlo@apple.com>
1712
1713         Unreviewed, address mlam's review feedback.
1714
1715         * stress/arguments-elimination-varargs-too-many-args-arg-count.js:
1716
1717 2017-05-17  Saam Barati  <sbarati@apple.com>
1718
1719         We don't do context switches for Wasm->Wasm call indirect
1720         https://bugs.webkit.org/show_bug.cgi?id=172188
1721         <rdar://problem/32231828>
1722
1723         Reviewed by Keith Miller.
1724
1725         * wasm/function-tests/context-switch.js: Added.
1726         (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance):
1727         (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance2):
1728         (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.const.i2.makeInstance2):
1729         (makeInstance):
1730         (makeInstance2):
1731         (assert.eq.makeInstance):
1732         (assert.eq.makeInstance2):
1733         (assert.eq):
1734
1735 2017-05-17  Filip Pizlo  <fpizlo@apple.com>
1736
1737         JSC: Incorrect LoadVarargs handling in ArgumentsEliminationPhase::transform
1738         https://bugs.webkit.org/show_bug.cgi?id=172208
1739
1740         Reviewed by Saam Barati.
1741
1742         * stress/arguments-elimination-varargs-too-many-args-arg-count.js: Added.
1743         (foo):
1744         (bar):
1745         (baz):
1746
1747 2017-05-16  Yusuke Suzuki  <utatane.tea@gmail.com>
1748
1749         [DFG] Constant Folding Phase should convert MakeRope("", String) => Identity(String)
1750         https://bugs.webkit.org/show_bug.cgi?id=172115
1751
1752         Reviewed by Saam Barati.
1753
1754         * stress/constant-folding-should-fold-make-rope-with-empty-strings.js: Added.
1755         (shouldBe):
1756         (unknown):
1757         (readWord1):
1758         (readWord2):
1759         (readWord3):
1760         (readWord4):
1761
1762 2017-05-16  JF Bastien  <jfbastien@apple.com>
1763
1764         WebAssembly: add memory fuzzer
1765         https://bugs.webkit.org/show_bug.cgi?id=169976
1766         <rdar://problem/31965328>
1767
1768         Reviewed by Keith Miller.
1769
1770         * wasm/fuzz/memory.js: Added.
1771         (const.insert):
1772         (const.action.string_appeared_here):
1773         (const.performAction):
1774         (catch):
1775
1776 2017-05-16  JF Bastien  <jfbastien@apple.com>
1777
1778         WebAssembly: validate load / store alignment
1779         https://bugs.webkit.org/show_bug.cgi?id=168836
1780         <rdar://problem/31965349>
1781
1782         Reviewed by Keith Miller.
1783
1784         * wasm/WASM.js: fix regular expression greed
1785         * wasm/function-tests/memory-alignment.js: Added.
1786         (const.op.of.WASM.opcodes):
1787         * wasm/wasm.json: fix formatting
1788
1789 2017-05-15  Mark Lam  <mark.lam@apple.com>
1790
1791         Rolling out r214038 and r213697: Crashes when using computed properties with rest destructuring and object spread.
1792         https://bugs.webkit.org/show_bug.cgi?id=172147
1793
1794         Rubber-stamped by Saam Barati.
1795
1796         * stress/object-rest-deconstruct.js: Removed.
1797         * stress/object-spread.js: Removed.
1798
1799 2017-05-11  JF Bastien  <jfbastien@apple.com>
1800
1801         WebAssembly: stop supporting 0xD
1802         https://bugs.webkit.org/show_bug.cgi?id=168788
1803         <rdar://problem/31880922>
1804
1805         Reviewed by Saam Barati.
1806
1807         Test that only version 1 is supported.
1808
1809         * wasm/js-api/version.js: Added.
1810
1811 2017-05-10  JF Bastien  <jfbastien@apple.com>
1812
1813         WebAssemby: builder doesn't do Memory section maximum correctly
1814         https://bugs.webkit.org/show_bug.cgi?id=171931
1815
1816         Reviewed by Keith Miller.
1817
1818         * wasm/Builder.js:
1819         (export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):
1820         * wasm/Builder_WebAssemblyBinary.js:
1821         (const.emitters.Memory):
1822         * wasm/function-tests/memory-grow-invalid.js: Added.
1823
1824 2017-05-10  JF Bastien  <jfbastien@apple.com>
1825
1826         WebAssembly: support name section
1827         https://bugs.webkit.org/show_bug.cgi?id=171263
1828
1829         Reviewed by Keith Miller.
1830
1831         * wasm/function-tests/nameSection.js: Added.
1832         (const.compile):
1833         * wasm/function-tests/nameSection.wasm: Added.
1834         * wasm/function-tests/stack-trace.js: Update format
1835
1836 2017-05-10  Filip Pizlo  <fpizlo@apple.com>
1837
1838         Null pointer dereference in WTF::RefPtr<WTF::StringImpl>::operator!() under slow_path_get_direct_pname
1839         https://bugs.webkit.org/show_bug.cgi?id=171801
1840
1841         Reviewed by Michael Saboff.
1842         
1843         These tests used to crash. The prefix and postfix tests cover different paths, except
1844         postfix-ignored goes down the same path as prefix due to an optimization.
1845
1846         * stress/for-in-postfix-ignored-index.js: Added.
1847         (foo):
1848         * stress/for-in-postfix-index.js: Added.
1849         (foo):
1850         * stress/for-in-prefix-index.js: Added.
1851         (foo):
1852
1853 2017-05-08  Mark Lam  <mark.lam@apple.com>
1854
1855         op_throw_static_error's use of its first operand should be reflected in DFG BytecodeUseDef as well.
1856         https://bugs.webkit.org/show_bug.cgi?id=171786
1857         <rdar://problem/32051023>
1858
1859         Reviewed by Saam Barati.
1860
1861         * stress/bug-171786.js: Added.
1862
1863 2017-05-06  Oleksandr Skachkov  <gskachkov@gmail.com>
1864
1865         [ES6] Arrow function. Issue in access to this after eval('super()') within constructor
1866         https://bugs.webkit.org/show_bug.cgi?id=171543
1867
1868         Reviewed by Saam Barati.
1869
1870         * stress/arrowfunction-lexical-bind-supercall-4.js:
1871         (J):
1872         (K):
1873
1874 2017-05-05  Saam Barati  <sbarati@apple.com>
1875
1876         putDirectIndex does not properly do defineOwnProperty
1877         https://bugs.webkit.org/show_bug.cgi?id=171591
1878         <rdar://problem/31735695>
1879
1880         Reviewed by Geoffrey Garen.
1881
1882         * stress/array-prototype-splice-making-typed-array.js:
1883         (test):
1884         * stress/array-species-config-array-constructor.js:
1885         (shouldThrow):
1886         (test):
1887         * stress/put-direct-index-broken-2.js: Added.
1888         (assert):
1889         (test):
1890         (makeLengthWritable):
1891         (set get restoreOldDesc):
1892         * stress/put-direct-index-broken.js: Added.
1893         (whatToTest):
1894         (tryRunning):
1895         (tryItOut):
1896         * stress/put-indexed-getter-setter.js: Added.
1897         (foo.X.prototype.set 7):
1898         (foo.X.prototype.get 7):
1899         (foo.X):
1900         (foo):
1901
1902 2017-05-04  Yusuke Suzuki  <utatane.tea@gmail.com>
1903
1904         [JSC] Math unary functions should be handled by DFG
1905         https://bugs.webkit.org/show_bug.cgi?id=171269
1906
1907         Reviewed by Saam Barati.
1908
1909         * stress/arith-acos-on-various-types.js: Added.
1910         (let.validInputTypedTestCases.validInputTestCases.map):
1911         (isIdentical):
1912         (opaqueACosNoArgument):
1913         (testNoArgument):
1914         (opaqueAllTypesACos):
1915         (testAllTypesCall):
1916         (testSingleTypeCall):
1917         (testConstant):
1918         (opaqueACosForSideEffects):
1919         (testSideEffect.let.testObject.valueOf):
1920         (testSideEffect):
1921         (opaqueACosForCSE):
1922         (testCSE.let.testObject.valueOf):
1923         (testCSE):
1924         (opaqueACosForDCE):
1925         (testDCE.let.testObject.valueOf):
1926         (testDCE):
1927         (testException.opaqueACosWithException):
1928         (testException):
1929         * stress/arith-acosh-on-various-types.js: Added.
1930         (let.validInputTypedTestCases.validInputTestCases.map):
1931         (isIdentical):
1932         (opaqueACoshNoArgument):
1933         (testNoArgument):
1934         (opaqueAllTypesACosh):
1935         (testAllTypesCall):
1936         (testSingleTypeCall):
1937         (testConstant):
1938         (opaqueACoshForSideEffects):
1939         (testSideEffect.let.testObject.valueOf):
1940         (testSideEffect):
1941         (opaqueACoshForCSE):
1942         (testCSE.let.testObject.valueOf):
1943         (testCSE):
1944         (opaqueACoshForDCE):
1945         (testDCE.let.testObject.valueOf):
1946         (testDCE):
1947         (testException.opaqueACoshWithException):
1948         (testException):
1949         * stress/arith-asin-on-various-types.js: Added.
1950         (let.validInputTypedTestCases.validInputTestCases.map):
1951         (isIdentical):
1952         (opaqueASinNoArgument):
1953         (testNoArgument):
1954         (opaqueAllTypesASin):
1955         (testAllTypesCall):
1956         (testSingleTypeCall):
1957         (testConstant):
1958         (opaqueASinForSideEffects):
1959         (testSideEffect.let.testObject.valueOf):
1960         (testSideEffect):
1961         (opaqueASinForCSE):
1962         (testCSE.let.testObject.valueOf):
1963         (testCSE):
1964         (opaqueASinForDCE):
1965         (testDCE.let.testObject.valueOf):
1966         (testDCE):
1967         (testException.opaqueASinWithException):
1968         (testException):
1969         * stress/arith-asinh-on-various-types.js: Added.
1970         (let.validInputTypedTestCases.validInputTestCases.map):
1971         (isIdentical):
1972         (opaqueASinhNoArgument):
1973         (testNoArgument):
1974         (opaqueAllTypesASinh):
1975         (testAllTypesCall):
1976         (testSingleTypeCall):
1977         (testConstant):
1978         (opaqueASinhForSideEffects):
1979         (testSideEffect.let.testObject.valueOf):
1980         (testSideEffect):
1981         (opaqueASinhForCSE):
1982         (testCSE.let.testObject.valueOf):
1983         (testCSE):
1984         (opaqueASinhForDCE):
1985         (testDCE.let.testObject.valueOf):
1986         (testDCE):
1987         (testException.opaqueASinhWithException):
1988         (testException):
1989         * stress/arith-atan-on-various-types.js: Added.
1990         (let.validInputTypedTestCases.validInputTestCases.map):
1991         (isIdentical):
1992         (opaqueATanNoArgument):
1993         (testNoArgument):
1994         (opaqueAllTypesATan):
1995         (testAllTypesCall):
1996         (testSingleTypeCall):
1997         (testConstant):
1998         (opaqueATanForSideEffects):
1999         (testSideEffect.let.testObject.valueOf):
2000         (testSideEffect):
2001         (opaqueATanForCSE):
2002         (testCSE.let.testObject.valueOf):
2003         (testCSE):
2004         (opaqueATanForDCE):
2005         (testDCE.let.testObject.valueOf):
2006         (testDCE):
2007         (testException.opaqueATanWithException):
2008         (testException):
2009         * stress/arith-atanh-on-various-types.js: Added.
2010         (let.validInputTypedTestCases.validInputTestCases.map):
2011         (isIdentical):
2012         (opaqueATanhNoArgument):
2013         (testNoArgument):
2014         (opaqueAllTypesATanh):
2015         (testAllTypesCall):
2016         (testSingleTypeCall):
2017         (testConstant):
2018         (opaqueATanhForSideEffects):
2019         (testSideEffect.let.testObject.valueOf):
2020         (testSideEffect):
2021         (opaqueATanhForCSE):
2022         (testCSE.let.testObject.valueOf):
2023         (testCSE):
2024         (opaqueATanhForDCE):
2025         (testDCE.let.testObject.valueOf):
2026         (testDCE):
2027         (testException.opaqueATanhWithException):
2028         (testException):
2029         * stress/arith-cbrt-on-various-types.js: Added.
2030         (let.validInputTypedTestCases.validInputTestCases.map):
2031         (isIdentical):
2032         (opaqueCbrtNoArgument):
2033         (testNoArgument):
2034         (opaqueAllTypesCbrt):
2035         (testAllTypesCall):
2036         (testSingleTypeCall):
2037         (testConstant):
2038         (opaqueCbrtForSideEffects):
2039         (testSideEffect.let.testObject.valueOf):
2040         (testSideEffect):
2041         (opaqueCbrtForCSE):
2042         (testCSE.let.testObject.valueOf):
2043         (testCSE):
2044         (opaqueCbrtForDCE):
2045         (testDCE.let.testObject.valueOf):
2046         (testDCE):
2047         (testException.opaqueCbrtWithException):
2048         (testException):
2049         * stress/arith-cosh-on-various-types.js: Added.
2050         (let.validInputTypedTestCases.validInputTestCases.map):
2051         (isIdentical):
2052         (opaqueCoshNoArgument):
2053         (testNoArgument):
2054         (opaqueAllTypesCosh):
2055         (testAllTypesCall):
2056         (testSingleTypeCall):
2057         (testConstant):
2058         (opaqueCoshForSideEffects):
2059         (testSideEffect.let.testObject.valueOf):
2060         (testSideEffect):
2061         (opaqueCoshForCSE):
2062         (testCSE.let.testObject.valueOf):
2063         (testCSE):
2064         (opaqueCoshForDCE):
2065         (testDCE.let.testObject.valueOf):
2066         (testDCE):
2067         (testException.opaqueCoshWithException):
2068         (testException):
2069         * stress/arith-expm1-on-various-types.js: Added.
2070         (let.validInputTypedTestCases.validInputTestCases.map):
2071         (isIdentical):
2072         (opaqueExpm1NoArgument):
2073         (testNoArgument):
2074         (opaqueAllTypesExpm1):
2075         (testAllTypesCall):
2076         (testSingleTypeCall):
2077         (testConstant):
2078         (opaqueExpm1ForSideEffects):
2079         (testSideEffect.let.testObject.valueOf):
2080         (testSideEffect):
2081         (opaqueExpm1ForCSE):
2082         (testCSE.let.testObject.valueOf):
2083         (testCSE):
2084         (opaqueExpm1ForDCE):
2085         (testDCE.let.testObject.valueOf):
2086         (testDCE):
2087         (testException.opaqueExpm1WithException):
2088         (testException):
2089         * stress/arith-log10-on-various-types.js: Added.
2090         (let.validInputTypedTestCases.validInputTestCases.map):
2091         (isIdentical):
2092         (opaqueLog10NoArgument):
2093         (testNoArgument):
2094         (opaqueAllTypesLog10):
2095         (testAllTypesCall):
2096         (testSingleTypeCall):
2097         (testConstant):
2098         (opaqueLog10ForSideEffects):
2099         (testSideEffect.let.testObject.valueOf):
2100         (testSideEffect):
2101         (opaqueLog10ForCSE):
2102         (testCSE.let.testObject.valueOf):
2103         (testCSE):
2104         (opaqueLog10ForDCE):
2105         (testDCE.let.testObject.valueOf):
2106         (testDCE):
2107         (testException.opaqueLog10WithException):
2108         (testException):
2109         * stress/arith-log2-on-various-types.js: Added.
2110         (let.validInputTypedTestCases.validInputTestCases.map):
2111         (isIdentical):
2112         (opaqueLog2NoArgument):
2113         (testNoArgument):
2114         (opaqueAllTypesLog2):
2115         (testAllTypesCall):
2116         (testSingleTypeCall):
2117         (testConstant):
2118         (opaqueLog2ForSideEffects):
2119         (testSideEffect.let.testObject.valueOf):
2120         (testSideEffect):
2121         (opaqueLog2ForCSE):
2122         (testCSE.let.testObject.valueOf):
2123         (testCSE):
2124         (opaqueLog2ForDCE):
2125         (testDCE.let.testObject.valueOf):
2126         (testDCE):
2127         (testException.opaqueLog2WithException):
2128         (testException):
2129         * stress/arith-sinh-on-various-types.js: Added.
2130         (let.validInputTypedTestCases.validInputTestCases.map):
2131         (isIdentical):
2132         (opaqueSinhNoArgument):
2133         (testNoArgument):
2134         (opaqueAllTypesSinh):
2135         (testAllTypesCall):
2136         (testSingleTypeCall):
2137         (testConstant):
2138         (opaqueSinhForSideEffects):
2139         (testSideEffect.let.testObject.valueOf):
2140         (testSideEffect):
2141         (opaqueSinhForCSE):
2142         (testCSE.let.testObject.valueOf):
2143         (testCSE):
2144         (opaqueSinhForDCE):
2145         (testDCE.let.testObject.valueOf):
2146         (testDCE):
2147         (testException.opaqueSinhWithException):
2148         (testException):
2149         * stress/arith-tan-on-various-types.js:
2150         (isIdentical):
2151         * stress/arith-tanh-on-various-types.js: Added.
2152         (let.validInputTypedTestCases.validInputTestCases.map):
2153         (isIdentical):
2154         (opaqueTanhNoArgument):
2155         (testNoArgument):
2156         (opaqueAllTypesTanh):
2157         (testAllTypesCall):
2158         (testSingleTypeCall):
2159         (testConstant):
2160         (opaqueTanhForSideEffects):
2161         (testSideEffect.let.testObject.valueOf):
2162         (testSideEffect):
2163         (opaqueTanhForCSE):
2164         (testCSE.let.testObject.valueOf):
2165         (testCSE):
2166         (opaqueTanhForDCE):
2167         (testDCE.let.testObject.valueOf):
2168         (testDCE):
2169         (testException.opaqueTanhWithException):
2170         (testException):
2171
2172 2017-05-03  Keith Miller  <keith_miller@apple.com>
2173
2174         Array.prototype.sort should also allow a null comparator
2175         https://bugs.webkit.org/show_bug.cgi?id=171621
2176
2177         Reviewed by Michael Saboff.
2178
2179         Add test to make it less likely we revert to the incompatable behavior.
2180         Also, fix now incorrect tests.
2181
2182         * ChakraCore/test/Array/array_sort.baseline-jsc:
2183         * stress/array-sort-bad-comparator.js:
2184         (test):
2185         * stress/sort-null-comparator.js: Added.
2186         (assertEq):
2187
2188 2017-05-03  Caitlin Potter  <caitp@igalia.com>
2189
2190         [JSC] remove unneeded asyncFunctionTests.yaml
2191         https://bugs.webkit.org/show_bug.cgi?id=171611
2192
2193         Reviewed by Yusuke Suzuki.
2194
2195         Async functions have shipped, and those tests are run as part of
2196         JSTests/stress and JSTests/test262.yaml. The file is no longer needed.
2197
2198         * asyncFunctionTests.yaml: Removed.
2199         * stress/async-await-long-loop.js:
2200         * stress/async-await-throw-loop.js:
2201
2202 2017-05-03  Keith Miller  <keith_miller@apple.com>
2203
2204         Different behaviour with the .sort(callback) method (unlike Firefox & Chrome)
2205         https://bugs.webkit.org/show_bug.cgi?id=47825
2206
2207         Reviewed by Saam Barati.
2208
2209         * stress/sorting-boolean-result-comparator.js: Added.
2210         (checkArray):
2211
2212 2017-05-02  David Kilzer  <ddkilzer@apple.com>
2213
2214         check-webkit-style should keep JavaScript test functions in sync
2215         <https://webkit.org/b/171424>
2216
2217         Reviewed by Joseph Pecoraro.
2218
2219         This change makes shouldBe(), shouldNotBe(), shouldNotThrow()
2220         and shouldThrow() in sync with other copies of these methods.
2221
2222         * stress/resources/standalone-pre.js:
2223         (shouldBe): Fix whitespace.  Prefix 'exception' and 'quiet'
2224         variables with underscore.
2225         (shouldThrow): Fix whitespace.
2226
2227 2017-04-30  Oleksandr Skachkov  <gskachkov@gmail.com>
2228
2229         We initialize functions too early in an eval
2230         https://bugs.webkit.org/show_bug.cgi?id=161099
2231
2232         Reviewed by Saam Barati.
2233
2234         * stress/eval-func-decl-with-let-const-class.js: Added.
2235
2236 2017-04-30  Oleksandr Skachkov  <gskachkov@gmail.com>
2237
2238         [ES6]. Implement Annex B.3.3 function hoisting rules for eval
2239         https://bugs.webkit.org/show_bug.cgi?id=163208
2240
2241         Reviewed by Saam Barati.
2242
2243         * stress/eval-func-decl-block-scoping-reassign.js: Added.
2244         (assert):
2245         (throw.new.Error.f):
2246         (throw.new.Error):
2247         * stress/eval-func-decl-block-with-remove.js: Added.
2248         (assert):
2249         (foo.boo):
2250         (foo):
2251         * stress/eval-func-decl-block-with-var-and-remove.js: Added.
2252         (assert):
2253         (assertThrow):
2254         (foo):
2255         (boo):
2256         (joo):
2257         (koo):
2258         * stress/eval-func-decl-block-with-var-sinthesize.js: Added.
2259         (assert):
2260         (assertThrow):
2261         (foo):
2262         (boo):
2263         (hoo):
2264         (joo):
2265         (koo):
2266         * stress/eval-func-decl-in-block-scope-and-bind-to-top-eval-scope.js: Added.
2267         * stress/eval-func-decl-in-eval-within-block-with-let.js: Added.
2268         (assert):
2269         (assertThrow):
2270         (foo):
2271         (boo):
2272         (goo):
2273         * stress/eval-func-decl-in-eval-within-with-scope.js: Added.
2274         (assert):
2275         (assertThrow):
2276         (foo):
2277         (boo):
2278         (boo.let.val2):
2279         (boo.let.val3):
2280         * stress/eval-func-decl-in-frozen-global.js: Added.
2281         (assert):
2282         (assertThrow):
2283         (throw.new.Error):
2284         (Object.freeze):
2285         * stress/eval-func-decl-in-global-of-eval.js: Added.
2286         (assert):
2287         (assertThrow):
2288         (bar):
2289         (baz):
2290         (foobar):
2291         * stress/eval-func-decl-in-global.js: Added.
2292         (assert):
2293         (assertThrow):
2294         * stress/eval-func-decl-in-if.js: Added.
2295         (assert):
2296         * stress/eval-func-decl-within-eval-with-reassign-to-var.js: Added.
2297         (assert):
2298         (assertThrow):
2299         (foo):
2300         (boo):
2301         (foobar):
2302         (hoo):
2303         (joo):
2304         (koo):
2305         (loo):
2306         * stress/eval-func-decl-within-eval-without-reassign-to-let.js: Added.
2307         (assert):
2308         (assertThrow):
2309         (foo):
2310         (boo):
2311         (goo):
2312         * stress/variable-under-tdz-eval-tricky.js:
2313         (assert):
2314         * test262.yaml:
2315
2316 2017-04-27  Mark Lam  <mark.lam@apple.com>
2317
2318         Fix some RELEASE_ASSERT failures caused by OutOfMemoryErrors.
2319         https://bugs.webkit.org/show_bug.cgi?id=171404
2320         <rdar://problem/31876178>
2321
2322         Reviewed by Saam Barati.
2323
2324         * stress/js-fixed-array-out-of-memory.js: Added.
2325
2326 2017-04-27  David Kilzer  <ddkilzer@apple.com>
2327
2328         Enhance shouldBe()/shouldNotBe() to accept anonymous function arguments
2329         <https://webkit.org/b/171362>
2330         <rdar://problem/31867686>
2331
2332         Reviewed by Joseph Pecoraro.
2333
2334         * stress/resources/standalone-pre.js:
2335         (shouldBe):
2336         (shouldNotThrow):
2337         (shouldThrow):
2338         - Update shouldBe() to accept anonymous function arguments.
2339           (The shouldNotBe() function was never copied over.)
2340         - Also fix shouldThrow()/shouldNotThrow() to accept anonymous
2341           function arguments (which were missed in r202609 for Bug
2342           159232).
2343
2344 2017-04-27  Yusuke Suzuki  <utatane.tea@gmail.com>
2345
2346         [JSC] Handle PhantomSpread in LoadVarargs as the same to the others
2347         https://bugs.webkit.org/show_bug.cgi?id=171262
2348
2349         Reviewed by Saam Barati.
2350
2351         * stress/spread-outer-create-rest.js: Added.
2352         (assert):
2353         (foo):
2354         (bar):
2355         (baz):
2356
2357 2017-04-26  Saam Barati  <sbarati@apple.com>
2358
2359         Print Wasm function index in stack trace
2360         https://bugs.webkit.org/show_bug.cgi?id=171349
2361
2362         Reviewed by JF Bastien.
2363
2364         * wasm/function-tests/stack-trace.js: Added.
2365         (import.Builder.from.string_appeared_here.assert):
2366         (let.imp):
2367         * wasm/function-tests/trap-after-cross-instance-call.js:
2368         (wasmFrameCountFromError):
2369         * wasm/function-tests/trap-load-2.js:
2370         (wasmFrameCountFromError):
2371         * wasm/function-tests/trap-load.js:
2372         (wasmFrameCountFromError):
2373
2374 2017-04-26  Saam Barati  <sbarati@apple.com>
2375
2376         ASSERTION FAILED: inIndex != notFound in JSC::invalidParameterInSourceAppender()
2377         https://bugs.webkit.org/show_bug.cgi?id=170924
2378         <rdar://problem/31721052>
2379
2380         Reviewed by Mark Lam.
2381
2382         * stress/error-message-for-function-base-not-found.js: Added.
2383         (assert):
2384         (throw.new.Error):
2385         * stress/error-messages-for-in-operator-should-not-crash.js: Added.
2386         (catch):
2387
2388 2017-04-26  Keith Miller  <keith_miller@apple.com>
2389
2390         WebAssembly: Implement tier up
2391         https://bugs.webkit.org/show_bug.cgi?id=170134
2392
2393         Reviewed by Filip Pizlo.
2394
2395         * wasm/function-tests/trap-after-cross-instance-call.js:
2396         * wasm/tier-up/js-to-wasm.js: Added.
2397         (async.test):
2398         * wasm/tier-up/wasm-to-wasm.js: Added.
2399         (async.test):
2400
2401 2017-04-26  Caitlin Potter  <caitp@igalia.com>
2402
2403         [JSC] Object.keys() must discard property names with no PropertyDescriptor
2404         https://bugs.webkit.org/show_bug.cgi?id=171291
2405
2406         Reviewed by Yusuke Suzuki.
2407
2408         * es6/Proxy_ownKeys_duplicates.js:
2409         * stress/proxy-own-keys.js:
2410         (let.handler.getOwnPropertyDescriptor):
2411         (let.handler.ownKeys):
2412
2413 2017-04-25  Commit Queue  <commit-queue@webkit.org>
2414
2415         Unreviewed, rolling out r215476.
2416         https://bugs.webkit.org/show_bug.cgi?id=171304
2417
2418         "It broke JSBench" (Requested by saamyjoon on #webkit).
2419
2420         Reverted changeset:
2421
2422         "[ES6]. Implement Annex B.3.3 function hoisting rules for
2423         eval"
2424         https://bugs.webkit.org/show_bug.cgi?id=163208
2425         http://trac.webkit.org/changeset/215476
2426
2427 2017-04-25  Saam Barati  <sbarati@apple.com>
2428
2429         JSArray::isArrayPrototypeIteratorProtocolFastAndNonObservable is wrong because it does not do the necessary checks on the base object
2430         https://bugs.webkit.org/show_bug.cgi?id=171150
2431         <rdar://problem/31771880>
2432
2433         Reviewed by Sam Weinig.
2434
2435         * stress/spread-optimized-properly.js: Added.
2436         (assert):
2437         (test):
2438         (shallowEq):
2439         (makeArrayIterator):
2440         (test.bar):
2441         (test.callback):
2442         (test.arr.__proto__.Symbol.iterator):
2443         (test.arr.Symbol.iterator):
2444         (test.get bar):
2445         (test.hackedNext):
2446         (test.test):
2447         (test.):
2448
2449 2017-04-25  Mark Lam  <mark.lam@apple.com>
2450
2451         [Follow up] Array.prototype.slice() should ensure that end >= begin.
2452         https://bugs.webkit.org/show_bug.cgi?id=170989
2453         <rdar://problem/31705652>
2454
2455         Not reviewed.
2456
2457         Follow up to rename a test file that was accidentally named wrongly.
2458
2459         * stress/regress-170989.js: Copied from JSTests/stress/regress-170989.patch.
2460         * stress/regress-170989.patch: Removed.
2461
2462 2017-04-25  Mark Lam  <mark.lam@apple.com>
2463
2464         Array.prototype.slice() should ensure that end >= begin.
2465         https://bugs.webkit.org/show_bug.cgi?id=170989
2466         <rdar://problem/31705652>
2467
2468         Reviewed by Saam Barati.
2469
2470         * stress/regress-170989.patch: Added.
2471
2472 2017-04-25  Mark Lam  <mark.lam@apple.com>
2473
2474         Local CSE wrongly CSEs array accesses with different result types.
2475         https://bugs.webkit.org/show_bug.cgi?id=170990
2476         <rdar://problem/31705945>
2477
2478         Reviewed by Saam Barati.
2479
2480         * stress/regress-170990.js: Added.
2481
2482 2017-04-25  Yusuke Suzuki  <utatane.tea@gmail.com>
2483
2484         WebAssembly: exporting a property with a name that's a number doesn't work
2485         https://bugs.webkit.org/show_bug.cgi?id=168857
2486
2487         Reviewed by JF Bastien.
2488
2489         r213453 allows Wasm instances to expose indexed properties. We activate the tests.
2490
2491         * wasm/js-api/test_Instance.js:
2492         (ExportedNumber):
2493
2494 2017-04-24  Joseph Pecoraro  <pecoraro@apple.com>
2495
2496         test262: test262/test/language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js
2497         https://bugs.webkit.org/show_bug.cgi?id=171190
2498
2499         Reviewed by Saam Barati.
2500
2501         * stress/async-await-syntax.js:
2502         * test262.yaml:
2503
2504 2017-04-24  Yusuke Suzuki  <utatane.tea@gmail.com>
2505
2506         [JSC] Use JSFixedArray directly when using call_varargs
2507         https://bugs.webkit.org/show_bug.cgi?id=171057
2508
2509         Reviewed by Saam Barati.
2510
2511         * stress/spread-capture-rest.js: Added.
2512         (shouldBe):
2513         (capture):
2514         (a):
2515         (b):
2516         * stress/spread-multi-layers.js: Added.
2517         (shouldBe):
2518         (a):
2519         (b):
2520         (c):
2521         (d):
2522         * stress/spread-non-varargs.js: Added.
2523         (shouldBe):
2524         (a):
2525         (b):
2526
2527 2017-04-24  Joseph Pecoraro  <pecoraro@apple.com>
2528
2529         test262: test262/test/language/computed-property-names/class/static/getter-prototype.js
2530         https://bugs.webkit.org/show_bug.cgi?id=170897
2531
2532         Reviewed by Saam Barati.
2533
2534         * test262.yaml:
2535
2536 2017-04-24  Joseph Pecoraro  <pecoraro@apple.com>
2537
2538         Address some FIXMEs in JavaScript tests for bugs that have been fixed
2539         https://bugs.webkit.org/show_bug.cgi?id=171191
2540
2541         Reviewed by JF Bastien.
2542
2543         * stress/proxy-is-extensible.js:
2544
2545 2017-04-24  Joseph Pecoraro  <pecoraro@apple.com>
2546
2547         test262: test262/test/language/statements/for-of/dstr-array-elem-init-fn-name-arrow.js
2548         https://bugs.webkit.org/show_bug.cgi?id=171160
2549
2550         Reviewed by JF Bastien.
2551
2552         * stress/inferred-names.js:
2553         * test262.yaml:
2554
2555 2017-04-24  Joseph Pecoraro  <pecoraro@apple.com>
2556
2557         test262: test262/test/language/expressions/generators/yield-as-label.js
2558         https://bugs.webkit.org/show_bug.cgi?id=170979
2559
2560         Reviewed by Saam Barati.
2561
2562         * stress/async-await-module-reserved-word.js:
2563         * stress/async-await-reserved-word.js:
2564         Converge on "Cannot" instead of "Can't".
2565
2566         * catch-parameter-syntax.js:
2567         * yield-named-variable-generator.js:
2568         * yield-named-variable.js:
2569         * stress/yield-label-generator.js:
2570         * stress/yield-label.js:
2571         * stress/yield-reserved-word.js: Added.
2572         More complete list of when 'yield' is allowed.
2573
2574         * ChakraCore/test/strict/23.reservedWords_sm.baseline-jsc:
2575         * test262.yaml:
2576
2577 2017-04-23  Commit Queue  <commit-queue@webkit.org>
2578
2579         Unreviewed, rolling out r215674.
2580         https://bugs.webkit.org/show_bug.cgi?id=171212
2581
2582         Possible unintended commit. This patch was on the wrong bug.
2583         (Requested by JoePeck on #webkit).
2584
2585         Reverted changeset:
2586
2587         "test262: test262/test/language/expressions/generators/yield-
2588         as-label.js"
2589         https://bugs.webkit.org/show_bug.cgi?id=170979
2590         http://trac.webkit.org/changeset/215674
2591
2592 2017-04-23  Joseph Pecoraro  <pecoraro@apple.com>
2593
2594         test262: test262/test/built-ins/Number/prototype/toPrecision/nan.js
2595         https://bugs.webkit.org/show_bug.cgi?id=171197
2596
2597         Reviewed by Saam Barati.
2598
2599         * test262.yaml:
2600
2601 2017-04-23  Joseph Pecoraro  <pecoraro@apple.com>
2602
2603         test262: test262/test/language/expressions/generators/yield-as-label.js
2604         https://bugs.webkit.org/show_bug.cgi?id=170979
2605
2606         Reviewed by Saam Barati.
2607
2608         * stress/async-await-module-reserved-word.js:
2609         * stress/async-await-reserved-word.js:
2610         Converge on "Cannot" instead of "Can't".
2611
2612         * catch-parameter-syntax.js:
2613         * yield-named-variable-generator.js:
2614         * yield-named-variable.js:
2615         * stress/yield-label-generator.js:
2616         * stress/yield-label.js:
2617         * stress/yield-reserved-word.js: Added.
2618         More complete list of when 'yield' is allowed.
2619
2620         * ChakraCore/test/strict/23.reservedWords_sm.baseline-jsc:
2621         * test262.yaml:
2622
2623 2017-04-23  Joseph Pecoraro  <pecoraro@apple.com>
2624
2625         test262: test262/test/built-ins/Number/parseFloat.js
2626         https://bugs.webkit.org/show_bug.cgi?id=171193
2627
2628         Reviewed by Yusuke Suzuki.
2629
2630         * test262.yaml:
2631
2632 2017-04-22  JF Bastien  <jfbastien@apple.com>
2633
2634         WebAssembly: Module.exports, Module.imports, Module.customSections are wrong
2635         https://bugs.webkit.org/show_bug.cgi?id=171078
2636
2637         Reviewed by Saam Barati.
2638
2639         They're static properties of Module, not instance properties of a module.
2640         https://github.com/WebAssembly/design/blob/master/JS.md#webassemblymoduleexports
2641
2642         * wasm/js-api/Module.customSection.js:
2643         (assert.throws.WebAssembly.Module.customSections):
2644         (assert.eq):
2645         (assert.throws.WebAssembly.Module.prototype.customSections): Deleted.
2646         * wasm/js-api/Module.exports.js:
2647         (assert.throws.WebAssembly.Module.exports):
2648         (assert.truthy):
2649         (assert.throws.WebAssembly.Module.prototype.exports): Deleted.
2650         * wasm/js-api/Module.imports.js:
2651         (assert.throws.WebAssembly.Module.imports):
2652         (assert.truthy):
2653         (assert.throws.WebAssembly.Module.prototype.imports): Deleted.
2654
2655 2017-04-21  JF Bastien  <jfbastien@apple.com>
2656
2657         Silence noisy test
2658
2659         Unreviewed, Fil / Michael and I talked about it in the corridor. I
2660         just forgot to set verbose to false before commit.
2661
2662         * wasm/stress/oom.js:
2663
2664 2017-04-20  Yusuke Suzuki  <utatane.tea@gmail.com>
2665
2666         [JSC][FTL] FTL should support Arrayify
2667         https://bugs.webkit.org/show_bug.cgi?id=169596
2668
2669         Reviewed by Saam Barati.
2670
2671         * stress/arrayify.js: Added.
2672         (arrayifyInt32):
2673         (arrayifyDouble):
2674         (arrayifyContiguous):
2675
2676 2017-04-20  Mark Lam  <mark.lam@apple.com>
2677
2678         virtualThunkFor() needs to materialize its of tagMaskRegister for tail calls.
2679         https://bugs.webkit.org/show_bug.cgi?id=171079
2680         <rdar://problem/31684756>
2681
2682         Reviewed by Saam Barati.
2683
2684         * stress/regress-171079.js: Added.
2685
2686 2017-04-15  Filip Pizlo  <fpizlo@apple.com>
2687
2688         Optimize SharedArrayBuffer in the DFG+FTL
2689         https://bugs.webkit.org/show_bug.cgi?id=164108
2690
2691         Reviewed by Saam Barati.
2692         
2693         Added a fairly comprehensive test of the intrinsics. This creates a function for each possible
2694         combination of type and operation, and then first uses it nicely and then tries a bunch of
2695         erroneous conditions like OOB.
2696
2697         * stress/SharedArrayBuffer-opt.js: Added.
2698         (string_appeared_here.switch):
2699         (string_appeared_here.str):
2700         (runAtomic):
2701         (shouldFail):
2702         (Symbol):
2703         (string_appeared_here.a.of.arrays.m.of.atomics):
2704         * stress/SharedArrayBuffer.js:
2705
2706 2017-04-19  Mark Lam  <mark.lam@apple.com>
2707
2708         B3StackmapSpecial should handle when stackmap values are not recoverable from a Def'ed arg.
2709         https://bugs.webkit.org/show_bug.cgi?id=170973
2710         <rdar://problem/30318657>
2711
2712         Reviewed by Filip Pizlo.
2713
2714         * stress/regress-170973.js: Added.
2715
2716 2017-04-19  JF Bastien  <jfbastien@apple.com>
2717
2718         WebAssembly: limit slow memories
2719         https://bugs.webkit.org/show_bug.cgi?id=170825
2720
2721         Reviewed by Saam Barati.
2722
2723         * wasm.yaml:
2724         * wasm/stress/oom.js: Added.
2725         (try.true.WebAssemblyMemoryMode):
2726         (catch):
2727
2728 2017-04-19  JF Bastien  <jfbastien@apple.com>
2729
2730         WebAssembly: don't expose any WebAssembly JS object if JIT is off
2731         https://bugs.webkit.org/show_bug.cgi?id=170782
2732
2733         Reviewed by Saam Barati.
2734
2735         * wasm.yaml:
2736         * wasm/noJIT/noJIT.js: Added.
2737
2738 2017-04-18  Mark Lam  <mark.lam@apple.com>
2739
2740         r211670 broke double to int conversion.
2741         https://bugs.webkit.org/show_bug.cgi?id=170961
2742         <rdar://problem/31687696>
2743
2744         Reviewed by Yusuke Suzuki.
2745
2746         * microbenchmarks/double-to-int32.js: Added.
2747         * stress/to-int32-sensible2.js: Added.
2748
2749 2017-04-18  Oleksandr Skachkov  <gskachkov@gmail.com>
2750
2751         [ES6]. Implement Annex B.3.3 function hoisting rules for eval
2752         https://bugs.webkit.org/show_bug.cgi?id=163208
2753
2754         Reviewed by Saam Barati.
2755
2756         * stress/eval-func-decl-block-scoping-reassign.js: Added.
2757         (assert):
2758         (throw.new.Error.f):
2759         (throw.new.Error):
2760         * stress/eval-func-decl-block-with-remove.js: Added.
2761         (assert):
2762         (foo.boo):
2763         (foo):
2764         * stress/eval-func-decl-block-with-var-and-remove.js: Added.
2765         (assert):
2766         (assertThrow):
2767         (foo):
2768         (boo):
2769         (joo):
2770         (koo):
2771         * stress/eval-func-decl-block-with-var-sinthesize.js: Added.
2772         (assert):
2773         (assertThrow):
2774         (foo):
2775         (boo):
2776         (hoo):
2777         (joo):
2778         (koo):
2779         * stress/eval-func-decl-in-block-scope-and-bind-to-top-eval-scope.js: Added.
2780         * stress/eval-func-decl-in-eval-within-block-with-let.js: Added.
2781         (assert):
2782         (assertThrow):
2783         (foo):
2784         (boo):
2785         (goo):
2786         * stress/eval-func-decl-in-eval-within-with-scope.js: Added.
2787         (assert):
2788         (assertThrow):
2789         (foo):
2790         (boo):
2791         (boo.let.val2):
2792         (boo.let.val3):
2793         * stress/eval-func-decl-in-frozen-global.js: Added.
2794         (assert):
2795         (assertThrow):
2796         (throw.new.Error):
2797         (Object.freeze):
2798         * stress/eval-func-decl-in-global-of-eval.js: Added.
2799         (assert):
2800         (assertThrow):
2801         (bar):
2802         (baz):
2803         (foobar):
2804         * stress/eval-func-decl-in-global.js: Added.
2805         (assert):
2806         (assertThrow):
2807         * stress/eval-func-decl-in-if.js: Added.
2808         (assert):
2809         * stress/eval-func-decl-within-eval-with-reassign-to-var.js: Added.
2810         (assert):
2811         (assertThrow):
2812         (foo):
2813         (boo):
2814         (foobar):
2815         (hoo):
2816         (joo):
2817         (koo):
2818         (loo):
2819         * stress/eval-func-decl-within-eval-without-reassign-to-let.js: Added.
2820         (assert):
2821         (assertThrow):
2822         (foo):
2823         (boo):
2824         (goo):
2825         * stress/variable-under-tdz-eval-tricky.js:
2826         (assert):
2827         * test262.yaml:
2828
2829 2017-04-18  Filip Pizlo  <fpizlo@apple.com>
2830
2831         wasm/function-tests/memory-multiagent times out sometimes
2832         https://bugs.webkit.org/show_bug.cgi?id=170958
2833
2834         Reviewed by Keith Miller.
2835         
2836         Add the ability to skip tests easily. Skip the test.
2837
2838         * wasm.yaml:
2839         * wasm/function-tests/memory-multiagent.js:
2840
2841 2017-04-18  Saam Barati  <sbarati@apple.com>
2842
2843         Follow up to debug build stack overflow in test after r215453
2844
2845         Rubber stamped by Mark Lam.
2846
2847         * stress/call-apply-exponential-bytecode-size.js: Decrease the call
2848         size to prevent stack overflow errors on debug builds.
2849
2850 2017-04-18  Yusuke Suzuki  <utatane.tea@gmail.com>
2851
2852         [DFG] Convert ValueAdd(Int32, String) => MakeRope(ToString(Int32), String)
2853         https://bugs.webkit.org/show_bug.cgi?id=170943
2854
2855         Reviewed by Geoffrey Garen.
2856
2857         * microbenchmarks/number-to-string-with-add-empty.js: Added.
2858         (toStringLeft):
2859         (toStringRight):
2860         * microbenchmarks/number-to-string-with-add-in-loop.js: Added.
2861         (toStringLeft):
2862         (toStringRight):
2863         * microbenchmarks/number-to-string-with-add.js: Added.
2864         (toStringLeft):
2865         (toStringRight):
2866         * stress/number-to-string-with-add.js: Added.
2867         (shouldBe):
2868         (toStringRight):
2869         (toStringLeftEmpty):
2870         (toStringRightEmpty):
2871
2872 2017-04-18  Yusuke Suzuki  <utatane.tea@gmail.com>
2873
2874         [DFG] Drop unknown use of CheckCell's child2 to work ObjectAllocationSinking for Array iterator object
2875         https://bugs.webkit.org/show_bug.cgi?id=170940
2876
2877         Reviewed by Filip Pizlo.
2878
2879         * microbenchmarks/for-of-array.js: Added.
2880         (fn):
2881
2882 2017-04-17  Saam Barati  <sbarati@apple.com>
2883
2884         BytecodeGenerator ".call" and ".apply" is exponential in nesting depth
2885         https://bugs.webkit.org/show_bug.cgi?id=139847
2886         <rdar://problem/19321122>
2887
2888         Reviewed by Oliver Hunt.
2889
2890         * stress/call-apply-exponential-bytecode-size.js: Added.
2891         (assert):
2892         (const.inc):
2893         (const.inc2):
2894         (bar):
2895         (randomApplyOrCall):
2896         (baz):
2897         (jaz):
2898         (haz):
2899         (foo):
2900
2901 2017-04-17  Mark Lam  <mark.lam@apple.com>
2902
2903         JSArray::appendMemcpy() needs to handle copying from Undecided indexing type too.
2904         https://bugs.webkit.org/show_bug.cgi?id=170896
2905         <rdar://problem/31651319>
2906
2907         Reviewed by JF Bastien and Keith Miller.
2908
2909         * stress/regress-170896.js: Added.
2910
2911 2017-04-16  Joseph Pecoraro  <pecoraro@apple.com>
2912
2913         test262: test262/test/built-ins/Object/prototype/toLocaleString/primitive_this_value.js
2914         https://bugs.webkit.org/show_bug.cgi?id=170882
2915
2916         Reviewed by Saam Barati.
2917
2918         * test262.yaml:
2919
2920 2017-04-16  Joseph Pecoraro  <pecoraro@apple.com>
2921
2922         test262: test262/test/built-ins/isNaN/toprimitive-not-callable-throws.js
2923         https://bugs.webkit.org/show_bug.cgi?id=170888
2924
2925         Reviewed by Saam Barati.
2926
2927         * stress/computed-accessor.js:
2928         * stress/eval-in-arrow-function.js:
2929         * stress/rest-elements.js:
2930         * stress/string-object-define-own-property.js:
2931         Remove unused shouldThrow.
2932
2933         * stress/symbol-toprimitive-errors.js: Added.
2934         Check for ToPrimitive TypeErrors.
2935
2936         * test262.yaml:
2937
2938 2017-04-16  Joseph Pecoraro  <pecoraro@apple.com>
2939
2940         test262: test262/test/language/expressions/tagged-template/template-object.js
2941         https://bugs.webkit.org/show_bug.cgi?id=170878
2942
2943         Reviewed by Saam Barati.
2944
2945         * stress/array-length-not-writable.js: Added.
2946         (assert):
2947         * test262.yaml:
2948
2949 2017-04-16  Joseph Pecoraro  <pecoraro@apple.com>
2950
2951         test262: test262/test/built-ins/Object/getOwnPropertyNames/15.2.3.4-4-44.js
2952         https://bugs.webkit.org/show_bug.cgi?id=170879
2953
2954         Reviewed by Saam Barati.
2955
2956         * ChakraCore/test/es5/enumerable.baseline-jsc:
2957         * test262.yaml:
2958
2959 2017-04-16  Joseph Pecoraro  <pecoraro@apple.com>
2960
2961         test262: test262/test/built-ins/Date/prototype/Symbol.toPrimitive/name.js
2962         https://bugs.webkit.org/show_bug.cgi?id=170884
2963
2964         Reviewed by Yusuke Suzuki.
2965
2966         * test262.yaml:
2967
2968 2017-04-15  Joseph Pecoraro  <pecoraro@apple.com>
2969
2970         test262: test262/test/language/global-code/new.target-arrow.js
2971         https://bugs.webkit.org/show_bug.cgi?id=170872
2972
2973         Reviewed by Saam Barati.
2974
2975         * stress/async-arrow-functions-lexical-new.target-binding.js:
2976         (shouldThrowAsync): Deleted.
2977         (shouldThrowAsync.async): Deleted.
2978         This code should have thrown a SyntaxError. Instead it was throwing
2979         a ReferenceError for the internal @newTargetLocal variable.
2980
2981         * stress/new-target-syntax-errors.js:
2982         Cover the arrow function in global code cases.
2983
2984         * ChakraCore.yaml:
2985         * ChakraCore/test/es6/globalLambdaNewTargetSyntaxError.baseline-jsc:
2986         We now pass with an expected SyntaxError. Our error message is different.
2987
2988         * test262.yaml:
2989
2990 2017-04-14  Saam Barati  <sbarati@apple.com>
2991
2992         ParseInt intrinsic in DFG backend doesn't properly flush its operands
2993         https://bugs.webkit.org/show_bug.cgi?id=170865
2994
2995         Reviewed by Mark Lam and Geoffrey Garen.
2996
2997         * stress/parse-int-intrinsic-dfg-backend-flush.js: Added.
2998         (assert):
2999         (foo):
3000
3001 2017-04-14  Caitlin Potter  <caitp@igalia.com>
3002
3003         [JSC] use ExpressionErrorClassifier for AwaitExpression operand
3004         https://bugs.webkit.org/show_bug.cgi?id=170844
3005
3006         Reviewed by Saam Barati.
3007
3008         * stress/regress-170732.js: Added.
3009
3010 2017-04-14  Oleksandr Skachkov  <gskachkov@gmail.com>
3011
3012         Safari 10.1 JSON.parse returns incorrect object for numeric keys with decimal values
3013         https://bugs.webkit.org/show_bug.cgi?id=170442
3014
3015         Reviewed by Yusuke Suzuki.
3016
3017         * stress/object-number-properties.js:
3018
3019 2017-04-13  Yusuke Suzuki  <utatane.tea@gmail.com>
3020
3021         [JSC] Date.parse should accept wider range of representation
3022         https://bugs.webkit.org/show_bug.cgi?id=170720
3023
3024         Reviewed by Darin Adler.
3025
3026         * stress/date-relaxed.js: Added.
3027         (shouldBe):
3028         (throw.new.Error):
3029
3030 2017-04-13  Mark Lam  <mark.lam@apple.com>
3031
3032         Should use flushDirect() when flushing the scopeRegister due to needsScopeRegister().
3033         https://bugs.webkit.org/show_bug.cgi?id=170661
3034         <rdar://problem/31579046>
3035
3036         Reviewed by Filip Pizlo.
3037
3038         * stress/regress-170661.js: Added.
3039
3040 2017-04-13  JF Bastien  <jfbastien@apple.com>
3041
3042         WebAssembly: manage memory better
3043         https://bugs.webkit.org/show_bug.cgi?id=170628
3044
3045         Reviewed by Keith Miller, Michael Saboff.
3046
3047         * wasm/Builder.js: move a helper out so tests can use it
3048         (export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):
3049         * wasm/WASM.js: add utilities to classify opcodes
3050         (export.opcodes):
3051         (export.const.memoryAccessInfo.op.const.sign):
3052         * wasm/function-tests/memory-access-past-4gib.js: Added. This test
3053         fails before this patch.
3054         (const.op.of.WASM.opcodes):
3055         * wasm/function-tests/memory-many.js: Added. This simple tests
3056         just shouldn't crash. In verbose mode it's useful at determining
3057         if the GC falls behind or not.
3058         * wasm/function-tests/memory-multiagent.js: Added. Emulate postMessage.
3059         (const.startAgents.numAgentsToStart.a.agent.receiveBroadcast):
3060         (const.startAgents.numAgentsToStart.a.write.const.idx.Math.random):
3061         (const.broadcastToAgents):
3062         * wasm/js-api/extension-MemoryMode.js: verbose logging.
3063         (testMemoryNoMax):
3064         (testMemory):
3065         (testInstanceNoMemory):
3066         (testInstanceNoMax):
3067         (testInstance):
3068         * wasm/utilities.js: move a utility here.
3069
3070 2017-04-12  Joseph Pecoraro  <pecoraro@apple.com>
3071
3072         test262: test262/test/built-ins/NativeErrors/EvalError/proto.js
3073         https://bugs.webkit.org/show_bug.cgi?id=170668
3074
3075         Reviewed by Keith Miller.
3076
3077         * ChakraCore.yaml:
3078         * ChakraCore/test/Lib/error.baseline-jsc: Added.
3079         This test does not match the spec.
3080
3081         * test262.yaml:
3082
3083 2017-04-12  Joseph Pecoraro  <pecoraro@apple.com>
3084
3085         test262: test262/test/language/literals/regexp/u-dec-esc.js
3086         https://bugs.webkit.org/show_bug.cgi?id=170687
3087
3088         Reviewed by Michael Saboff.
3089
3090         * test262.yaml:
3091
3092 2017-04-11  Michael Saboff  <msaboff@apple.com>
3093
3094         Implement Object.isFrozen() and Object.isSealed() per ECMA spec
3095         https://bugs.webkit.org/show_bug.cgi?id=170753
3096
3097         Reviewed by Mark Lam.
3098
3099         Added JSC baseline and enabled defineIndexProperty test.
3100
3101         Note that JSC differs from Chakra in that a JSC doesn't use indexed
3102         properties placed on the Array prototype when sorting the indexed 
3103         properties of an Object.  This is behavior is considered undefined
3104         in the standard.
3105
3106         * ChakraCore.yaml:
3107         * ChakraCore/test/es5/defineIndexProperty.baseline-jsc: Added.
3108
3109 2017-04-11  Joseph Pecoraro  <pecoraro@apple.com>
3110
3111         test262: test262/test/annexB/language/comments/multi-line-html-close.js
3112         https://bugs.webkit.org/show_bug.cgi?id=170648
3113
3114         Reviewed by Keith Miller.
3115
3116         * test262.yaml:
3117
3118 2017-04-11  Joseph Pecoraro  <pecoraro@apple.com>
3119
3120         test262: test262/test/built-ins/Array/S15.4.3_A2.2.js
3121         https://bugs.webkit.org/show_bug.cgi?id=170652
3122
3123         Reviewed by Michael Saboff.
3124
3125         * stress/native-constructors-length.js: Added.
3126         (assertLengthDescriptorAttributes):
3127         Add a quick test for the length properties of all native constructors.
3128
3129         * ChakraCore/test/es5/enumerable.baseline-jsc:
3130         Rebaseline expectations for this test.
3131
3132         * test262.yaml:
3133
3134 2017-04-10  Keith Miller  <keith_miller@apple.com>
3135
3136         WebAssembly: Update spec tests
3137         https://bugs.webkit.org/show_bug.cgi?id=170683
3138
3139         Rubber-stamped by JF Bastien.
3140
3141         * wasm.yaml:
3142         * wasm/spec-tests/br_table.wast.js:
3143         * wasm/spec-tests/conversions.wast.js: Removed.
3144         * wasm/spec-tests/f32_bitwise.wast.js: Added.
3145         * wasm/spec-tests/f32_cmp.wast.js:
3146         * wasm/spec-tests/f64_bitwise.wast.js: Added.
3147         * wasm/spec-tests/f64_cmp.wast.js:
3148         * wasm/spec-tests/i32.wast.js:
3149         * wasm/spec-tests/i64.wast.js:
3150         * wasm/spec-tests/int_exprs.wast.js:
3151         * wasm/spec-tests/memory.wast.js:
3152
3153 2017-04-09  Joseph Pecoraro  <pecoraro@apple.com>
3154
3155         test262: test262/test/annexB/language/expressions/object/__proto__-fn-name.js
3156         https://bugs.webkit.org/show_bug.cgi?id=170650
3157
3158         Reviewed by Saam Barati.
3159
3160         * stress/inferred-names.js:
3161         * test262.yaml:
3162
3163 2017-04-09  Joseph Pecoraro  <pecoraro@apple.com>
3164
3165         test262: test262/test/annexB/language/literals/regexp/identity-escape.js
3166         https://bugs.webkit.org/show_bug.cgi?id=170651
3167
3168         Reviewed by Saam Barati.
3169
3170         * test262.yaml:
3171
3172 2017-04-07  Michael Saboff  <msaboff@apple.com>
3173
3174         Fix and enable ChakraCore/test/es6/ES6Function_bugs.js after r215072
3175         https://bugs.webkit.org/show_bug.cgi?id=170580
3176
3177         Reviewed by JF Bastien.
3178
3179         Commented out subtest that expects defineProperty("length") to a getter on a
3180         sealed function shouldn't throw.
3181
3182         * ChakraCore.yaml:
3183         * ChakraCore/test/es6/ES6Function_bugs.js:
3184
3185 2017-04-06  Michael Saboff  <msaboff@apple.com>
3186
3187         Cannot Object.seal() or Object.freeze() global "this"
3188         https://bugs.webkit.org/show_bug.cgi?id=170549
3189
3190         Reviewed by Mark Lam.
3191
3192         Enabled failing tests fixed by the corresponding code change:
3193             ChakraCore/test/LetConst/delete.js
3194             ChakraCore/test/LetConst/dop.js
3195             ChakraCore/test/LetConst/dop1.js
3196
3197         * ChakraCore.yaml:
3198         * ChakraCore/test/LetConst/dop.baseline-jsc: Added JSC specific expected output.
3199         * ChakraCore/test/LetConst/dop1.baseline-jsc: Added JSC specific expected output.
3200
3201 2017-04-05  Joseph Pecoraro  <pecoraro@apple.com>
3202
3203         test262: ES2017 test progressions need updated expectations (arguments.caller removed)
3204         https://bugs.webkit.org/show_bug.cgi?id=170536
3205
3206         Reviewed by Mark Lam.
3207
3208         * test262.yaml:
3209         After r208867 the tests are out of date and are now expected to fail.
3210
3211 2017-04-05  Joseph Pecoraro  <pecoraro@apple.com>
3212
3213         test262: Final rebaseline of existing tests, a few tests have started failing
3214         https://bugs.webkit.org/show_bug.cgi?id=170538
3215
3216         Reviewed by Mark Lam.
3217
3218         * test262.yaml:
3219         These tests started failing a while ago. Mark them as legitmate failures.
3220
3221 2017-04-05  Joseph Pecoraro  <pecoraro@apple.com>
3222
3223         test262: Rebaseline expectations for now passing tests
3224         https://bugs.webkit.org/show_bug.cgi?id=170532
3225
3226         Reviewed by Ryosuke Niwa.
3227
3228         * test262.yaml:
3229         Update expectations for tests we are now passing.
3230
3231 2017-04-05  Joseph Pecoraro  <pecoraro@apple.com>
3232
3233         test262: module test progressions need updated expectations (@@iterator changes)
3234         https://bugs.webkit.org/show_bug.cgi?id=170535
3235
3236         Reviewed by Saam Barati.
3237
3238         * test262.yaml:
3239         After r212430 the tests are out of date and are now expected to fail.
3240
3241 2017-04-05  Michael Saboff  <msaboff@apple.com>
3242
3243         Unreviewed rollout of r214642 as the test still intermittently fails.
3244
3245         Disabled ChakraCore/test/fieldopts/objtypespec-newobj-invalidation.1.js.
3246
3247         * ChakraCore.yaml:
3248
3249 2017-04-05  Michael Saboff  <msaboff@apple.com>
3250
3251         REGRESSION (Safari 10.1): Inserting elements into arrays fails when array contains very large numbers
3252         https://bugs.webkit.org/show_bug.cgi?id=170264
3253         <rdar://problem/31375593>
3254
3255         Rubber-stamped by Saam Barati.
3256
3257         The original bug was fixed in: https://trac.webkit.org/changeset/214714
3258         I'm just adding another test for good measure.
3259
3260         * stress/double-array-to-array-storage.js: Added.
3261         (assert):
3262
3263 2017-04-05  Keith Miller  <keith_miller@apple.com>
3264
3265         WebAssembly: We shouldn't need to pin size registers if we have a fast memory.
3266         https://bugs.webkit.org/show_bug.cgi?id=170504
3267
3268         Reviewed by Mark Lam.
3269
3270         * wasm/function-tests/trap-after-cross-instance-call.js: Added.
3271         (b.new.WebAssembly.Memory):
3272         (importObject.foo.bar):
3273         (wasmFrameCountFromError):
3274
3275 2017-03-16  Yusuke Suzuki  <utatane.tea@gmail.com>
3276
3277         [JSC] Generate TemplateObjects at linking time
3278         https://bugs.webkit.org/show_bug.cgi?id=169743
3279
3280         Reviewed by Keith Miller.
3281
3282         * stress/template-string-tags-eval.js: Added.
3283         (shouldBe):
3284         (tag):
3285
3286 2017-04-04  Mark Lam  <mark.lam@apple.com>
3287
3288         On ARM64, DFG::SpeculativeJIT::compileArithMod() failed to ensure result is of DataFormatInt32.
3289         https://bugs.webkit.org/show_bug.cgi?id=170473
3290         <rdar://problem/29912391>
3291
3292         Reviewed by Saam Barati.
3293
3294         * stress/regress-170473.js: Added.
3295
3296 2017-04-03  Mark Lam  <mark.lam@apple.com>
3297
3298         Fix incorrect capacity delta calculation reported in SparseArrayValueMap::add().
3299         https://bugs.webkit.org/show_bug.cgi?id=170412
3300         <rdar://problem/29697336>
3301
3302         Reviewed by Filip Pizlo.
3303
3304         * stress/regress-170412.js: Added.
3305
3306 2017-04-03  Keith Miller  <keith_miller@apple.com>
3307
3308         WebAssembly: Update spec tests
3309         https://bugs.webkit.org/show_bug.cgi?id=170361
3310
3311         Rubber-stamped by Saam Barati.
3312
3313         Update the spec tests to run tests generated by the newer spec
3314         test builder wasm-spec/test/builder.py. This patch also adds the
3315         necessary harness code in spec-harness.js so we can run the tests.
3316
3317         * wasm.yaml:
3318         * wasm/import-spec-tests.rb:
3319         * wasm/spec-harness.js: Added.
3320         (import.string_appeared_here.then):
3321         (test):
3322         (promise_test):
3323         (let.assert_unreached):
3324         * wasm/spec-harness/index.js: Added.
3325         (let.testNum):
3326         (assertThrows):
3327         (_assert):
3328         (ValueResult):
3329         (ErrorResult):
3330         (Result.prototype.isError):
3331         (binary):
3332         (module):
3333         (uniqueTest):
3334         (assert_invalid):
3335         (assert_soft_invalid):
3336         (register):
3337         (call):
3338         (get instance):
3339         (exports):
3340         (run):
3341         (assert_unlinkable):
3342         (assert_uninstantiable):
3343         (assert_trap):
3344         (try.f):
3345         (catch):
3346         (assert_exhaustion):
3347         (assert_return):
3348         (assert_return_nan):
3349         * wasm/spec-harness/testharness.css: Added.
3350         (html):
3351         (#log .warning,):
3352         (#log .error,):
3353         (section#summary):
3354         (table#results):
3355         (table#results th:first-child,):
3356         (table#results th:last-child,):
3357         (table#results.assertions th:last-child,):
3358         (table#results th):
3359         (table#results td):
3360         (tr.pass > td:first-child):
3361         (tr.fail > td:first-child):
3362         (tr.timeout > td:first-child):
3363         (tr.notrun > td:first-child):
3364         (.pass > td:first-child, .fail > td:first-child, .timeout > td:first-child, .notrun > td:first-child):
3365         (table#results span):
3366         (table#results span.expected):
3367         (table#results span.actual):
3368         (span.ok):
3369         (tr.error):
3370         (span.timeout):
3371         (span.ok, span.timeout, span.error):
3372         * wasm/spec-harness/testharness.js: Added.
3373         (WindowTestEnvironment):
3374         (WindowTestEnvironment.prototype._dispatch):
3375         (WindowTestEnvironment.prototype._forEach_windows):
3376         (WindowTestEnvironment.prototype.on_tests_ready):
3377         (WindowTestEnvironment.prototype.setup_messages):
3378         (WindowTestEnvironment.prototype.next_default_test_name):
3379         (WindowTestEnvironment.prototype.on_new_harness_properties):
3380         (WindowTestEnvironment.prototype.add_on_loaded_callback):
3381         (WindowTestEnvironment.prototype.test_timeout):
3382         (WindowTestEnvironment.prototype.global_scope):
3383         (WorkerTestEnvironment):
3384         (WorkerTestEnvironment.prototype._dispatch):
3385         (WorkerTestEnvironment.prototype._add_message_port):
3386         (WorkerTestEnvironment.prototype.next_default_test_name):
3387         (WorkerTestEnvironment.prototype.on_new_harness_properties):
3388         (WorkerTestEnvironment.prototype.on_tests_ready):
3389         (WorkerTestEnvironment.prototype.add_on_loaded_callback):
3390         (WorkerTestEnvironment.prototype.test_timeout):
3391         (WorkerTestEnvironment.prototype.global_scope):
3392         (DedicatedWorkerTestEnvironment):
3393         (DedicatedWorkerTestEnvironment.prototype.on_tests_ready):
3394         (SharedWorkerTestEnvironment):
3395         (SharedWorkerTestEnvironment.prototype.on_tests_ready):
3396         (ServiceWorkerTestEnvironment):
3397         (ServiceWorkerTestEnvironment.prototype.add_on_loaded_callback):
3398         (create_test_environment):
3399         (is_shared_worker):
3400         (is_service_worker):
3401         (test):
3402         (async_test):
3403         (promise_test):
3404         (this.wait_for):
3405         (EventWatcher):
3406         (setup):
3407         (done):
3408         (generate_tests):
3409         (step_timeout):
3410         (truncate):
3411         (is_node):
3412         (format_value):
3413         * wasm/spec-harness/testharnessreport.js: Added.
3414         * wasm/spec-harness/wasm-constants.js: Added.
3415         (bytes):
3416         (bytesWithHeader):
3417         (makeSig):
3418         (makeSig_v_x):
3419         (makeSig_v_xx):
3420         (makeSig_r_v):
3421         (makeSig_r_x):
3422         (makeSig_r_xx):
3423         (assertTraps):
3424         (assertWasmThrows):
3425         * wasm/spec-harness/wasm-module-builder.js: Added.
3426         (Binary.prototype.emit_u8):
3427         (Binary.prototype.emit_u16):
3428         (Binary.prototype.emit_u32):
3429         (Binary.prototype.emit_u32v):
3430         (Binary.prototype.emit_bytes):
3431         (Binary.prototype.emit_string):
3432         (Binary.prototype.emit_header):
3433         (Binary.prototype.emit_section):
3434         (Binary):
3435         (WasmFunctionBuilder):
3436         (WasmFunctionBuilder.prototype.exportAs):
3437         (WasmFunctionBuilder.prototype.exportFunc):
3438         (WasmFunctionBuilder.prototype.addBody):
3439         (WasmFunctionBuilder.prototype.addLocals):
3440         (WasmFunctionBuilder.prototype.end):
3441         (WasmGlobalBuilder):
3442         (WasmGlobalBuilder.prototype.exportAs):
3443         (WasmModuleBuilder):
3444         (WasmModuleBuilder.prototype.addStart):
3445         (WasmModuleBuilder.prototype.addMemory):
3446         (WasmModuleBuilder.prototype.addExplicitSection):
3447         (WasmModuleBuilder.prototype.addType):
3448         (WasmModuleBuilder.prototype.addGlobal):
3449         (WasmModuleBuilder.prototype.addFunction):
3450         (WasmModuleBuilder.prototype.addImport):
3451         (WasmModuleBuilder.prototype.addImportedGlobal):
3452         (WasmModuleBuilder.prototype.addImportedMemory):
3453         (WasmModuleBuilder.prototype.addImportedTable):
3454         (WasmModuleBuilder.prototype.addExport):
3455         (WasmModuleBuilder.prototype.addExportOfKind):
3456         (WasmModuleBuilder.prototype.addDataSegment):
3457         (WasmModuleBuilder.prototype.exportMemoryAs):
3458         (WasmModuleBuilder.prototype.addFunctionTableInit):
3459         (WasmModuleBuilder.prototype.appendToTable):
3460         (WasmModuleBuilder.prototype.setFunctionTableLength):
3461         (WasmModuleBuilder.prototype.toArray):
3462         (WasmModuleBuilder.prototype.toBuffer):
3463         (WasmModuleBuilder.prototype.instantiate):
3464         * wasm/spec-harness/wast.js: Added.
3465         (normalize):
3466         (require.else._registry.name):
3467         (require):
3468         (add_hex_char):
3469         (add_char):
3470         (string_with):
3471         (list_of_opt):
3472         (break_bytes.f):
3473         (break_bytes):
3474         (f):
3475         (decls):
3476         (func_type):
3477         (limits):
3478         (global_type):
3479         (testop):
3480         (relop):
3481         (unop):
3482         (binop):
3483         (cvtop):
3484         (oper):
3485         (mem_size):
3486         (extension):
3487         (memop):
3488         (storeop):
3489         (var):
3490         (constop):
3491         (instr.else.switch.case.0.f):
3492         (instr.else.switch.case.1.f.1):
3493         (instr.else.switch.case.2.f.2):
3494         (instr):
3495         (func_with_name):
3496         (func):
3497         (start):
3498         (table):
3499         (memory):
3500         (segment):
3501         (elems):
3502         (data):
3503         (typedef):
3504         (import_kind):
3505         (import):
3506         (export_kind):
3507         (export):
3508         (var_opt):
3509         (is_func_import):
3510         (is_table_import):
3511         (is_memory_import):
3512         (is_global_import):
3513         (f.1):
3514         (f.2):
3515         (f.3):
3516         (module_with_var_opt):
3517         (module_):
3518         (literal):
3519         (definition):
3520         (access):
3521         (action):
3522         (script):
3523         (_registry.string_appeared_here):
3524         (init):
3525         (make_matrix):
3526         (copy):
3527         (append):
3528         (sub):
3529         (fill):
3530         (blit):
3531         (iter):
3532         (map):
3533         (iteri):
3534         (mapi):
3535         (to_list):
3536         (list_length):
3537         (of_list):
3538         (fold_left):
3539         (fold_right):
3540         (maxson):
3541         (trickle):
3542         (bubble):
3543         (trickleup):
3544         (sort):
3545         (merge):
3546         (isortto):
3547         (sortto):
3548         (stable_sort):
3549         (import_type):
3550         (export_type):
3551         (dims.n):
3552         (dims.d.i):
3553         (dims):
3554         (map_file):
3555         (create):
3556         (of_array):
3557         (slice_left):
3558         (slice_right):
3559         (slice_left_1):
3560         (slice_right_1):
3561         (slice_left_2):
3562         (slice_right_2):
3563         (array1_of_genarray):
3564         (array2_of_genarray):
3565         (array3_of_genarray):
3566         (reshape_1):
3567         (reshape_2):
3568         (reshape_3):
3569         (reshape):
3570         (__):
3571         (contents):
3572         (to_bytes):
3573         (nth):
3574         (length):
3575         (clear):
3576         (reset):
3577         (resize):
3578         (add_substring):
3579         (add_subbytes):
3580         (add_string):
3581         (add_bytes):
3582         (add_buffer):
3583         (add_channel):
3584         (output_buffer):
3585         (closing):
3586         (advance_to_closing):
3587         (advance_to_non_alpha):
3588         (find_ident):
3589         (add_substitute):
3590         (make):
3591         (to_string):
3592         (of_string):
3593         (sub_string):
3594         (extend):
3595         (blit_string):
3596         (concat):
3597         (cat):
3598         (is_space):
3599         (trim):
3600         (escaped):
3601         (uppercase):
3602         (lowercase):
3603         (apply1):
3604         (capitalize):
3605         (uncapitalize):
3606         (index_rec):
3607         (index):
3608         (index_from):
3609         (rindex_rec):
3610         (rindex):
3611         (rindex_from):
3612         (contains_from):
3613         (contains):
3614         (rcontains_from):
3615         (caml_array_sub):
3616         (len):
3617         (caml_array_concat):
3618         (caml_make_vect):
3619         (caml_array_blit):
3620         (get if):
3621         (caml_set_oo_id):
3622         (get_id):
3623         (caml_int32_float_of_bits):
3624         (caml_int32_bits_of_float):
3625         (caml_classify_float):
3626         (caml_modf_float):
3627         (caml_ldexp_float):
3628         (caml_frexp_float):
3629         (caml_copysign_float):
3630         (caml_expm1_float):
3631         (caml_hypot_float):
3632         (caml_log10_float):
3633         (caml_failwith):
3634         (parse_digit):
3635         (int_of_string_base):
3636         (parse_sign_and_base):
3637         (caml_int_of_string.aux):
3638         (caml_int_of_string):
3639         (caml_int64_of_string.aux):
3640         (caml_int64_of_string):
3641         (int_of_base):
3642         (parse_format):
3643         (finish_formatting):
3644         (caml_format_int):
3645         (caml_int64_format):
3646         (caml_format_float):
3647         (float_of_string):
3648         (div):
3649         (mod_):
3650         (caml_bswap16):
3651         (caml_int32_bswap):
3652         (imul):
3653         (neg_signed):
3654         (not):
3655         (eq):
3656         (neg):
3657         (lsl_):
3658         (lsr_):
3659         (asr_):
3660         (is_zero):
3661         (mul):
3662         (swap):
3663         (xor):
3664         (or_):
3665         (and_):
3666         (ge):
3667         (lt):
3668         (gt):
3669         (le):
3670         (to_float):
3671         (of_float):
3672         (div_mod):
3673         (compare):
3674         (of_int32):
3675         (to_int32):
3676         (to_hex.aux):
3677         (to_hex):
3678         (discard_sign):
3679         (float_of_bits):
3680         (bits_of_float.to_nat):
3681         (bits_of_float):
3682         (get64):
3683         (erase_rel):
3684         (concat_fmtty):
3685         (concat_fmt):
3686         (create_char_set):
3687         (add_in_char_set):
3688         (rev_char_set):
3689         (is_in_char_set):
3690         (prec_of_prec_opt):
3691         (param_format_of_ignored_format):
3692         (buffer_check_size):
3693         (buffer_add_char):
3694         (buffer_add_string):
3695         (buffer_contents):
3696         (char_of_iconv):
3697         (char_of_fconv):
3698         (char_of_counter):
3699         (print_char):
3700         (set while.set var):
3701         (set while.set else):
3702         (set var):
3703         (set else):
3704         (set print_char):
3705         (set if):
3706         (bprint_padty):
3707         (bprint_ignored_flag):
3708         (bprint_pad_opt):
3709         (bprint_padding):
3710         (bprint_precision):
3711         (bprint_iconv_flag):
3712         (bprint_int_fmt):
3713         (bprint_altint_fmt):
3714         (bprint_fconv_flag):
3715         (bprint_float_fmt):
3716         (string_of_formatting_lit):
3717         (string_of_formatting_gen):
3718         (bprint_char_literal):
3719         (bprint_string_literal):
3720         (bprint_fmtty):
3721         (int_of_custom_arity):
3722         (bprint_fmt):
3723         (string_of_fmt):
3724         (symm):
3725         (fmtty_rel_det):
3726         (trans):
3727         (fmtty_of_formatting_gen):
3728         (fmtty_of_fmt):
3729         (fmtty_of_custom):
3730         (fmtty_of_padding_fmtty):
3731         (fmtty_of_precision_fmtty):
3732         (type_padding):
3733         (type_padprec):
3734         (type_ignored_param_one):
3735         (type_format_gen):
3736         (type_ignored_format_substitution):
3737         (type_format):
3738         (recast):
3739         (fix_padding):
3740         (fix_int_precision):
3741         (string_to_caml_string):
3742         (format_of_iconv):
3743         (format_of_aconv):
3744         (format_of_fconv):
3745         (convert_int):
3746         (convert_int32):
3747         (convert_nativeint):
3748         (convert_int64):
3749         (else.is_valid):
3750         (convert_float):
3751         (format_caml_char):
3752         (string_of_fmtty):
3753         (else.switch.):
3754         (else.switch.k.prime):
3755         (else.switch.else.):
3756         (else.switch.else.k.prime.1):
3757         (make_printf):
3758         (make_from_fmtty):
3759         (make_invalid_arg):
3760         (make_string_padding):
3761         (make_int_padding_precision):
3762         (make_custom):
3763         (output_acc):
3764         (bufput_acc):
3765         (strput_acc):
3766         (failwith_message.k):
3767         (failwith_message):
3768         (open_box_of_string.else.invalid_box):
3769         (open_box_of_string.else.parse_spaces):