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