a20b84bfe7ec586d58f833e8e88dec333e45fb67
[WebKit-https.git] / JSTests / ChangeLog
1 2016-11-11  Saam Barati  <sbarati@apple.com>
2
3         We should have a more concise way of determining when we're varargs calling a function using rest parameters
4         https://bugs.webkit.org/show_bug.cgi?id=164258
5
6         Reviewed by Yusuke Suzuki.
7
8         * microbenchmarks/call-using-spread.js: Added.
9         (bar):
10         (foo):
11         * microbenchmarks/spread-large-array.js: Added.
12         (foo):
13         (arrays.push):
14         * microbenchmarks/spread-small-array.js: Added.
15         (foo):
16         * stress/spread-array-iterator-watchpoint-2.js: Added.
17         (foo):
18         (arrayIterator.next):
19         * stress/spread-array-iterator-watchpoint.js: Added.
20         (foo):
21         (Array.prototype.Symbol.iterator):
22         * stress/spread-non-array.js: Added.
23         (assert):
24         (foo):
25         (let.customIterator.Symbol.iterator):
26         (bar):
27
28 2016-11-11  Keith Miller  <keith_miller@apple.com>
29
30         Relocate wasm tests and actually add them to the test runner
31         https://bugs.webkit.org/show_bug.cgi?id=164668
32
33         Reviewed by Yusuke Suzuki.
34
35         This moves the Wasm tests from their current location down a level.
36         Without relocating, the tests cannot properly be run by the wasm test runner.
37
38         * wasm.yaml:
39         * wasm/Builder.js: Fix typos, yay lazy synatx checking!
40         * wasm/LowLevelBinary.js: Fix typos, yay lazy synatx checking!
41         (export.default.LowLevelBinary.prototype.get return):
42         * wasm/function-tests/add-12.js: Renamed from JSTests/wasm/js-api/function-tests/add-12.js.
43         * wasm/function-tests/br-if-loop-less-than.js: Renamed from JSTests/wasm/js-api/function-tests/br-if-loop-less-than.js.
44         * wasm/function-tests/brTableAsIf.js: Renamed from JSTests/wasm/js-api/function-tests/brTableAsIf.js.
45         * wasm/function-tests/brTableManyValues.js: Renamed from JSTests/wasm/js-api/function-tests/brTableManyValues.js.
46         * wasm/function-tests/brTableWithLoop.js: Renamed from JSTests/wasm/js-api/function-tests/brTableWithLoop.js.
47         * wasm/function-tests/dumb-eq-if-then-else.js: Renamed from JSTests/wasm/js-api/function-tests/dumb-eq-if-then-else.js.
48         * wasm/function-tests/dumb-less-than-fallthrough.js: Renamed from JSTests/wasm/js-api/function-tests/dumb-less-than-fallthrough.js.
49         * wasm/function-tests/dumb-less-than-ite.js: Renamed from JSTests/wasm/js-api/function-tests/dumb-less-than-ite.js.
50         * wasm/function-tests/factorial.js: Renamed from JSTests/wasm/js-api/function-tests/factorial.js.
51         * wasm/function-tests/float-sub.js: Renamed from JSTests/wasm/js-api/function-tests/float-sub.js.
52         * wasm/function-tests/i32-load.js: Renamed from JSTests/wasm/js-api/function-tests/i32-load.js.
53         * wasm/function-tests/i32-load8-s.js: Renamed from JSTests/wasm/js-api/function-tests/i32-load8-s.js.
54         * wasm/function-tests/if-then-else-fallthrough.js: Renamed from JSTests/wasm/js-api/function-tests/if-then-else-fallthrough.js.
55         * wasm/function-tests/if-then-fallthrough.js: Renamed from JSTests/wasm/js-api/function-tests/if-then-fallthrough.js.
56         * wasm/function-tests/loop-mult.js: Renamed from JSTests/wasm/js-api/function-tests/loop-mult.js.
57         * wasm/function-tests/loop-sum.js: Renamed from JSTests/wasm/js-api/function-tests/loop-sum.js.
58         * wasm/function-tests/ret5.js: Renamed from JSTests/wasm/js-api/function-tests/ret5.js.
59         * wasm/self-test/test_BuilderJSON.js: Rebasline
60
61 2016-11-11  Keith Miller  <keith_miller@apple.com>
62
63         Move Wasm tests to JS
64         https://bugs.webkit.org/show_bug.cgi?id=164611
65
66         Reviewed by Geoffrey Garen.
67
68         This patch translates most of the tests from testWasm.cpp to the JS testing api. Most of the
69         ommited tests were earliest tests, which tested trivial things, like adding two
70         constants. Some tests are ommited for other reasons, however. These are:
71
72         1) Tests using I64 since the testing api does not yet know how to handle 64-bit numbers.  2)
73         Tests that would validate the memory of the module once wasm was done with it since that's
74         not really possible in JS.
75
76         In order to make such a translation easier this patch also adds some features to the JS
77         testing api:
78
79         1) Blocks can now be done lexically by adding a lambda as the last argument of the block
80         opcode. For example one can do:
81             ...
82             .Block("i32", b => b.I32Const(1) )
83
84         and the nested lambda will automatically have an end attached.
85
86         2) The JS testing api can now handle inline signature types.
87
88         3) Relocate some code to make it easier to follow and prevent 44 space indentation.
89
90         4) Rename varuint/varint to varuint32/varint32, this lets them be directly called from the
91         wasm.json without being remapped.
92
93         5) Add support for Memory and Function sections to the Builder.
94
95         6) Add support for local variables.
96
97         On the JSC side, we needed to expose a new function to validate the compiled wasm code
98         behaves the way we expect. At least until the JS Wasm API is finished. The new validation
99         function, testWasmModuleFunctions, takes an array buffer containing the wasm binary, the
100         number of functions in the blob and tests for each of those functions.
101
102         * wasm/Builder.js:
103         (const._maybeRegisterType):
104         (const): Deleted.
105         (switch.typeof): Deleted.
106         * wasm/Builder_WebAssemblyBinary.js:
107         (const.emitters.Type):
108         (const.emitters.Import):
109         (const.emitters.Function):
110         (const.emitters.Memory):
111         (const.emitters.Code):
112         (export.const.Binary):
113         * wasm/LowLevelBinary.js:
114         (export.default.LowLevelBinary.prototype.get return):
115         (export.default.LowLevelBinary.prototype.varuint32):
116         (export.default.LowLevelBinary.prototype.varint32):
117         (export.default.LowLevelBinary.prototype.varuint1):
118         (export.default.LowLevelBinary.prototype.varint7):
119         (export.default.LowLevelBinary.prototype.varuint7):
120         (export.default.LowLevelBinary.prototype.inline_signature_type):
121         (export.default.LowLevelBinary.prototype.string):
122         (export.default.LowLevelBinary.prototype.getVaruint32):
123         (export.default.LowLevelBinary.prototype.getVarint32):
124         (export.default.LowLevelBinary.prototype.getVaruint7):
125         (export.default.LowLevelBinary.prototype.getString):
126         (export.default.LowLevelBinary):
127         (export.default.LowLevelBinary.prototype.varuint): Deleted.
128         (export.default.LowLevelBinary.prototype.varint): Deleted.
129         (export.default.LowLevelBinary.prototype.getVaruint): Deleted.
130         (export.default.LowLevelBinary.prototype.getVarint): Deleted.
131         * wasm/js-api/test_old_tests.js: Added.
132         (ret5):
133         (brTableWithLoop):
134         (brTableManyValues):
135         (run.brTableManyValues.brTableAsIf):
136         (ifThenFallthrough):
137         (ifThenElseFallthrough):
138         (dumbLessThanFallthrough):
139         (run.dumbLessThanFallthrough.floatSub):
140         (run.floatSub.add12):
141         (run.add12.factorial):
142         (i32load):
143         (run.i32load.i32load8s):
144         (run.i32load8s.dumbEqIfThenElse):
145         (run.dumbEqIfThenElse.dumbEqIfThenElse):
146         (run.dumbEqIfThenElse.dumbLessThanIfThenElse):
147         (run.dumbLessThanIfThenElse.loopSum):
148         (run.loopSum.loopMult):
149         (brIfLoopLessThan):
150         (run.brIfLoopLessThan.run):
151         * wasm/self-test/test_LowLevelBinary_varint32.js: Renamed from JSTests/wasm/self-test/test_LowLevelBinary_varint.js.
152         * wasm/self-test/test_LowLevelBinary_varuint32.js: Renamed from JSTests/wasm/self-test/test_LowLevelBinary_varuint.js.
153
154         * wasm/Builder.js:
155         (const._maybeRegisterType):
156         (const): Deleted.
157         (switch.typeof): Deleted.
158         * wasm/Builder_WebAssemblyBinary.js:
159         (const.emitters.Type):
160         (const.emitters.Import):
161         (const.emitters.Function):
162         (const.emitters.Memory):
163         (const.emitters.Code):
164         (export.const.Binary):
165         * wasm/LowLevelBinary.js:
166         (export.default.LowLevelBinary.prototype.get return):
167         (export.default.LowLevelBinary.prototype.varuint32):
168         (export.default.LowLevelBinary.prototype.varint32):
169         (export.default.LowLevelBinary.prototype.varuint1):
170         (export.default.LowLevelBinary.prototype.varint7):
171         (export.default.LowLevelBinary.prototype.varuint7):
172         (export.default.LowLevelBinary.prototype.inline_signature_type):
173         (export.default.LowLevelBinary.prototype.string):
174         (export.default.LowLevelBinary.prototype.getVaruint32):
175         (export.default.LowLevelBinary.prototype.getVarint32):
176         (export.default.LowLevelBinary.prototype.getVaruint7):
177         (export.default.LowLevelBinary.prototype.getString):
178         (export.default.LowLevelBinary):
179         (export.default.LowLevelBinary.prototype.varuint): Deleted.
180         (export.default.LowLevelBinary.prototype.varint): Deleted.
181         (export.default.LowLevelBinary.prototype.getVaruint): Deleted.
182         (export.default.LowLevelBinary.prototype.getVarint): Deleted.
183         * wasm/js-api/function-tests/add-12.js: Added.
184         * wasm/js-api/function-tests/br-if-loop-less-than.js: Added.
185         * wasm/js-api/function-tests/brTableAsIf.js: Added.
186         * wasm/js-api/function-tests/brTableManyValues.js: Added.
187         * wasm/js-api/function-tests/brTableWithLoop.js: Added.
188         * wasm/js-api/function-tests/dumb-eq-if-then-else.js: Added.
189         * wasm/js-api/function-tests/dumb-less-than-fallthrough.js: Added.
190         * wasm/js-api/function-tests/dumb-less-than-ite.js: Added.
191         * wasm/js-api/function-tests/factorial.js: Added.
192         * wasm/js-api/function-tests/float-sub.js: Added.
193         * wasm/js-api/function-tests/i32-load.js: Added.
194         * wasm/js-api/function-tests/i32-load8-s.js: Added.
195         * wasm/js-api/function-tests/if-then-else-fallthrough.js: Added.
196         * wasm/js-api/function-tests/if-then-fallthrough.js: Added.
197         * wasm/js-api/function-tests/loop-mult.js: Added.
198         * wasm/js-api/function-tests/loop-sum.js: Added.
199         * wasm/js-api/function-tests/ret5.js: Added.
200         * wasm/self-test/test_LowLevelBinary_varint32.js: Renamed from JSTests/wasm/self-test/test_LowLevelBinary_varint.js.
201         * wasm/self-test/test_LowLevelBinary_varuint32.js: Renamed from JSTests/wasm/self-test/test_LowLevelBinary_varuint.js.
202
203 2016-11-11  Saam Barati  <sbarati@apple.com>
204
205         We recursively grab a lock in the DFGBytecodeParser causing us to deadlock
206         https://bugs.webkit.org/show_bug.cgi?id=164650
207
208         Reviewed by Geoffrey Garen.
209
210         * stress/dont-dead-lock-put-by-val-as-put-by-id.js: Added.
211         (ident):
212         (let.o.set foo):
213         (foo):
214
215 2016-11-11  Chris Dumez  <cdumez@apple.com>
216
217         Unreviewed, rolling out r208584.
218
219         Seems to have regressed Speedometer by 1% on Mac
220
221         Reverted changeset:
222
223         "We should have a more concise way of determining when we're
224         varargs calling a function using rest parameters"
225         https://bugs.webkit.org/show_bug.cgi?id=164258
226         http://trac.webkit.org/changeset/208584
227
228 2016-11-11  Chris Dumez  <cdumez@apple.com>
229
230         Unreviewed, rolling out r208117 and r208160.
231
232         Regressed Speedometer by >1.5%
233
234         Reverted changesets:
235
236         "We should have a way of profiling when a get_by_id is pure
237         and to emit a PureGetById in the DFG/FTL"
238         https://bugs.webkit.org/show_bug.cgi?id=163305
239         http://trac.webkit.org/changeset/208117
240
241         "Debug JSC test microbenchmarks/pure-get-by-id-cse-2.js timing
242         out"
243         https://bugs.webkit.org/show_bug.cgi?id=164227
244         http://trac.webkit.org/changeset/208160
245
246 2016-11-11  Saam Barati  <sbarati@apple.com>
247
248         We should have a more concise way of determining when we're varargs calling a function using rest parameters
249         https://bugs.webkit.org/show_bug.cgi?id=164258
250
251         Reviewed by Yusuke Suzuki.
252
253         * microbenchmarks/call-using-spread.js: Added.
254         (bar):
255         (foo):
256         * microbenchmarks/spread-large-array.js: Added.
257         (foo):
258         (arrays.push):
259         * microbenchmarks/spread-small-array.js: Added.
260         (foo):
261         * stress/spread-array-iterator-watchpoint-2.js: Added.
262         (foo):
263         (arrayIterator.next):
264         * stress/spread-array-iterator-watchpoint.js: Added.
265         (foo):
266         (Array.prototype.Symbol.iterator):
267         * stress/spread-non-array.js: Added.
268         (assert):
269         (foo):
270         (let.customIterator.Symbol.iterator):
271         (bar):
272
273 2016-11-10  Mark Lam  <mark.lam@apple.com>
274
275         Fix broken have-a-bad-time-with-arguments.js test.
276         https://bugs.webkit.org/show_bug.cgi?id=164626
277
278         Reviewed by Filip Pizlo.
279
280         But also saved a copy of the broken one as broken-have-a-bad-time-with-arguments-for-gc-testing.js
281         because coincidentally, it stresses the GC in ways that help reveal bugs.
282
283         * stress/broken-have-a-bad-time-with-arguments-for-gc-testing.js: Added.
284         (testFunction):
285         (warmupFunction):
286         (let.argsDeclIndex.in.argumentsDecls.let.indexToReturnIndex.in.indicesToReturn.let.insertElementActionIndex.in.insertElementActions.let.tierWarmupCountIndex.in.tierWarmupCounts.let.testArgsIndex.in.testArgsList.catch):
287         * stress/have-a-bad-time-with-arguments.js:
288
289 2016-11-10  JF Bastien  <jfbastien@apple.com>
290
291         ASSERTION FAILED: length > offset encountered with wasm.yaml/wasm/js-api/test_Module.js.default-wasm
292         https://bugs.webkit.org/show_bug.cgi?id=164597
293
294         Reviewed by Keith Miller.
295
296         Trim the array buffer before returning it: it's optimistically
297         over-allocated to avoid growing all the time, but when parsed it
298         can't have extra content.
299
300         * wasm/Builder_WebAssemblyBinary.js:
301         (export.const.Binary):
302         * wasm/LowLevelBinary.js:
303         (export.default.LowLevelBinary.prototype.get return):
304
305 2016-11-10  Joseph Pecoraro  <pecoraro@apple.com>
306
307         test262: DataView / TypedArray methods should throw RangeErrors for negative numbers (ToIndex)
308         https://bugs.webkit.org/show_bug.cgi?id=164450
309
310         Reviewed by Darin Adler.
311
312         * stress/dataview-typedarray-toindex.js: Added.
313         Tests for all cases where ToIndex should be used.
314
315         * test262.yaml:
316         New passing tests.
317
318 2016-11-10  Mark Lam  <mark.lam@apple.com>
319
320         Graph::methodOfGettingAValueProfileFor() should be returning the profile for the operand node.
321         https://bugs.webkit.org/show_bug.cgi?id=164600
322         <rdar://problem/28828676>
323
324         Reviewed by Filip Pizlo.
325
326         * stress/osr-exit-on-op-negate-should-no-fail-assertions.js: Added.
327
328 2016-11-08  Yusuke Suzuki  <utatane.tea@gmail.com>
329
330         [JSC] Avoid cloned arguments allocation in ArrayPrototype methods
331         https://bugs.webkit.org/show_bug.cgi?id=164502
332
333         Reviewed by Saam Barati.
334
335         * stress/argument-intrinsic-basic.js: Added.
336         (shouldBe):
337         (builtin.createBuiltin):
338         * stress/argument-intrinsic-inlining-with-result-escape.js: Added.
339         (shouldBe):
340         (builtin.createBuiltin):
341         (escape):
342         * stress/argument-intrinsic-nested-inlining.js: Added.
343         (shouldBe):
344         (builtin.createBuiltin):
345         (builtinCaller1):
346         (builtinCaller2):
347         (escape):
348         * stress/argument-intrinsic-not-convert-to-get-argument.js: Added.
349         (shouldBe):
350         (builtin.createBuiltin):
351         * stress/argument-intrinsic-with-stack-write.js: Added.
352         (shouldBe):
353         (builtin.createBuiltin):
354
355 2016-11-09  Saam Barati  <sbarati@apple.com>
356
357         Math.min()/Math.max() with no arguments is lowered incorrectly in the BytecodeParser
358         https://bugs.webkit.org/show_bug.cgi?id=164464
359         <rdar://problem/29131452>
360
361         Reviewed by Darin Adler.
362
363         * stress/math-max-min-no-arguments.js: Added.
364         (assert):
365         (min):
366         (max):
367         (test):
368
369 2016-11-09  Saam Barati  <sbarati@apple.com>
370
371         TypeProfiler and running GC collection on another thread don't play nicely with each other
372         https://bugs.webkit.org/show_bug.cgi?id=164441
373         <rdar://problem/29132174>
374
375         Reviewed by Geoffrey Garen.
376
377         * typeProfiler/type-profiler-gc.js: Added.
378         (bar):
379         (foo):
380
381 2016-11-04  Mark Lam  <mark.lam@apple.com>
382
383         Error description code should be able to handle Symbol values.
384         https://bugs.webkit.org/show_bug.cgi?id=164436
385         <rdar://problem/29115583>
386
387         Reviewed by Filip Pizlo and Saam Barati.
388
389         * stress/error-description-on-symbols-should-not-crash.js: Added.
390
391 2016-11-03  Geoffrey Garen  <ggaren@apple.com>
392
393         EvalCodeCache should not give up in strict mode and other cases
394         https://bugs.webkit.org/show_bug.cgi?id=164357
395
396         Reviewed by Michael Saboff.
397
398         * microbenchmarks/eval-cached.js: Added. 45x faster now.
399         * stress/eval-cached.js: Added. Try running the same eval text in a bunch
400         of different scopes and verify that we access the right scope.
401
402 2016-11-04  JF Bastien  <jfbastien@apple.com>
403
404         WebAssembly JS API: implement more sections
405         https://bugs.webkit.org/show_bug.cgi?id=164023
406
407         Reviewed by Keith Miller.
408
409         On the JSC side:
410
411          - Put in parser stubs for all WebAssembly sections.
412          - Parse Import, Export sections.
413          - Use tryReserveCapacity instead of reserve, and bail out of the parser if it fails. This prevents the parser from bringing everything down when faced with a malicious input.
414          - Encapsulate all parsed module information into its own structure, making it easier to pass around (from parser to Plan to Module to Instance).
415          - Create WasmFormat.cpp to hold parsed module information's dtor to avoid including WasmMemory.h needlessly.
416          - parseCode: avoid overflow through function size.
417          - Remove all remainders of polyfill-prototype-1, and update license.
418          - Add missing WasmOps.h and WasmValidateInlines.h auto-generation for cmake build.
419
420         On the Builder.js testing side:
421
422          - Implement Type, Import (function only), Export (function only) sections.
423          - Check section order and uniqueness.
424          - Optionally auto-generate the Type section from subsequent Export / Import / Code entries.
425          - Allow re-exporting an import.
426
427         * wasm/Builder.js: build type, import, and export sections
428         (const._normalizeFunctionSignature):
429         * wasm/Builder_WebAssemblyBinary.js: Added. Forked from Builder.js
430         (const.emitters.Type):
431         (const.emitters.Import):
432         (const.emitters.Function):
433         (const.emitters.Table):
434         (const.emitters.Memory):
435         (const.emitters.Global):
436         (const.emitters.Export):
437         (const.emitters.Start):
438         (const.emitters.Element):
439         (const.emitters.Code):
440         (const.emitters.Data):
441         (export.const.Binary):
442         * wasm/LowLevelBinary.js: Add a few useful outputs
443         (export.default.LowLevelBinary.prototype.varuint1):
444         (export.default.LowLevelBinary.prototype.varint7):
445         * wasm/WASM.js: value type and external kind helpers
446         * wasm/assert.js: array element-wise equality comparison
447         (const._eq):
448         * wasm/js-api/test_Module.js:
449         (ModuleWithImports):
450         * wasm/self-test/test_BuilderJSON.js: many more tests for all the new Builder APIs, and update to some older tests which now require a Type section or rejiggered Function signature
451         (const.assertOpThrows):
452         (SectionsWithSameCustomName):
453         (TwoTypeSections):
454         (EmptyImportSection):
455         (ImportBeforeTypeSections):
456         * wasm/self-test/test_BuilderWebAssembly.js: remove a test which wasn't helpful and is now obsolete
457         (CustomSection):
458
459 2016-11-03  Mark Lam  <mark.lam@apple.com>
460
461         ClonedArguments need to also support haveABadTime mode.
462         https://bugs.webkit.org/show_bug.cgi?id=164200
463         <rdar://problem/27211336>
464
465         Reviewed by Geoffrey Garen.
466
467         * stress/have-a-bad-time-with-arguments.js: Added.
468
469 2016-11-03  Filip Pizlo  <fpizlo@apple.com>
470
471         DFG plays fast and loose with the shadow values of a Phi
472         https://bugs.webkit.org/show_bug.cgi?id=164309
473
474         Reviewed by Saam Barati.
475         
476         This test demonstrates why the DFG needs to recognize the shadow value of a Phi.
477
478         * stress/dfg-ssa-swap.js: Added.
479         (foo):
480
481 2016-11-03  Commit Queue  <commit-queue@webkit.org>
482
483         Unreviewed, rolling out r208364.
484         https://bugs.webkit.org/show_bug.cgi?id=164402
485
486         broke the build (Requested by smfr on #webkit).
487
488         Reverted changeset:
489
490         "DFG plays fast and loose with the shadow values of a Phi"
491         https://bugs.webkit.org/show_bug.cgi?id=164309
492         http://trac.webkit.org/changeset/208364
493
494 2016-11-03  Filip Pizlo  <fpizlo@apple.com>
495
496         DFG plays fast and loose with the shadow values of a Phi
497         https://bugs.webkit.org/show_bug.cgi?id=164309
498
499         Reviewed by Saam Barati.
500         
501         This test demonstrates why the DFG needs to recognize the shadow value of a Phi.
502
503         * stress/dfg-ssa-swap.js: Added.
504         (foo):
505
506 2016-11-03  Saam Barati  <sbarati@apple.com>
507
508         Asking for a value profile prediction should be defensive against not finding a value profile
509         https://bugs.webkit.org/show_bug.cgi?id=164306
510
511         Reviewed by Mark Lam.
512
513         * stress/inlined-tail-call-in-inlined-setter-should-not-crash-when-getting-value-profile.js: Added.
514         (let.o.set foo):
515         (bar):
516
517 2016-11-02  Saam Barati  <sbarati@apple.com>
518
519         Allocation elimination of rest parameter doesn't take into account indexed properties on Array.prototype/Object.prototype
520         https://bugs.webkit.org/show_bug.cgi?id=164301
521
522         Reviewed by Geoffrey Garen.
523
524         * stress/rest-parameter-allocation-elimination-watchpoints-2.js: Added.
525         (assert):
526         (foo):
527         * stress/rest-parameter-allocation-elimination-watchpoints-3.js: Added.
528         (assert):
529         (foo):
530         * stress/rest-parameter-allocation-elimination-watchpoints-4.js: Added.
531         (assert):
532         (foo):
533         * stress/rest-parameter-allocation-elimination-watchpoints-5.js: Added.
534         (assert):
535         (foo):
536         * stress/rest-parameter-allocation-elimination-watchpoints-6.js: Added.
537         (assert):
538         (foo):
539         * stress/rest-parameter-allocation-elimination-watchpoints.js: Added.
540         (assert):
541         (foo):
542
543 2016-11-01  Saam Barati  <sbarati@apple.com>
544
545         We should be able to eliminate rest parameter allocations
546         https://bugs.webkit.org/show_bug.cgi?id=163925
547
548         Reviewed by Filip Pizlo.
549
550         * microbenchmarks/rest-parameter-allocation-elimination.js: Added.
551         (assert):
552         (test1.bar):
553         (test1):
554         (test2.jaz):
555         (test2.jaz2.kaz):
556         (test2.jaz2):
557         (test2):
558         (test3.foo):
559         (test3.baz):
560         (test3.jaz):
561         (test3):
562         (test4.baz):
563         (test4.jaz):
564         (test4):
565         (test5.baz):
566         (test5.jaz):
567         (test5):
568         (test6.baz):
569         (test6.jaz):
570         (test6):
571         (test7.baz):
572         (test7.jaz):
573         (test7.check):
574         (test7):
575         (test8.baz):
576         (test8.jaz):
577         (test8.check):
578         (test8):
579         (test9.baz):
580         (test9.jaz):
581         (test9.check):
582         (test9):
583         (test10.baz):
584         (test10.jaz):
585         (test10):
586         (test11.bar):
587         (test11.foo):
588         (test11.makeArguments):
589         (test11.):
590         (test12):
591         (test12.bar):
592         (test12.foo):
593         (test12.makeArguments):
594         (test12.):
595         (test13.bar):
596         (test13.top):
597         (test13.foo):
598         (test13.makeArguments):
599         (test13.):
600         (test13):
601         (test14.bar):
602         (test14.top):
603         (test14.foo):
604         (test14.makeArguments):
605         (test14.):
606         (test14):
607         (test15.bar):
608         (test15.top):
609         (test15.foo):
610         (test15.makeArguments):
611         (test15.):
612         (test15):
613
614 2016-11-01  Commit Queue  <commit-queue@webkit.org>
615
616         Unreviewed, rolling out r208208 and r208210.
617         https://bugs.webkit.org/show_bug.cgi?id=164276
618
619         This change caused 28 JSC test failures. (Requested by
620         ryanhaddad on #webkit).
621
622         Reverted changesets:
623
624         "We should be able to eliminate rest parameter allocations"
625         https://bugs.webkit.org/show_bug.cgi?id=163925
626         http://trac.webkit.org/changeset/208208
627
628         "Fix the EFL build."
629         http://trac.webkit.org/changeset/208210
630
631 2016-10-31  Filip Pizlo  <fpizlo@apple.com>
632
633         JSC should support SharedArrayBuffer
634         https://bugs.webkit.org/show_bug.cgi?id=163986
635
636         Reviewed by Keith Miller.
637         
638         This adds our own test for the various corner cases of SharedArrayBuffer. This test is meant to
639         check all of the things that don't require concurrency.
640
641         * stress/SharedArrayBuffer.js: Added.
642         (checkAtomics):
643         (shouldFail):
644         (Symbol):
645         (runAtomic):
646
647 2016-10-31  Saam Barati  <sbarati@apple.com>
648
649         We should be able to eliminate rest parameter allocations
650         https://bugs.webkit.org/show_bug.cgi?id=163925
651
652         Reviewed by Filip Pizlo.
653
654         * microbenchmarks/rest-parameter-allocation-elimination.js: Added.
655         (assert):
656         (test1.bar):
657         (test1):
658         (test2.jaz):
659         (test2.jaz2.kaz):
660         (test2.jaz2):
661         (test2):
662         (test3.foo):
663         (test3.baz):
664         (test3.jaz):
665         (test3):
666         (test4.baz):
667         (test4.jaz):
668         (test4):
669         (test5.baz):
670         (test5.jaz):
671         (test5):
672         (test6.baz):
673         (test6.jaz):
674         (test6):
675         (test7.baz):
676         (test7.jaz):
677         (test7.check):
678         (test7):
679         (test8.baz):
680         (test8.jaz):
681         (test8.check):
682         (test8):
683         (test9.baz):
684         (test9.jaz):
685         (test9.check):
686         (test9):
687         (test10.baz):
688         (test10.jaz):
689         (test10):
690         (test11.bar):
691         (test11.foo):
692         (test11.makeArguments):
693         (test11.):
694         (test12):
695         (test12.bar):
696         (test12.foo):
697         (test12.makeArguments):
698         (test12.):
699         (test13.bar):
700         (test13.top):
701         (test13.foo):
702         (test13.makeArguments):
703         (test13.):
704         (test13):
705         (test14.bar):
706         (test14.top):
707         (test14.foo):
708         (test14.makeArguments):
709         (test14.):
710         (test14):
711         (test15.bar):
712         (test15.top):
713         (test15.foo):
714         (test15.makeArguments):
715         (test15.):
716         (test15):
717
718 2016-10-31  Saam Barati  <sbarati@apple.com>
719
720         Debug JSC test microbenchmarks/pure-get-by-id-cse-2.js timing out
721         https://bugs.webkit.org/show_bug.cgi?id=164227
722
723         Unreviewed timeout fix.
724
725         * microbenchmarks/pure-get-by-id-cse-2.js:
726
727 2016-10-31  Keith Miller  <keith_miller@apple.com>
728
729         autogenerated files from wasm.json should be in derived sources.
730         https://bugs.webkit.org/show_bug.cgi?id=164152
731
732         Reviewed by Filip Pizlo.
733
734         Delete generation script since it is no longer used.
735
736         * wasm/generate-wasmops-header.js: Removed.
737
738 2016-10-29  Yusuke Suzuki  <utatane.tea@gmail.com>
739
740         [JSC] JSON.stringify should handle Proxy which is non JSArray but isArray is true
741         https://bugs.webkit.org/show_bug.cgi?id=164123
742
743         Reviewed by Mark Lam.
744
745         * stress/json-stringify-with-non-jsarray-array.js: Added.
746         (shouldBe):
747         (shouldBe.JSON.stringify.new.Proxy):
748
749 2016-10-29  Saam Barati  <sbarati@apple.com>
750
751         We should have a way of profiling when a get_by_id is pure and to emit a PureGetById in the DFG/FTL
752         https://bugs.webkit.org/show_bug.cgi?id=163305
753
754         Reviewed by Keith Miller.
755
756         * microbenchmarks/pure-get-by-id-cse-2.js: Added.
757         (foo):
758         * microbenchmarks/pure-get-by-id-cse.js: Added.
759         (foo):
760         * stress/pure-get-by-id-cse-correctness.js: Added.
761         (assert):
762         (foo):
763         * stress/pure-get-by-id-on-non-object.js: Added.
764         (assert):
765         (foo):
766
767 2016-10-28  Csaba Osztrogonác  <ossy@webkit.org>
768
769         Skip JSTests/microbenchmarks/dense-set.js on memory limited devices
770         https://bugs.webkit.org/show_bug.cgi?id=164128
771
772         Reviewed by Mark Lam.
773
774         * microbenchmarks/dense-set.js:
775
776 2016-10-20  Caitlin Potter  <caitp@igalia.com>
777
778         [JSC] implement runtime for async functions
779         https://bugs.webkit.org/show_bug.cgi?id=163760
780
781         Reviewed by Yusuke Suzuki.
782
783         * stress/async-await-basic.js: Added.
784         (shouldBe):
785         (shouldBeAsync):
786         (shouldThrow):
787         (shouldThrowAsync):
788         (shouldThrowSyntaxError):
789         (let.AsyncFunction.async):
790         (async.asyncFunctionForProto):
791         (Object.getPrototypeOf.async):
792         (Object.getPrototypeOf.async.method):
793         (async):
794         (async.method):
795         (async.asyncNonConstructorDecl):
796         (shouldThrow.new.async):
797         (shouldThrow.new.async.nonConstructor):
798         (async.asyncDecl):
799         (async.f):
800         (MyError):
801         (async.asyncDeclThrower):
802         (shouldThrowAsync.async):
803         (resolveLater):
804         (rejectLater):
805         (async.resumeAfterNormal):
806         (O.async.resumeAfterNormal):
807         (resumeAfterNormalArrow.async):
808         (async.resumeAfterThrow):
809         (O.async.resumeAfterThrow):
810         (resumeAfterThrowArrow.async):
811         (catch):
812         * stress/async-await-module-reserved-word.js: Added.
813         (shouldThrow):
814         (SyntaxError.Canstring_appeared_hereawait.checkModuleSyntaxError.String.raw.await):
815         (checkModuleSyntaxError.String.raw.await):
816         (checkModuleSyntaxError.String.raw.async.await):
817         (SyntaxError.Cannot.declare.named):
818         * stress/async-await-mozilla.js: Added.
819         (shouldBe):
820         (shouldBeAsync):
821         (shouldThrow):
822         (shouldThrowAsync):
823         (assert):
824         (shouldThrowSyntaxError):
825         (mozSemantics.async.empty):
826         (mozSemantics.async.simpleReturn):
827         (mozSemantics.async.simpleAwait):
828         (mozSemantics.async.simpleAwaitAsync):
829         (mozSemantics.async.returnOtherAsync):
830         (mozSemantics.async.simpleThrower):
831         (mozSemantics.async.delegatedThrower):
832         (mozSemantics.async.tryCatch):
833         (mozSemantics.async.tryCatchThrow):
834         (mozSemantics.async.wellFinally):
835         (mozSemantics.async.finallyMayFail):
836         (mozSemantics.async.embedded.async.inner):
837         (mozSemantics.async.embedded):
838         (mozSemantics.async.fib):
839         (mozSemantics.async.isOdd.async.isEven):
840         (mozSemantics.async.isOdd):
841         (mozSemantics.hardcoreFib.async.fib2):
842         (mozSemantics.namedAsyncExpr.async.simple):
843         (mozSemantics.async.executionOrder.async.first):
844         (mozSemantics.async.executionOrder.async.second):
845         (mozSemantics.async.executionOrder.async.third):
846         (mozSemantics.async.executionOrder):
847         (mozSemantics.async.miscellaneous):
848         (mozSemantics.thrower):
849         (mozSemantics.async.defaultArgs):
850         (mozSemantics.shouldThrow):
851         (mozSemantics):
852         (mozMethods.X):
853         (mozMethods.X.prototype.async.getValue):
854         (mozMethods.X.prototype.setValue):
855         (mozMethods.X.prototype.async.increment):
856         (mozMethods.X.prototype.async.getBaseClassName):
857         (mozMethods.X.async.getStaticValue):
858         (mozMethods.Y.prototype.async.getBaseClassName):
859         (mozMethods.Y):
860         (mozFunctionNameInferrence.async.test):
861         (mozSyntaxErrors):
862         * stress/async-await-reserved-word.js: Added.
863         (assert):
864         (shouldThrowSyntaxError):
865         (AsyncFunction.async):
866         * stress/async_arrow_functions_lexical_arguments_binding.js: Added.
867         (shouldBe):
868         (shouldBeAsync):
869         (shouldThrowAsync):
870         (noArgumentsArrow2.async):
871         * stress/async_arrow_functions_lexical_new.target_binding.js: Added.
872         (shouldBe):
873         (shouldBeAsync):
874         (shouldThrowAsync):
875         (C1):
876         (C2):
877         (shouldThrowAsync.async):
878         * stress/async_arrow_functions_lexical_super_binding.js: Added.
879         (shouldBe):
880         (shouldBeAsync):
881         (BaseClass.prototype.baseClassValue):
882         (BaseClass.prototype.get property):
883         (BaseClass):
884         (ChildClass.prototype.asyncSuperProp):
885         (ChildClass.prototype.asyncSuperProp2):
886         (ChildClass):
887         (ChildClass2):
888         * stress/async_arrow_functions_lexical_this_binding.js: Added.
889         (shouldBe):
890         (shouldBeAsync):
891         (d.y):
892
893 2016-10-28  Csaba Osztrogonác  <ossy@webkit.org>
894
895         Skip 2 JS stress tests on memory limited devices
896         https://bugs.webkit.org/show_bug.cgi?id=164125
897
898         Unreviewed quick fix to unbreak JSCOnly ARM bots as soon as possible.
899
900         * stress/joined-strings-should-not-exceed-max-string-length.js:
901         * stress/string-prototype-replace-should-throw-out-of-memory-error-when-using-too-much-memory.js:
902
903 2016-10-27  Caitlin Potter  <caitp@igalia.com>
904
905         [JSC] forbid lexical redeclaration of generator formal parameters
906         https://bugs.webkit.org/show_bug.cgi?id=163930
907
908         Reviewed by Yusuke Suzuki.
909
910         * stress/async-await-syntax.js:
911         * stress/generator-syntax.js:
912         (testSyntaxError.gen):
913         (testSyntaxError.arguments):
914         (testSyntaxError.eval):
915         * test262.yaml:
916
917 2016-10-26  JF Bastien  <jfbastien@apple.com>
918
919         WebAssembly API: implement Instance
920
921         As described in: https://github.com/WebAssembly/design/blob/master/JS.md#webassemblyinstance-objects
922
923          - Take ownership of Wasm::Plan's compilation result when successfully creating a JSWebAssemblyModule object.
924          - Construct a basic Instance with a Module.
925          - Handle second argument (importObject) of WebAssembly.Instance.
926          - Add reference text from the spec to WebAssembly.Module's code.
927          - Expose and test an empty 'exports' ModuleNamespaceObject on WebAssembly.Instance.
928
929         The implementation isn't complete yet: it relies on further work for which I've filed bugs.
930
931         WebAssembly API: implement Instance
932         https://bugs.webkit.org/show_bug.cgi?id=163998
933
934         Reviewed by Keith Miller.
935
936         * wasm/js-api/test_Instance.js: Added.
937         (EmptyModule): use the Builder, create the simplest Module possible, and create an Instance from it
938         * wasm/js-api/test_basic_api.js:
939         (const.c.in.constructorProperties.switch): basic tests of the API
940
941 2016-10-26  Mark Lam  <mark.lam@apple.com>
942
943         JSGenericTypedArrayView::set() should check for exceptions.
944         https://bugs.webkit.org/show_bug.cgi?id=164007
945         <rdar://problem/28853775>
946
947         Reviewed by Filip Pizlo.
948
949         * stress/typed-array-view-set-should-not-crash-on-exception.js: Added.
950
951 2016-10-25  Mark Lam  <mark.lam@apple.com>
952
953         String.prototype.replace() should throw an OutOfMemoryError when using too much memory.
954         https://bugs.webkit.org/show_bug.cgi?id=163996
955         <rdar://problem/28263117>
956
957         Reviewed by Geoffrey Garen.
958
959         * stress/string-prototype-replace-should-throw-out-of-memory-error-when-using-too-much-memory.js: Added.
960
961 2016-10-25  Mark Lam  <mark.lam@apple.com>
962
963         JSStringJoiner::joinedLength() should limit joined string lengths to INT_MAX.
964         https://bugs.webkit.org/show_bug.cgi?id=163937
965         <rdar://problem/28642990>
966
967         Reviewed by Geoffrey Garen.
968
969         * stress/joined-strings-should-not-exceed-max-string-length.js: Added.
970
971 2016-10-25  JF Bastien  <jfbastien@apple.com>
972
973         WebAssembly JS API: simple Module test
974         https://bugs.webkit.org/show_bug.cgi?id=163963
975
976         Reviewed by Filip Pizlo.
977
978         * wasm/LowLevelBinary.js:
979         (export.default.LowLevelBinary.prototype.get return): get the ArrayBuffer
980         (export.default.LowLevelBinary.prototype.hexdump): Deleted.
981         (export.default.LowLevelBinary.prototype._maybeGrow): Deleted.
982         * wasm/js-api/test_Module.js: Added.
983         (EmptyModule): The most basic module possible
984
985 2016-10-25  JF Bastien  <jfbastien@apple.com>
986
987         WebAssembly JS API: implement Module
988
989         This implementation allows us to:
990          - Syncrhonously create a WebAssembly.Module with a typed array.
991          - Creates a compilation plan.
992          - Parse the Module and creates corresponding code.
993          - Throw WebAssembly.CompileError with mildly helpful [*] error messages on
994            failure.
995
996         Consult the API documentation for expected behavior: https://github.com/WebAssembly/design/blob/master/JS.md#webassemblymodule-constructor
997
998         For now the implementation discards the generated code.
999
1000         The next steps will be:
1001          - Expose a Module's exports.
1002          - Implement WebAssembly.Instance, which allows instantiating and running a
1003            compiled Module.
1004          - Beef up the testing infrastructure under JSTests/wasm so that more complex
1005            modules can be created and tested (instead of writing the bits by hand).
1006
1007         This patch also:
1008          - Adds assert.instanceof in assert.js.
1009          - Refactors Wasm::Parser and friends to accept const uint8_t* as well as a
1010            Vector, to avoid copying when invoked synchronously.
1011          - Remove useless Structure from some of the wasm constructors: they're already
1012            on the JSGlobalObject, visited properly and all.
1013          - Fix off-by-one error in parsing: Parser::parseUInt32 failed if the integer
1014            was exactly at end of file.
1015
1016          [*] On error messages while parsing: I filed https://bugs.webkit.org/show_bug.cgi?id=163919
1017
1018         WebAssembly JS API: implement Module
1019         https://bugs.webkit.org/show_bug.cgi?id=163903
1020
1021         Reviewed by Keith Miller.
1022
1023         * wasm/assert.js: use underscore in name, and remove when exporting to avoid clasing with builtin names
1024         (const._notUndef):
1025         (const._isUndef):
1026         (const._eq):
1027         (const._ge):
1028         (const._throws):
1029         * wasm/js-api/test_basic_api.js: test the WebAssembly.Module API
1030         (const.c.in.constructorProperties.switch):
1031
1032 2016-10-25  Keith Miller  <keith_miller@apple.com>
1033
1034         Add trivial Wasm conversion opcodes
1035         https://bugs.webkit.org/show_bug.cgi?id=163950
1036
1037         Reviewed by Filip Pizlo.
1038
1039         This patch differentiates between Wasm opcodes that are trivially mapped to a B3 opcode and
1040         those that are not.  Some of the Wasm opcodes that are currently a non-simple opcode will
1041         become simple as we add B3 opcodes for Wasm operations.  The remaining opcodes will need to
1042         be added via patchpoints in a later patch.
1043
1044         * wasm/generate-wasmops-header.js:
1045         (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.Wasm.inline.bool.isSimple):
1046         * wasm/wasm.json:
1047
1048 2016-10-24  Yusuke Suzuki  <utatane.tea@gmail.com>
1049
1050         Arrow functions with concise bodies cannot return regular expressions
1051         https://bugs.webkit.org/show_bug.cgi?id=163162
1052
1053         Reviewed by Filip Pizlo.
1054
1055         * ChakraCore/test/Operators/instanceof.baseline-jsc:
1056         * ChakraCore/test/Regex/nul_character.baseline-jsc:
1057         * ChakraCore/test/es5/Lex_u3.baseline-jsc:
1058         * stress/parse-regexp-as-token.js: Added.
1059         (shouldBe):
1060
1061 2016-10-24  Keith Miller  <keith_miller@apple.com>
1062
1063         Wasm should support floating point operations.
1064         https://bugs.webkit.org/show_bug.cgi?id=163770
1065
1066         Reviewed by Michael Saboff.
1067
1068         Add appropriate b3op names for floating point wasm bytecodes, where they exist.
1069         Also, fix some WASM => Wasm in WasmOps.h generator script that I missed
1070         the first time I made the change.
1071
1072         * wasm/generate-wasmops-header.js:
1073         (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.template.typename.Int.inline.bool.isValidOpType): Deleted.
1074         (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.BinaryOpType): Deleted.
1075         (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.UnaryOpType): Deleted.
1076         (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.LoadOpType): Deleted.
1077         (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.StoreOpType): Deleted.
1078         (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.undef.CREATE_ENUM_VALUE.inline.bool.isControlOp): Deleted.
1079         * wasm/wasm.json:
1080
1081 2016-10-21  Saam Barati  <sbarati@apple.com>
1082
1083         SpeculativeJIT::compileTryGetById needs to pass in NeedsToSpill along both the cell speculation and untyped speculation path
1084         https://bugs.webkit.org/show_bug.cgi?id=163622
1085
1086         Reviewed by Yusuke Suzuki.
1087
1088         * stress/try-get-by-id-should-spill-registers-dfg.js: Added.
1089         (let.f.createBuiltin):
1090
1091 2016-10-21  Caitlin Potter  <caitp@igalia.com>
1092
1093         [JSC] don't crash when arguments to `new Function()` produce unexpected AST
1094         https://bugs.webkit.org/show_bug.cgi?id=163748
1095
1096         Reviewed by Mark Lam.
1097
1098         * stress/regress-163748.js: Added.
1099         (assert):
1100         (shouldThrowSyntaxError):
1101         (GeneratorFunction):
1102
1103 2016-10-20  Keith Miller  <keith_miller@apple.com>
1104
1105         Add support for WASM calls
1106         https://bugs.webkit.org/show_bug.cgi?id=161727
1107
1108         Reviewed by Filip Pizlo and Michael Saboff.
1109
1110         Add members of the Call category to the WASMOps special group.
1111
1112         * wasm/generate-wasmops-header.js:
1113
1114 2016-10-20  Yusuke Suzuki  <utatane.tea@gmail.com>
1115
1116         [JSC] Drop isEnvironmentRecord type info flag and use JSType information instead
1117         https://bugs.webkit.org/show_bug.cgi?id=163761
1118
1119         Reviewed by Keith Miller.
1120
1121         * modules/string-prototype-module-scope.js: Added.
1122         (shouldBe):
1123         (catch):
1124         (refer):
1125         * stress/string-prototype-scopes-global-lexical-environment-strict.js: Added.
1126         (shouldBe):
1127         (catch):
1128         * stress/string-prototype-scopes-global-lexical-environment.js: Added.
1129         (shouldBe):
1130         (catch):
1131         * stress/string-prototype-scopes-strict.js: Added.
1132         (shouldBe):
1133         (catch):
1134         (try.refer):
1135         (refer):
1136         * stress/string-prototype-scopes.js: Added.
1137         (shouldBe):
1138         (catch):
1139         (try.refer):
1140         (refer):
1141         (object.toString):
1142         (with):
1143
1144 2016-10-20  JF Bastien  <jfbastien@apple.com>
1145
1146         WebAssembly API: implement exception constructors properly
1147
1148          - Rename WebAssemblyObject to JSWebAssembly for consistency.
1149          - WebAssembly object now has its own prototype: add WebAssemblyPrototype, and
1150            use it to register JSWebAssembly's function properties through auto-generated
1151            .lut.h, instead of manually.
1152          - The error constructors used to throw (e.g. `new WebAssembly.CompileError()`).
1153          - Register WebAssembly's constructors from the global object, and hold a
1154            reference to their structure and prototype so that invoking the constructor
1155            can use the structure directly from the global object.
1156          - Add a prototype base field to global object creation. Previous ones all had
1157            Object's prototype as their base, but WebAssembly's error constructors have
1158            Error as their base.
1159          - Test for the error object's correctness.
1160          - Add missing #if ENABLE(WEBASSEMBLY)
1161
1162         WebAssembly API: implement exception constructors properly
1163         https://bugs.webkit.org/show_bug.cgi?id=163699
1164
1165         Reviewed by Keith Miller.
1166
1167         * wasm/js-api/test_basic_api.js:
1168         (const.c.in.constructorProperties): more tests
1169
1170 2016-10-20  Caitlin Potter  <caitp@igalia.com>
1171
1172         [JSC] disallow references to `await` in AsyncFunction formal parameters
1173         https://bugs.webkit.org/show_bug.cgi?id=163694
1174
1175         Reviewed by Saam Barati.
1176
1177         * stress/async-await-syntax.js:
1178
1179 2016-10-20  Keith Miller  <keith_miller@apple.com>
1180
1181         Invalid assertion in arguments elimination
1182         https://bugs.webkit.org/show_bug.cgi?id=163740
1183         <rdar://problem/27911462>
1184
1185         Reviewed by Michael Saboff.
1186
1187         * stress/direct-arguments-osr-entry.js: Added.
1188         (foo.):
1189         (foo):
1190
1191 2016-10-20  Caitlin Potter  <caitp@igalia.com>
1192
1193         [JSC] throw TypeError when constructing dynamically created JSGeneratorFunction
1194         https://bugs.webkit.org/show_bug.cgi?id=163714
1195
1196         Reviewed by Mark Lam.
1197
1198         Add missing test coverage that dynamically created
1199         JSGeneratorFunctions can not be constructed.
1200
1201         * stress/generator-function-constructor.js:
1202         (shouldThrow):
1203
1204 2016-10-19  JF Bastien  <jfbastien@apple.com>
1205
1206         JavaScript WebAssembly API: baby steps
1207
1208          - Expand WebAssembly constructors into their own files. This requires a lot of
1209            boilerplate, as well as adding the .lut.h files. All of the
1210            JSWebAssembly*.{h,cpp}, as well as Constructor and Prototype files, are
1211            currently the same between the 4 specified WebAssembly constructors. It'll be
1212            easy to implement individual functions on constructed objects as per the
1213            spec, and have each of these files diverge. The error constructors are also
1214            similar, except that their instance derives from ErrorInstance.
1215          - Use constructor macro when initializing the global object.
1216          - Dramatically improve testing of the WebAssembly API by checking for
1217            properties specified in the spec [*].
1218          - Clean up assert.js' exception testing.
1219          - Fix a copy-paste bug in wasm.json: floating-point const return values were
1220            swapped.
1221
1222         [*] https://github.com/WebAssembly/design/blob/master/JS.md
1223
1224         Implement more of the JavaScript WebAssembly API
1225         https://bugs.webkit.org/show_bug.cgi?id=163571
1226
1227         Reviewed by Keith Miller.
1228
1229         * wasm/assert.js:
1230         (export.const.isUndef): add this useful helper
1231         (export.const.throws): fold other throw checks into this one, and check message as well
1232         * wasm/js-api/test_basic_api.js:
1233         (const.checkOwnPropertyDescriptor): check own property descriptor follows the spec
1234         * wasm/self-test/test_BuilderJSON.js:
1235         (const.assertOpThrows): use new assert API
1236         (CheckedOpcodeArgumentsTooMany): ditto
1237         (CheckedOpcodeArgumentsNotEnough): ditto
1238         (CallInvalid): ditto
1239         (I32ConstInvalid): ditto
1240         (F32ConstInvalid): ditto (and this caugth the JSON copy-paste bug)
1241         (F64ConstInvalid): ditto
1242         * wasm/self-test/test_LowLevelBinary_varint.js: use new assert API
1243         * wasm/self-test/test_LowLevelBinary_varuint.js: use new assert API
1244         * wasm/utilities.js: add "global" object, used in basic API test (to access global.WebAssembly).
1245         * wasm/wasm.json: fix copy-paste
1246
1247 2016-10-19  Caitlin Potter  <caitp@igalia.com>
1248
1249         [JSC] forbid "use strict" directive in generator functions with non-simple parameters
1250         https://bugs.webkit.org/show_bug.cgi?id=163683
1251
1252         Reviewed by Geoffrey Garen.
1253
1254         Update various generator*-non-simple-param.js tests to be passing.
1255
1256         * test262.yaml:
1257
1258 2016-10-18  Mark Lam  <mark.lam@apple.com>
1259
1260         Invoking Object.prototype.__proto__ accessors directly should throw a TypeError.
1261         https://bugs.webkit.org/show_bug.cgi?id=154377
1262         <rdar://problem/27330808>
1263
1264         Reviewed by Filip Pizlo and Saam Barati.
1265
1266         * stress/object-prototype-proto-accessors-should-throw-on-undefined-this.js: Added.
1267
1268 2016-10-18  Keith Miller  <keith_miller@apple.com>
1269
1270         GetByVal to GetById conversion in the DFG is incorrect for getters with control flow
1271         https://bugs.webkit.org/show_bug.cgi?id=163629
1272
1273         Reviewed by Yusuke Suzuki.
1274
1275         * stress/get-by-val-to-id-with-getter.js: Added.
1276         (foo):
1277         (o.get hello):
1278
1279 2016-10-15  Filip Pizlo  <fpizlo@apple.com>
1280
1281         DFG and FTL should be able to use DirectCall ICs when they proved the callee or its executable
1282         https://bugs.webkit.org/show_bug.cgi?id=163371
1283
1284         Reviewed by Geoffrey Garen and Saam Barati.
1285         
1286         Add microbenchmarks for all of the cases that this patch optimizes.
1287
1288         * microbenchmarks/direct-call-arity-mismatch.js: Added.
1289         (foo):
1290         (bar):
1291         * microbenchmarks/direct-call.js: Added.
1292         (foo):
1293         (bar):
1294         * microbenchmarks/direct-construct-arity-mismatch.js: Added.
1295         (Foo):
1296         (bar):
1297         * microbenchmarks/direct-construct.js: Added.
1298         (Foo):
1299         (bar):
1300         * microbenchmarks/direct-tail-call-arity-mismatch.js: Added.
1301         (foo):
1302         (bar):
1303         * microbenchmarks/direct-tail-call-inlined-caller-arity-mismatch.js: Added.
1304         (foo):
1305         (bar):
1306         (baz):
1307         * microbenchmarks/direct-tail-call-inlined-caller.js: Added.
1308         (foo):
1309         (bar):
1310         (baz):
1311         * microbenchmarks/direct-tail-call.js: Added.
1312         (foo):
1313         (bar):
1314
1315 2016-10-18  Caitlin Potter  <caitp@igalia.com>
1316
1317         [JSC] ES6 Method functions should not have prototype
1318         https://bugs.webkit.org/show_bug.cgi?id=162530
1319
1320         Reviewed by Saam Barati.
1321
1322         Fix test262 expectations about MethodDefinitions
1323
1324         * ChakraCore/test/strict/05.arguments_sm.baseline-jsc:
1325         * stress/reflect-set.js:
1326         * test262.yaml:
1327
1328 2016-10-17  Keith Miller  <keith_miller@apple.com>
1329
1330         Add support for WASM Memory.
1331         https://bugs.webkit.org/show_bug.cgi?id=161710
1332
1333         Reviewed by Geoffrey Garen.
1334
1335         Add store and load opcodes to wasm.json. Additionally, add new
1336         enums for those opcodes in the generator.
1337
1338         * stress/wasm/generate-wasmops-header.js:
1339         (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.LoadOpType):
1340         (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.StoreOpType):
1341
1342 2016-10-17  Saam Barati  <sbarati@apple.com>
1343
1344         Add more tests for the double->String conversion in ValueAdd constant folding
1345         https://bugs.webkit.org/show_bug.cgi?id=163517
1346
1347         Reviewed by Yusuke Suzuki.
1348
1349         * microbenchmarks/string-add-constant-folding.js:
1350         (test):
1351
1352 2016-10-17  JF Bastien  <jfbastien@apple.com>
1353
1354         WebAssembly JS API: implement basic stub
1355
1356         Implement the global WebAssembly JavaScript object, and its constructor +
1357         function properties as described in:
1358           https://github.com/WebAssembly/design/blob/master/JS.md
1359
1360         These don't do anything at the moment, the parent bug will take care of adding
1361         more functionality and associated tests.
1362
1363         WebAssembly JS API: implement basic stub
1364         https://bugs.webkit.org/show_bug.cgi?id=163404
1365
1366         Reviewed by Keith Miller.
1367
1368         * wasm.yaml:
1369         * wasm/js-api/test_basic_api.js: Added.
1370         (const.f.of.functionProperties.WebAssembly.f.undefined.throw.new.Error.Couldn.const.c.of.constructorProperties.WebAssembly.c.undefined.throw.new.Error.Couldn):
1371         (const.c.of.constructorProperties.catch):
1372
1373 2016-10-17  Yusuke Suzuki  <utatane.tea@gmail.com>
1374
1375         [DOMJIT] Use DOMJIT::Patchpoint in IC
1376         https://bugs.webkit.org/show_bug.cgi?id=163223
1377
1378         Reviewed by Saam Barati.
1379
1380         * stress/domjit-exception-ic.js: Added.
1381         (shouldBe):
1382         (access):
1383         * stress/domjit-exception.js: Added.
1384         (shouldBe):
1385         (access):
1386         * stress/domjit-getter-complex-with-incorrect-object.js: Added.
1387         (shouldThrow):
1388         (access):
1389         (i.shouldThrow):
1390         * stress/domjit-getter-complex.js: Added.
1391         (shouldBe):
1392         (access):
1393         * stress/domjit-getter-try-catch-getter-as-get-by-id-register-restoration.js: Added.
1394         (assert):
1395         (bar):
1396         (foo):
1397
1398 2016-10-15  Saam Barati  <sbarati@apple.com>
1399
1400         Assertion failed under operationToLowerCase with a rope with zero length
1401         https://bugs.webkit.org/show_bug.cgi?id=163314
1402
1403         Reviewed by Mark Lam.
1404
1405         * stress/to-lower-case-intrinsic-on-empty-rope.js: Added.
1406         (assert):
1407         (returnRope.helper):
1408         (returnRope):
1409         (lower):
1410
1411 2016-10-14  Benjamin Poulain  <bpoulain@apple.com>
1412
1413         [JSC] op_negate should with any type
1414         https://bugs.webkit.org/show_bug.cgi?id=162587
1415
1416         Reviewed by Saam Barati.
1417
1418         * stress/arith-abs-to-arith-negate-range-optimizaton.js: Added.
1419         Cover OSR Exits when converting Math.abs() into ArithNegate.
1420
1421         * stress/arith-negate-on-various-types.js: Added.
1422         Cover ArithNegate with all types.
1423
1424 2016-10-14  JF Bastien  <jfbastien@apple.com>
1425
1426         Basic WebAssembly testing
1427
1428         Create a small DSL in JavaScript which can build WebAssembly binary modules based on the JSON description of the format as described in:
1429         https://github.com/WebAssembly/design/blob/master/BinaryEncoding.md
1430
1431         This DSL can then be used to write small text description of valid and invalid WebAssembly binaries, making testing the JSC implementation much easier.
1432
1433         Details and example in README.md.
1434
1435         Basic WebAssembly testing
1436         https://bugs.webkit.org/show_bug.cgi?id=163267
1437
1438         Reviewed by Keith Miller.
1439
1440         * stress/wasm/wasm.json: Removed.
1441         * wasm.yaml: Added.
1442         * wasm/Builder.js: Added.
1443         (const._isValidValue):
1444         (const._BuildWebAssemblyBinary):
1445         (export.default.Builder):
1446         (export.default.Builder.prototype.setChecked):
1447         (export.default.Builder.prototype.setPreamble):
1448         (export.default.Builder.prototype._registerSectionBuilders.switch.case.string_appeared_here.this.section):
1449         (export.default.Builder.prototype._registerSectionBuilders.this.Unknown):
1450         (export.default.Builder.prototype._registerSectionBuilders):
1451         (export.default.Builder.prototype._addSection):
1452         (export.default.Builder.prototype.optimize):
1453         (export.default.Builder.prototype.json):
1454         (export.default.Builder.prototype.AsmJS):
1455         (export.default.Builder.prototype.WebAssembly):
1456         * wasm/LowLevelBinary.js: Added.
1457         (const._getterRangeCheck):
1458         (const._hexdump):
1459         (export.default.LowLevelBinary):
1460         (export.default.LowLevelBinary.prototype.newPatchable):
1461         (export.default.LowLevelBinary.prototype.hexdump):
1462         (export.default.LowLevelBinary.prototype._maybeGrow):
1463         (export.default.LowLevelBinary.prototype._push8):
1464         (export.default.LowLevelBinary.prototype.uint8):
1465         (export.default.LowLevelBinary.prototype.uint16):
1466         (export.default.LowLevelBinary.prototype.uint32):
1467         (export.default.LowLevelBinary.prototype.varuint):
1468         (export.default.LowLevelBinary.prototype.varint):
1469         (export.default.LowLevelBinary.prototype.varuint7):
1470         (export.default.LowLevelBinary.prototype.string):
1471         (export.default.LowLevelBinary.prototype.getSize):
1472         (export.default.LowLevelBinary.prototype.getUint8):
1473         (export.default.LowLevelBinary.prototype.getUint16):
1474         (export.default.LowLevelBinary.prototype.getUint32):
1475         (export.default.LowLevelBinary.prototype.getVaruint):
1476         (export.default.LowLevelBinary.prototype.getVarint):
1477         (export.default.LowLevelBinary.prototype.getVaruint7):
1478         (export.default.LowLevelBinary.prototype.getString):
1479         (PatchableLowLevelBinary):
1480         (PatchableLowLevelBinary.prototype._push8):
1481         (PatchableLowLevelBinary.prototype.apply):
1482         * wasm/README.md: Added.
1483         * wasm/WASM.js: Added.
1484         * wasm/assert.js: Added.
1485         (export.const.notUndef):
1486         (export.const.eq):
1487         (export.const.ge):
1488         (export.const.throwsError):
1489         (export.const.throwsRangeError):
1490         * wasm/generate-wasmops-header.js: Renamed from JSTests/stress/wasm/generate-wasmops-header.js.
1491         * wasm/self-test/test_BuilderJSON.js: Added.
1492         (const.assertOpThrows):
1493         (EmptyModule):
1494         (CustomMagicNumber):
1495         (CustomVersion):
1496         (CustomSection):
1497         (CustomSectionAllBytes):
1498         (CustomSectionInvalidByte):
1499         (TwoCustomSections):
1500         (EmptyCodeSection):
1501         (CodeSectionWithEmptyFunction):
1502         (CodeSectionWithEmptyFunctionWithParameters):
1503         (InvalidFunctionParameters):
1504         (SimpleFunction):
1505         (TwoSimpleFunctions):
1506         (TwoBuildersAtTheSameTime):
1507         (CheckedOpcodeArgumentsTooMany):
1508         (CheckedOpcodeArgumentsNotEnough):
1509         (CallNoArguments):
1510         (CallInvalid):
1511         (I32ConstInvalid):
1512         (F32ConstInvalid):
1513         (F64ConstInvalid):
1514         (CallManyFromStack):
1515         (OpcodeAdd):
1516         (OpcodeUnreachable):
1517         (OpcodeUnreachableCombinations):
1518         (OpcodeSelect):
1519         * wasm/self-test/test_BuilderWebAssembly.js: Added.
1520         (EmptyModule):
1521         (CustomSection):
1522         (Basic):
1523         * wasm/self-test/test_LowLevelBinary_encode.js: Added.
1524         * wasm/self-test/test_LowLevelBinary_string.js: Added.
1525         * wasm/self-test/test_LowLevelBinary_uint16.js: Added.
1526         * wasm/self-test/test_LowLevelBinary_uint32.js: Added.
1527         * wasm/self-test/test_LowLevelBinary_uint8.js: Added.
1528         * wasm/self-test/test_LowLevelBinary_varint.js: Added.
1529         * wasm/self-test/test_LowLevelBinary_varuint.js: Added.
1530         * wasm/self-test/test_LowLevelBinary_varuint7.js: Added.
1531         * wasm/self-test/test_WASM.js: Added.
1532         * wasm/test.sh: Added.
1533         * wasm/utilities.js: Added.
1534         (const._read.filename.switch):
1535         (const._load.filename.switch):
1536         (const._json.filename.switch):
1537         * wasm/wasm.json: Added.
1538
1539 2016-10-14  Joseph Pecoraro  <pecoraro@apple.com>
1540
1541         test262: @isConstructor incorrectly thinks Math.cos is a constructor
1542         https://bugs.webkit.org/show_bug.cgi?id=163437
1543
1544         Reviewed by Saam Barati.
1545
1546         * stress/is-constructor.js: Added.
1547         (assert):
1548         (prototype.assert):
1549         New test to cover the @isConstructor builtin.
1550
1551         * test262.yaml:
1552         Test now passes.
1553
1554 2016-10-14  Ryan Haddad  <ryanhaddad@apple.com>
1555
1556         Unreviewed, rolling out r207322.
1557
1558         This change caused JSC test failures
1559
1560         Reverted changeset:
1561
1562         "Fix Array.prototype.splice ES6 compliance."
1563         https://bugs.webkit.org/show_bug.cgi?id=163372
1564         http://trac.webkit.org/changeset/207322
1565
1566 2016-10-14  Mark Lam  <mark.lam@apple.com>
1567
1568         JSON.parse should not modify frozen objects.
1569         https://bugs.webkit.org/show_bug.cgi?id=163430
1570
1571         Reviewed by Saam Barati.
1572
1573         * stress/json-parse-on-frozen-object.js: Added.
1574
1575 2016-10-14  Joseph Pecoraro  <pecoraro@apple.com>
1576
1577         test262: Failure with RegExp.prototype.compile when pattern is undefined
1578         https://bugs.webkit.org/show_bug.cgi?id=163431
1579
1580         Reviewed by Yusuke Suzuki.
1581
1582         * test262.yaml:
1583
1584 2016-10-13  Joseph Pecoraro  <pecoraro@apple.com>
1585
1586         Exception message for expressions with multiple bracket accesses is inconsistent / incorrect
1587         https://bugs.webkit.org/show_bug.cgi?id=163426
1588
1589         Reviewed by Geoffrey Garen.
1590
1591         * ChakraCore/test/Error/CallNonFunction_3.baseline-jsc:
1592         * ChakraCore/test/Object/null.baseline-jsc:
1593         * stress/exception-in-to-property-key-should-be-handled-early.js:
1594         Better exception messages.
1595
1596 2016-10-13  Mark Lam  <mark.lam@apple.com>
1597
1598         Fix Array.prototype.splice ES6 compliance.
1599         https://bugs.webkit.org/show_bug.cgi?id=163372
1600
1601         Reviewed by Geoffrey Garen and Yusuke Suzuki.
1602
1603         * stress/array-splice-on-frozen-object.js: Added.
1604
1605 2016-10-12  Keith Miller  <keith_miller@apple.com>
1606
1607         Handle non-function, non-undefined comparator in Array.prototype.sort
1608         https://bugs.webkit.org/show_bug.cgi?id=163085
1609
1610         Reviewed by Yusuke Suzuki.
1611
1612         * ChakraCore/test/Array/array_sort.baseline-jsc:
1613         * stress/array-sort-bad-comparator.js: Added.
1614         (test):
1615
1616 2016-10-12  Mark Lam  <mark.lam@apple.com>
1617
1618         Array.prototype.slice should not modify frozen objects.
1619         https://bugs.webkit.org/show_bug.cgi?id=163338
1620
1621         Reviewed by Filip Pizlo.
1622
1623         * stress/array-slice-on-frozen-object.js: Added.
1624
1625 2016-10-11  Mark Lam  <mark.lam@apple.com>
1626
1627         Array.prototype.concat should not modify frozen objects.
1628         https://bugs.webkit.org/show_bug.cgi?id=163302
1629
1630         Reviewed by Filip Pizlo.
1631
1632         * stress/array-concat-on-frozen-object.js: Added.
1633
1634 2016-10-11  Saam Barati  <sbarati@apple.com>
1635
1636         ValueAdd should be constant folded if the operands are constant String,Primitive or Primitive,String
1637         https://bugs.webkit.org/show_bug.cgi?id=163182
1638
1639         Reviewed by Filip Pizlo.
1640
1641         * microbenchmarks/string-add-constant-folding.js: Added.
1642         (assert):
1643         (runTests):
1644         (add):
1645         (test):
1646
1647 2016-10-07  Mark Lam  <mark.lam@apple.com>
1648
1649         Object.freeze() and seal() should throw if [[PreventExtensions]]() fails.
1650         https://bugs.webkit.org/show_bug.cgi?id=163160
1651
1652         Reviewed by Saam Barati.
1653
1654         * stress/object-freeze-with-proxy-preventExtensions.js: Added.
1655         * stress/object-seal-with-proxy-preventExtensions.js: Added.
1656
1657 2016-10-05  Yusuke Suzuki  <utatane.tea@gmail.com>
1658
1659         [DOMJIT] Add initial CheckDOM and CallDOM implementations
1660         https://bugs.webkit.org/show_bug.cgi?id=162941
1661
1662         Reviewed by Filip Pizlo.
1663
1664         * stress/domjit-getter-poly.js: Added.
1665         (shouldBe):
1666         (access):
1667         * stress/domjit-getter-proto.js: Added.
1668         (shouldBe):
1669         (access):
1670         * stress/domjit-getter-super-poly.js: Added.
1671         (shouldBe):
1672         (access):
1673         * stress/domjit-getter.js: Added.
1674         (shouldBe):
1675         (access):
1676
1677 2016-10-04  Saam Barati  <sbarati@apple.com>
1678
1679         String.prototype.toLowerCase should be a DFG/FTL intrinsic
1680         https://bugs.webkit.org/show_bug.cgi?id=162887
1681
1682         Reviewed by Filip Pizlo and Yusuke Suzuki.
1683
1684         * microbenchmarks/to-lower-case.js: Added.
1685         (assert):
1686         (foo):
1687         (bar):
1688         * stress/to-lower-case.js: Added.
1689         (assert):
1690         (foo):
1691
1692 2016-10-04  JF Bastien  <jfbastien@apple.com>
1693
1694         WebAssembly: handle a few corner cases
1695         https://bugs.webkit.org/show_bug.cgi?id=162884
1696
1697         Reviewed by Keith Miller.
1698
1699         * stress/wasm/generate-wasmops-header.js:
1700         (const.opcodeIterator): max opcode value
1701
1702 2016-10-03  JF Bastien  <jfbastien@apple.com>
1703
1704         Auto-generate WASMOps.h, share with testing JSON file
1705         https://bugs.webkit.org/show_bug.cgi?id=162870
1706
1707         Reviewed by Keith Miller.
1708
1709         * stress/wasm/to-c++.js: Added. Generates WASMOps.h, siilar to the current one but with more data.
1710         (const.opcode_iterator):
1711         (opcode_macroizer):
1712         * stress/wasm/wasm.json: Added. Data from 0xC binary format version.
1713
1714 2016-10-03  Saam Barati  <sbarati@apple.com>
1715
1716         MapHash should speculate on the type of its child node
1717         https://bugs.webkit.org/show_bug.cgi?id=161922
1718
1719         Reviewed by Filip Pizlo.
1720
1721         * microbenchmarks/map-key-well-typed.js: Added.
1722         (assert):
1723         (intKey):
1724         (doubleKey):
1725         (objectKey):
1726         (stringKey):
1727         (booleanKey):
1728         (symbolKey):
1729         (cellKey):
1730         (assert.doubleKey):
1731         (assert.booleanKey):
1732
1733 2016-10-03  Yusuke Suzuki  <utatane.tea@gmail.com>
1734
1735         [ES6] GeneratorFunction (a.k.a. GeneratorWrapperFunction)'s prototype object does not have constructor property
1736         https://bugs.webkit.org/show_bug.cgi?id=162849
1737
1738         Reviewed by Geoffrey Garen.
1739
1740         * test262.yaml:
1741
1742 2016-10-01  Yusuke Suzuki  <utatane.tea@gmail.com>
1743
1744         [ES6] Align attributes of Generator related properties to spec
1745         https://bugs.webkit.org/show_bug.cgi?id=162839
1746
1747         Reviewed by Saam Barati.
1748
1749         * test262.yaml:
1750
1751 2016-10-01  Yusuke Suzuki  <utatane.tea@gmail.com>
1752
1753         [ES6] GeneratorFunction constructor should instantiate generator function
1754         https://bugs.webkit.org/show_bug.cgi?id=162838
1755
1756         Reviewed by Saam Barati.
1757
1758         * stress/generator-function-constructor-is-subclassible.js: Added.
1759         (shouldBe):
1760         (GeneratorFunction):
1761         (prototype.hello):
1762         * stress/generator-function-constructor.js:
1763         * test262.yaml:
1764
1765 2016-09-30  Saam Barati  <sbarati@apple.com>
1766
1767         Arrow functions should not allow duplicate parameter names
1768         https://bugs.webkit.org/show_bug.cgi?id=162741
1769
1770         Reviewed by Filip Pizlo.
1771
1772         * test262.yaml:
1773
1774 2016-09-30  Saam Barati  <sbarati@apple.com>
1775
1776         Make some microbenchmarks run for less time.
1777
1778         Rubber stamped by Filip Pizlo.
1779
1780         * microbenchmarks/bound-function-construction-performance.js:
1781         (foo):
1782         * microbenchmarks/getter-richards-try-catch.js:
1783
1784 2016-09-29  Joseph Pecoraro  <pecoraro@apple.com>
1785
1786         Arrow functions do not infer name from computed property but normal functions do
1787         https://bugs.webkit.org/show_bug.cgi?id=162720
1788
1789         Reviewed by Saam Barati.
1790
1791         * stress/inferred-names.js:
1792
1793 2016-09-29  Mark Lam  <mark.lam@apple.com>
1794
1795         Break some slow running tests into smaller bits so they don't time out.
1796         https://bugs.webkit.org/show_bug.cgi?id=162743
1797
1798         Reviewed by Keith Miller.
1799
1800         The following tests have shown to be slow running:
1801             op_div.js
1802             op_lshift.js
1803             op_mod.js
1804             op_mul.js
1805             op_rshift.js
1806             op_sub.js
1807             op_urshift
1808
1809         These tests auto-generate permutations of values to apply to binary operations.
1810         They also test the operations with 3 permutations of value types:
1811             1. VarVar - both operands variables
1812             2. VarConst - variable operand 1, constant / literal operand 2
1813             3. ConstVar - constant / literal operand 1, variable operand 2
1814
1815         We can prevent these tests from timing out by breaking each up to only run 1 of
1816         the 3 permutations of value types.
1817
1818         * stress/op_div-ConstVar.js: Added.
1819         * stress/op_div-VarConst.js: Added.
1820         * stress/op_div-VarVar.js: Copied from JSTests/stress/op_div.js.
1821         (o1.valueOf): Deleted.
1822         * stress/op_div.js: Removed.
1823         * stress/op_lshift-ConstVar.js: Added.
1824         * stress/op_lshift-VarConst.js: Added.
1825         * stress/op_lshift-VarVar.js: Copied from JSTests/stress/op_lshift.js.
1826         (o1.valueOf): Deleted.
1827         * stress/op_lshift.js: Removed.
1828         * stress/op_mod-ConstVar.js: Added.
1829         * stress/op_mod-VarConst.js: Added.
1830         * stress/op_mod-VarVar.js: Copied from JSTests/stress/op_mod.js.
1831         (o1.valueOf): Deleted.
1832         * stress/op_mod.js: Removed.
1833         * stress/op_mul-ConstVar.js: Added.
1834         * stress/op_mul-VarConst.js: Added.
1835         * stress/op_mul-VarVar.js: Copied from JSTests/stress/op_mul.js.
1836         (o1.valueOf): Deleted.
1837         * stress/op_mul.js: Removed.
1838         * stress/op_rshift-ConstVar.js: Added.
1839         * stress/op_rshift-VarConst.js: Added.
1840         * stress/op_rshift-VarVar.js: Copied from JSTests/stress/op_rshift.js.
1841         (o1.valueOf): Deleted.
1842         * stress/op_rshift.js: Removed.
1843         * stress/op_sub-ConstVar.js: Added.
1844         * stress/op_sub-VarConst.js: Added.
1845         * stress/op_sub-VarVar.js: Copied from JSTests/stress/op_sub.js.
1846         (o1.valueOf): Deleted.
1847         * stress/op_sub.js: Removed.
1848         * stress/op_urshift-ConstVar.js: Added.
1849         * stress/op_urshift-VarConst.js: Added.
1850         * stress/op_urshift-VarVar.js: Copied from JSTests/stress/op_urshift.js.
1851         (o1.valueOf): Deleted.
1852         * stress/op_urshift.js: Removed.
1853         * stress/resources/binary-op-values.js: Added.
1854         (o1.valueOf):
1855
1856 2016-09-29  Joseph Pecoraro  <pecoraro@apple.com>
1857
1858         test262: class and function names should be inferred in assignment
1859         https://bugs.webkit.org/show_bug.cgi?id=146262
1860
1861         Reviewed by Saam Barati.
1862
1863         * stress/arrowfunction-name.js: Added.
1864         Quick tests for arrow function names.
1865
1866         * stress/inferred-names.js: Added.
1867         General test for inferred function names.
1868
1869         * test262.yaml:
1870         Pass many tests checking inferred function names.
1871
1872 2016-09-29  Saam Barati  <sbarati@apple.com>
1873
1874         We don't properly propagate non-simple-parameter-list when parsing a setter
1875         https://bugs.webkit.org/show_bug.cgi?id=160483
1876
1877         Reviewed by Joseph Pecoraro.
1878
1879         * test262.yaml:
1880
1881 2016-09-28  Saam Barati  <sbarati@apple.com>
1882
1883         stringProtoFuncRepeatCharacter will return `null` when it should not
1884         https://bugs.webkit.org/show_bug.cgi?id=161944
1885
1886         Reviewed by Yusuke Suzuki.
1887
1888         * stress/pad-start-calls-repeat-character-with-double.js: Added.
1889         (logLinesWithContext):
1890
1891 2016-09-27  Filip Pizlo  <fpizlo@apple.com>
1892
1893         B3::lowerMacros forgets to before->updatePredecessorsAfter() when lowering ChillMod on ARM64
1894         https://bugs.webkit.org/show_bug.cgi?id=162644
1895
1896         Reviewed by Keith Miller.
1897
1898         * stress/chill-mod-chill-mod.js: Added.
1899         (foo):
1900
1901 2016-09-26  Csaba Osztrogonác  <oszi@inf.u-szeged.hu>
1902
1903         Skip stress/string-joining-long-strings-should-not-crash.js on memory limited devices
1904         https://bugs.webkit.org/show_bug.cgi?id=162386
1905
1906         Unreviewed, relanding r206317 after typo fix.
1907
1908         * stress/string-joining-long-strings-should-not-crash.js:
1909
1910 2016-09-24  Caitlin Potter  <caitp@igalia.com>
1911
1912         [JSTests] fix test262 expectations following r206333
1913         https://bugs.webkit.org/show_bug.cgi?id=162533
1914
1915         Reviewed by Yusuke Suzuki.
1916
1917         * test262.yaml:
1918
1919 2016-09-23  Caitlin Potter  <caitp@igalia.com>
1920
1921         [JSC] Implement parsing of Async Functions
1922         https://bugs.webkit.org/show_bug.cgi?id=161409
1923
1924         Reviewed by Yusuke Suzuki.
1925
1926         * stress/async-await-syntax.js: Added.
1927         (testSyntax):
1928         (testSyntaxError):
1929         (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntax):
1930         (testTopLevelAsyncAwaitSyntaxSloppyMode):
1931         (testTopLevelAsyncAwaitSyntaxStrictMode):
1932         (testTopLevelAsyncAwaitSyntaxStrictMode.testSyntax):
1933         (testNestedAsyncAwaitSyntax.async):
1934         (testNestedAsyncAwaitSyntax.foo):
1935         (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntaxError):
1936
1937 2016-09-23  Ryan Haddad  <ryanhaddad@apple.com>
1938
1939         Unreviewed, rolling out r206317.
1940
1941         This change caused timeouts on El Capitan Release JSC tests
1942
1943         Reverted changeset:
1944
1945         "Skip stress/string-joining-long-strings-should-not-crash.js
1946         on memory limited devices"
1947         https://bugs.webkit.org/show_bug.cgi?id=162386
1948         http://trac.webkit.org/changeset/206317
1949
1950 2016-09-23  Csaba Osztrogonác  <ossy@webkit.org>
1951
1952         Skip mozilla-tests.yaml/js1_5/Array/regress-157652 on memory limited devices
1953         https://bugs.webkit.org/show_bug.cgi?id=162381
1954
1955         Reviewed by Mark Lam.
1956
1957         * mozilla/mozilla-tests.yaml:
1958
1959 2016-09-23  Csaba Osztrogonác  <ossy@webkit.org>
1960
1961         Skip stress/string-joining-long-strings-should-not-crash.js on memory limited devices
1962         https://bugs.webkit.org/show_bug.cgi?id=162386
1963
1964         Reviewed by Mark Lam.
1965
1966         * stress/string-joining-long-strings-should-not-crash.js:
1967
1968 2016-09-22  Benjamin Poulain  <bpoulain@apple.com>
1969
1970         [JSC] Use an inline cache to generate op_negate
1971         https://bugs.webkit.org/show_bug.cgi?id=162371
1972
1973         Reviewed by Saam Barati.
1974
1975         * stress/op-negate-inline-cache.js: Added.
1976
1977 2016-09-22  Mark Lam  <mark.lam@apple.com>
1978
1979         Array.prototype.join should do overflow checks on string joins.
1980         https://bugs.webkit.org/show_bug.cgi?id=162459
1981
1982         Reviewed by Saam Barati.
1983
1984         * stress/array-join-on-strings-need-overflow-checks.js: Added.
1985         (assert):
1986         (catch):
1987
1988 2016-09-22  Joseph Pecoraro  <pecoraro@apple.com>
1989
1990         test262: Function length should be number of parameters before parameters with default values
1991         https://bugs.webkit.org/show_bug.cgi?id=162377
1992
1993         Reviewed by Saam Barati.
1994
1995         * stress/es6-default-parameters.js:
1996         Add our own tests for function lengths with default parameters.
1997
1998         * test262.yaml:
1999         We now pass all dflt-length tests.
2000
2001 2016-09-20  Benjamin Poulain  <bpoulain@apple.com>
2002
2003         [JSC] Do not use EagerRun on tests counting recompilation
2004         https://bugs.webkit.org/show_bug.cgi?id=162248
2005
2006         Reviewed by Geoffrey Garen.
2007
2008         This patch adds defaultNoEagerRun to all the tests
2009         for which recompilation is the symptom of a bug.
2010         The reason is that an OSR Exit can be unrelated to the tested
2011         nodes when we are running in Eager mode.
2012
2013         * stress/arith-abs-on-various-types.js:
2014         * stress/arith-ceil-on-various-types.js:
2015         * stress/arith-clz32-on-various-types.js:
2016         * stress/arith-cos-on-various-types.js:
2017         * stress/arith-floor-on-various-types.js:
2018         * stress/arith-fround-on-various-types.js:
2019         * stress/arith-log-on-various-types.js:
2020         * stress/arith-round-on-various-types.js:
2021         * stress/arith-sin-on-various-types.js:
2022         * stress/arith-sqrt-on-various-types.js:
2023         * stress/arith-tan-on-various-types.js:
2024         * stress/arith-trunc-on-various-types.js:
2025
2026         * stress/compare-strict-eq-on-various-types.js:
2027         (testAllTypesCall):
2028         The value 2 came from the other tests.
2029         CompareStrictEq supports many more cases, the worst case
2030         is bool->int->int52->number->polymorphic.
2031
2032 2016-09-20  Filip Pizlo  <fpizlo@apple.com>
2033
2034         Make MarkedBlock state tracking support overlapped allocation and marking state
2035         https://bugs.webkit.org/show_bug.cgi?id=161581
2036
2037         Reviewed by Geoffrey Garen.
2038         
2039         Add a microbenchmark for why we want to reclaim empty blocks from other allocators.
2040
2041         * microbenchmarks/switching-size-classes.js: Added.
2042
2043 2016-09-20  Saam Barati  <sbarati@apple.com>
2044
2045         Unreviewed, added test for x86 32-bit failure for HasOwnProperty node in DFG.
2046
2047         * stress/has-own-property-called-on-non-object.js: Added.
2048         (let.objs):
2049         (new.String):
2050         (foo):
2051
2052 2016-09-20  Yusuke Suzuki  <utatane.tea@gmail.com>
2053
2054         [JSC] Add `typeof value === "symbol"` handling to bytecode compiler
2055         https://bugs.webkit.org/show_bug.cgi?id=162253
2056
2057         Reviewed by Sam Weinig.
2058
2059         * microbenchmarks/is-symbol-mixed.js: Added.
2060         (isSymbol):
2061         (i.let.pair.of.list.String):
2062         * microbenchmarks/is-symbol.js: Added.
2063         (isSymbol):
2064
2065 2016-09-19  Saam Barati  <sbarati@apple.com>
2066
2067         Make HasOwnProperty faster
2068         https://bugs.webkit.org/show_bug.cgi?id=161708
2069
2070         Reviewed by Geoffrey Garen.
2071
2072         * microbenchmarks/has-own-property-name-cache.js: Added.
2073         (foo):
2074         * stress/has-own-property-cache-basics.js: Added.
2075         (assert):
2076         (foo):
2077         * stress/has-own-property-name-cache-string-keys.js: Added.
2078         (assert):
2079         (foo):
2080         * stress/has-own-property-name-cache-symbol-keys.js: Added.
2081         (assert):
2082         (foo):
2083         * stress/has-own-property-name-cache-symbols-and-strings.js: Added.
2084         (assert):
2085         (foo):
2086
2087 2016-09-19  Benjamin Poulain  <bpoulain@apple.com>
2088
2089         [JSC] Make the rounding-related nodes support any type
2090         https://bugs.webkit.org/show_bug.cgi?id=161895
2091
2092         Reviewed by Geoffrey Garen.
2093
2094         * stress/arith-ceil-on-various-types.js: Added.
2095         * stress/arith-floor-on-various-types.js: Added.
2096         * stress/arith-round-on-various-types.js: Added.
2097         * stress/arith-trunc-on-various-types.js: Added.
2098
2099 2016-09-18  Yusuke Suzuki  <utatane.tea@gmail.com>
2100
2101         [JSC] Do not need to use defineProperty to define methods for object literals
2102         https://bugs.webkit.org/show_bug.cgi?id=162111
2103
2104         Reviewed by Saam Barati.
2105
2106         * stress/object-literal-methods.js: Added.
2107         (shouldBe):
2108         (throw.new.Error.let.object.get name):
2109         (throw.new.Error):
2110         (shouldBe.let.object.get name):
2111         (shouldBe.let.object.get prototype):
2112         (shouldBe.let.object.get 42):
2113
2114 2016-09-16  Yusuke Suzuki  <utatane.tea@gmail.com>
2115
2116         [DFG] Introduce IsCellWithType node and unify IsJSArray, IsRegExpObject and newly added IsProxyObject
2117         https://bugs.webkit.org/show_bug.cgi?id=162000
2118
2119         Reviewed by Filip Pizlo.
2120
2121         * microbenchmarks/is-array-for-array.js: Added.
2122         (isArray):
2123         * microbenchmarks/is-array-for-mixed-case.js: Added.
2124         (isArray):
2125         * microbenchmarks/is-array-for-non-array-object.js: Added.
2126         (isArray):
2127         * microbenchmarks/is-array-for-proxy.js: Added.
2128         (isArray):
2129         (isArray.proxy.throw.new.Error.isArray):
2130         (isArray.proxy.throw.new.Error):
2131
2132 2016-09-16  Yusuke Suzuki  <utatane.tea@gmail.com>
2133
2134         Unreviewed, gardening test262 results
2135
2136         Some tests are now passed with JSC, but marked as failed.
2137
2138         * test262.yaml:
2139
2140 2016-09-16  Joseph Pecoraro  <pecoraro@apple.com>
2141
2142         test262: Various Constructors length properties should be configurable
2143         https://bugs.webkit.org/show_bug.cgi?id=161998
2144
2145         Reviewed by Saam Barati.
2146
2147         * test262.yaml:
2148
2149 2016-09-15  Commit Queue  <commit-queue@webkit.org>
2150
2151         Unreviewed, rolling out r205931.
2152         https://bugs.webkit.org/show_bug.cgi?id=162021
2153
2154         Tests for this change fail on 32-bit JSC bots (Requested by
2155         ryanhaddad on #webkit).
2156
2157         Reverted changeset:
2158
2159         "[JSC] Make the rounding-related nodes support any type"
2160         https://bugs.webkit.org/show_bug.cgi?id=161895
2161         http://trac.webkit.org/changeset/205931
2162
2163 2016-09-15  Joseph Pecoraro  <pecoraro@apple.com>
2164
2165         test262: Should be a SyntaxError for duplicate parameter names in function with default parameters
2166         https://bugs.webkit.org/show_bug.cgi?id=162013
2167
2168         Reviewed by Saam Barati.
2169
2170         * stress/es6-default-parameters.js:
2171         * test262.yaml:
2172
2173 2016-09-14  Joseph Pecoraro  <pecoraro@apple.com>
2174
2175         ASSERT_NOT_REACHED when using spread inside an array literal with Function.prototype.apply
2176         https://bugs.webkit.org/show_bug.cgi?id=162003
2177
2178         Reviewed by Saam Barati.
2179
2180         * stress/spread-calling.js:
2181         * test262.yaml:
2182
2183 2016-09-14  Michael Saboff  <msaboff@apple.com>
2184
2185         YARR doesn't check for invalid flags for literal regular expressions
2186         https://bugs.webkit.org/show_bug.cgi?id=161995
2187
2188         Reviewed by Mark Lam.
2189
2190         New test.
2191
2192         * stress/regress-161995.js: Added.
2193         (testStatic):
2194         (catch):
2195
2196 2016-09-14  Joseph Pecoraro  <pecoraro@apple.com>
2197
2198         test262: TypedArray constructors length should be 3 and configurable
2199         https://bugs.webkit.org/show_bug.cgi?id=161955
2200
2201         Reviewed by Mark Lam.
2202
2203         * test262.yaml:
2204
2205 2016-09-14  Benjamin Poulain  <bpoulain@apple.com>
2206
2207         [JSC] Make the rounding-related nodes support any type
2208         https://bugs.webkit.org/show_bug.cgi?id=161895
2209
2210         Reviewed by Geoffrey Garen.
2211
2212         * stress/arith-ceil-on-various-types.js: Added.
2213         * stress/arith-floor-on-various-types.js: Added.
2214         * stress/arith-round-on-various-types.js: Added.
2215         * stress/arith-trunc-on-various-types.js: Added.
2216
2217 2016-09-14  Joseph Pecoraro  <pecoraro@apple.com>
2218
2219         TaggedTemplateString function calls should emit tail position calls
2220         https://bugs.webkit.org/show_bug.cgi?id=161948
2221
2222         Reviewed by Yusuke Suzuki.
2223
2224         * stress/tail-call-recognize.js:
2225         (runTests):
2226         Ensure a tagged template string function call is tail call.
2227
2228         * test262.yaml:
2229         These now pass.
2230
2231 2016-09-14  Joseph Pecoraro  <pecoraro@apple.com>
2232
2233         test262: Array.prototype.slice should always set length
2234         https://bugs.webkit.org/show_bug.cgi?id=161953
2235
2236         Reviewed by Mark Lam.
2237
2238         * test262.yaml:
2239
2240 2016-09-13  JF Bastien  <jfbastien@apple.com>
2241
2242         Support jsc shell builtin `read`
2243         https://bugs.webkit.org/show_bug.cgi?id=161662
2244
2245         Reviewed by Keith Miller.
2246
2247         * stress/jsc-read.js: Added.
2248         (test): test `read` and `readFile` shell builtins, in string and binary mode.
2249
2250 2016-09-12  Skachkov Oleksandr  <gskachkov@gmail.com>
2251
2252         ES6: Classes: Should be allowed to create a static method with name "arguments"
2253         https://bugs.webkit.org/show_bug.cgi?id=152985
2254
2255         Reviewed by Keith Miller.
2256
2257         * test262.yaml:
2258
2259 2016-09-12  Saam Barati  <sbarati@apple.com>
2260
2261         Speed up Function.prototype.bind a bit by making it a builtin
2262         https://bugs.webkit.org/show_bug.cgi?id=161879
2263
2264         Reviewed by Filip Pizlo.
2265
2266         * microbenchmarks/function-bind-inlining.js: Added.
2267         (assert):
2268         (test):
2269         (test2):
2270         (foo):
2271         * microbenchmarks/function-bind-no-inlining.js: Added.
2272         (assert):
2273         (test):
2274         (test2):
2275         (foo):
2276
2277 2016-09-12  Saam Barati  <sbarati@apple.com>
2278
2279         HashMapImpl should take into account m_deleteCount in its load factor and it should be able to rehash the table to be smaller
2280         https://bugs.webkit.org/show_bug.cgi?id=161640
2281
2282         Reviewed by Geoffrey Garen.
2283
2284         * microbenchmarks/map-rehash.js: Added.
2285         * stress/map-delete.js: Added.
2286         (assert):
2287         * stress/map-rehash-2.js: Added.
2288         (assert):
2289         * stress/map-rehash.js: Added.
2290         (assert):
2291
2292 2016-09-12  Yusuke Suzuki  <utatane.tea@gmail.com>
2293
2294         Unreviewed, fix tests for different libm environments
2295         https://bugs.webkit.org/show_bug.cgi?id=161857
2296
2297         * stress/ftl-arithtan.js:
2298
2299 2016-09-12  Benjamin Poulain  <bpoulain@apple.com>
2300
2301         [JSC] Use GetArrayLength for JSArray.length even when the array type is undecided
2302         https://bugs.webkit.org/show_bug.cgi?id=161671
2303
2304         Reviewed by Geoffrey Garen.
2305
2306         * stress/get-array-length-on-undecided.js: Added.
2307
2308 2016-09-12  Yusuke Suzuki  <utatane.tea@gmail.com>
2309
2310         [DFG][FTL] Add ArithTan
2311         https://bugs.webkit.org/show_bug.cgi?id=161857
2312
2313         Reviewed by Filip Pizlo.
2314
2315         * microbenchmarks/tan.js: Added.
2316         * stress/arith-tan-on-various-types.js: Added.
2317         (let.validInputTypedTestCases.validInputTestCases.map):
2318         (isIdentical):
2319         (opaqueTanNoArgument):
2320         (testNoArgument):
2321         (opaqueAllTypesTan):
2322         (testAllTypesCall):
2323         (testTangleTypeCall):
2324         (testConstant):
2325         (opaqueTanForSideEffects):
2326         (testSideEffect.let.testObject.valueOf):
2327         (testSideEffect):
2328         (opaqueTanForCSE):
2329         (testCSE.let.testObject.valueOf):
2330         (testCSE):
2331         (opaqueTanForDCE):
2332         (testDCE.let.testObject.valueOf):
2333         (testDCE):
2334         (testException.opaqueTanWithException):
2335         (testException):
2336         * stress/ftl-arithtan.js: Added.
2337         (foo):
2338
2339 2016-09-12  Saam Barati  <sbarati@apple.com>
2340
2341         MapHash should do constant folding when it has a constant argument and its legal to hash that value
2342         https://bugs.webkit.org/show_bug.cgi?id=161639
2343
2344         Reviewed by Filip Pizlo.
2345
2346         * microbenchmarks/map-constant-key.js: Added.
2347         (assert):
2348         (test):
2349         (foo):
2350
2351 2016-09-12  Michael Saboff  <msaboff@apple.com>
2352
2353         JSC test timeout: ChakraCore.yaml/ChakraCore/test/Bugs/bug56026_trycatch.js.default
2354         https://bugs.webkit.org/show_bug.cgi?id=161863
2355
2356         Reviewed by Saam Barati.
2357
2358         * ChakraCore.yaml:
2359         Disabled Bugs/bug56026_trycatch.js.
2360
2361 2016-09-09  Michael Saboff  <msaboff@apple.com>
2362
2363         Unreviewed, rolling r205759 back in with a fix.
2364
2365         The expectation file, JSTests/ChakraCore/test/Lib/tostring.baseline-jsc,
2366         should be named "toString.baseline-jsc".
2367
2368         * ChakraCore/test/Lib/toString.baseline-jsc: Copied from JSTests/ChakraCore/test/Lib/tostring.baseline-jsc.
2369         * ChakraCore/test/Lib/tostring.baseline-jsc: Removed.
2370
2371 2016-09-09  Michael Saboff  <msaboff@apple.com>
2372
2373         Disable three flakey Chakra Tests
2374         https://bugs.webkit.org/show_bug.cgi?id=161807
2375
2376         Reviewed by Saam Barati.
2377
2378         * ChakraCore.yaml: Disabled the flakey tests
2379         ChakraCore/test/Array/protoLookup_native.js
2380         ChakraCore/test/LetConst/delete.js
2381         ChakraCore/test/fieldopts/fieldhoist_sideeffect.js
2382
2383 2016-09-08  Saam Barati  <sbarati@apple.com>
2384
2385         We should inline operationConvertJSValueToBoolean into JIT code
2386         https://bugs.webkit.org/show_bug.cgi?id=161729
2387
2388         Reviewed by Filip Pizlo.
2389
2390         * stress/value-to-boolean.js: Added.
2391         (assert):
2392         (test1):
2393         (test2):
2394         (test3):
2395
2396 2016-09-08  Mark Lam  <mark.lam@apple.com>
2397
2398         REGRESSION (r205569?): 32-bit JSC test timeout: stress/rest-parameter-many-arguments.js.dfg-maximal-flush-validate-no-cjit
2399         https://bugs.webkit.org/show_bug.cgi?id=161756
2400
2401         Reviewed by Saam Barati.
2402
2403         It looks like the 32-bit JSC bot is just too slow at running this test with the
2404         dfg-maximal-flush-validate-no-cjit configuration.  We'll try excluding that
2405         configuration.
2406
2407         * stress/rest-parameter-many-arguments.js:
2408
2409 2016-09-08  JF Bastien  <jfbastien@apple.com>
2410
2411         Delete older WebAssembly tests
2412         https://bugs.webkit.org/show_bug.cgi?id=161758
2413
2414         Reviewed by Filip Pizlo.
2415
2416         They're not running, rely on the older polyfill prototype, and the older code was deleted in: https://trac.webkit.org/changeset/204180
2417
2418         * stress/wasm-arithmetic-float32.js: Removed.
2419         * stress/wasm-arithmetic-float64.js: Removed.
2420         * stress/wasm-arithmetic-int32.js: Removed.
2421         * stress/wasm-calls.js: Removed.
2422         * stress/wasm-comma.js: Removed.
2423         * stress/wasm-control-flow.js: Removed.
2424         * stress/wasm-globals.js: Removed.
2425         * stress/wasm-linear-memory.js: Removed.
2426         * stress/wasm-locals.js: Removed.
2427         * stress/wasm-relational.js: Removed.
2428         * stress/wasm-type-conversion.js: Removed.
2429         * stress/wasm/arithmetic-float32.wasm: Removed.
2430         * stress/wasm/arithmetic-float64.wasm: Removed.
2431         * stress/wasm/arithmetic-int32.wasm: Removed.
2432         * stress/wasm/calls.wasm: Removed.
2433         * stress/wasm/comma.wasm: Removed.
2434         * stress/wasm/control-flow.wasm: Removed.
2435         * stress/wasm/globals.wasm: Removed.
2436         * stress/wasm/linear-memory.wasm: Removed.
2437         * stress/wasm/locals.wasm: Removed.
2438         * stress/wasm/relational.wasm: Removed.
2439         * stress/wasm/type-conversion.wasm: Removed.
2440
2441 2016-09-08  Per Arne Vollan  <pvollan@apple.com>
2442
2443         [Win] Exception fuzz tests fail
2444         https://bugs.webkit.org/show_bug.cgi?id=140928
2445
2446         Reviewed by Mark Lam.
2447
2448         Unskip tests.
2449
2450         * exceptionFuzz.yaml:
2451
2452 2016-09-06  Saam Barati  <sbarati@apple.com>
2453
2454         ProxyObject's structure should not have ObjectPrototype as its prototype and it should not have special behavior for intercepting "__proto__"
2455         https://bugs.webkit.org/show_bug.cgi?id=161558
2456
2457         Reviewed by Benjamin Poulain.
2458
2459         * stress/proxy-get-prototype-of.js:
2460         * stress/proxy-set-prototype-of.js:
2461         (let.handler.setPrototypeOf): Deleted.
2462         * stress/proxy-underscore-proto.js: Added.
2463         (assert):
2464
2465 2016-09-06  Saam Barati  <sbarati@apple.com>
2466
2467         Make JSMap and JSSet faster
2468         https://bugs.webkit.org/show_bug.cgi?id=160989
2469
2470         Reviewed by Filip Pizlo.
2471
2472         * microbenchmarks/dense-set.js: Added.
2473         (bench):
2474         * microbenchmarks/large-map-iteration-with-additions.js: Added.
2475         (bar):
2476         (foo):
2477         * microbenchmarks/large-map-iteration-with-mutation.js: Added.
2478         (bar):
2479         (foo):
2480         * microbenchmarks/large-map-iteration.js: Added.
2481         (bar):
2482         (foo):
2483         * microbenchmarks/map-get-get-cse.js: Added.
2484         (bar):
2485         (foo):
2486         * microbenchmarks/map-has-get-cse-opportunity.js: Added.
2487         (bar):
2488         (foo):
2489         * microbenchmarks/sparse-set.js: Added.
2490         (bench):
2491         * stress/map-cse-correctness.js: Added.
2492         (assert):
2493         (testHas):
2494         (testGet):
2495         (foo):
2496         * stress/map-iteration.js: Added.
2497         (assert):
2498         (test1):
2499         (test2):
2500         (test3):
2501         (test4):
2502         (test5):
2503         (test6):
2504         (test7):
2505         (test8):
2506         (test9):
2507         (test10):
2508         (test11):
2509         (test12):
2510         (test13):
2511         (test14):
2512         (test15):
2513         (test16):
2514         (test17):
2515         (test18):
2516
2517 2016-09-06  Benjamin Poulain  <bpoulain@apple.com>
2518
2519         [JSC] Make ArithClz32 work with Cell arguments
2520         https://bugs.webkit.org/show_bug.cgi?id=161369
2521
2522         Reviewed by Geoffrey Garen.
2523
2524         * stress/arith-clz32-on-various-types.js: Added.
2525
2526 2016-09-06  Commit Queue  <commit-queue@webkit.org>
2527
2528         Unreviewed, rolling out r205504.
2529         https://bugs.webkit.org/show_bug.cgi?id=161645
2530
2531         Broke the iOS device build (Requested by ryanhaddad on
2532         #webkit).
2533
2534         Reverted changeset:
2535
2536         "Make JSMap and JSSet faster"
2537         https://bugs.webkit.org/show_bug.cgi?id=160989
2538         http://trac.webkit.org/changeset/205504
2539
2540 2016-09-06  Saam Barati  <sbarati@apple.com>
2541
2542         Make JSMap and JSSet faster
2543         https://bugs.webkit.org/show_bug.cgi?id=160989
2544
2545         Reviewed by Filip Pizlo.
2546
2547         * microbenchmarks/dense-set.js: Added.
2548         (bench):
2549         * microbenchmarks/large-map-iteration-with-additions.js: Added.
2550         (bar):
2551         (foo):
2552         * microbenchmarks/large-map-iteration-with-mutation.js: Added.
2553         (bar):
2554         (foo):
2555         * microbenchmarks/large-map-iteration.js: Added.
2556         (bar):
2557         (foo):
2558         * microbenchmarks/map-get-get-cse.js: Added.
2559         (bar):
2560         (foo):
2561         * microbenchmarks/map-has-get-cse-opportunity.js: Added.
2562         (bar):
2563         (foo):
2564         * microbenchmarks/sparse-set.js: Added.
2565         (bench):
2566         * stress/map-cse-correctness.js: Added.
2567         (assert):
2568         (testHas):
2569         (testGet):
2570         (foo):
2571         * stress/map-iteration.js: Added.
2572         (assert):
2573         (test1):
2574         (test2):
2575         (test3):
2576         (test4):
2577         (test5):
2578         (test6):
2579         (test7):
2580         (test8):
2581         (test9):
2582         (test10):
2583         (test11):
2584         (test12):
2585         (test13):
2586         (test14):
2587         (test15):
2588         (test16):
2589         (test17):
2590         (test18):
2591
2592 2016-08-31  Filip Pizlo  <fpizlo@apple.com>
2593
2594         Butterflies should be allocated in Auxiliary MarkedSpace instead of CopiedSpace and we should rewrite as much of the GC as needed to make this not a regression
2595         https://bugs.webkit.org/show_bug.cgi?id=160125
2596
2597         Reviewed by Geoffrey Garen and Keith Miller.
2598         
2599         Most of the things I did properly covered by existing tests, but I found some simple cases of
2600         unshifting that had sketchy coverage.
2601
2602         * stress/array-storage-array-unshift.js: Added.
2603         * stress/contiguous-array-unshift.js: Added.
2604         * stress/double-array-unshift.js: Added.
2605         * stress/int32-array-unshift.js: Added.
2606
2607 2016-09-02  Michael Saboff  <msaboff@apple.com>
2608
2609         Unreviewed fix after importing Chakra test
2610
2611         * ChakraCore.yaml: Skipped ChakraCore/test/UnifiedRegex/crazy.js because the original
2612         test contained tab characters.  I removed the tabs before landing.  This test depended
2613         on the tab characters and now fails after they were removed.
2614         test.
2615
2616 2016-09-01  Michael Saboff  <msaboff@apple.com>
2617
2618         Import Chakra tests to JSC
2619         https://bugs.webkit.org/show_bug.cgi?id=154697
2620
2621         Reviewed by Saam Barati.
2622
2623         Added Chakra tests.  All these tests are under Chakra/test.  This is the same layout
2624         for tests in the Chakra tree.
2625
2626         Created a ChakraCore.yaml file to be used with run-jsc-stress-tests.  This file contains
2627         the tests that are run when the original Chakra runtests.py script is run.  That script
2628         is the test driver for *nix platforms and does not attempt to run all tests or all
2629         variations of tests.  The runtest.py driver consults rlexe.xml files in each test
2630         subdirectory to determine the test to run, the options to pass to the test and how to
2631         determine pass/fail of the test.  With runtests.py as the start, tests that didn't
2632         pass directly where either skipped, with a message describing why or through 
2633         adjustments to the test infrastructure, as described below, where made to pass.
2634         
2635         The only modification to the test infrastrucutre are:
2636
2637          1) Added simple mapping of Chakra expected exception text to JSC expected text in
2638             test/UnitTestFramework/UnitTestFramework.js.  It would make sense to also
2639             map some JSC specific exception text to more generic text for the cases where
2640             that text contains indetifier names or other source specific strings and the
2641             Chakra equivolent exception texts are generic.  
2642  
2643          2) Created JSC specific expected text files where it is clear that the text work
2644             as expected on JSC but the test output is different.  Typically the differences
2645             fall into three categories, different exception output, different output from
2646             toString() of a function, slight numeric differences, and test that rely on
2647             iteration order.
2648
2649          3) Stripped the CR's from the CR-LF line terminations of the files.  
2650
2651         No actual test .js files were modified.
2652
2653         * ChakraCore: Added.
2654         * ChakraCore.yaml: Added.
2655         * ChakraCore/CONTRIBUTING.md: Added.
2656         * ChakraCore/LICENSE.txt: Added.
2657         * ChakraCore/README.md: Added.
2658         * ChakraCore/THIRD-PARTY-NOTICES.txt: Added.
2659         * ChakraCore/test: Added this directory and the tests included therein.
2660
2661 2016-09-01  JF Bastien  <jfbastien@apple.com>
2662
2663         GetByIdWithThis/GetByValWithThis should have ValueProfiles so that they can predict their result types
2664         https://bugs.webkit.org/show_bug.cgi?id=160922
2665
2666         Reviewed by Keith Miller.
2667
2668         Benchmark GetBy{Id,Val}WithThis in monomorphic and polymorphic uses.
2669         The value profile is used by the calc functions, which do some mild math with the result.
2670         These benchmarks get ~4% faster with value profiling.
2671
2672         * microbenchmarks/super-get-by-id-with-this-monomorphic.js: Added.
2673         (A):
2674         (A.prototype.set value):
2675         (A.prototype.get value):
2676         (B.prototype.set value):
2677         (B.prototype.get value):
2678         (B):
2679         (const.bench):
2680         * microbenchmarks/super-get-by-id-with-this-polymorphic.js: Added.
2681         (A):
2682         (A.prototype.set value):
2683         (A.prototype.get value):
2684         (B.prototype.set value):
2685         (B.prototype.get value):
2686         (B):
2687         (const.bench):
2688         * microbenchmarks/super-get-by-val-with-this-monomorphic.js: Added.
2689         (value):
2690         (A):
2691         (A.prototype.set v):
2692         (A.prototype.get v):
2693         (B.prototype.set v):
2694         (B.prototype.get v):
2695         (B):
2696         (const.bench):
2697         * microbenchmarks/super-get-by-val-with-this-polymorphic.js: Added.
2698         (value):
2699         (A):
2700         (A.prototype.set v):
2701         (A.prototype.get v):
2702         (B.prototype.set v):
2703         (B.prototype.get v):
2704         (B):
2705         (const.bench):
2706
2707 2016-09-01  Benjamin Poulain  <bpoulain@apple.com>
2708
2709         arith-abs-on-various-types.js is flaky
2710
2711         Unreviewed.
2712
2713         * stress/arith-abs-on-various-types.js:
2714         Two compilation is too small for the worst case.
2715         Math.abs() can be typed integer->number->untyped if we are very unlucky.
2716
2717 2016-09-01  Filip Pizlo  <fpizlo@apple.com>
2718
2719         ObjectAllocationSinkingPhase::insertOSRHintsForUpdate() fails to emit updated hints in some cases
2720         https://bugs.webkit.org/show_bug.cgi?id=161492
2721
2722         Reviewed by Mark Lam.
2723         
2724         This bug affected function->activation references but not object->object field references,
2725         because object->object field references are !neededForMaterialization(). So, the object
2726         test always passed but the activation/function test used to always fail. It passes now.
2727
2728         * stress/materialize-activation-referenced-from-phantom-function.js: Added.
2729         (bar):
2730         (inc):
2731         (dec):
2732         (foo):
2733         (test):
2734         * stress/materialize-object-referenced-from-phantom-object.js: Added.
2735         (bar):
2736         (foo):
2737         (test):
2738
2739 2016-08-31  Yusuke Suzuki  <utatane.tea@gmail.com>
2740
2741         stress/random-53bit.js.ftl-no-cjit-no-inline-validate sometimes fails
2742         https://bugs.webkit.org/show_bug.cgi?id=161436
2743
2744         Reviewed by Filip Pizlo.
2745
2746         The test checks Math.random() correctly produces 53bit random values.
2747         The test can fail by design, but this should be fairly rare.
2748
2749         However, when introducing, we wrap the `test()` with 1e4 to ensure the FTL compilation, and this
2750         increases the failure rate. By increasing the MAX in the test, we make the failures much more rare case.
2751
2752         And we also add getRandomSeed() and setRandomSeed(seed) JSC shell helpers to dump more useful information
2753         and reproduce the situation easily.
2754
2755         * stress/random-53bit.js:
2756         (test):
2757
2758 2016-08-29  Benjamin Poulain  <bpoulain@apple.com>
2759
2760         [JSC] Improve ArithAbs with polymorphic input
2761         https://bugs.webkit.org/show_bug.cgi?id=161286
2762
2763         Reviewed by Saam Barati.
2764
2765         * stress/arith-abs-on-various-types.js: Added.
2766         New tests.
2767
2768         * stress/arith-cos-on-various-types.js:
2769         * stress/arith-fround-on-various-types.js:
2770         * stress/arith-log-on-various-types.js:
2771         * stress/arith-sin-on-various-types.js:
2772         * stress/arith-sqrt-on-various-types.js:
2773         Extend the existing tests to cover the DCE case.
2774
2775 2016-08-26  Benjamin Poulain  <benjamin@webkit.org>
2776
2777         [JSC] Implement CompareStrictEq(String, Untyped) in FTL
2778         https://bugs.webkit.org/show_bug.cgi?id=161229
2779
2780         Reviewed by Geoffrey Garen.
2781
2782         * stress/compare-strict-eq-on-various-types.js: Added.
2783
2784 2016-08-26  Yusuke Suzuki  <utatane.tea@gmail.com>
2785
2786         [ES6] newPromiseCapabilities should check the given argument is constructor
2787         https://bugs.webkit.org/show_bug.cgi?id=161226
2788
2789         Reviewed by Mark Lam.
2790
2791         The arrow function should not be a constructor. So the error should be raised.
2792
2793         * stress/new-promise-capabilities-requires-constructor.js: Added.
2794         (shouldThrow):
2795
2796 2016-08-25  Benjamin Poulain  <bpoulain@apple.com>
2797
2798         [JSC] Clean up the abstract interpreter for cos/sin/sqrt/fround/log
2799         https://bugs.webkit.org/show_bug.cgi?id=161181
2800
2801         Reviewed by Geoffrey Garen.
2802
2803         Extend the tests to constants.
2804         Add no-argument cases where needed.
2805
2806         * stress/arith-cos-on-various-types.js:
2807         * stress/arith-fround-on-various-types.js:
2808         * stress/arith-log-on-various-types.js:
2809         * stress/arith-sin-on-various-types.js:
2810         * stress/arith-sqrt-on-various-types.js:
2811
2812 2016-08-25  Yusuke Suzuki  <utatane.tea@gmail.com>
2813
2814         [DFG][FTL] Implement ES6 Generators in DFG / FTL
2815         https://bugs.webkit.org/show_bug.cgi?id=152723
2816
2817         Reviewed by Filip Pizlo.
2818
2819         * stress/generator-fib-ftl-and-array.js: Added.
2820         (fib):
2821         * stress/generator-fib-ftl-and-object.js: Added.
2822         (fib):
2823         * stress/generator-fib-ftl-and-string.js: Added.
2824         (fib):
2825         * stress/generator-fib-ftl.js: Added.
2826         (fib):
2827         * stress/generator-frame-empty.js: Added.
2828         (shouldThrow):
2829         (shouldThrow.fib):
2830         * stress/generator-reduced-save-point-put-to-scope.js: Added.
2831         (shouldBe):
2832         (gen):
2833         * stress/generator-transfer-register-beyond-mutiple-yields.js: Added.
2834         (shouldBe):
2835         (gen):
2836
2837 2016-08-25  JF Bastien  <jfbastien@apple.com>
2838
2839         TryGetById should have a ValueProfile so that it can predict its output type
2840         https://bugs.webkit.org/show_bug.cgi?id=160921
2841
2842         Reviewed by Saam Barati.
2843
2844         * microbenchmarks/try-get-by-id-basic.js: Added.
2845         (const.check):
2846         (const.bench.f.const.fooPlusBar.createBuiltin):
2847         * microbenchmarks/try-get-by-id-polymorphic.js: Added.
2848         (const.check):
2849         (fooPlusBar.createBuiltin):
2850         (bench):
2851
2852 2016-08-25  Caio Lima  <ticaiolima@gmail.com>
2853
2854         NewRegexp should not prevent inlining
2855         https://bugs.webkit.org/show_bug.cgi?id=154808
2856
2857         Reviewed by Geoffrey Garen.
2858
2859         Added test where functions with NewRegExp can be inlined right now.
2860
2861         * stress/new-regex-inline.js: Added.
2862         (assert):
2863         (testRegexpInline):
2864         (toInlineGlobal):
2865         (withRegexp):
2866         (inlineRegexpNotGlobal):
2867         (toInlineRecursive):
2868         (regexpContainsRecursive):
2869
2870 2016-08-24  Benjamin Poulain  <benjamin@webkit.org>
2871
2872         [JSC] Make FRound work with any type
2873         https://bugs.webkit.org/show_bug.cgi?id=161129
2874
2875         Reviewed by Geoffrey Garen.
2876
2877         * stress/arith-fround-on-various-types.js: Added.
2878
2879 2016-08-24  Filip Pizlo  <fpizlo@apple.com>
2880
2881         Unreviewed, roll out r204901, r204897, r204866, r204856, r204854.
2882
2883         * stress/array-storage-array-unshift.js: Removed.
2884         * stress/contiguous-array-unshift.js: Removed.
2885         * stress/double-array-unshift.js: Removed.
2886         * stress/int32-array-unshift.js: Removed.
2887
2888 2016-08-24  Skachkov Oleksandr  <gskachkov@gmail.com>
2889
2890         [ES2016] Allow assignment in for-in head in not-strict mode
2891         https://bugs.webkit.org/show_bug.cgi?id=160955
2892
2893         Reviewed by Saam Barati.
2894
2895         * stress/for-in-tests.js:
2896         (foo):
2897         (boo):
2898         (catch):
2899
2900 2016-08-23  Benjamin Poulain  <benjamin@webkit.org>
2901
2902         [JSC] Make ArithLog works with any type
2903         https://bugs.webkit.org/show_bug.cgi?id=161110
2904
2905         Reviewed by Geoffrey Garen.
2906
2907         * stress/arith-log-on-various-types.js: Added.
2908
2909 2016-08-23  Saam Barati  <sbarati@apple.com>
2910
2911         JSC should have a "microbenchmarks" directory instead of "regress" directory
2912         https://bugs.webkit.org/show_bug.cgi?id=161096
2913
2914         Rubber stamped by Mark Lam.
2915
2916         * microbenchmarks: Copied from LayoutTests/js/regress/script-tests.
2917
2918 2016-08-23  Keith Miller  <keith_miller@apple.com>
2919
2920         %TypedArray%.prototype.slice needs to check that the source and destination have not been detached.
2921         https://bugs.webkit.org/show_bug.cgi?id=161031
2922         <rdar://problem/27937019>
2923
2924         Reviewed by Geoffrey Garen.
2925
2926         * stress/typedarray-slice.js:
2927         (get let):
2928         (get try):
2929         (testSpeciesWithTransferring):
2930
2931 2016-08-22  Filip Pizlo  <fpizlo@apple.com>
2932
2933         Butterflies should be allocated in Auxiliary MarkedSpace instead of CopiedSpace and we should rewrite as much of the GC as needed to make this not a regression
2934         https://bugs.webkit.org/show_bug.cgi?id=160125
2935
2936         Reviewed by Geoffrey Garen.
2937         
2938         Most of the things I did properly covered by existing tests, but I found some simple cases of
2939         unshifting that had sketchy coverage.
2940
2941         * stress/array-storage-array-unshift.js: Added.
2942         * stress/contiguous-array-unshift.js: Added.
2943         * stress/double-array-unshift.js: Added.
2944         * stress/int32-array-unshift.js: Added.
2945
2946 2016-08-23  Keith Miller  <keith_miller@apple.com>
2947
2948         Update/add new test262 tests
2949         https://bugs.webkit.org/show_bug.cgi?id=161098
2950
2951         Reviewed by Saam Barati.
2952
2953         * test262.yaml:
2954         * test262/test/annexB/language/statements/for-in/bare-initializer.js: Added.
2955         * test262/test/annexB/language/statements/for-in/const-initializer.js: Added.
2956         * test262/test/annexB/language/statements/for-in/let-initializer.js: Added.
2957         * test262/test/annexB/language/statements/for-in/nonstrict-initializer.js: Added.
2958         (a):
2959         * test262/test/annenxB/language/statements/for-in/strict-initializer.js: Added.
2960         * test262/test/annexB/language/statements/for-in/var-arraybindingpattern-initializer.js: Added.
2961         * test262/test/annexB/language/statements/for-in/var-objectbindingpattern-initializer.js: Added.
2962         * test262/test/built-ins/AsyncFunction/AsyncFunction-construct.js: Added.
2963         (AsyncFunction.async.foo):
2964         * test262/test/built-ins/AsyncFunction/AsyncFunction-is-extensible.js: Added.
2965         (AsyncFunction.async):
2966         * test262/test/built-ins/AsyncFunction/AsyncFunction-is-subclass.js: Added.
2967         (async.foo):
2968         * test262/test/built-ins/AsyncFunction/AsyncFunction-length.js: Added.
2969         (AsyncFunction.async.foo):
2970         * test262/test/built-ins/AsyncFunction/AsyncFunction-name.js: Added.
2971         (AsyncFunction.async.foo):
2972         * test262/test/built-ins/AsyncFunction/AsyncFunction-prototype.js: Added.
2973         (AsyncFunction.async.foo):
2974         * test262/test/built-ins/AsyncFunction/AsyncFunction.js: Added.
2975         (AsyncFunction.async.foo):
2976         * test262/test/built-ins/AsyncFunction/AsyncFunctionPrototype-is-extensible.js: Added.
2977         (AsyncFunction.async.foo):
2978         * test262/test/built-ins/AsyncFunction/AsyncFunctionPrototype-prototype.js: Added.
2979         (AsyncFunction.async.foo):
2980         * test262/test/built-ins/AsyncFunction/AsyncFunctionPrototype-to-string.js: Added.
2981         (AsyncFunction.async.foo):
2982         * test262/test/built-ins/AsyncFunction/instance-construct.js: Added.
2983         (async.foo):
2984         * test262/test/built-ins/AsyncFunction/instance-has-name.js: Added.
2985         (async.foo):
2986         * test262/test/built-ins/AsyncFunction/instance-length.js: Added.
2987         (async.l0):
2988         (async.l1):
2989         (async.l2):
2990         * test262/test/built-ins/AsyncFunction/instance-prototype-property.js: Added.
2991         (async.foo):
2992         * test262/test/built-ins/AsyncFunction/is-not-a-global.js: Added.
2993         * test262/test/built-ins/DataView/prototype/getFloat32/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/getFloat32/detached-buffer-after-integer-byteoffset.js.
2994         * test262/test/built-ins/DataView/prototype/getFloat32/detached-buffer-before-outofrange-byteoffset.js:
2995         * test262/test/built-ins/DataView/prototype/getFloat64/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/getFloat64/detached-buffer-after-integer-byteoffset.js.
2996         * test262/test/built-ins/DataView/prototype/getFloat64/detached-buffer-before-outofrange-byteoffset.js:
2997         * test262/test/built-ins/DataView/prototype/getInt16/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/getInt16/detached-buffer-after-integer-byteoffset.js.
2998         * test262/test/built-ins/DataView/prototype/getInt16/detached-buffer-before-outofrange-byteoffset.js:
2999         * test262/test/built-ins/DataView/prototype/getInt32/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/getInt32/detached-buffer-after-integer-byteoffset.js.
3000         * test262/test/built-ins/DataView/prototype/getInt32/detached-buffer-before-outofrange-byteoffset.js:
3001         * test262/test/built-ins/DataView/prototype/getInt8/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/getInt8/detached-buffer-after-integer-byteoffset.js.
3002         * test262/test/built-ins/DataView/prototype/getInt8/detached-buffer-before-outofrange-byteoffset.js:
3003         * test262/test/built-ins/DataView/prototype/getUint16/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/getUint16/detached-buffer-after-integer-byteoffset.js.
3004         * test262/test/built-ins/DataView/prototype/getUint16/detached-buffer-before-outofrange-byteoffset.js:
3005         * test262/test/built-ins/DataView/prototype/getUint32/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/getUint32/detached-buffer-after-integer-byteoffset.js.
3006         * test262/test/built-ins/DataView/prototype/getUint32/detached-buffer-before-outofrange-byteoffset.js:
3007         * test262/test/built-ins/DataView/prototype/getUint8/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/getUint8/detached-buffer-after-integer-byteoffset.js.
3008         * test262/test/built-ins/DataView/prototype/getUint8/detached-buffer-before-outofrange-byteoffset.js:
3009         * test262/test/built-ins/DataView/prototype/setFloat32/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/setFloat32/detached-buffer-after-integer-byteoffset.js.
3010         * test262/test/built-ins/DataView/prototype/setFloat32/detached-buffer-before-outofrange-byteoffset.js:
3011         * test262/test/built-ins/DataView/prototype/setFloat32/index-check-before-value-conversion.js:
3012         * test262/test/built-ins/DataView/prototype/setFloat32/range-check-after-value-conversion.js:
3013         * test262/test/built-ins/DataView/prototype/setFloat64/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/setFloat64/detached-buffer-after-integer-byteoffset.js.
3014         * test262/test/built-ins/DataView/prototype/setFloat64/detached-buffer-before-outofrange-byteoffset.js:
3015         * test262/test/built-ins/DataView/prototype/setFloat64/index-check-before-value-conversion.js:
3016         * test262/test/built-ins/DataView/prototype/setFloat64/range-check-after-value-conversion.js:
3017         * test262/test/built-ins/DataView/prototype/setInt16/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/setInt16/detached-buffer-after-integer-byteoffset.js.
3018         * test262/test/built-ins/DataView/prototype/setInt16/detached-buffer-before-outofrange-byteoffset.js:
3019         * test262/test/built-ins/DataView/prototype/setInt16/index-check-before-value-conversion.js:
3020         * test262/test/built-ins/DataView/prototype/setInt16/range-check-after-value-conversion.js:
3021         * test262/test/built-ins/DataView/prototype/setInt32/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/setInt32/detached-buffer-after-integer-byteoffset.js.
3022         * test262/test/built-ins/DataView/prototype/setInt32/detached-buffer-before-outofrange-byteoffset.js:
3023         * test262/test/built-ins/DataView/prototype/setInt32/index-check-before-value-conversion.js:
3024         * test262/test/built-ins/DataView/prototype/setInt32/range-check-after-value-conversion.js:
3025         * test262/test/built-ins/DataView/prototype/setInt8/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/setInt8/detached-buffer-after-integer-byteoffset.js.
3026         * test262/test/built-ins/DataView/prototype/setInt8/detached-buffer-before-outofrange-byteoffset.js:
3027         * test262/test/built-ins/DataView/prototype/setInt8/index-check-before-value-conversion.js:
3028         * test262/test/built-ins/DataView/prototype/setInt8/range-check-after-value-conversion.js:
3029         * test262/test/built-ins/DataView/prototype/setUint16/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/setUint16/detached-buffer-after-integer-byteoffset.js.
3030         * test262/test/built-ins/DataView/prototype/setUint16/detached-buffer-before-outofrange-byteoffset.js:
3031         * test262/test/built-ins/DataView/prototype/setUint16/index-check-before-value-conversion.js:
3032         * test262/test/built-ins/DataView/prototype/setUint16/range-check-after-value-conversion.js:
3033         * test262/test/built-ins/DataView/prototype/setUint32/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/setUint32/detached-buffer-after-integer-byteoffset.js.
3034         * test262/test/built-ins/DataView/prototype/setUint32/detached-buffer-before-outofrange-byteoffset.js:
3035         * test262/test/built-ins/DataView/prototype/setUint32/index-check-before-value-conversion.js:
3036         * test262/test/built-ins/DataView/prototype/setUint32/range-check-after-value-conversion.js:
3037         * test262/test/built-ins/DataView/prototype/setUint8/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/setUint8/detached-buffer-after-integer-byteoffset.js.
3038         * test262/test/built-ins/DataView/prototype/setUint8/detached-buffer-before-outofrange-byteoffset.js:
3039         * test262/test/built-ins/DataView/prototype/setUint8/index-check-before-value-conversion.js:
3040         * test262/test/built-ins/DataView/prototype/setUint8/range-check-after-value-conversion.js:
3041         * test262/test/built-ins/Function/prototype/bind/instance-construct-newtarget-boundtarget-bound.js: Added.
3042         (A):
3043         * test262/test/built-ins/Function/prototype/bind/instance-construct-newtarget-boundtarget.js: Added.
3044         (A):
3045         * test262/test/built-ins/Function/prototype/bind/instance-construct-newtarget-self-new.js: Added.
3046         (A):
3047         * test262/test/built-ins/Function/prototype/bind/instance-construct-newtarget-self-reflect.js: Added.
3048         (A):
3049         * test262/test/built-ins/Function/prototype/toString/AsyncFunction.js: Added.
3050         (async.f):
3051         * test262/test/built-ins/Function/prototype/toString/async-function-declaration.js: Added.
3052         (async.f):
3053         * test262/test/built-ins/Function/prototype/toString/async-function-expression.js: Added.
3054         (let.f.async.f):
3055         * test262/test/built-ins/Function/prototype/toString/async-method.js: Added.
3056         (let.f.async.f):
3057         (let.g.async.string_appeared_here):
3058         * test262/test/built-ins/JSON/parse/reviver-array-define-prop-err.js: Added.
3059         (defineProperty):
3060         * test262/test/built-ins/JSON/parse/reviver-array-delete-err.js: Added.
3061         (deleteProperty):
3062         * test262/test/built-ins/JSON/parse/reviver-array-length-coerce-err.js: Added.
3063         (uncoercible.valueOf):
3064         (get if):
3065         * test262/test/built-ins/JSON/parse/reviver-array-length-get-err.js: Added.
3066         (get if):
3067         * test262/test/built-ins/JSON/parse/reviver-call-err.js: Added.
3068         * test262/test/built-ins/JSON/parse/reviver-get-name-err.js: Added.
3069         (thrower):
3070         * test262/test/built-ins/JSON/parse/reviver-object-define-prop-err.js: Added.
3071         (defineProperty):
3072         * test262/test/built-ins/JSON/parse/reviver-object-delete-err.js: Added.
3073         (deleteProperty):
3074         * test262/test/built-ins/JSON/parse/reviver-object-own-keys-err.js: Added.
3075         (ownKeys):
3076         * test262/test/built-ins/Number/prototype/toExponential/infinity.js: Added.
3077         * test262/test/built-ins/Number/prototype/toExponential/nan.js: Added.
3078         * test262/test/built-ins/Number/prototype/toExponential/prop-desc.js: Added.
3079         * test262/test/built-ins/Number/prototype/toExponential/return-abrupt-tointeger-fractiondigits-symbol.js: Added.
3080         * test262/test/built-ins/Number/prototype/toExponential/return-abrupt-tointeger-fractiondigits.js: Added.
3081         (fd1.valueOf):
3082         (fd2.toString):
3083         * test262/test/built-ins/Number/prototype/toExponential/return-values.js: Added.
3084         * test262/test/built-ins/Number/prototype/toExponential/this-is-0-fractiondigits-is-0.js: Added.
3085         * test262/test/built-ins/Number/prototype/toExponential/this-is-0-fractiondigits-is-not-0.js: Added.
3086         * test262/test/built-ins/Number/prototype/toExponential/this-type-not-number-or-number-object.js: Added.
3087         * test262/test/built-ins/Number/prototype/toExponential/tointeger-fractiondigits.js: Added.
3088         * test262/test/built-ins/Number/prototype/toExponential/undefined-fractiondigits.js: Added.
3089         * test262/test/built-ins/Object/getOwnPropertyDescriptors/duplicate-keys.js:
3090         * test262/test/built-ins/Object/getOwnPropertyDescriptors/proxy-undefined-descriptor.js: Added.
3091         (badProxyHandlers.allowProxyTraps.getOwnPropertyDescriptor):
3092         (badProxyHandlers.allowProxyTraps.ownKeys):
3093         * test262/test/built-ins/Proxy/setPrototypeOf/boolean-trap-result-extensible-target.js: Removed.
3094         (setPrototypeOf): Deleted.
3095         * test262/test/built-ins/Proxy/setPrototypeOf/internals-call-order.js: Added.
3096         (target.new.Proxy.Object.create.isExtensible):
3097         (target.new.Proxy.Object.create.getPrototypeOf):
3098         (target.new.Proxy.Object.create):
3099         (setPrototypeOf):
3100         * test262/test/built-ins/Proxy/setPrototypeOf/not-extensible-target-not-same-target-prototype.js:
3101         (setPrototypeOf):
3102         * test262/test/built-ins/Proxy/setPrototypeOf/not-extensible-target-same-target-prototype.js:
3103         (setPrototypeOf):
3104         * test262/test/built-ins/Proxy/setPrototypeOf/not-extensible-trap-is-false-return-false.js: Removed.
3105         (setPrototypeOf): Deleted.
3106         * test262/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-get-trap.js: Added.
3107         * test262/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-isextensible-target.js: Added.
3108         (isExtensible):
3109         (setPrototypeOf):
3110         * test262/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-target-getprototypeof.js: Added.
3111         (getPrototypeOf):
3112         (setPrototypeOf):
3113         * test262/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-trap.js: Renamed from JSTests/test262/test/built-ins/Proxy/setPrototypeOf/return-is-abrupt.js.
3114         (setPrototypeOf):
3115         * test262/test/built-ins/Proxy/setPrototypeOf/return-is-abrupt.js:
3116         (setPrototypeOf): Deleted.
3117         * test262/test/built-ins/Proxy/setPrototypeOf/toboolean-trap-result-false.js: Added.
3118         (isExtensible):
3119         (setPrototypeOf):
3120         * test262/test/built-ins/Proxy/setPrototypeOf/toboolean-trap-result-true-target-is-extensible.js: Added.
3121         (isExtensible):
3122         (getPrototypeOf):
3123         (setPrototypeOf):
3124         * test262/test/built-ins/Proxy/setPrototypeOf/trap-is-not-callable.js:
3125         * test262/test/built-ins/Proxy/setPrototypeOf/trap-is-undefined-or-null.js: Added.
3126         (setPrototypeOf):
3127         * test262/test/built-ins/Proxy/setPrototypeOf/trap-is-undefined.js: Removed.
3128         * test262/test/built-ins/RegExp/lastIndex.js: Added.
3129         * test262/test/built-ins/RegExp/prototype/global/15.10.7.2-1.js: Removed.
3130         * test262/test/built-ins/RegExp/prototype/global/this-val-invalid-obj.js: Added.
3131         (get Object):
3132         * test262/test/built-ins/RegExp/prototype/global/this-val-non-obj.js: Added.
3133         (get Object):
3134         * test262/test/built-ins/RegExp/prototype/global/this-val-regexp-prototype.js: Added.
3135         * test262/test/built-ins/RegExp/prototype/ignoreCase/15.10.7.3-1.js: Removed.
3136         * test262/test/built-ins/RegExp/prototype/ignoreCase/this-val-invalid-obj.js: Added.
3137         (get Object):
3138         * test262/test/built-ins/RegExp/prototype/ignoreCase/this-val-non-obj.js: Added.
3139         (get Object):
3140         * test262/test/built-ins/RegExp/prototype/ignoreCase/this-val-regexp-prototype.js: Added.
3141         * test262/test/built-ins/RegExp/prototype/lastIndex/15.10.7.5-1.js: Removed.
3142         * test262/test/built-ins/RegExp/prototype/lastIndex/15.10.7.5-2.js: Removed.
3143         * test262/test/built-ins/RegExp/prototype/lastIndex/S15.10.7.5_A8.js: Removed.
3144         (__re.hasOwnProperty): Deleted.
3145         (__re.propertyIsEnumerable): Deleted.
3146         (count.0): Deleted.
3147         * test262/test/built-ins/RegExp/prototype/lastIndex/S15.10.7.5_A9.js: Removed.
3148         (__re.hasOwnProperty): Deleted.
3149         (catch): Deleted.
3150         * test262/test/built-ins/RegExp/prototype/multiline/15.10.7.4-1.js: Removed.
3151         * test262/test/built-ins/RegExp/prototype/multiline/this-val-invalid-obj.js: Added.
3152         (get Object):
3153         * test262/test/built-ins/RegExp/prototype/multiline/this-val-non-obj.js: Added.
3154         (get Object):
3155         * test262/test/built-ins/RegExp/prototype/multiline/this-val-regexp-prototype.js: Added.
3156         * test262/test/built-ins/RegExp/prototype/no-regexp-matcher.js: Added.
3157         * test262/test/built-ins/RegExp/prototype/source/15.10.7.1-1.js: Removed.
3158         * test262/test/built-ins/RegExp/prototype/source/this-val-invalid-obj.js: Added.
3159         (get Object):
3160         * test262/test/built-ins/RegExp/prototype/source/this-val-non-obj.js: Added.
3161         (get Object):
3162         * test262/test/built-ins/RegExp/prototype/source/this-val-regexp-prototype.js: Added.
3163         * test262/test/built-ins/RegExp/prototype/source/value-empty.js: Added.
3164         * test262/test/built-ins/RegExp/prototype/source/value-line-terminator.js: Added.
3165         * test262/test/built-ins/RegExp/prototype/source/value-u.js: Added.
3166         * test262/test/built-ins/RegExp/prototype/source/value.js: Added.
3167         * test262/test/built-ins/RegExp/prototype/sticky/this-val-invalid-obj.js: Renamed from JSTests/test262/test/built-ins/RegExp/prototype/sticky/this-invalid-obj.js.
3168         * test262/test/built-ins/RegExp/prototype/sticky/this-val-non-obj.js: Renamed from JSTests/test262/test/built-ins/RegExp/prototype/sticky/this-non-obj.js.
3169         * test262/test/built-ins/RegExp/prototype/sticky/this-val-regexp-prototype.js: Added.
3170         * test262/test/built-ins/RegExp/prototype/sticky/this-val-regexp.js: Renamed from JSTests/test262/test/built-ins/RegExp/prototype/sticky/this-regexp.js.
3171         * test262/test/built-ins/RegExp/prototype/unicode/this-val-invalid-obj.js: Renamed from JSTests/test262/test/built-ins/RegExp/prototype/unicode/this-invald-obj.js.
3172         * test262/test/built-ins/RegExp/prototype/unicode/this-val-non-obj.js: Renamed from JSTests/test262/test/built-ins/RegExp/prototype/unicode/this-non-obj.js.
3173         * test262/test/built-ins/RegExp/prototype/unicode/this-val-regexp-prototype.js: Added.
3174         * test262/test/built-ins/RegExp/prototype/unicode/this-val-regexp.js: Renamed from JSTests/test262/test/built-ins/RegExp/prototype/unicode/this-regexp.js.
3175         * test262/test/built-ins/String/numeric-properties.js: Added.
3176         * test262/test/intl402/DateTimeFormat/prototype/formatToParts/date-is-infinity-throws.js: Added.
3177         * test262/test/intl402/DateTimeFormat/prototype/formatToParts/date-is-nan-throws.js: Added.
3178         * test262/test/intl402/DateTimeFormat/prototype/formatToParts/formatToParts.js: Added.
3179         * test262/test/intl402/DateTimeFormat/prototype/formatToParts/length.js: Added.
3180         * test262/test/intl402/DateTimeFormat/prototype/formatToParts/main.js: Added.
3181         (reduce):
3182         (compareFTPtoFormat):
3183         * test262/test/intl402/DateTimeFormat/prototype/formatToParts/name.js: Added.
3184         * test262/test/intl402/DateTimeFormat/prototype/formatToParts/return-abrupt-tonumber-date.js: Added.
3185         (obj1.valueOf):
3186         (obj2.toString):
3187         * test262/test/intl402/DateTimeFormat/prototype/formatToParts/this-has-not-internal-throws.js: Added.
3188         * test262/test/intl402/DateTimeFormat/prototype/formatToParts/this-is-not-object-throws.js: Added.
3189         * test262/test/intl402/NumberFormat/prototype/formatToParts/formatToParts.js: Added.
3190         * test262/test/intl402/NumberFormat/prototype/formatToParts/length.js: Added.
3191         * test262/test/intl402/NumberFormat/prototype/formatToParts/main.js: Added.
3192         (reduce):
3193         (compareFTPtoFormat):
3194         * test262/test/intl402/NumberFormat/prototype/formatToParts/name.js: Added.
3195         * test262/test/intl402/NumberFormat/prototype/formatToParts/return-abrupt-tonumber.js: Added.
3196         (obj1.valueOf):
3197         (obj2.toString):
3198         * test262/test/intl402/NumberFormat/prototype/formatToParts/this-has-not-internal-throws.js: Added.
3199         * test262/test/intl402/NumberFormat/prototype/formatToParts/this-is-not-object-throws.js: Added.
3200         * test262/test/language/arguments-object/10.6-10-c-ii-2-s.js:
3201         (foo): Deleted.
3202         * test262/test/language/arguments-object/unmapped/via-params-dflt.js: Added.
3203         (dflt):
3204         * test262/test/language/arguments-object/unmapped/via-params-dstr.js: Added.
3205         (dstr):
3206         * test262/test/language/arguments-object/unmapped/via-params-rest.js: Added.
3207         (rest):
3208         * test262/test/language/arguments-object/unmapped/via-strict.js: Renamed from JSTests/test262/test/language/arguments-object/10.6-10-c-ii-2-s.js.
3209         (foo):
3210         * test262/test/language/block-scope/syntax/redeclaration-global/allowed-to-redeclare-function-declaration-with-function-declaration.js:
3211         (f): Deleted.
3212         * test262/test/language/eval-code/direct/super-call-arrow.js: Added.
3213         (catch):
3214         * test262/test/language/eval-code/direct/super-call-fn.js: Added.
3215         (f):
3216         * test262/test/language/eval-code/direct/super-call.js: Added.
3217         (catch):
3218         * test262/test/language/eval-code/direct/super-prop-arrow.js: Added.
3219         (catch):
3220         * test262/test/language/eval-code/direct/super-prop-method.js: Added.
3221         (o.method):
3222         * test262/test/language/eval-code/direct/super-prop.js: Added.
3223         (catch):
3224         * test262/test/language/eval-code/indirect/super-call.js: Added.
3225         (catch):
3226         (try.m):
3227         * test262/test/language/eval-code/indirect/super-prop.js: Added.
3228         (catch):
3229         (try.m):
3230         * test262/test/language/expressions/arrow-function/params-trailing-comma-length.js: Added.
3231         (assert.sameValue):
3232         * test262/test/language/expressions/arrow-function/params-trailing-comma.js: Added.
3233         * test262/test/language/expressions/async-arrow-function/arrow-returns-promise.js: Added.
3234         (p.then):
3235         * test262/test/language/expressions/async-arrow-function/early-errors-arrow-NSPL-with-USD.js: Added.
3236         (async):
3237         * test262/test/language/expressions/async-arrow-function/early-errors-arrow-arguments-in-formal-parameters.js: Added.
3238         (async):
3239         * test262/test/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals-default.js: Added.
3240         (async):
3241         * test262/test/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals.js: Added.
3242         (async):
3243         * test262/test/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-call.js: Added.
3244         (async):
3245         * test262/test/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-property.js: Added.
3246         (async):
3247         * test262/test/language/expressions/async-arrow-function/early-errors-arrow-duplicate-parameters.js: Added.
3248         (async):
3249         * test262/test/language/expressions/async-arrow-function/early-errors-arrow-eval-in-formal-parameters.js: Added.
3250         (async):
3251         * test262/test/language/expressions/async-arrow-function/early-errors-arrow-formals-body-duplicate.js: Added.
3252         (async):
3253         * test262/test/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-call.js: Added.
3254         (async.foo.super):
3255         * test262/test/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-property.js: Added.
3256         (async):
3257         * test262/test/language/expressions/async-function/early-errors-expression-NSPL-with-USD.js: Added.
3258         (async):
3259         * test262/test/language/expressions/async-function/early-errors-expression-binding-identifier-arguments.js: Added.
3260         (async.arguments):
3261         * test262/test/language/expressions/async-function/early-errors-expression-binding-identifier-eval.js: Added.
3262         (async.eval):
3263         * test262/test/language/expressions/async-function/early-errors-expression-body-contains-super-call.js: Added.
3264         (async.foo):
3265         * test262/test/language/expressions/async-function/early-errors-expression-body-contains-super-property.js: Added.
3266         (async.foo):
3267         * test262/test/language/expressions/async-function/early-errors-expression-eval-in-formal-parameters.js: Added.
3268         (async.foo):
3269         * test262/test/language/expressions/async-function/early-errors-expression-formals-body-duplicate.js: Added.
3270         (async.foo):
3271         * test262/test/language/expressions/async-function/early-errors-expression-formals-contains-super-call.js: Added.
3272         (async.foo):
3273         * test262/test/language/expressions/async-function/early-errors-expression-formals-contains-super-property.js: Added.
3274         (async.foo):
3275         * test262/test/language/expressions/async-function/early-errors-expression-not-simple-assignment-target.js: Added.
3276         (async.foo):
3277         * test262/test/language/expressions/async-function/expression-returns-promise.js: Added.
3278         (p.async):
3279         * test262/test/language/expressions/async-function/syntax-expression-is-PrimaryExpression.js: Added.
3280         (async.foo):
3281         * test262/test/language/expressions/await/await-BindingIdentifier-in-global.js: Added.
3282         (async.await):
3283         * test262/test/language/expressions/await/await-BindingIdentifier-nested.js: Added.
3284         (async.foo.await):
3285         (async.foo):
3286         * test262/test/language/expressions/await/await-awaits-thenable-not-callable.js: Added.
3287         (async.foo):
3288         * test262/test/language/expressions/await/await-awaits-thenables-that-throw.js: Added.
3289         (thenable.then):
3290         (async.foo):
3291         * test262/test/language/expressions/await/await-awaits-thenables.js: Added.
3292         (thenable.then):
3293         (async.foo):
3294         * test262/test/language/expressions/await/await-in-function.js: Added.
3295         (foo):
3296         * test262/test/language/expressions/await/await-in-generator.js: Added.
3297         (foo):
3298         * test262/test/language/expressions/await/await-in-global.js: Added.
3299         * test262/test/language/expressions/await/await-in-nested-function.js: Added.
3300         (async.foo.bar):
3301         (async.foo):
3302         * test262/test/language/expressions/await/await-in-nested-generator.js: Added.
3303         (async.foo.bar):
3304         (async.foo):
3305         * test262/test/language/expressions/await/await-throws-rejections.js: Added.
3306         (async.foo):
3307         * test262/test/language/expressions/await/early-errors-await-not-simple-assignment-target.js: Added.
3308         (async.foo):
3309         * test262/test/language/expressions/await/no-operand.js: Added.
3310         (async.foo):
3311         * test262/test/language/expressions/await/syntax-await-has-UnaryExpression-with-MultiplicativeExpression.js: Added.
3312         (async.foo):
3313         * test262/test/language/expressions/await/syntax-await-has-UnaryExpression.js: Added.
3314         (async.foo):
3315         * test262/test/language/expressions/call/trailing-comma.js: Added.
3316         (foo):
3317         * test262/test/language/expressions/function/arguments-with-arguments-fn.js: Added.
3318         (f):
3319         * test262/test/language/expressions/function/arguments-with-arguments-lex.js: Added.
3320         (f):
3321         * test262/test/language/expressions/function/params-trailing-comma-arguments.js: Added.
3322         (f1):
3323         (f2):
3324         * test262/test/language/expressions/function/params-trailing-comma-length.js: Added.
3325         (assert.sameValue):
3326         * test262/test/language/expressions/function/params-trailing-comma.js: Added.
3327         * test262/test/language/expressions/generators/arguments-with-arguments-fn.js: Added.
3328         (g):
3329         * test262/test/language/expressions/generators/arguments-with-arguments-lex.js: Added.
3330         (g):
3331         * test262/test/language/expressions/generators/params-trailing-comma-arguments.js: Added.
3332         (f1):
3333         (f2):
3334         * test262/test/language/expressions/generators/params-trailing-comma-length.js: Added.
3335         (assert.sameValue):
3336         * test262/test/language/expressions/generators/params-trailing-comma.js: Added.
3337         * test262/test/language/expressions/object/computed-property-evaluation-order.js: Added.
3338         * test262/test/language/expressions/object/method-definition/async-super-call-body.js: Added.
3339         (sup.method):
3340         (child.async.method):
3341         * test262/test/language/expressions/object/method-definition/async-super-call-param.js: Added.
3342         (sup.method):
3343         (child.async.method.x.super.method):
3344         * test262/test/language/expressions/object/method-definition/early-errors-object-method-NSPL-with-USD.js: Added.
3345         (foo):
3346         * test262/test/language/expressions/object/method-definition/early-errors-object-method-arguments-in-formal-parameters.js: Added.
3347         (async.foo):
3348         * test262/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals-default.js: Added.
3349         (async.foo):
3350         * test262/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals.js: Added.
3351         (async.foo):
3352         * test262/test/language/expressions/object/method-definition/early-errors-object-method-body-contains-super-call.js: Added.
3353         (async.foo):
3354         * test262/test/language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js: Added.
3355         (async.foo):
3356         * test262/test/language/expressions/object/method-definition/early-errors-object-method-eval-in-formal-parameters.js: Added.
3357         (async.foo):
3358         * test262/test/language/expressions/object/method-definition/early-errors-object-method-formals-body-duplicate.js: Added.
3359         (async.foo):
3360         * test262/test/language/expressions/object/method-definition/early-errors-object-method-formals-contains-super-call.js: Added.
3361         (async.foo.foo.super):
3362         * test262/test/language/expressions/object/method-definition/object-method-returns-promise.js: Added.
3363         (obj.async.method):
3364         * test262/test/language/expressions/object/method-definition/params-trailing-comma-arguments.js: Added.
3365         (obj.f1):
3366         (obj.f2):
3367         * test262/test/language/expressions/object/method-definition/params-trailing-comma-length.js: Added.
3368         (obj.one):
3369         (obj.two):
3370         * test262/test/language/expressions/object/method-definition/params-trailing-comma-rest.js: Added.
3371         (m):
3372         * test262/test/language/expressions/object/method-definition/params-trailing-comma.js: Added.
3373         (one):
3374         (two):
3375         * test262/test/language/global-code/decl-func-dup.js: Renamed from JSTests/test262/test/language/block-scope/syntax/redeclaration-global/allowed-to-redeclare-function-declaration-with-function-declaration.js.
3376         (f):
3377         * test262/test/language/global-code/decl-func.js: Added.
3378         (brandNew):
3379         * test262/test/language/global-code/decl-lex-configurable-global.js: Added.
3380         * test262/test/language/global-code/decl-lex-deletion.js: Added.
3381         (test262class):
3382         * test262/test/language/global-code/decl-lex-restricted-global.js: Added.
3383         * test262/test/language/global-code/decl-lex.js: Added.
3384         (test262class):
3385         * test262/test/language/global-code/decl-var.js: Added.
3386         * test262/test/language/global-code/return.js: Added.
3387         * test262/test/language/global-code/script-decl-func-dups.js: Added.
3388         * test262/test/language/global-code/script-decl-func-err-non-configurable.js: Added.
3389         * test262/test/language/global-code/script-decl-func-err-non-extensible.js: Added.
3390         * test262/test/language/global-code/script-decl-func.js: Added.
3391         * test262/test/language/global-code/script-decl-lex-deletion.js: Added.
3392         * test262/test/language/global-code/script-decl-lex-lex.js: Added.
3393         (test262Class):
3394         * test262/test/language/global-code/script-decl-lex-restricted-global.js: Added.
3395         * test262/test/language/global-code/script-decl-lex-var.js: Added.
3396         (test262Fn):
3397         * test262/test/language/global-code/script-decl-lex.js: Added.
3398         * test262/test/language/global-code/script-decl-var-collision.js: Added.
3399         (test262Class):
3400         * test262/test/language/global-code/script-decl-var-err.js: Added.
3401         * test262/test/language/global-code/script-decl-var.js: Added.
3402         * test262/test/language/global-code/super-call-arrow.js: Added.
3403         * test262/test/language/global-code/super-call.js: Added.
3404         * test262/test/language/global-code/super-prop-arrow.js: Added.
3405         * test262/test/language/global-code/super-prop.js: Added.
3406         * test262/test/language/global-code/yield-non-strict.js: Added.
3407         (catch):
3408         * test262/test/language/global-code/yield-strict.js: Added.
3409         * test262/test/language/literals/regexp/lastIndex.js: Added.
3410         * test262/test/language/literals/regexp/u-unicode-esc-bounds.js:
3411         * test262/test/language/literals/regexp/y-assertion-start.js: Added.
3412         * test262/test/language/module-code/instn-star-err-not-found-faulty_FIXTURE.js:
3413         * test262/test/language/module-code/instn-star-err-not-found.js:
3414         * test262/test/language/module-code/namespace/internals/get-own-property-str-found-init.js:
3415         * test262/test/language/module-code/parse-err-return.js: Added.
3416         * test262/test/language/module-code/parse-err-yield.js: Added.
3417         * test262/test/language/rest-parameters/params-trailing-comma-rest.js: Added.
3418         * test262/test/language/statements/async-function/declaration-returns-promise.js: Added.
3419         (async.foo):
3420         * test262/test/language/statements/async-function/early-errors-declaration-NSPL-with-USD.js: Added.
3421         (async.foo):
3422         * test262/test/language/statements/async-function/early-errors-declaration-arguments-in-formal-parameters.js: Added.
3423         (async.foo):
3424         * test262/test/language/statements/async-function/early-errors-declaration-await-in-formals-default.js: Added.
3425         (async.foo):
3426         * test262/test/language/statements/async-function/early-errors-declaration-await-in-formals.js: Added.
3427         (async.foo):
3428         * test262/test/language/statements/async-function/early-errors-declaration-binding-identifier-arguments.js: Added.
3429         (async.arguments):
3430         * test262/test/language/statements/async-function/early-errors-declaration-binding-identifier-eval.js: Added.
3431         (async.eval):
3432         * test262/test/language/statements/async-function/early-errors-declaration-body-contains-super-call.js: Added.
3433         (async.foo):
3434         * test262/test/language/statements/async-function/early-errors-declaration-body-contains-super-property.js: Added.
3435         (async.foo):
3436         * test262/test/language/statements/async-function/early-errors-declaration-duplicate-parameters.js: Added.
3437         (async.foo):
3438         * test262/test/language/statements/async-function/early-errors-declaration-eval-in-formal-parameters.js: Added.
3439         (async.foo):
3440         * test262/test/language/statements/async-function/early-errors-declaration-formals-body-duplicate.js: Added.
3441         (async.foo):
3442         * test262/test/language/statements/async-function/early-errors-declaration-formals-contains-super-call.js: Added.
3443         (async.foo):
3444         * test262/test/language/statements/async-function/early-errors-declaration-formals-contains-super-property.js: Added.
3445         (async.foo):
3446         * test262/test/language/statements/async-function/early-errors-no-async-generator.js: Added.
3447         (async.foo):
3448         * test262/test/language/statements/async-function/evaluation-body-that-returns-after-await.js: Added.
3449         (async.foo):
3450         (foo.then):
3451         * test262/test/language/statements/async-function/evaluation-body-that-returns.js: Added.
3452         (async.foo):
3453         (foo.then):
3454         * test262/test/language/statements/async-function/evaluation-body-that-throws-after-await.js: Added.
3455         (async.foo):
3456         (foo.then):
3457         * test262/test/language/statements/async-function/evaluation-body-that-throws.js: Added.
3458         (async.foo):
3459         (foo.then):
3460         * test262/test/language/statements/async-function/evaluation-body.js: Added.
3461         (async.foo):
3462         * test262/test/language/statements/async-function/evaluation-default-that-throws.js: Added.
3463         (async.foo):
3464         (foo.then):
3465         * test262/test/language/statements/async-function/evaluation-mapped-arguments.js: Added.
3466         (async.foo):
3467         * test262/test/language/statements/async-function/evaluation-this-value-global.js: Added.
3468         (async.foo):
3469         * test262/test/language/statements/async-function/evaluation-this-value-passed.js: Added.
3470         (async.foo):
3471         * test262/test/language/statements/async-function/evaluation-unmapped-arguments.js: Added.
3472         (async.foo):
3473         * test262/test/language/statements/async-function/syntax-declaration-line-terminators-allowed.js: Added.
3474         (async.foo):
3475         * test262/test/language/statements/async-function/syntax-declaration-no-line-terminator.js: Added.
3476         (async.foo):
3477         * test262/test/language/statements/async-function/syntax-declaration.js: Added.
3478         (async.foo):
3479         (foo.then):
3480         * test262/test/language/statements/class/definition/class-method-returns-promise.js: Added.
3481         (Foo.prototype.async.method):
3482         (Foo):
3483         * test262/test/language/statements/class/definition/early-errors-class-method-NSPL-with-USD.js: Added.
3484         (Foo.prototype.async.bar):
3485         (Foo):
3486         * test262/test/language/statements/class/definition/early-errors-class-method-arguments-in-formal-parameters.js: Added.
3487         (Foo.prototype.async.foo):
3488         (Foo):
3489         * test262/test/language/statements/class/definition/early-errors-class-method-await-in-formals-default.js: Added.
3490         (Foo.prototype.async.foo):
3491         (Foo):
3492         * test262/test/language/statements/class/definition/early-errors-class-method-await-in-formals.js: Added.
3493         (Foo.prototype.async.foo):
3494         (Foo):
3495         * test262/test/language/statements/class/definition/early-errors-class-method-body-contains-super-call.js: Added.
3496         (Foo.prototype.async.foo):
3497         (Foo):
3498         * test262/test/language/statements/class/definition/early-errors-class-method-duplicate-parameters.js: Added.
3499         (Foo.prototype.async.foo):
3500         (Foo):
3501         * test262/test/language/statements/class/definition/early-errors-class-method-eval-in-formal-parameters.js: Added.
3502         (Foo.prototype.async.foo):
3503         (Foo):
3504         * test262/test/language/statements/class/definition/early-errors-class-method-formals-body-duplicate.js: Added.
3505         (Foo.async.foo):
3506         (Foo):
3507         * test262/test/language/statements/class/definition/early-errors-class-method-formals-contains-super-call.js: Added.
3508         (Foo.prototype.async.foo):
3509         (Foo):
3510         * test262/test/language/statements/class/definition/methods-async-super-call-body.js: Added.
3511         (A.prototype.async.method):
3512         (A):
3513         (B.prototype.async.method):
3514         (B):
3515         * test262/test/language/statements/class/definition/methods-async-super-call-param.js: Added.
3516         (A.prototype.async.method):
3517         (A):
3518         (B.prototype.async.method):
3519         (B):
3520         * test262/test/language/statements/class/definition/params-trailing-comma-arguments.js: Added.
3521         (C.prototype.f1):
3522         (C.prototype.f2):
3523         (C):
3524         * test262/test/language/statements/class/definition/params-trailing-comma-length.js: Added.
3525         (C.prototype.one):
3526         (C.prototype.two):
3527         (C):
3528         * test262/test/language/statements/class/definition/params-trailing-comma-rest.js: Added.
3529         (C.prototype.m):
3530         (C):
3531         * test262/test/language/statements/class/definition/params-trailing-comma.js: Added.
3532         (C.prototype.one):
3533         (C.prototype.two):
3534         (C):
3535         * test262/test/language/statements/function/arguments-with-arguments-fn.js: Added.
3536         (f):
3537         * test262/test/language/statements/function/arguments-with-arguments-lex.js: Added.
3538         (f):
3539         * test262/test/language/statements/function/params-trailing-comma-arguments.js: Added.
3540         (f1):
3541         (f2):
3542         * test262/test/language/statements/function/params-trailing-comma-length.js: Added.
3543         (one):
3544         (two):
3545         * test262/test/language/statements/function/params-trailing-comma.js: Added.
3546         (one):
3547         (two):
3548         * test262/test/language/statements/generators/arguments-with-arguments-fn.js: Added.
3549         (g):
3550         * test262/test/language/statements/generators/arguments-with-arguments-lex.js: Added.
3551         (g):
3552         * test262/test/language/statements/generators/params-trailing-comma-length.js: Added.
3553         (one):
3554         (two):
3555         * test262/test/language/statements/generators/params-trailing-comma.js: Added.
3556         (one):
3557         (two):
3558         * test262/test262-Revision.txt:
3559
3560 2016-08-23  Benjamin Poulain  <bpoulain@apple.com>
3561
3562         [JSC] Make Math.cos() and Math.sin() work with any argument type
3563         https://bugs.webkit.org/show_bug.cgi?id=161069
3564
3565         Reviewed by Geoffrey Garen.
3566
3567         * stress/arith-cos-on-various-types.js: Added.
3568         * stress/arith-sin-on-various-types.js: Added.
3569
3570 2016-08-23  Yusuke Suzuki  <utatane.tea@gmail.com>
3571
3572         [ES6] Module namespace object's Symbol.iterator method should only accept module namespace objects
3573         https://bugs.webkit.org/show_bug.cgi?id=161097
3574
3575         Reviewed by Keith Miller.
3576
3577         * test262.yaml:
3578
3579 2016-08-22  Yusuke Suzuki  <utatane.tea@gmail.com>
3580
3581         [ES6] Modules' `export default function/class` should be declaration
3582         https://bugs.webkit.org/show_bug.cgi?id=160499
3583
3584         Reviewed by Saam Barati.
3585
3586         Add several module tests. And flip the failed tests flags in test262.
3587
3588         * modules/export-default-function-name-in-assignment-expression.js: Added.
3589         (export.default):
3590         * modules/export-default-function-name-in-class-declaration.js: Added.
3591         * modules/export-default-function-name-in-function-declaration.js: Added.
3592         (export.default):
3593         * modules/export-default-function-name-in-generator-declaration.js: Added.
3594         (export.default):
3595         * stress/method-name.js: Added.
3596         (testSyntax):
3597         (testSyntaxError):
3598         (testSyntaxError.Hello.prototype.hello.hello):
3599         (testSyntaxError.Hello):
3600         (SyntaxError.Unexpected.identifier.string_appeared_here.Expected.an.opening.string_appeared_here.before.a.method.testSyntaxError.let.obj.hello.hello):
3601         (testSyntaxError.Hello.prototype.get hello):
3602         (testSyntaxError.Hello.prototype.set hello):
3603         * test262.yaml:
3604
3605 2016-08-22  Yusuke Suzuki  <utatane.tea@gmail.com>
3606
3607         [ES6] Module should not allow HTML comments
3608         https://bugs.webkit.org/show_bug.cgi?id=161041
3609
3610         Reviewed by Saam Barati.
3611
3612         * modules/html-comments.js: Added.
3613         (shouldThrow):
3614         * test262.yaml:
3615
3616 2016-08-21  Yusuke Suzuki  <utatane.tea@gmail.com>
3617
3618         [DFG] Should not fixup AnyIntUse in 32_64
3619         https://bugs.webkit.org/show_bug.cgi?id=161029
3620
3621         Reviewed by Saam Barati.
3622
3623         * typeProfiler/int52-dfg.js: Added.
3624         (test):
3625
3626 2016-08-21  Yusuke Suzuki  <utatane.tea@gmail.com>
3627
3628         Unreviewed, rolling out r204697
3629         https://bugs.webkit.org/show_bug.cgi?id=161029
3630
3631         * typeProfiler/int52-dfg.js: Removed.
3632         (test): Deleted.
3633         * typeProfiler/number-filter-dfg.js: Removed.
3634         (test): Deleted.
3635
3636 2016-08-21  Yusuke Suzuki  <utatane.tea@gmail.com>
3637
3638         [DFG] Should not fixup AnyIntUse in 32_64
3639         https://bugs.webkit.org/show_bug.cgi?id=161029
3640
3641         Reviewed by Saam Barati.
3642
3643         * typeProfiler/int52-dfg.js: Added.
3644         (test):
3645         * typeProfiler/number-filter-dfg.js: Added.
3646         (test):
3647
3648 2016-08-19  Benjamin Poulain  <bpoulain@apple.com>
3649
3650         [JSC] ArithSqrt should work with any argument type
3651         https://bugs.webkit.org/show_bug.cgi?id=160954
3652
3653         Reviewed by Saam Barati.
3654
3655         * stress/arith-sqrt-on-various-types.js: Added.
3656         (let.validInputTypedTestCases.validInputTestCases.map):
3657         (isIdentical):
3658         (opaqueAllTypesSqrt):
3659         (testAllTypesCall):
3660         (testSingleTypeCall):
3661         (opaqueSqrtForSideEffects):
3662         (testSideEffect.let.testObject.valueOf):
3663         (testSideEffect):
3664         (opaqueSqrtForCSE):
3665         (testCSE.let.testObject.valueOf):
3666         (testCSE):
3667         (testException.opaqueSqrtWithException):
3668         (testException):
3669
3670 2016-08-19  Joseph Pecoraro  <pecoraro@apple.com>
3671
3672         Make custom Error properties (line, column, sourceURL) configurable and writable
3673         https://bugs.webkit.org/show_bug.cgi?id=160984
3674         <rdar://problem/27905979>
3675
3676         Reviewed by Saam Barati.
3677
3678         * stress/native-error-properties.js: Added.
3679         (assert):
3680         (shouldNotThrow):
3681
3682         (checkEmptyErrorPropertiesDescriptors):
3683         (checkNonEmptyErrorPropertiesDescriptors):
3684         The spec only describes the "message" property, so
3685         ensure it has the right descriptor attributes.
3686
3687         (checkErrorPropertiesWritable):
3688         Ensure common error property names are writable.
3689         In strict mode this would have thrown an exception
3690         if they were readonly.
3691
3692 2016-08-18  Mark Lam  <mark.lam@apple.com>
3693
3694         ScopedArguments is using the wrong owner object for a write barrier.
3695         https://bugs.webkit.org/show_bug.cgi?id=160976
3696         <rdar://problem/27328506>
3697
3698         Reviewed by Keith Miller.
3699
3700         * stress/scoped-arguments-write-barrier-should-be-on-scope-object.js: Added.
3701
3702 2016-08-17  JF Bastien  <jfbastien@apple.com>
3703
3704         We allow assignments to const variables when in a for-in/for-of loop
3705         https://bugs.webkit.org/show_bug.cgi?id=156673
3706
3707         Reviewed by Filip Pizlo.
3708
3709         * stress/for-in-of-const.js: Added.
3710         (expect_nothrow):
3711         (expect_throw):
3712         (capture):
3713
3714 2016-08-17  Mark Lam  <mark.lam@apple.com>
3715
3716         Remove an invalid assertion in the DFG backend's GetById emitter.
3717         https://bugs.webkit.org/show_bug.cgi?id=160925
3718         <rdar://problem/27248961>
3719
3720         Reviewed by Filip Pizlo.
3721
3722         * stress/dfg-get-by-id-should-not-assert-non-null-prediction.js: Added.
3723
3724 2016-08-16  Ryan Haddad  <ryanhaddad@apple.com>
3725
3726         Unreviewed, rolling out r204464.
3727
3728         This is no longer needed after r204495.
3729
3730         Reverted changeset:
3731
3732         "Skip failing test mozilla/ecma/LexicalConventions/7.7.3.js"
3733         https://bugs.webkit.org/show_bug.cgi?id=160662
3734         http://trac.webkit.org/changeset/204464
3735
3736 2016-08-15  Ryan Haddad  <ryanhaddad@apple.com>
3737
3738         Skip failing test mozilla/ecma/LexicalConventions/7.7.3.js
3739         https://bugs.webkit.org/show_bug.cgi?id=160662
3740
3741         Unreviewed test gardening.
3742
3743         * mozilla/ecma/LexicalConventions/7.7.3.js:
3744
3745 2016-08-14  Skachkov Oleksandr  <gskachkov@gmail.com>
3746
3747         [2016] Set correct status for test262 after implementation of Object.values&Object.entries
3748         https://bugs.webkit.org/show_bug.cgi?id=160844
3749
3750         Reviewed by Saam Barati.
3751
3752         Patch contains fix statuses of specs in the test262 test collection after implementation of 
3753         Object.values and Object.entries functions. Also patch contains small fixes in tests of the 
3754         tests for Object.values/entries functions.
3755
3756         * stress/object-entries.js:
3757         (Object.getOwnPropertyDescriptor):
3758         * stress/object-values.js:
3759         (Object.getOwnPropertyDescriptor):
3760         * test262.yaml:
3761
3762 2016-08-12  Saam Barati  <sbarati@apple.com>
3763
3764         Inline store loop for CopyRest in DFG and FTL for certain array modes
3765         https://bugs.webkit.org/show_bug.cgi?id=159612
3766
3767         Reviewed by Filip Pizlo.
3768
3769         * stress/rest-parameter-having-a-bad-time.js: Added.
3770         * stress/rest-parameter-many-arguments.js: Added.
3771         * stress/rest-parameter-various-types.js: Added.
3772
3773 2016-08-12  Skachkov Oleksandr  <gskachkov@gmail.com>
3774
3775         [ES2016] Implement Object.entries
3776         https://bugs.webkit.org/show_bug.cgi?id=160412
3777
3778         Reviewed by Saam Barati.
3779
3780         Patch contains tests for Object.entries function and 
3781         fix of wrong tests for Object.values function.
3782
3783         * stress/object-entries.js: 
3784         (compare):
3785         (string_appeared_here.forEach):
3786         (const.getInvokedFunctions.):
3787         (const.getInvokedFunctions):
3788         (Array.prototype.push):
3789         * stress/object-values.js:
3790
3791 2016-08-11  Mark Lam  <mark.lam@apple.com>
3792
3793         OverridesHasInstance should not branch across register allocations.
3794         https://bugs.webkit.org/show_bug.cgi?id=160792
3795         <rdar://problem/27361778>
3796
3797         Reviewed by Benjamin Poulain.
3798
3799         * stress/OverrideHasInstance-should-not-branch-across-register-allocations.js: Added.
3800
3801 2016-08-11  Mark Lam  <mark.lam@apple.com>
3802
3803         The jsc shell's Element host constructor should throw if it fails to construct an object.
3804         https://bugs.webkit.org/show_bug.cgi?id=160773
3805         <rdar://problem/27328608>
3806
3807         Reviewed by Saam Barati.
3808
3809         * stress/generational-opaque-roots.js:
3810
3811 2016-08-11  Mark Lam  <mark.lam@apple.com>
3812
3813         Disallow synchronous sweeping for eden GCs.
3814         https://bugs.webkit.org/show_bug.cgi?id=160716
3815
3816         Reviewed by Geoffrey Garen.
3817
3818         * stress/eden-gc-with-retired-blocks.js: Added.
3819         - This test is just in case we add back support for eden GCs with synchronous
3820           sweeping in the future.
3821
3822 2016-08-10  Michael Saboff  <msaboff@apple.com>
3823
3824         Baseline GetByVal and PutByVal for cache ID stubs need to handle exceptions
3825         https://bugs.webkit.org/show_bug.cgi?id=160749
3826
3827         Reviewed by Filip Pizlo.
3828
3829         New test that causes baseline GetByValWithCachedId and PutByValWithCachedId
3830         stubs to be generated and then throws exceptions for those stub to handle
3831         to verify that they are properly handled.
3832
3833         * stress/regress-160749.js: Added.
3834         (testCachedGetByVal.):
3835         (testCachedGetByVal.get for):
3836         (testCachedGetByVal):
3837         (testCachedPutByVal.):
3838         (testCachedPutByVal.set for):
3839         (testCachedPutByVal):
3840
3841 2016-08-10  Mark Lam  <mark.lam@apple.com>
3842
3843         DFG's flushForTerminal() needs to add PhantomLocals for bytecode live locals.
3844         https://bugs.webkit.org/show_bug.cgi?id=160755
3845         <rdar://problem/27488507>
3846
3847         Reviewed by Filip Pizlo.
3848
3849         * stress/need-bytecode-liveness-for-unreachable-blocks-at-dfg-time.js: Added.
3850
3851 2016-08-09  Skachkov Oleksandr  <gskachkov@gmail.com>
3852
3853         [ES2016] Implement Object.values
3854         https://bugs.webkit.org/show_bug.cgi?id=160410
3855
3856         Reviewed by Saam Barati, Yusuke Suzuki.
3857
3858         * stress/object-values.js: Added.
3859         (compare):
3860         (string_appeared_here.forEach):
3861         (const.getInvokedFunctions.):
3862         (const.getInvokedFunctions):
3863         (Array.prototype.push):
3864
3865 2016-08-09  Saam Barati  <sbarati@apple.com>
3866
3867         JSBoundFunction should lazily generate its name string
3868         https://bugs.webkit.org/show_bug.cgi?id=160678
3869         <rdar://problem/27043194>
3870
3871         Reviewed by Mark Lam.
3872
3873         * stress/bound-function-lazy-name-generation.js: Added.
3874         (assert):
3875         (test.let.f):
3876         (test.f):
3877         (test):
3878
3879 2016-08-08  Mark Lam  <mark.lam@apple.com>
3880
3881         ASSERTION FAILED: hasInlineStorage() in JSFinalObject::visitChildren().
3882         https://bugs.webkit.org/show_bug.cgi?id=160666
3883
3884         Reviewed by Keith Miller.
3885
3886         * stress/object-constructor-should-be-new-target-aware.js:
3887
3888 2016-08-07  Yusuke Suzuki  <utatane.tea@gmail.com>
3889
3890         [ES6] Module namespace object should not allow unset IC
3891         https://bugs.webkit.org/show_bug.cgi?id=160553
3892
3893         Reviewed by Saam Barati.
3894
3895         * modules/namespace-object-get-property.js: Added.
3896         (import.as.ns.from.string_appeared_here.shouldThrow):
3897         * modules/namespace-object-has-property.js: Added.
3898         * modules/namespace-object-inline-caching.js: Added.
3899         (import.as.A.from.string_appeared_here.import.as.B.from.string_appeared_here.lookup):
3900         (shouldBe.lookup.lookup):
3901         (shouldBe.lookup):
3902         * modules/namespace-object-inline-caching/a.js: Added.
3903         * modules/namespace-object-inline-caching/b.js: Added.
3904         * modules/namespace-object-try-get.js: Added.
3905         (import.as.ns.from.string_appeared_here.tryGetByIdText):
3906         (tryGetByIdTextStrict):
3907         * modules/namespace-object-typed-array-fast-path.js: Added.
3908         * test262.yaml:
3909
3910 2016-08-05  Saam Barati  <sbarati@apple.com>
3911
3912         various math operations don't properly check for an exception after calling toNumber() on the lhs
3913         https://bugs.webkit.org/show_bug.cgi?id=160154
3914
3915         Reviewed by Mark Lam.
3916
3917         * stress/to-number-throws-correct-exception.js: Added.
3918         (test.let.test.runTest.):
3919         (test.let.test.runTest.get f):
3920         (test.let.test.runTest):
3921         (test.let.test):
3922         (test):
3923         (test2.runTest.):
3924         (test2.runTest.get f):
3925         (test2.runTest):
3926         (test2):
3927
3928 2016-08-05  Saam Barati  <sbarati@apple.com>
3929
3930         Assertion failure when accessing TDZ variable in catch through eval
3931         https://bugs.webkit.org/show_bug.cgi?id=160554
3932
3933         Reviewed by Mark Lam and Keith Miller.
3934
3935         * stress/catch-variables-under-tdz.js: Added.
3936         (test):
3937
3938 2016-08-04  Yusuke Suzuki  <utatane.tea@gmail.com>
3939
3940         [ES6] JSModuleNamespaceObject's Symbol.iterator function should have name
3941         https://bugs.webkit.org/show_bug.cgi?id=160549
3942
3943         Reviewed by Saam Barati.
3944
3945         * modules/namespace-object-symbol-iterator-name.js: Added.
3946         * test262.yaml:
3947
3948 2016-08-04  Keith Miller  <keith_miller@apple.com>
3949
3950         ASSERTION FAILED: !hasInstanceValueNode->isCellConstant() || defaultHasInstanceFunction == hasInstanceValueNode->asCell()
3951         https://bugs.webkit.org/show_bug.cgi?id=160562
3952
3953         Reviewed by Mark Lam.
3954
3955         * stress/instanceof-late-constant-folding.js: Added.
3956         (Constructor):
3957         (value):
3958         (body):
3959
3960 2016-08-04  Caitlin Potter  <caitp@igalia.com>
3961
3962         [JSC] fix generator-syntax.js JSTest again after yield grammar fix
3963         https://bugs.webkit.org/show_bug.cgi?id=160550
3964
3965         Reviewed by Yusuke Suzuki.
3966
3967         * stress/generator-syntax.js:
3968         (testYieldBindingIdentifier):
3969
3970 2016-08-03  Caitlin Potter  <caitp@igalia.com>
3971
3972         Clarify SyntaxErrors around yield and unskip tests
3973         https://bugs.webkit.org/show_bug.cgi?id=158460
3974
3975         Reviewed by Saam Barati.
3976
3977         Fix and unskip tests which erroneously asserted that `yield` is not a
3978         valid BindingIdentifier, and improve error message for YieldExpressions
3979         occuring in Arrow formal parameters.
3980
3981         * stress/generator-syntax.js:
3982         * stress/yield-out-of-generator.js:
3983
3984 2016-08-03  Filip Pizlo  <fpizlo@apple.com>
3985
3986         REGRESSION(r203368): broke some test262 tests
3987         https://bugs.webkit.org/show_bug.cgi?id=160479
3988
3989         Reviewed by Mark Lam.
3990         
3991         Added a stress test for this case, since we don't always run test262.
3992
3993         * stress/freeze-setter.js: Added.
3994         (let.o.set foo):
3995
3996 2016-08-03  Saam Barati  <sbarati@apple.com>
3997
3998         Implement nested rest destructuring w.r.t the ES7 spec
3999         https://bugs.webkit.org/show_bug.cgi?id=160423
4000
4001         Reviewed by Filip Pizlo.
4002
4003         * stress/destructuring-rest-element.js: Added.
4004         (assert):
4005         (test):
4006         (arr):
4007         (eq):
4008         (gen):
4009         (fakeGen.return.Symbol.iterator):
4010         (fakeGen):
4011         * stress/rest-elements.js:
4012         (testSyntaxError.String.raw):
4013         * stress/rest-parameter-is-destructuring.js: Added.
4014         (assert):
4015         (test):
4016         (foo):
4017         (bar):
4018         * test262.yaml:
4019
4020 2016-08-02  Saam Barati  <sbarati@apple.com>
4021
4022         Rename Changelog to ChangeLog
4023
4024         Rubber stamped by Keith Miller.
4025
4026         * Changelog: Removed.
4027
4028 2016-08-02  Saam Barati  <sbarati@apple.com>
4029
4030         update a class extending null w.r.t the ES7 spec
4031         https://bugs.webkit.org/show_bug.cgi?id=160417
4032
4033         Reviewed by Keith Miller.
4034
4035         * Changelog:
4036         * stress/class-derived-from-null.js: Added.
4037         (assert):
4038         (test):
4039         (test1.C):
4040         (test1):
4041         (jsNull):
4042         (test2.C):
4043         (test2):
4044         (test3.C):
4045         (test3.D):
4046         (test3.E):
4047         (test3):
4048         (test4.E):
4049         (test4):
4050         (test5.E):
4051         (test5):
4052         (test6.Base):
4053         (test6.D):
4054         (test6.E):
4055         (test6.F):
4056         (test6.G):
4057         (test6):
4058         * test262.yaml:
4059
4060 2016-08-01  Filip Pizlo  <fpizlo@apple.com>
4061
4062         Rationalize varargs stack overflow checks
4063         https://bugs.webkit.org/show_bug.cgi?id=160425
4064
4065         Reviewed by Michael Saboff.
4066
4067         * stress/arity-check-ftl-throw-more-args.js: Added.
4068         (catch):
4069
4070 2016-08-01  Keith Miller  <keith_miller@apple.com>
4071
4072         We should not keep the JavaScript tests inside the Source/JavaScriptCore/ directory.
4073         https://bugs.webkit.org/show_bug.cgi?id=160372
4074
4075         Rubber stamped by Geoffrey Garen.
4076
4077         This patch moves all the JavaScript tests from Source/JavaScriptCore/tests to
4078         a new top level directory, JSTests. Having the tests in the Source directory
4079         was both confusing an inconvenient for people that just want to checkout the
4080         source code of WebKit. Since there is no other obvious place to put all the
4081         JavaScript tests a new top level directory seemed the most sensible.
4082
4083         * tests/: Deleted.