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