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