• Leszek Swirski's avatar
    [ignition] More accurate dead statement elision · 74125939
    Leszek Swirski authored
    The Ignition statement list visitor will skip the rest of the
    statements in the list if it hits a jump statement (like a return
    or break), as the rest of the code in the list can be considered
    dead.
    
        return;
        dead_call(); // skipped
    
    However, since this is at an AST node level, it does not take into
    account condition shortcutting:
    
        if(2.2) return;
        dead_call(); // not skipped
    
    There is also a second dead code elimination in Ignition compilation, at
    the bytecode array writer level, where a bytecodes are not emitted if an
    "exit" bytecode (Return, Jump, or a few others) has been written, until
    the next basic block starts (i.e. a Bind).
    
    This can cause an issue with statements that resurrect the bytecode
    array writer part-way through their visit. An example is try-catch
    statements, which save the context to a register, and then Bind to start
    the try region.
    
    For the case:
    
        if (2.2) return;
        try {     // try statement not skipped
            ...
        }
    
    the bytecode writer is called with
    
        OutputReturn()             // exit bytecode seen
        OutputMove(<context>, r1)  // not emitted
        Bind(&try_begin)           // starts new basic block
        // try body
    
    So, the try is emitted, but without saving the context to a register.
    This means that the liveness analysis sees the read of that register
    (as the output liveness of throwing bytecodes), but does not have a
    write to the register, which means that the liveness escapes.
    
    This patch fixes this by using the bytecode array writer dead-code
    elimination (i.e. "exit bytecode seen") to inform the statement list
    visitor, so that in this example the try statement is not visited at
    all.
    
    Bug: chromium:902395
    Change-Id: Ieb8e46a4318df3edbac0ae17235e0ce8fba12ee3
    Reviewed-on: https://chromium-review.googlesource.com/c/1322951Reviewed-by: 's avatarMythri Alle <mythria@chromium.org>
    Commit-Queue: Leszek Swirski <leszeks@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#57350}
    74125939
Name
Last commit
Last update
..
asm Loading commit data...
async-hooks Loading commit data...
bugs Loading commit data...
compiler Loading commit data...
d8 Loading commit data...
es6 Loading commit data...
es7 Loading commit data...
es8 Loading commit data...
es9 Loading commit data...
harmony Loading commit data...
ignition Loading commit data...
lithium Loading commit data...
regress Loading commit data...
third_party Loading commit data...
tools Loading commit data...
type-profile Loading commit data...
wasm Loading commit data...
BUILD.gn Loading commit data...
accessor-map-sharing.js Loading commit data...
accessors-no-prototype.js Loading commit data...
accessors-on-global-object.js Loading commit data...
allocation-folding.js Loading commit data...
allocation-site-info.js Loading commit data...
api-call-after-bypassed-exception.js Loading commit data...
apply-arguments-gc-safepoint.js Loading commit data...
apply.js Loading commit data...
argument-assigned.js Loading commit data...
argument-named-arguments.js Loading commit data...
arguments-apply-deopt.js Loading commit data...
arguments-apply.js Loading commit data...
arguments-call-apply.js Loading commit data...
arguments-deopt.js Loading commit data...
arguments-enum.js Loading commit data...
arguments-escape.js Loading commit data...
arguments-indirect.js Loading commit data...
arguments-lazy.js Loading commit data...
arguments-load-across-eval.js Loading commit data...
arguments-read-and-assignment.js Loading commit data...
arguments.js Loading commit data...
array-bounds-check-removal.js Loading commit data...
array-concat.js Loading commit data...
array-construct-transition.js Loading commit data...
array-constructor-feedback.js Loading commit data...
array-constructor.js Loading commit data...
array-elements-from-array-prototype-chain.js Loading commit data...
array-elements-from-array-prototype.js Loading commit data...
array-elements-from-object-prototype.js Loading commit data...
array-feedback.js Loading commit data...
array-foreach.js Loading commit data...
array-from-large-set.js Loading commit data...
array-functions-prototype-misc.js Loading commit data...
array-functions-prototype.js Loading commit data...
array-indexing-receiver.js Loading commit data...
array-indexing.js Loading commit data...
array-isarray.js Loading commit data...
array-iteration.js Loading commit data...
array-iterator-prototype-next.js Loading commit data...
array-join-element-tostring-prototype-side-effects.js Loading commit data...
array-join-element-tostring-side-effects.js Loading commit data...
array-join-index-getter-side-effects.js Loading commit data...
array-join-invalid-string-length.js Loading commit data...
array-join-nesting.js Loading commit data...
array-join-nonarray-length-getter-side-effects.js Loading commit data...
array-join-separator-tostring-side-effects.js Loading commit data...
array-join.js Loading commit data...
array-lastindexof.js Loading commit data...
array-length-number-conversion.js Loading commit data...
array-length.js Loading commit data...
array-literal-feedback.js Loading commit data...
array-literal-transitions.js Loading commit data...
array-methods-read-only-length.js Loading commit data...
array-natives-elements.js Loading commit data...
array-non-smi-length.js Loading commit data...
array-pop.js Loading commit data...
array-prototype-every.js Loading commit data...
array-prototype-filter.js Loading commit data...
array-prototype-find.js Loading commit data...
array-prototype-findindex.js Loading commit data...
array-prototype-foreach.js Loading commit data...
array-prototype-includes.js Loading commit data...
array-prototype-indexof.js Loading commit data...
array-prototype-lastindexof.js Loading commit data...
array-prototype-map.js Loading commit data...
array-prototype-pop.js Loading commit data...
array-prototype-reduce.js Loading commit data...
array-prototype-slice.js Loading commit data...
array-prototype-some.js Loading commit data...
array-push-hole-double.js Loading commit data...
array-push-non-smi-value.js Loading commit data...
array-push.js Loading commit data...
array-push10.js Loading commit data...
array-push11.js Loading commit data...
array-push12.js Loading commit data...
array-push13.js Loading commit data...
array-push14.js Loading commit data...
array-push2.js Loading commit data...
array-push3.js Loading commit data...
array-push4.js Loading commit data...
array-push5.js Loading commit data...
array-push6.js Loading commit data...
array-push8.js Loading commit data...
array-push9.js Loading commit data...
array-reduce.js Loading commit data...
array-reverse.js Loading commit data...
array-shift.js Loading commit data...
array-shift2.js Loading commit data...
array-shift3.js Loading commit data...
array-shift4.js Loading commit data...
array-shift5.js Loading commit data...
array-slice.js Loading commit data...
array-sort.js Loading commit data...
array-splice.js Loading commit data...
array-store-and-grow.js Loading commit data...
array-tolocalestring.js Loading commit data...
array-tostring.js Loading commit data...
array-unshift.js Loading commit data...
arrow-with.js Loading commit data...
ascii-regexp-subject.js Loading commit data...
asm-directive.js Loading commit data...
async-stack-traces-prepare-stacktrace-1.js Loading commit data...
async-stack-traces-prepare-stacktrace-2.js Loading commit data...
async-stack-traces-prepare-stacktrace-3.js Loading commit data...
async-stack-traces-prepare-stacktrace-4.js Loading commit data...
async-stack-traces-promise-all.js Loading commit data...
async-stack-traces.js Loading commit data...
basic-promise.js Loading commit data...
big-array-literal.js Loading commit data...
big-object-literal.js Loading commit data...
binary-op-newspace.js Loading commit data...
binary-operation-overwrite.js Loading commit data...
bit-not.js Loading commit data...
bitops-info.js Loading commit data...
bitwise-operations-bools.js Loading commit data...
bitwise-operations-undefined.js Loading commit data...
body-not-visible.js Loading commit data...
bool-concat.js Loading commit data...
boolean.js Loading commit data...
bounds-checks-elimination.js Loading commit data...
break.js Loading commit data...
call-cross-realm.js Loading commit data...
call-intrinsic-type-error.js Loading commit data...
call-non-function-call.js Loading commit data...
call-non-function.js Loading commit data...
call-stub.js Loading commit data...
call.js Loading commit data...
char-escape.js Loading commit data...
class-of-builtins.js Loading commit data...
closure.js Loading commit data...
closures.js Loading commit data...
code-comments.js Loading commit data...
code-coverage-ad-hoc.js Loading commit data...
code-coverage-block-noopt.js Loading commit data...
code-coverage-block-opt.js Loading commit data...
code-coverage-block.js Loading commit data...
code-coverage-class-fields.js Loading commit data...
code-coverage-precise.js Loading commit data...
code-coverage-utils.js Loading commit data...
codegen-coverage.js Loading commit data...
compare-character.js Loading commit data...
compare-known-objects-slow.js Loading commit data...
compare-known-objects-tostringtag.js Loading commit data...
compare-known-objects.js Loading commit data...
compare-nan.js Loading commit data...
compare-nil.js Loading commit data...
compare-objects.js Loading commit data...
compare-table-eq.js Loading commit data...
compare-table-gt.js Loading commit data...
compare-table-gteq.js Loading commit data...
compare-table-lt.js Loading commit data...
compare-table-lteq.js Loading commit data...
compare-table-ne.js Loading commit data...
compare-table-seq.js Loading commit data...
compare-table-sne.js Loading commit data...
comparison-ops-and-undefined.js Loading commit data...
compiler-regress-787301.js Loading commit data...
concurrent-initial-prototype-change.js Loading commit data...
console.js Loading commit data...
const-field-tracking.js Loading commit data...
constant-compare-nil-value.js Loading commit data...
constant-fold-control-instructions.js Loading commit data...
constant-folding-2.js Loading commit data...
constant-folding.js Loading commit data...
context-calls-maintained.js Loading commit data...
context-variable-assignments.js Loading commit data...
contextual-calls.js Loading commit data...
copy-on-write-assert.js Loading commit data...
cross-realm-filtering.js Loading commit data...
cross-realm-global-prototype.js Loading commit data...
cyclic-array-to-string.js Loading commit data...
cyrillic.js Loading commit data...
date-parse.js Loading commit data...
date.js Loading commit data...
debugPrint.js Loading commit data...
declare-locally.js Loading commit data...
deep-recursion.js Loading commit data...
default-nospec.js Loading commit data...
define-property-gc.js Loading commit data...
dehoisted-array-index.js Loading commit data...
delay-syntax-error.js Loading commit data...
delete-global-properties.js Loading commit data...
delete-in-eval.js Loading commit data...
delete-in-with.js Loading commit data...
delete-non-configurable.js Loading commit data...
delete-vars-from-eval.js Loading commit data...
delete.js Loading commit data...
deopt-global-accessor.js Loading commit data...
deopt-minus-zero.js Loading commit data...
deopt-recursive-eager-once.js Loading commit data...
deopt-recursive-lazy-once.js Loading commit data...
deopt-recursive-soft-once.js Loading commit data...
deopt-unlinked.js Loading commit data...
deopt-with-fp-regs.js Loading commit data...
deopt-with-outer-context.js Loading commit data...
deserialize-optimize-inner.js Loading commit data...
deserialize-reference.js Loading commit data...
dictionary-properties.js Loading commit data...
dictionary-prototypes.js Loading commit data...
disallow-codegen-from-strings.js Loading commit data...
div-mod.js Loading commit data...
div-mul-minus-one.js Loading commit data...
do-not-strip-fc.js Loading commit data...
dont-enum-array-holes.js Loading commit data...
dont-reinit-global-var.js Loading commit data...
double-equals.js Loading commit data...
double-truncation.js Loading commit data...
dtoa.js Loading commit data...
duplicate-parameters.js Loading commit data...
eagerly-parsed-lazily-compiled-functions.js Loading commit data...
element-accessor.js Loading commit data...
element-read-only.js Loading commit data...
elements-kind-depends.js Loading commit data...
elements-kind.js Loading commit data...
elements-length-no-holey.js Loading commit data...
elements-transition-and-store.js Loading commit data...
elements-transition-hoisting.js Loading commit data...
elements-transition.js Loading commit data...
elide-double-hole-check-1.js Loading commit data...
elide-double-hole-check-10.js Loading commit data...
elide-double-hole-check-11.js Loading commit data...
elide-double-hole-check-12.js Loading commit data...
elide-double-hole-check-2.js Loading commit data...
elide-double-hole-check-3.js Loading commit data...
elide-double-hole-check-4.js Loading commit data...
elide-double-hole-check-5.js Loading commit data...
elide-double-hole-check-6.js Loading commit data...
elide-double-hole-check-7.js Loading commit data...
elide-double-hole-check-8.js Loading commit data...
elide-double-hole-check-9.js Loading commit data...
empirical_max_arraybuffer.js Loading commit data...
ensure-growing-store-learns.js Loading commit data...
enumeration-order.js Loading commit data...
error-accessors.js Loading commit data...
error-constructors.js Loading commit data...
error-tostring-omit.js Loading commit data...
error-tostring.js Loading commit data...
escape.js Loading commit data...
eval-enclosing-function-name.js Loading commit data...
eval-origin.js Loading commit data...
eval-stack-trace.js Loading commit data...
eval-typeof-non-existing.js Loading commit data...
eval.js Loading commit data...
external-array.js Loading commit data...
external-backing-store-gc.js Loading commit data...
extra-arguments.js Loading commit data...
extra-commas.js Loading commit data...
fast-array-length.js Loading commit data...
fast-element-smi-check.js Loading commit data...
fast-literal.js Loading commit data...
fast-non-keyed.js Loading commit data...
fast-prototype.js Loading commit data...
field-type-tracking.js Loading commit data...
filter-element-kinds.js Loading commit data...
fixed-context-shapes-when-recompiling.js Loading commit data...
for-in-delete.js Loading commit data...
for-in-null-or-undefined.js Loading commit data...
for-in-special-cases.js Loading commit data...
for-in.js Loading commit data...
for.js Loading commit data...
fun-as-prototype.js Loading commit data...
fun-name.js Loading commit data...
function-arguments-duplicate.js Loading commit data...
function-arguments-null.js Loading commit data...
function-bind-name.js Loading commit data...
function-bind.js Loading commit data...
function-call.js Loading commit data...
function-caller.js Loading commit data...
function-length-accessor.js Loading commit data...
function-name-eval-shadowed.js Loading commit data...
function-named-self-reference.js Loading commit data...
function-names.js Loading commit data...
function-property.js Loading commit data...
function-prototype.js Loading commit data...
function-var.js Loading commit data...
function-without-prototype.js Loading commit data...
function.js Loading commit data...
fuzz-accessors.js Loading commit data...
generated-transition-stub.js Loading commit data...
get-own-property-descriptor-non-objects.js Loading commit data...
get-own-property-descriptor.js Loading commit data...
get-prototype-of.js Loading commit data...
getter-in-prototype.js Loading commit data...
getter-in-value-prototype.js Loading commit data...
getters-on-elements.js Loading commit data...
global-accessors.js Loading commit data...
global-arrow-delete-this.js Loading commit data...
global-deleted-property-ic.js Loading commit data...
global-hash.js Loading commit data...
global-ic.js Loading commit data...
global-infinity-strict.js Loading commit data...
global-infinity.js Loading commit data...
global-load-from-eval-in-with.js Loading commit data...
global-load-from-eval.js Loading commit data...
global-load-from-nested-eval.js Loading commit data...
global-nan-strict.js Loading commit data...
global-nan.js Loading commit data...
global-properties.js Loading commit data...
global-prototypes.js Loading commit data...
global-undefined-strict.js Loading commit data...
global-undefined.js Loading commit data...
global-vars-eval.js Loading commit data...
global-vars-with.js Loading commit data...
handle-count-ast.js Loading commit data...
handle-count-runtime-literals.js Loading commit data...
has-own-property-evaluation-order.js Loading commit data...
has-own-property.js Loading commit data...
hash-code.js Loading commit data...
heapObjectVerify.js Loading commit data...
hex-parsing.js Loading commit data...
holy-double-no-arg-array.js Loading commit data...
html-comments.js Loading commit data...
html-string-funcs.js Loading commit data...
ic-lookup-on-receiver.js Loading commit data...
icu-date-lord-howe.js Loading commit data...
icu-date-to-string.js Loading commit data...
if-in-undefined.js Loading commit data...
immutable-context-slot-inlining.js Loading commit data...
in.js Loading commit data...
indexed-accessors.js Loading commit data...
indexed-value-properties.js Loading commit data...
induction-variable-turbofan.js Loading commit data...
instanceof-2.js Loading commit data...
instanceof.js Loading commit data...
int32-ops.js Loading commit data...
integer-to-string.js Loading commit data...
intl-numberformat-formattoparts.js Loading commit data...
intl-pluralrules-select.js Loading commit data...
invalid-lhs.js Loading commit data...
invalid-source-element.js Loading commit data...
json-errors.js Loading commit data...
json-parser-recursive.js Loading commit data...
json-replacer-number-wrapper-tostring.js Loading commit data...
json-replacer-order.js Loading commit data...
json-stringify-holder.js Loading commit data...
json-stringify-recursive.js Loading commit data...
json-stringify-stack.js Loading commit data...
json.js Loading commit data...
json2.js Loading commit data...
keyed-array-call.js Loading commit data...
keyed-call-generic.js Loading commit data...
keyed-call-ic.js Loading commit data...
keyed-ic.js Loading commit data...
keyed-load-dictionary-stub.js Loading commit data...
keyed-load-generic.js Loading commit data...
keyed-load-hole-to-undefined.js Loading commit data...
keyed-load-with-string-key.js Loading commit data...
keyed-load-with-symbol-key.js Loading commit data...
keyed-named-access.js Loading commit data...
keyed-storage-extend.js Loading commit data...
keyed-store-array-literal.js Loading commit data...
keyed-store-generic.js Loading commit data...
keywords-and-reserved_words.js Loading commit data...
large-object-allocation.js Loading commit data...
large-object-literal-2.js Loading commit data...
large-object-literal-slow-elements.js Loading commit data...
large-object-literal.js Loading commit data...
lazy-inner-functions.js Loading commit data...
lazy-load.js Loading commit data...
lea-add.js Loading commit data...
leakcheck.js Loading commit data...
length.js Loading commit data...
linecontinuation.js Loading commit data...
load-callback-from-value-classic.js Loading commit data...
load_poly_effect.js Loading commit data...
local-load-from-eval.js Loading commit data...
logical.js Loading commit data...
lookup-behind-property.js Loading commit data...
math-abs.js Loading commit data...
math-ceil.js Loading commit data...
math-deopt.js Loading commit data...
math-exp-precision.js Loading commit data...
math-floor-negative.js Loading commit data...
math-floor-of-div-minus-zero.js Loading commit data...
math-floor-of-div-nosudiv.js Loading commit data...
math-floor-of-div.js Loading commit data...
math-floor-part1.js Loading commit data...
math-floor-part2.js Loading commit data...
math-floor-part3.js Loading commit data...
math-floor-part4.js Loading commit data...
math-imul.js Loading commit data...
math-min-max.js Loading commit data...
math-pow.js Loading commit data...
math-round.js Loading commit data...
math-sqrt.js Loading commit data...
md5.js Loading commit data...
megamorphic-callbacks.js Loading commit data...
messages.js Loading commit data...
migrations.js Loading commit data...
mjsunit-assertion-error.js Loading commit data...
mjsunit.js Loading commit data...
mjsunit.status Loading commit data...
mjsunit_suppressions.js Loading commit data...
mod-range.js Loading commit data...
mod.js Loading commit data...
modules-circular-valid.js Loading commit data...
modules-cycle.js Loading commit data...
modules-default-name1.js Loading commit data...
modules-default-name2.js Loading commit data...
modules-default-name3.js Loading commit data...
modules-default-name4.js Loading commit data...
modules-default-name5.js Loading commit data...
modules-default-name6.js Loading commit data...
modules-default-name7.js Loading commit data...
modules-default-name8.js Loading commit data...
modules-default-name9.js Loading commit data...
modules-default.js Loading commit data...
modules-empty-import1.js Loading commit data...
modules-empty-import2.js Loading commit data...
modules-empty-import3.js Loading commit data...
modules-empty-import4.js Loading commit data...
modules-error-trace.js Loading commit data...
modules-export-star-as1.js Loading commit data...
modules-export-star-as2.js Loading commit data...
modules-export-star-as3.js Loading commit data...
modules-exports1.js Loading commit data...
modules-exports2.js Loading commit data...
modules-exports3.js Loading commit data...
modules-imports1.js Loading commit data...
modules-imports2.js Loading commit data...
modules-imports3.js Loading commit data...
modules-imports4.js Loading commit data...
modules-imports5.js Loading commit data...
modules-imports6.js Loading commit data...
modules-imports7.js Loading commit data...
modules-imports8.js Loading commit data...
modules-init1.js Loading commit data...
modules-init2.js Loading commit data...
modules-init3.js Loading commit data...
modules-init4.js Loading commit data...
modules-namespace-getownproperty1.js Loading commit data...
modules-namespace-getownproperty2.js Loading commit data...
modules-namespace1.js Loading commit data...
modules-namespace2.js Loading commit data...
modules-namespace3.js Loading commit data...
modules-namespace4.js Loading commit data...
modules-preparse.js Loading commit data...
modules-relative-path.js Loading commit data...
modules-skip-1.js Loading commit data...
modules-skip-2.js Loading commit data...
modules-skip-3.js Loading commit data...
modules-skip-4.js Loading commit data...
modules-skip-5.js Loading commit data...
modules-skip-6.js Loading commit data...
modules-skip-7.js Loading commit data...
modules-skip-8.js Loading commit data...
modules-skip-9.js Loading commit data...
modules-skip-circular-valid.js Loading commit data...
modules-skip-cycle.js Loading commit data...
modules-skip-default-name1.js Loading commit data...
modules-skip-default-name2.js Loading commit data...
modules-skip-default-name3.js Loading commit data...
modules-skip-default-name4.js Loading commit data...
modules-skip-default-name5.js Loading commit data...
modules-skip-default-name6.js Loading commit data...
modules-skip-default-name7.js Loading commit data...
modules-skip-default-name8.js Loading commit data...
modules-skip-default-name9.js Loading commit data...
modules-skip-empty-import-aux.js Loading commit data...
modules-skip-empty-import.js Loading commit data...
modules-skip-init1.js Loading commit data...
modules-skip-init3.js Loading commit data...
modules-skip-init4a.js Loading commit data...
modules-skip-init4b.js Loading commit data...
modules-skip-namespace.js Loading commit data...
modules-skip-star-exports-conflict.js Loading commit data...
modules-skip-star-exports-cycle.js Loading commit data...
modules-star-exports-cycle.js Loading commit data...
modules-this.js Loading commit data...
modules-turbo1.js Loading commit data...
modules-turbo2.js Loading commit data...
mul-exhaustive-part1.js Loading commit data...
mul-exhaustive-part10.js Loading commit data...
mul-exhaustive-part2.js Loading commit data...
mul-exhaustive-part3.js Loading commit data...
mul-exhaustive-part4.js Loading commit data...
mul-exhaustive-part5.js Loading commit data...
mul-exhaustive-part6.js Loading commit data...
mul-exhaustive-part7.js Loading commit data...
mul-exhaustive-part8.js Loading commit data...
mul-exhaustive-part9.js Loading commit data...
multiline.js Loading commit data...
multiple-return.js Loading commit data...
nans.js Loading commit data...
negate-zero.js Loading commit data...
negate.js Loading commit data...
neuter-twice.js Loading commit data...
never-optimize.js Loading commit data...
new-function.js Loading commit data...
new.js Loading commit data...
newline-in-string.js Loading commit data...
no-branch-elimination.js Loading commit data...
no-octal-constants-above-256.js Loading commit data...
no-semicolon.js Loading commit data...
non-ascii-replace.js Loading commit data...
noopt.js Loading commit data...
not.js Loading commit data...
nul-characters.js Loading commit data...
number-is.js Loading commit data...
number-isnan-opt.js Loading commit data...
number-limits.js Loading commit data...
number-literal.js Loading commit data...
number-string-index-call.js Loading commit data...
number-tostring-add.js Loading commit data...
number-tostring-big-integer.js Loading commit data...
number-tostring-func.js Loading commit data...
number-tostring-small.js Loading commit data...
number-tostring.js Loading commit data...
numops-fuzz-part1.js Loading commit data...
numops-fuzz-part2.js Loading commit data...
numops-fuzz-part3.js Loading commit data...
numops-fuzz-part4.js Loading commit data...
obj-construct.js Loading commit data...
object-create.js Loading commit data...
object-define-properties.js Loading commit data...
object-define-property.js Loading commit data...
object-freeze-global.js Loading commit data...
object-freeze.js Loading commit data...
object-get-own-property-names.js Loading commit data...
object-is.js Loading commit data...
object-keys.js Loading commit data...
object-literal-conversions.js Loading commit data...
object-literal-gc.js Loading commit data...
object-literal-modified-object-prototype.js Loading commit data...
object-literal-multiple-fields.js Loading commit data...
object-literal-multiple-proto-fields.js Loading commit data...
object-literal-overwrite.js Loading commit data...
object-literal.js Loading commit data...
object-prevent-extensions.js Loading commit data...
object-seal-global.js Loading commit data...
object-seal.js Loading commit data...
object-toprimitive.js Loading commit data...
omit-constant-mapcheck.js Loading commit data...
opt-elements-kind.js Loading commit data...
optimized-array-every.js Loading commit data...
optimized-array-find.js Loading commit data...
optimized-array-findindex.js Loading commit data...
optimized-array-some.js Loading commit data...
optimized-filter.js Loading commit data...
optimized-foreach-holey-2.js Loading commit data...
optimized-foreach-holey-3.js Loading commit data...
optimized-foreach-holey.js Loading commit data...
optimized-foreach-polymorph.js Loading commit data...
optimized-foreach.js Loading commit data...
optimized-map.js Loading commit data...
optimized-reduce.js Loading commit data...
optimized-reduceright.js Loading commit data...
optimized-typeof.js Loading commit data...
osr-elements-kind.js Loading commit data...
outobject-double-for-in.js Loading commit data...
override-read-only-property.js Loading commit data...
packed-elements.js Loading commit data...
parallel-compile-tasks.js Loading commit data...
parallel-optimize-disabled.js Loading commit data...
parse-int-float.js Loading commit data...
parse-surrogates.js Loading commit data...
pixel-array-rounding.js Loading commit data...
polymorph-arrays.js Loading commit data...
preparse-toplevel-strict-eval.js Loading commit data...
primitive-keyed-access.js Loading commit data...
print.js Loading commit data...
property-load-across-eval.js Loading commit data...
property-name-eval-arguments.js Loading commit data...
property-object-key.js Loading commit data...
proto-accessor.js Loading commit data...
proto-elements-add-during-foreach.js Loading commit data...
proto.js Loading commit data...
prototype-changes.js Loading commit data...
prototype-non-existing.js Loading commit data...
prototype.js Loading commit data...
random-bit-correlations.js Loading commit data...
readonly-accessor.js Loading commit data...
readonly.js Loading commit data...
realm-property-access.js Loading commit data...
receiver-in-with-calls.js Loading commit data...
recursive-store-opt.js Loading commit data...
regexp-UC16.js Loading commit data...
regexp-cache-replace.js Loading commit data...
regexp-call-as-function.js Loading commit data...
regexp-capture-3.js Loading commit data...
regexp-capture.js Loading commit data...
regexp-captures.js Loading commit data...
regexp-compile.js Loading commit data...
regexp-global.js Loading commit data...
regexp-indexof.js Loading commit data...
regexp-lastIndex.js Loading commit data...
regexp-lookahead.js Loading commit data...
regexp-loop-capture.js Loading commit data...
regexp-modifiers-autogenerated-i18n.js Loading commit data...
regexp-modifiers-autogenerated.js Loading commit data...
regexp-modifiers-dotall.js Loading commit data...
regexp-modifiers-i18n.js Loading commit data...
regexp-modifiers.js Loading commit data...
regexp-multiline.js Loading commit data...
regexp-regexpexec.js Loading commit data...
regexp-results-cache.js Loading commit data...
regexp-sort.js Loading commit data...
regexp-stack-overflow.js Loading commit data...
regexp-standalones.js Loading commit data...
regexp-static.js Loading commit data...
regexp-string-methods.js Loading commit data...
regexp.js Loading commit data...
result-table-max.js Loading commit data...
result-table-min.js Loading commit data...
samevalue.js Loading commit data...
scanner.js Loading commit data...
scope-calls-eval.js Loading commit data...
search-string-multiple.js Loading commit data...
serialize-after-execute.js Loading commit data...
serialize-embedded-error.js Loading commit data...
serialize-ic.js Loading commit data...
setter-on-constructor-prototype.js Loading commit data...
setters-on-elements.js Loading commit data...
shared-function-tier-up-turbo.js Loading commit data...
shift-for-integer-div.js Loading commit data...
shifts.js Loading commit data...
short-circuit-boolean.js Loading commit data...
simple-constructor.js Loading commit data...
sin-cos.js Loading commit data...
skipping-inner-functions-bailout.js Loading commit data...
skipping-inner-functions.js Loading commit data...
smi-mul-const.js Loading commit data...
smi-mul.js Loading commit data...
smi-negative-zero.js Loading commit data...
smi-ops-inlined.js Loading commit data...
smi-ops.js Loading commit data...
smi-representation.js Loading commit data...
sparse-array.js Loading commit data...
splice-proxy.js Loading commit data...
spread-large-array.js Loading commit data...
spread-large-map.js Loading commit data...
spread-large-set.js Loading commit data...
spread-large-string.js Loading commit data...
stack-overflow-arity-catch-noinline.js Loading commit data...
stack-traces-2.js Loading commit data...
stack-traces-class-fields.js Loading commit data...
stack-traces-custom-lazy.js Loading commit data...
stack-traces-custom.js Loading commit data...
stack-traces-overflow.js Loading commit data...
stack-traces.js Loading commit data...
store-dictionary.js Loading commit data...
str-to-num.js Loading commit data...
stress-array-push.js Loading commit data...
strict-equals.js Loading commit data...
strict-mode-eval.js Loading commit data...
strict-mode-implicit-receiver.js Loading commit data...
strict-mode-opt.js Loading commit data...
strict-mode.js Loading commit data...
string-add.js Loading commit data...
string-case.js Loading commit data...
string-charat.js Loading commit data...
string-charcodeat-external.js Loading commit data...
string-charcodeat.js Loading commit data...
string-compare-alignment.js Loading commit data...
string-concat.js Loading commit data...
string-deopt.js Loading commit data...
string-equal.js Loading commit data...
string-external-cached.js Loading commit data...
string-externalize.js Loading commit data...
string-flatten.js Loading commit data...
string-fromcharcode.js Loading commit data...
string-index.js Loading commit data...
string-indexof-1.js Loading commit data...
string-indexof-2.js Loading commit data...
string-lastindexof.js Loading commit data...
string-localecompare.js Loading commit data...
string-match.js Loading commit data...
string-normalize.js Loading commit data...
string-oom-array-join.js Loading commit data...
string-oom-concat.js Loading commit data...
string-oom-replace-global-regexp-with-string.js Loading commit data...
string-oom-replace-regexp-global-with-function.js Loading commit data...
string-pad.js Loading commit data...
string-replace-gc.js Loading commit data...
string-replace-one-char.js Loading commit data...
string-replace-with-empty.js Loading commit data...
string-replace.js Loading commit data...
string-search.js Loading commit data...
string-slices-regexp.js Loading commit data...
string-slices.js Loading commit data...
string-split-cache.js Loading commit data...
string-split.js Loading commit data...
string-trim.js Loading commit data...
string-wrapper.js Loading commit data...
strong-rooted-literals.js Loading commit data...
substr.js Loading commit data...
sum-0-plus-undefined-is-NaN.js Loading commit data...
switch-opt.js Loading commit data...
switch.js Loading commit data...
test-async.js Loading commit data...
test-builtins-setup.js Loading commit data...
testcfg.py Loading commit data...
thin-strings.js Loading commit data...
this-dynamic-lookup.js Loading commit data...
this-in-callbacks.js Loading commit data...
this-property-assignment.js Loading commit data...
this.js Loading commit data...
throw-and-catch-function.js Loading commit data...
throw-exception-for-null-access.js Loading commit data...
to-precision.js Loading commit data...
to_number_order.js Loading commit data...
tobool.js Loading commit data...
toint32.js Loading commit data...
top-level-assignments.js Loading commit data...
touint32.js Loading commit data...
track-fields.js Loading commit data...
transcendentals.js Loading commit data...
transition-elements-kind.js Loading commit data...
try-catch-extension-object.js Loading commit data...
try-catch-scopes.js Loading commit data...
try-finally-continue.js Loading commit data...
try-finally-nested.js Loading commit data...
try.js Loading commit data...
typed-array-slice.js Loading commit data...
typeof.js Loading commit data...
tzoffset-seoul-noi18n.js Loading commit data...
tzoffset-seoul.js Loading commit data...
tzoffset-transition-apia.js Loading commit data...
tzoffset-transition-lord-howe.js Loading commit data...
tzoffset-transition-moscow.js Loading commit data...
tzoffset-transition-new-york-noi18n.js Loading commit data...
tzoffset-transition-new-york.js Loading commit data...
unary-minus-deopt.js Loading commit data...
unbox-double-arrays.js Loading commit data...
unbox-double-field-indexed.js Loading commit data...
unbox-double-field.js Loading commit data...
unbox-smi-field-indexed.js Loading commit data...
unbox-smi-field.js Loading commit data...
undeletable-functions.js Loading commit data...
undetectable-compare.js Loading commit data...
undetectable.js Loading commit data...
unicode-case-overoptimization.js Loading commit data...
unicode-string-to-number.js Loading commit data...
unicode-test.js Loading commit data...
unicodelctest-no-optimization.js Loading commit data...
unicodelctest.js Loading commit data...
unused-context-in-with.js Loading commit data...
unusual-constructor.js Loading commit data...
uri.js Loading commit data...
value-callic-prototype-change.js Loading commit data...
value-of.js Loading commit data...
value-wrapper-accessor.js Loading commit data...
value-wrapper.js Loading commit data...
var.js Loading commit data...
verify-assert-false.js Loading commit data...
verify-check-false.js Loading commit data...
whitespaces.js Loading commit data...
whitespaces0.js Loading commit data...
whitespaces1.js Loading commit data...
whitespaces2.js Loading commit data...
whitespaces3.js Loading commit data...
whitespaces4.js Loading commit data...
whitespaces5.js Loading commit data...
whitespaces6.js Loading commit data...
whitespaces7.js Loading commit data...
whitespaces8.js Loading commit data...
whitespaces9.js Loading commit data...
with-function-expression.js Loading commit data...
with-leave.js Loading commit data...
with-parameter-access.js Loading commit data...
with-prototype.js Loading commit data...
with-readonly.js Loading commit data...
with-value.js Loading commit data...