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