v8/test/mjsunit
Benedikt Meurer 0038e5f05f [async] Improve async function handling.
This change introduces new intrinsics used to desugar async functions
in the Parser and the BytecodeGenerator, namely we introduce a new
%_AsyncFunctionEnter intrinsic that constructs the generator object
for the async function (and in the future will also create the outer
promise for the async function). This generator object is internal
and never escapes to user code, plus since async functions don't have
a "prototype" property, we can just a single map here instead of tracking
the prototype/initial_map on every async function. This saves one word
per async function plus one initial_map per async function that was
invoked at least once.

We also introduce two new intrinsics %_AsyncFunctionReject, which
rejects the outer promise with the caught exception, and another
%_AsyncFunctionResolve, which resolves the outer promise with the
right hand side of the `return` statement. These functions also perform
the DevTools part of the job (aka popping from the promise stack and
sending the debug event). This allows us to get rid of the implicit
try-finally from async functions completely; because the finally
block only called to the %AsyncFunctionPromiseRelease builtin, which
was used to inform DevTools.

In essence we now turn an async function like

```js
async function f(x) { return await bar(x); }
```

into something like this (in Parser and BytecodeGenerator respectively):

```
function f(x) {
  .generator_object = %_AsyncFunctionEnter(.closure, this);
  .promise = %AsyncFunctionCreatePromise();
  try {
    .tmp = await bar(x);
    return %_AsyncFunctionResolve(.promise, .tmp);
  } catch (e) {
    return %_AsyncFunctionReject(.promise, e);
  }
}
```

Overall the bytecode for async functions gets significantly shorter
already (and will get even shorter once we put the outer promise into
the async function generator object). For example the bytecode for a
simple async function

```js
async function f(x) { return await x; }
```

goes from 175 bytes to 110 bytes (a ~38% reduction in size), which
is in particular due to the simplification around the try-finally
removal.

Overall this seems to improve the doxbee-async-es2017-native test by
around 2-3%. On the test case mentioned in v8:8276 we go from
1124ms to 441ms, which corresponds to a 60% reduction in total
execution time!

Tbr: marja@chromium.org
Bug: v8:7253, v8:7522, v8:8276
Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Id29dc92de7490b387ff697860c900cee44c9a7a4
Reviewed-on: https://chromium-review.googlesource.com/c/1269041
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56502}
2018-10-10 06:37:53 +00:00
..
asm Reland "[asmjs] Properly validate asm.js heap sizes" 2018-08-21 09:00:04 +00:00
async-hooks [async] Improve error handling for async hooks 2018-07-05 14:49:03 +00:00
bugs
compiler [async] Improve async function handling. 2018-10-10 06:37:53 +00:00
d8 [test] Add missing resource for test on Android 2018-09-20 11:58:46 +00:00
es6 Reland "Add fast path for spreading primitive strings." 2018-10-08 10:47:50 +00:00
es7 [elements] Rename Has*Elements and Is*ElementsKind methods 2017-07-03 09:25:53 +00:00
es8 Reland ^3 "[async] Expose async hooks to d8" 2018-07-04 15:47:16 +00:00
es9 [CloneObjectIC] add CSA implementation of slow case 2018-09-11 20:43:53 +00:00
harmony [js weak refs] Initial JS Weak Ref implementation. 2018-10-09 13:16:50 +00:00
ignition [d8] Update new Worker API to match the Web API 2018-09-20 00:10:28 +00:00
lithium
regress [parser] Rewrite duplicate formal detection 2018-10-09 09:17:42 +00:00
third_party [test] Fixing incorrectly capitalised regexps 2017-09-13 08:43:13 +00:00
tools Reland "[test] Add logic to run tests on Android" 2018-08-10 17:56:12 +00:00
type-profile [type-profile] Incorporate into inspector protocol. 2017-09-08 09:46:12 +00:00
wasm [wasm] Fix corner cases with catch-all handling. 2018-10-09 14:15:13 +00:00
accessor-map-sharing.js
accessors-no-prototype.js
accessors-on-global-object.js Enable --harmony-strict-legacy-accessor-builtins by default 2017-08-02 21:30:57 +00:00
allocation-folding.js
allocation-site-info.js Reland ^3 "[async] Expose async hooks to d8" 2018-07-04 15:47:16 +00:00
api-call-after-bypassed-exception.js
apply-arguments-gc-safepoint.js
apply.js [sfi] Compress function arg counts to 16 bit 2018-05-30 16:35:50 +00:00
argument-assigned.js
argument-named-arguments.js
arguments-apply-deopt.js
arguments-apply.js
arguments-call-apply.js
arguments-deopt.js [turbofan] Remove --turbo shorthand for --turbo-filter. 2017-06-23 11:19:19 +00:00
arguments-enum.js
arguments-escape.js
arguments-indirect.js
arguments-lazy.js
arguments-load-across-eval.js
arguments-read-and-assignment.js
arguments.js Fix arguments.js test 2017-07-25 07:58:13 +00:00
array-bounds-check-removal.js
array-concat.js
array-construct-transition.js [elements] Rename Has*Elements and Is*ElementsKind methods 2017-07-03 09:25:53 +00:00
array-constructor-feedback.js [turbofan] Serialize more Map data. 2018-08-14 11:07:33 +00:00
array-constructor.js [mjsunit] Speed up array constructor test 2018-06-14 16:45:23 +00:00
array-elements-from-array-prototype-chain.js
array-elements-from-array-prototype.js
array-elements-from-object-prototype.js
array-feedback.js [fullcodegen] Remove --stress-fullcodegen flag. 2017-08-10 09:52:49 +00:00
array-foreach.js
array-functions-prototype-misc.js [array] Move Array.p.unshift fall-back to Torque 2018-09-06 07:09:05 +00:00
array-functions-prototype.js
array-indexing-receiver.js [elements] Rename Has*Elements and Is*ElementsKind methods 2017-07-03 09:25:53 +00:00
array-indexing.js
array-isarray.js [proxies] Add stackoverflow check for JSProxy::isArray 2017-06-07 14:47:31 +00:00
array-iteration.js [builtins] Port Array.p.{find,findIndex} to CSA 2017-12-05 07:23:13 +00:00
array-iterator-prototype-next.js Add dependency to deopt when Array prototype has elements. 2018-08-14 07:16:41 +00:00
array-join.js
array-lastindexof.js Fix Array lastIndexOf to call [[HasProperty]] before [[Get]] 2018-08-03 08:45:55 +00:00
array-length-number-conversion.js
array-length.js [runtime] clear array elements when right trimming while leaving free space 2017-06-26 12:02:27 +00:00
array-literal-feedback.js [deoptimizer] Disable test incompatible with deopt fuzzer 2018-04-11 09:58:04 +00:00
array-literal-transitions.js [fullcodegen] Remove --stress-fullcodegen flag. 2017-08-10 09:52:49 +00:00
array-methods-read-only-length.js
array-natives-elements.js [elements] Rename Has*Elements and Is*ElementsKind methods 2017-07-03 09:25:53 +00:00
array-non-smi-length.js
array-pop.js
array-prototype-every.js Add dependency to deopt when Array prototype has elements. 2018-08-14 07:16:41 +00:00
array-prototype-filter.js Add dependency to deopt when Array prototype has elements. 2018-08-14 07:16:41 +00:00
array-prototype-find.js Add dependency to deopt when Array prototype has elements. 2018-08-14 07:16:41 +00:00
array-prototype-findindex.js Add dependency to deopt when Array prototype has elements. 2018-08-14 07:16:41 +00:00
array-prototype-foreach.js Add dependency to deopt when Array prototype has elements. 2018-08-14 07:16:41 +00:00
array-prototype-includes.js [turbofan] Add additional checks for the JSCallReducer of Array#indexOf/includes. 2018-08-16 09:18:01 +00:00
array-prototype-indexof.js [turbofan] Add additional checks for the JSCallReducer of Array#indexOf/includes. 2018-08-16 09:18:01 +00:00
array-prototype-lastindexof.js Add dependency to deopt when Array prototype has elements. 2018-08-14 07:16:41 +00:00
array-prototype-map.js Add dependency to deopt when Array prototype has elements. 2018-08-14 07:16:41 +00:00
array-prototype-pop.js Add dependency to deopt when Array prototype has elements. 2018-08-14 07:16:41 +00:00
array-prototype-reduce.js Add dependency to deopt when Array prototype has elements. 2018-08-14 07:16:41 +00:00
array-prototype-slice.js Add dependency to deopt when Array prototype has elements. 2018-08-14 07:16:41 +00:00
array-prototype-some.js Add dependency to deopt when Array prototype has elements. 2018-08-14 07:16:41 +00:00
array-push2.js
array-push3.js
array-push4.js
array-push5.js [fullcodegen] Remove --stress-fullcodegen flag. 2017-08-10 09:52:49 +00:00
array-push6.js
array-push8.js
array-push9.js Reland "[flags] Remove some dead Crankshaft flags." 2017-07-13 13:15:34 +00:00
array-push10.js
array-push11.js
array-push12.js
array-push13.js
array-push14.js
array-push-hole-double.js
array-push-non-smi-value.js
array-push.js
array-reduce.js [turbofan] Fix bug in Array.p.reduceRight 2018-03-05 10:52:32 +00:00
array-reverse.js [array] Replace JS Array.p.reverse with a Torque implementation 2018-08-24 05:57:20 +00:00
array-shift2.js
array-shift3.js
array-shift4.js
array-shift5.js [builtins] add test for Array.shift on holey double array 2017-08-08 08:16:42 +00:00
array-shift.js
array-slice.js
array-sort.js [mjsunit] Split slow test out of array-sort and skip it on certain builds 2018-05-24 12:36:48 +00:00
array-splice.js [builtins] Enable Torque Array.prototype.splice 2018-09-04 13:18:23 +00:00
array-store-and-grow.js [fullcodegen] Remove --stress-fullcodegen flag. 2017-08-10 09:52:49 +00:00
array-tostring.js
array-unshift.js [array] Move Array.p.unshift fall-back to Torque 2018-09-06 07:09:05 +00:00
ascii-regexp-subject.js
asm-directive.js
async-stack-traces-prepare-stacktrace-1.js [async] First prototype of zero-cost async stack traces. 2018-10-04 08:02:06 +00:00
async-stack-traces-prepare-stacktrace-2.js [async] First prototype of zero-cost async stack traces. 2018-10-04 08:02:06 +00:00
async-stack-traces-prepare-stacktrace-3.js [async] First prototype of zero-cost async stack traces. 2018-10-04 08:02:06 +00:00
async-stack-traces.js [async] Initial async generator support for --async-stack-traces. 2018-10-05 13:41:53 +00:00
basic-promise.js
big-array-literal.js
big-object-literal.js
binary-op-newspace.js
binary-operation-overwrite.js
bit-not.js
bitops-info.js
bitwise-operations-bools.js
bitwise-operations-undefined.js
body-not-visible.js
bool-concat.js
boolean.js
bounds-checks-elimination.js Reland "[flags] Remove some dead Crankshaft flags." 2017-07-13 13:15:34 +00:00
break.js
BUILD.gn [build] Add data deps for d8 test suites 2018-03-26 13:44:58 +00:00
call-cross-realm.js
call-intrinsic-type-error.js
call-non-function-call.js
call-non-function.js
call-stub.js
call.js
char-escape.js
class-of-builtins.js
closure.js
closures.js
code-comments.js Fix undefined behaviour on CommentOperator 2018-05-09 13:31:21 +00:00
code-coverage-ad-hoc.js [coverage] Refactor tests 2017-07-26 06:40:07 +00:00
code-coverage-block-noopt.js Remove always-true --harmony-async-iteration runtime flag 2018-01-12 20:14:34 +00:00
code-coverage-block-opt.js Remove always-true --harmony-async-iteration runtime flag 2018-01-12 20:14:34 +00:00
code-coverage-block.js [coverage] change block range to avoid ambiguity. 2018-10-02 19:27:02 +00:00
code-coverage-class-fields.js [class] Fix code coverage and add tests for public class fields 2018-09-06 13:26:12 +00:00
code-coverage-precise.js [test] Add stress_incremental_marking testing variant 2017-10-05 13:10:42 +00:00
code-coverage-utils.js [debug] retire ScriptWrapper 2018-07-05 21:33:03 +00:00
codegen-coverage.js
compare-character.js
compare-known-objects-slow.js
compare-known-objects-tostringtag.js
compare-known-objects.js
compare-nan.js
compare-nil.js
compare-objects.js
compare-table-eq.js
compare-table-gt.js
compare-table-gteq.js
compare-table-lt.js
compare-table-lteq.js
compare-table-ne.js
compare-table-seq.js
compare-table-sne.js
comparison-ops-and-undefined.js
compiler-regress-787301.js [deoptimizer] Fix materialization of iterators. 2017-12-04 17:57:45 +00:00
concurrent-initial-prototype-change.js
console.js [d8] Support more console functions 2017-10-13 10:44:17 +00:00
const-field-tracking.js
constant-compare-nil-value.js
constant-fold-control-instructions.js Reland "[flags] Remove some dead Crankshaft flags." 2017-07-13 13:15:34 +00:00
constant-folding-2.js [turbofan] Improve performance of mjsunit test 2018-03-26 11:34:58 +00:00
constant-folding.js
context-calls-maintained.js
context-variable-assignments.js
contextual-calls.js
copy-on-write-assert.js
cross-realm-filtering.js
cross-realm-global-prototype.js
cyclic-array-to-string.js
cyrillic.js Fix common misspellings 2017-08-02 09:35:28 +00:00
date-parse.js Fix common misspellings 2017-08-02 09:35:28 +00:00
date.js [builtins] Convert double to integer in Date.prototype.setDate 2018-06-05 09:27:39 +00:00
debugPrint.js
declare-locally.js
deep-recursion.js
default-nospec.js Reland "[turbofan] Disable speculation for JSCall nodes by default" 2018-02-23 08:31:41 +00:00
define-property-gc.js
dehoisted-array-index.js
delay-syntax-error.js
delete-global-properties.js
delete-in-eval.js
delete-in-with.js
delete-non-configurable.js
delete-vars-from-eval.js
delete.js
deopt-global-accessor.js
deopt-minus-zero.js
deopt-recursive-eager-once.js [fullcodegen] Remove --stress-fullcodegen flag. 2017-08-10 09:52:49 +00:00
deopt-recursive-lazy-once.js [fullcodegen] Remove --stress-fullcodegen flag. 2017-08-10 09:52:49 +00:00
deopt-recursive-soft-once.js [fullcodegen] Remove --stress-fullcodegen flag. 2017-08-10 09:52:49 +00:00
deopt-unlinked.js [fullcodegen] Remove --stress-fullcodegen flag. 2017-08-10 09:52:49 +00:00
deopt-with-fp-regs.js [fullcodegen] Remove --stress-fullcodegen flag. 2017-08-10 09:52:49 +00:00
deopt-with-outer-context.js
deserialize-optimize-inner.js
deserialize-reference.js Remove non-existent --serialize-toplevel flag from tests 2017-12-07 13:05:53 +00:00
dictionary-properties.js
dictionary-prototypes.js [runtime] Decrease the maximum number of descriptors. 2017-12-13 18:59:26 +00:00
disallow-codegen-from-strings.js [flags] Introduce --disallow-code-generation-from-strings 2017-12-06 19:10:33 +00:00
div-mod.js
div-mul-minus-one.js
do-not-strip-fc.js
dont-enum-array-holes.js
dont-reinit-global-var.js
double-equals.js
double-truncation.js
dtoa.js
duplicate-parameters.js [parser|cleanup] Remove unnecessary ExpressionClassifying. 2017-06-09 11:06:51 +00:00
eagerly-parsed-lazily-compiled-functions.js
element-accessor.js
element-read-only.js
elements-kind-depends.js
elements-kind.js [elements] Rename Has*Elements and Is*ElementsKind methods 2017-07-03 09:25:53 +00:00
elements-length-no-holey.js [elements] Rename Has*Elements and Is*ElementsKind methods 2017-07-03 09:25:53 +00:00
elements-transition-and-store.js
elements-transition-hoisting.js [elements] Rename FAST elements kinds 2017-06-30 13:31:44 +00:00
elements-transition.js [elements] Rename Has*Elements and Is*ElementsKind methods 2017-07-03 09:25:53 +00:00
elide-double-hole-check-1.js
elide-double-hole-check-2.js
elide-double-hole-check-3.js
elide-double-hole-check-4.js
elide-double-hole-check-5.js
elide-double-hole-check-6.js
elide-double-hole-check-7.js
elide-double-hole-check-8.js
elide-double-hole-check-9.js
elide-double-hole-check-10.js
elide-double-hole-check-11.js
elide-double-hole-check-12.js
empirical_max_arraybuffer.js [wasm] Prepare to support 4GiB memories 2018-07-24 13:55:43 +00:00
ensure-growing-store-learns.js [fullcodegen] Remove --stress-fullcodegen flag. 2017-08-10 09:52:49 +00:00
enumeration-order.js
error-accessors.js
error-constructors.js
error-tostring-omit.js
error-tostring.js
escape.js
eval-enclosing-function-name.js
eval-origin.js
eval-stack-trace.js
eval-typeof-non-existing.js
eval.js
external-array.js
external-backing-store-gc.js Reland "Add external backing store JS test" 2018-09-05 16:03:39 +00:00
extra-arguments.js
extra-commas.js
fast-array-length.js [elements] Rename Has*Elements and Is*ElementsKind methods 2017-07-03 09:25:53 +00:00
fast-element-smi-check.js
fast-literal.js Remove --use-allocation-folding relict from tests. 2018-05-09 08:50:59 +00:00
fast-non-keyed.js
fast-prototype.js
field-type-tracking.js [fullcodegen] Remove --stress-fullcodegen flag. 2017-08-10 09:52:49 +00:00
filter-element-kinds.js [Turbofan] Reland Array.prototype.filter inlining. 2017-10-23 19:29:50 +00:00
fixed-context-shapes-when-recompiling.js
for-in-delete.js
for-in-null-or-undefined.js
for-in-special-cases.js [keys] Fix for-in with only non-enumerable properties in dictionary mode 2018-09-13 14:55:34 +00:00
for-in.js
for.js
fun-as-prototype.js
fun-name.js
function-arguments-duplicate.js
function-arguments-null.js
function-bind-name.js
function-bind.js Support fast-path Function.prototype.bind for bound function 2017-10-04 13:06:49 +00:00
function-call.js [js] Remove CHECK_OBJECT_COERCIBLE for Array methods 2017-10-20 19:29:36 +00:00
function-caller.js Reland "[runtime] Make all built-in functions strict." 2017-06-27 15:26:10 +00:00
function-length-accessor.js
function-name-eval-shadowed.js
function-named-self-reference.js
function-names.js
function-property.js
function-prototype.js
function-var.js
function-without-prototype.js
function.js
fuzz-accessors.js Reland "[runtime] Make all built-in functions strict." 2017-06-27 15:26:10 +00:00
generated-transition-stub.js [mjsunit] Speed up test by using const 2018-06-14 15:56:03 +00:00
get-own-property-descriptor-non-objects.js
get-own-property-descriptor.js
get-prototype-of.js
getter-in-prototype.js
getter-in-value-prototype.js
getters-on-elements.js [fullcodegen] Remove --stress-fullcodegen flag. 2017-08-10 09:52:49 +00:00
global-accessors.js Remove always-on flag --harmony-strict-legacy-accessor-builtins 2017-11-17 04:06:30 +00:00
global-arrow-delete-this.js
global-deleted-property-ic.js
global-hash.js
global-ic.js
global-infinity-strict.js
global-infinity.js
global-load-from-eval-in-with.js
global-load-from-eval.js
global-load-from-nested-eval.js
global-nan-strict.js
global-nan.js
global-properties.js
global-prototypes.js [ic] Prototype-only dictionaries, step 1. 2017-12-06 16:08:55 +00:00
global-undefined-strict.js
global-undefined.js
global-vars-eval.js
global-vars-with.js
handle-count-ast.js
handle-count-runtime-literals.js
has-own-property-evaluation-order.js
has-own-property.js
hash-code.js Reland "[runtime] Store hash code in length field" 2017-08-21 05:30:01 +00:00
heapObjectVerify.js
hex-parsing.js
holy-double-no-arg-array.js
html-comments.js
html-string-funcs.js
ic-lookup-on-receiver.js [ic] Unify handling of Load/StoreHandler objects in load/store IC dispatchers. 2017-12-14 15:14:16 +00:00
icu-date-lord-howe.js
icu-date-to-string.js
if-in-undefined.js
immutable-context-slot-inlining.js
in.js
indexed-accessors.js
indexed-value-properties.js
induction-variable-turbofan.js [turbofan] Remove --turbo shorthand for --turbo-filter. 2017-06-23 11:19:19 +00:00
instanceof-2.js
instanceof.js
int32-ops.js
integer-to-string.js
intl-numberformat-formattoparts.js Roll ICU to ICU 62.1 2018-07-11 10:24:26 +00:00
intl-pluralrules-select.js Remove flags for plural rules and number formatToParts 2018-04-27 20:02:48 +00:00
invalid-lhs.js
invalid-source-element.js
json2.js [elements] Rename Has*Elements and Is*ElementsKind methods 2017-07-03 09:25:53 +00:00
json-errors.js
json-parser-recursive.js
json-replacer-number-wrapper-tostring.js
json-replacer-order.js
json-stringify-holder.js
json-stringify-recursive.js
json-stringify-stack.js
json.js [esnext] Implement well-formed JSON.stringify 2018-09-21 14:23:49 +00:00
keyed-array-call.js
keyed-call-generic.js
keyed-call-ic.js
keyed-ic.js
keyed-load-dictionary-stub.js
keyed-load-generic.js
keyed-load-hole-to-undefined.js [fullcodegen] Remove --stress-fullcodegen flag. 2017-08-10 09:52:49 +00:00
keyed-load-with-string-key.js
keyed-load-with-symbol-key.js [fullcodegen] Remove --stress-fullcodegen flag. 2017-08-10 09:52:49 +00:00
keyed-named-access.js
keyed-storage-extend.js
keyed-store-array-literal.js Reland "[ic] Improve performance of KeyedStoreIC on literal-based arrays." 2018-01-26 11:11:03 +00:00
keyed-store-generic.js Reland "[builtins] Separate species protectors for Array, TypedArray, Promise" 2018-04-23 17:52:50 +00:00
keywords-and-reserved_words.js
large-object-allocation.js
large-object-literal-2.js
large-object-literal-slow-elements.js
large-object-literal.js Fix common misspellings 2017-08-02 09:35:28 +00:00
lazy-inner-functions.js
lazy-load.js
lea-add.js
leakcheck.js
length.js
linecontinuation.js [test] Improve LineContinuation test coverage 2018-05-21 20:15:59 +00:00
load_poly_effect.js
load-callback-from-value-classic.js
local-load-from-eval.js
logical.js
lookup-behind-property.js
math-abs.js
math-ceil.js
math-deopt.js [turbofan] Move Math.* builtins to JSCallReducer 2018-02-21 12:21:20 +00:00
math-exp-precision.js
math-floor-negative.js
math-floor-of-div-minus-zero.js Reland "[flags] Remove some dead Crankshaft flags." 2017-07-13 13:15:34 +00:00
math-floor-of-div-nosudiv.js Reland "[flags] Remove some dead Crankshaft flags." 2017-07-13 13:15:34 +00:00
math-floor-of-div.js Reland "[flags] Remove some dead Crankshaft flags." 2017-07-13 13:15:34 +00:00
math-floor-part1.js
math-floor-part2.js
math-floor-part3.js
math-floor-part4.js
math-imul.js
math-min-max.js
math-pow.js
math-round.js
math-sqrt.js
md5.js
megamorphic-callbacks.js
messages.js [map] Normalize hole for formatting an exception 2018-05-02 12:55:47 +00:00
migrations.js [runtime] Properly deal with prototype setup mode during class literal instantiation. 2017-11-28 09:11:59 +00:00
mjsunit_suppressions.js [test] Add interrupt-budget fuzzer 2018-01-29 16:31:40 +00:00
mjsunit-assertion-error.js Reland "[mjsunit] Improve mjsunit stracktrace readability" 2017-07-12 19:01:21 +00:00
mjsunit.js Export mjsunit.formatFailureText which is needed by test-async.js 2018-09-21 01:37:14 +00:00
mjsunit.status [test] Disable promise-all-overflow-1 on all platforms 2018-10-09 14:59:39 +00:00
mod-range.js
mod.js
modules-circular-valid.js
modules-cycle.js
modules-default-name1.js
modules-default-name2.js
modules-default-name3.js
modules-default-name4.js
modules-default-name5.js
modules-default-name6.js
modules-default-name7.js
modules-default-name8.js
modules-default-name9.js
modules-default.js
modules-empty-import1.js
modules-empty-import2.js
modules-empty-import3.js
modules-empty-import4.js
modules-error-trace.js
modules-exports1.js
modules-exports2.js
modules-exports3.js
modules-imports1.js
modules-imports2.js
modules-imports3.js
modules-imports4.js
modules-imports5.js
modules-imports6.js
modules-imports7.js
modules-init1.js
modules-init2.js
modules-init3.js
modules-init4.js [modules] Fix bug in module initialization. 2017-08-23 09:07:49 +00:00
modules-namespace1.js
modules-namespace2.js
modules-namespace3.js
modules-namespace4.js
modules-namespace-getownproperty1.js [modules] Fix handling of uninitialized exports in namespace objects. 2018-02-28 21:13:16 +00:00
modules-namespace-getownproperty2.js [modules] Fix handling of uninitialized exports in namespace objects. 2018-02-28 21:13:16 +00:00
modules-preparse.js
modules-relative-path.js
modules-skip-1.js
modules-skip-2.js
modules-skip-3.js
modules-skip-4.js
modules-skip-5.js
modules-skip-6.js
modules-skip-7.js
modules-skip-circular-valid.js
modules-skip-cycle.js
modules-skip-default-name1.js
modules-skip-default-name2.js
modules-skip-default-name3.js
modules-skip-default-name4.js
modules-skip-default-name5.js
modules-skip-default-name6.js
modules-skip-default-name7.js
modules-skip-default-name8.js
modules-skip-default-name9.js
modules-skip-empty-import-aux.js
modules-skip-empty-import.js
modules-skip-init1.js
modules-skip-init3.js
modules-skip-init4a.js [modules] Fix bug in module initialization. 2017-08-23 09:07:49 +00:00
modules-skip-init4b.js [modules] Fix bug in module initialization. 2017-08-23 09:07:49 +00:00
modules-skip-namespace.js
modules-skip-star-exports-conflict.js
modules-skip-star-exports-cycle.js
modules-star-exports-cycle.js
modules-this.js
modules-turbo1.js [turbofan] Remove --turbo shorthand for --turbo-filter. 2017-06-23 11:19:19 +00:00
modules-turbo2.js [turbofan] Remove --turbo shorthand for --turbo-filter. 2017-06-23 11:19:19 +00:00
mul-exhaustive-part1.js
mul-exhaustive-part2.js
mul-exhaustive-part3.js
mul-exhaustive-part4.js
mul-exhaustive-part5.js
mul-exhaustive-part6.js
mul-exhaustive-part7.js
mul-exhaustive-part8.js
mul-exhaustive-part9.js
mul-exhaustive-part10.js
multiline.js
multiple-return.js
nans.js
negate-zero.js
negate.js
neuter-twice.js
never-optimize.js
new-function.js
new.js
newline-in-string.js [parser] Fix parsing of escaped line terminator sequences. 2017-06-06 17:07:52 +00:00
no-branch-elimination.js
no-octal-constants-above-256.js
no-semicolon.js
non-ascii-replace.js
noopt.js
not.js
nul-characters.js
number-is.js
number-isnan-opt.js
number-limits.js
number-literal.js
number-string-index-call.js
number-tostring-add.js
number-tostring-big-integer.js
number-tostring-func.js
number-tostring-small.js
number-tostring.js
numops-fuzz-part1.js
numops-fuzz-part2.js
numops-fuzz-part3.js
numops-fuzz-part4.js
obj-construct.js
object-create.js
object-define-properties.js
object-define-property.js Fix common misspellings 2017-08-02 09:35:28 +00:00
object-freeze-global.js
object-freeze.js
object-get-own-property-names.js
object-is.js
object-keys.js [proxies][keys] Do not filter ownKeys when defaulting to the target 2018-06-25 16:40:01 +00:00
object-literal-conversions.js
object-literal-gc.js
object-literal-modified-object-prototype.js [literals] Document that literals with simple getters cause dict-properties 2017-11-03 12:43:54 +00:00
object-literal-multiple-fields.js
object-literal-multiple-proto-fields.js
object-literal-overwrite.js
object-literal.js [literals] Document that literals with simple getters cause dict-properties 2017-11-03 12:43:54 +00:00
object-prevent-extensions.js
object-seal-global.js
object-seal.js [fullcodegen] Remove --stress-fullcodegen flag. 2017-08-10 09:52:49 +00:00
object-toprimitive.js
omit-constant-mapcheck.js
opt-elements-kind.js [elements] Rename Has*Elements and Is*ElementsKind methods 2017-07-03 09:25:53 +00:00
optimized-array-every.js [TurboFan] Allow unreliable maps in array builtins 2018-01-16 14:01:29 +00:00
optimized-array-find.js [TurboFan] Allow unreliable maps in array builtins 2018-01-16 14:01:29 +00:00
optimized-array-findindex.js [TurboFan] Allow unreliable maps in array builtins 2018-01-16 14:01:29 +00:00
optimized-array-some.js [Turbofan] Inline Array.prototype.some 2018-01-04 11:39:41 +00:00
optimized-filter.js [TurboFan] Allow unreliable maps in array builtins 2018-01-16 14:01:29 +00:00
optimized-foreach-holey-2.js Support holey elements kind (not double) in TF-inlined forEach 2017-07-10 13:09:53 +00:00
optimized-foreach-holey-3.js Support holey elements kind (not double) in TF-inlined forEach 2017-07-10 13:09:53 +00:00
optimized-foreach-holey.js Support holey elements kind (not double) in TF-inlined forEach 2017-07-10 13:09:53 +00:00
optimized-foreach-polymorph.js [builtins] Enable inlining of polymorphic receivers in Array.prototype.forEach 2017-10-04 16:08:58 +00:00
optimized-foreach.js [TurboFan] Allow unreliable maps in array builtins 2018-01-16 14:01:29 +00:00
optimized-map.js [TurboFan] Allow unreliable maps in array builtins 2018-01-16 14:01:29 +00:00
optimized-reduce.js [TurboFan] Array.prototype.reduce[Right] was missing a deopt point 2018-02-07 14:20:37 +00:00
optimized-reduceright.js [TurboFan] Array.prototype.reduce[Right] was missing a deopt point 2018-02-07 14:20:37 +00:00
optimized-typeof.js
osr-elements-kind.js [elements] Rename Has*Elements and Is*ElementsKind methods 2017-07-03 09:25:53 +00:00
outobject-double-for-in.js
override-read-only-property.js
packed-elements.js [elements] Rename Has*Elements and Is*ElementsKind methods 2017-07-03 09:25:53 +00:00
parallel-optimize-disabled.js Reland "[flags] Remove some dead Crankshaft flags." 2017-07-13 13:15:34 +00:00
parse-int-float.js
parse-surrogates.js
pixel-array-rounding.js
polymorph-arrays.js
preparse-toplevel-strict-eval.js
primitive-keyed-access.js
print.js
property-load-across-eval.js
property-name-eval-arguments.js
property-object-key.js
proto-accessor.js
proto-elements-add-during-foreach.js [Builtins] Torque version of Array.prototype.forEach() 2018-05-09 08:58:39 +00:00
proto.js
prototype-changes.js
prototype-non-existing.js
prototype.js
random-bit-correlations.js
readonly-accessor.js
readonly.js
realm-property-access.js
receiver-in-with-calls.js
recursive-store-opt.js
regexp-cache-replace.js
regexp-call-as-function.js
regexp-capture-3.js
regexp-capture.js
regexp-captures.js
regexp-compile.js
regexp-global.js
regexp-indexof.js
regexp-lastIndex.js
regexp-lookahead.js
regexp-loop-capture.js
regexp-modifiers-autogenerated-i18n.js Remove always-true --harmony-regexp-property runtime flag 2018-06-05 09:19:59 +00:00
regexp-modifiers-autogenerated.js Remove always-true --harmony-regexp-property runtime flag 2018-06-05 09:19:59 +00:00
regexp-modifiers-dotall.js Remove always-on flags for RegExp dotAll and lookbehind 2017-11-17 16:47:19 +00:00
regexp-modifiers-i18n.js RegExp: Add the ability to switch flags on and off within the regexp. 2017-11-09 08:11:45 +00:00
regexp-modifiers.js RegExp: Add the ability to switch flags on and off within the regexp. 2017-11-09 08:11:45 +00:00
regexp-multiline.js
regexp-regexpexec.js
regexp-results-cache.js
regexp-sort.js
regexp-stack-overflow.js
regexp-standalones.js
regexp-static.js
regexp-string-methods.js
regexp-UC16.js
regexp.js
result-table-max.js
result-table-min.js
samevalue.js [cleanup] Remove obsolete runtime functions. 2018-09-21 10:59:12 +00:00
scanner.js
scope-calls-eval.js
search-string-multiple.js
serialize-after-execute.js Reland "Add support to produce code cache after execute" 2017-12-01 14:02:47 +00:00
serialize-embedded-error.js Remove non-existent --serialize-toplevel flag from tests 2017-12-07 13:05:53 +00:00
serialize-ic.js Remove non-existent --serialize-toplevel flag from tests 2017-12-07 13:05:53 +00:00
setter-on-constructor-prototype.js
setters-on-elements.js
shared-function-tier-up-turbo.js [fullcodegen] Remove --stress-fullcodegen flag. 2017-08-10 09:52:49 +00:00
shift-for-integer-div.js
shifts.js
short-circuit-boolean.js
simple-constructor.js
sin-cos.js
skipping-inner-functions-bailout.js [parser] Skipping inner funcs: Fix bailout. 2017-09-07 21:18:12 +00:00
skipping-inner-functions.js [parser] Skipping inner funcs: Fix variable name debug mode check. 2018-02-15 08:16:38 +00:00
smi-mul-const.js [fullcodegen] Remove --stress-fullcodegen flag. 2017-08-10 09:52:49 +00:00
smi-mul.js Revert "[turbofan] Do not consume SignedSmall feedback in TurboFan anymore." 2018-10-07 10:19:01 +00:00
smi-negative-zero.js
smi-ops-inlined.js
smi-ops.js
smi-representation.js
sparse-array.js
splice-proxy.js Reimplement Array.prototype.slice in CSA and C++ 2017-10-24 06:39:47 +00:00
stack-overflow-arity-catch-noinline.js [turbofan] Remove --turbo shorthand for --turbo-filter. 2017-06-23 11:19:19 +00:00
stack-traces-2.js Reland "[array] Implement Array.p.sort in Torque" 2018-06-05 08:33:18 +00:00
stack-traces-class-fields.js [class] Give a name to initializer functions 2018-09-07 19:26:34 +00:00
stack-traces-custom-lazy.js
stack-traces-custom.js Fix type conversions in JSStackFrame accessors 2017-08-25 15:32:54 +00:00
stack-traces-overflow.js
stack-traces.js [error] Lazy stack trace formatting for Error.captureStackTrace 2017-07-18 06:40:39 +00:00
store-dictionary.js
str-to-num.js
stress-array-push.js
strict-equals.js
strict-mode-eval.js
strict-mode-implicit-receiver.js
strict-mode-opt.js
strict-mode.js
string-add.js
string-case.js
string-charat.js
string-charcodeat-external.js [turbofan] Inline StringCharCodeAt like Crankshaft did. 2018-01-19 15:16:47 +00:00
string-charcodeat.js [cleanup] Drop obsolete %StringCharCodeAt intrinsic. 2017-09-08 15:45:44 +00:00
string-compare-alignment.js
string-concat.js
string-deopt.js [turbofan] Introduce StringSubstring operator 2018-02-23 15:51:57 +00:00
string-equal.js [builtins] Support two byte strings in StringEqual builtin. 2017-11-02 06:39:34 +00:00
string-external-cached.js
string-externalize.js Revert "[objects] No longer create short external strings." 2017-11-30 20:04:41 +00:00
string-flatten.js
string-fromcharcode.js
string-index.js
string-indexof-1.js [tests] Change '% OptimizeFunctionOnNextCall' to ' %OptimizeFunctionOnNextCall'. 2017-06-02 17:53:48 +00:00
string-indexof-2.js
string-lastindexof.js
string-localecompare.js
string-match.js
string-normalize.js
string-oom-array-join.js [builtins] Increase the maximum string length on 64-bit platforms. 2017-07-24 10:38:55 +00:00
string-oom-concat.js
string-oom-replace-global-regexp-with-string.js [builtins] Increase the maximum string length on 64-bit platforms. 2017-07-24 10:38:55 +00:00
string-oom-replace-regexp-global-with-function.js [builtins] Increase the maximum string length on 64-bit platforms. 2017-07-24 10:38:55 +00:00
string-pad.js [builtins] Fix String#pad{Start,End} for a large maxLength argument. 2018-08-24 19:50:09 +00:00
string-replace-gc.js
string-replace-one-char.js
string-replace-with-empty.js
string-replace.js
string-search.js
string-slices-regexp.js
string-slices.js
string-split-cache.js
string-split.js [string] Add a fast path for empty separator in String.p.split 2018-05-18 16:09:49 +00:00
string-trim.js Remove always-true --harmony-string-trimming runtime flag 2018-10-01 16:19:19 +00:00
string-wrapper.js
strong-rooted-literals.js [turbofan] Remove --turbo shorthand for --turbo-filter. 2017-06-23 11:19:19 +00:00
substr.js
sum-0-plus-undefined-is-NaN.js
switch-opt.js
switch.js
test-async.js Export mjsunit.formatFailureText which is needed by test-async.js 2018-09-21 01:37:14 +00:00
test-builtins-setup.js [runtime] Don't swap function maps during bootstrapping. 2017-07-07 18:29:01 +00:00
testcfg.py [test] Share resource-fetching logic with all d8 test cases 2018-08-29 17:51:43 +00:00
thin-strings.js
this-dynamic-lookup.js
this-in-callbacks.js
this-property-assignment.js
this.js
throw-and-catch-function.js
throw-exception-for-null-access.js
to_number_order.js
to-precision.js
tobool.js
toint32.js
top-level-assignments.js
touint32.js
track-fields.js
transcendentals.js
transition-elements-kind.js
try-catch-extension-object.js
try-catch-scopes.js
try-finally-continue.js
try-finally-nested.js
try.js
typed-array-slice.js
typeof.js [turbofan] Remove ObjectRef::TypeOf. 2018-09-13 10:33:16 +00:00
tzoffset-seoul-noi18n.js Reland "Implement a new spec for timezone offset calculation" 2018-04-04 22:42:30 +00:00
tzoffset-seoul.js Reland "Implement a new spec for timezone offset calculation" 2018-04-04 22:42:30 +00:00
tzoffset-transition-apia.js Reland "Implement a new spec for timezone offset calculation" 2018-04-04 22:42:30 +00:00
tzoffset-transition-lord-howe.js Reland "Implement a new spec for timezone offset calculation" 2018-04-04 22:42:30 +00:00
tzoffset-transition-moscow.js Reland "Implement a new spec for timezone offset calculation" 2018-04-04 22:42:30 +00:00
tzoffset-transition-new-york-noi18n.js Reland "Implement a new spec for timezone offset calculation" 2018-04-04 22:42:30 +00:00
tzoffset-transition-new-york.js Reland "Implement a new spec for timezone offset calculation" 2018-04-04 22:42:30 +00:00
unary-minus-deopt.js
unbox-double-arrays.js [runtime] Ensure elements transitions don't interfere with field type tracking. 2017-11-22 16:51:47 +00:00
unbox-double-field-indexed.js
unbox-double-field.js
unbox-smi-field-indexed.js
unbox-smi-field.js
undeletable-functions.js
undetectable-compare.js
undetectable.js [builtins] Introduce CallProxy builtin based on CSA 2017-07-14 11:22:48 +00:00
unicode-case-overoptimization.js
unicode-string-to-number.js
unicode-test.js Fix common misspellings 2017-08-02 09:35:28 +00:00
unicodelctest-no-optimization.js
unicodelctest.js
unused-context-in-with.js
unusual-constructor.js
uri.js
value-callic-prototype-change.js
value-of.js [runtime] Remove nedless branch in ToObject builtin 2017-09-08 14:01:05 +00:00
value-wrapper-accessor.js
value-wrapper.js
var.js
verify-assert-false.js
verify-check-false.js
whitespaces0.js [mjsunit] Split up long RegExp tests 2017-11-22 13:38:52 +00:00
whitespaces1.js [mjsunit] Split up long RegExp tests 2017-11-22 13:38:52 +00:00
whitespaces2.js [mjsunit] Split up long RegExp tests 2017-11-22 13:38:52 +00:00
whitespaces3.js [mjsunit] Split up long RegExp tests 2017-11-22 13:38:52 +00:00
whitespaces4.js [mjsunit] Split up long RegExp tests 2017-11-22 13:38:52 +00:00
whitespaces5.js [mjsunit] Split up long RegExp tests 2017-11-22 13:38:52 +00:00
whitespaces6.js [mjsunit] Split up long RegExp tests 2017-11-22 13:38:52 +00:00
whitespaces7.js [mjsunit] Split up long RegExp tests 2017-11-22 13:38:52 +00:00
whitespaces8.js [mjsunit] Split up long RegExp tests 2017-11-22 13:38:52 +00:00
whitespaces9.js [mjsunit] Split up long RegExp tests 2017-11-22 13:38:52 +00:00
whitespaces.js [mjsunit] Split up long RegExp tests 2017-11-22 13:38:52 +00:00
with-function-expression.js
with-leave.js
with-parameter-access.js
with-prototype.js
with-readonly.js
with-value.js