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