• Benedikt Meurer's avatar
    [runtime] Optimize general object spread. · 4995c85f
    Benedikt Meurer authored
    This adds a new %_CopyDataProperties intrinsic, that reuses most of the
    existing machinery that we already have in place for Object.assign() and
    computed property names in object literals. This speeds up the general
    case for object spread (where the spread is not the first item in an
    object literal) and brings it on par with Object.assign() at least - in
    most cases it's significantly faster than Object.assign().
    
    In the test case [1] referenced from the bug, the performance goes from
    
      objectSpreadLast: 3624 ms.
      objectAssignLast: 1938 ms.
    
    to
    
      objectSpreadLast: 646 ms.
      objectAssignLast: 1944 ms.
    
    which corresponds to a **5-6x performance boost**, making object spread
    faster than Object.assign() in general.
    
    Drive-by-fix: This refactors the Object.assign() fast-path in a way that
    it can be reused appropriately for object spread, and adds another new
    builtin SetDataProperties, which does the core of the Object.assign()
    work. We can teach TurboFan to inline Object.assign() based on the new
    SetDataProperties builtin at some later point to further optimize
    Object.assign().
    
    [1]: https://gist.github.com/bmeurer/0dae4a6b0e23f43d5a22d7c91476b6c0
    
    Bug: v8:9167
    Change-Id: I57bea7a8781c4a1e8ff3d394873c3cd4c5d73834
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1587376Reviewed-by: 's avatarSathya Gunasekaran <gsathya@chromium.org>
    Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
    Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#61100}
    4995c85f
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-stack.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-representation-tracking-clone-object.js Loading commit data...
field-representation-tracking.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-of-in-catch-duplicate-decl.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...
integrity-level-map-update.js Loading commit data...
interrupt-budget-override.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-parse-slice.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-stringify-typedarray.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-has-ic-module-export.js Loading commit data...
keyed-has-ic-module-import.js Loading commit data...
keyed-has-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_numfuzz.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-typedarray.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-includes-polymorph.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...
promise-perform-all-resolve-lookup.js Loading commit data...
promise-perform-all-settled-resolve-lookup.js Loading commit data...
promise-perfrom-race-resolve-lookup.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-arity.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-override-exec.js Loading commit data...
regexp-override-symbol-match-all.js Loading commit data...
regexp-override-symbol-match.js Loading commit data...
regexp-override-symbol-replace.js Loading commit data...
regexp-override-symbol-search.js Loading commit data...
regexp-override-symbol-split.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...
regress-906893.js Loading commit data...
regress-918763.js Loading commit data...
regress-930045.js Loading commit data...
regress-932101.js Loading commit data...
regress-956426.js Loading commit data...
regress-regexp-functional-replace-slow.js Loading commit data...
regress-v8-8445-2.js Loading commit data...
regress-v8-8445.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-default-destructuring.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...
ubsan-fuzzerbugs.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...