v8/test/mjsunit
Simon Zünd b87e762324 [array] Only use fast-path in Array.p.fill for JSArrays
This CL changes Array.p.fill to use the baseline implementation
for everything other than JSArray.

One of the reasons is that shadowing the length property on
TypedArrays (and other ElementsKinds) is allowed and should be
respected by Array.p.fill. The fast-path for fill for TypedArrays
expects the indices to be clamped to the actual length of the
underlying backing store and not to some length property.

While this mismatch (and others) could probably be handled properly,
we do the conservative thing and only use the fast-path for specific
JSArrays.

R=jgruber@chromium.org

Bug: chromium:865312
Change-Id: Ib3050e3bfc22d47ca8597b6df34788dc2b59b6e1
Reviewed-on: https://chromium-review.googlesource.com/1142772
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Simon Zünd <szuend@google.com>
Cr-Commit-Position: refs/heads/master@{#54558}
2018-07-19 12:15:42 +00:00
..
asm
async-hooks [async] Improve error handling for async hooks 2018-07-05 14:49:03 +00:00
bugs
compiler [turbofan] Add DataView setters in TurboFan 2018-07-09 14:46:47 +00:00
d8
es6 [array] Use Array.p.fill baseline version if object is non-extensible 2018-07-19 06:53:11 +00:00
es7
es8 Reland ^3 "[async] Expose async hooks to d8" 2018-07-04 15:47:16 +00:00
es9 [regexp] make lookbehind assertions non-quantifiable. 2018-02-20 11:24:32 +00:00
harmony Revert "[turbofan] Inline Number constructor in certain cases" 2018-07-19 09:13:26 +00:00
ignition [test] Make assertThrowsEquals use assertSame 2018-06-06 14:17:12 +00:00
lithium
regress [array] Only use fast-path in Array.p.fill for JSArrays 2018-07-19 12:15:42 +00:00
third_party
tools Reland "[array] Use random middle element to determine pivot during sorting" 2018-06-07 13:33:14 +00:00
type-profile
wasm [wasm] Actually run worker-module.js test case. 2018-07-16 10:46:46 +00:00
accessor-map-sharing.js
accessors-no-prototype.js
accessors-on-global-object.js
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
arguments-enum.js
arguments-escape.js
arguments-indirect.js
arguments-lazy.js
arguments-load-across-eval.js
arguments-read-and-assignment.js
arguments.js
array-bounds-check-removal.js
array-concat.js
array-construct-transition.js
array-constructor-feedback.js
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
array-foreach.js
array-functions-prototype-misc.js
array-functions-prototype.js
array-indexing-receiver.js
array-indexing.js
array-isarray.js
array-iteration.js
array-join.js
array-lastindexof.js
array-length-number-conversion.js
array-length.js
array-literal-feedback.js [deoptimizer] Disable test incompatible with deopt fuzzer 2018-04-11 09:58:04 +00:00
array-literal-transitions.js
array-methods-read-only-length.js
array-natives-elements.js
array-non-smi-length.js
array-pop.js
array-push2.js
array-push3.js
array-push4.js
array-push5.js
array-push6.js
array-push8.js
array-push9.js
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-shift2.js
array-shift3.js
array-shift4.js
array-shift5.js
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
array-store-and-grow.js
array-tostring.js
array-unshift.js
ascii-regexp-subject.js
asm-directive.js
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
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
code-coverage-block-noopt.js
code-coverage-block-opt.js
code-coverage-block.js [coverage] Fix invalid coverage block transformation 2018-04-04 12:46:24 +00:00
code-coverage-precise.js
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
concurrent-initial-prototype-change.js
console.js
const-field-tracking.js
constant-compare-nil-value.js
constant-fold-control-instructions.js
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
date-parse.js
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
deopt-recursive-lazy-once.js
deopt-recursive-soft-once.js
deopt-unlinked.js
deopt-with-fp-regs.js
deopt-with-outer-context.js
deserialize-optimize-inner.js
deserialize-reference.js
dictionary-properties.js
dictionary-prototypes.js
disallow-codegen-from-strings.js
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
eagerly-parsed-lazily-compiled-functions.js
element-accessor.js
element-read-only.js
elements-kind-depends.js
elements-kind.js
elements-length-no-holey.js
elements-transition-and-store.js
elements-transition-hoisting.js
elements-transition.js
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
ensure-growing-store-learns.js
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
extra-arguments.js
extra-commas.js
fast-array-length.js
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
filter-element-kinds.js
fixed-context-shapes-when-recompiling.js
for-in-delete.js
for-in-null-or-undefined.js
for-in-special-cases.js
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
function-call.js
function-caller.js
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
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
global-accessors.js
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
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
heapObjectVerify.js
hex-parsing.js
holy-double-no-arg-array.js
html-comments.js
html-string-funcs.js
ic-lookup-on-receiver.js
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
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
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
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
keyed-load-with-string-key.js
keyed-load-with-symbol-key.js
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
lazy-inner-functions.js
lazy-load.js
lea-add.js
leakcheck.js
length.js
lexicographic-compare.js [mjsunit] Split slow test out of array-sort and skip it on certain builds 2018-05-24 12:36:48 +00:00
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
math-floor-of-div-nosudiv.js
math-floor-of-div.js
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
mjsunit_suppressions.js [test] Add interrupt-budget fuzzer 2018-01-29 16:31:40 +00:00
mjsunit-assertion-error.js
mjsunit.js [test] Fix output of assertSame 2018-06-11 09:01:38 +00:00
mjsunit.status [mips][be] Skip test which fails with segfault 2018-07-18 19:17:49 +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-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-skip-init4b.js
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
modules-turbo2.js
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
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
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
object-literal-multiple-fields.js
object-literal-multiple-proto-fields.js
object-literal-overwrite.js
object-literal.js
object-prevent-extensions.js
object-seal-global.js
object-seal.js
object-toprimitive.js
omit-constant-mapcheck.js
opt-elements-kind.js
optimized-array-every.js
optimized-array-find.js
optimized-array-findindex.js
optimized-array-some.js
optimized-filter.js
optimized-foreach-holey-2.js
optimized-foreach-holey-3.js
optimized-foreach-holey.js
optimized-foreach-polymorph.js
optimized-foreach.js
optimized-map.js
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
outobject-double-for-in.js
override-read-only-property.js
packed-elements.js
parallel-optimize-disabled.js
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
regexp-modifiers-i18n.js
regexp-modifiers.js
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
scanner.js
scope-calls-eval.js
search-string-multiple.js
serialize-after-execute.js
serialize-embedded-error.js
serialize-ic.js
setter-on-constructor-prototype.js
setters-on-elements.js
shared-function-tier-up-turbo.js
shift-for-integer-div.js
shifts.js
short-circuit-boolean.js
simple-constructor.js
sin-cos.js
skipping-inner-functions-bailout.js
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
smi-mul.js
smi-negative-zero.js
smi-ops-inlined.js
smi-ops.js
smi-representation.js
sparse-array-reverse.js
sparse-array.js
splice-proxy.js
stack-overflow-arity-catch-noinline.js
stack-traces-2.js Reland "[array] Implement Array.p.sort in Torque" 2018-06-05 08:33:18 +00:00
stack-traces-custom-lazy.js
stack-traces-custom.js
stack-traces-overflow.js
stack-traces.js
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
string-charcodeat.js
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
string-external-cached.js
string-externalize.js
string-flatten.js
string-fromcharcode.js
string-index.js
string-indexof-1.js
string-indexof-2.js
string-lastindexof.js
string-localecompare.js
string-match.js
string-normalize.js
string-oom-array-join.js
string-oom-concat.js
string-oom-replace-global-regexp-with-string.js
string-oom-replace-regexp-global-with-function.js
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
string-wrapper.js
strong-rooted-literals.js
substr.js
sum-0-plus-undefined-is-NaN.js
switch-opt.js
switch.js
test-builtins-setup.js
testcfg.py [test] Forgive tests timing out on num-fuzzers 2018-02-08 23:08:05 +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
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
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
unicode-case-overoptimization.js
unicode-string-to-number.js
unicode-test.js
unicodelctest-no-optimization.js
unicodelctest.js
unused-context-in-with.js
unusual-constructor.js
uri.js
value-callic-prototype-change.js
value-of.js
value-wrapper-accessor.js
value-wrapper.js
var.js
verify-assert-false.js
verify-check-false.js
whitespaces0.js
whitespaces1.js
whitespaces2.js
whitespaces3.js
whitespaces4.js
whitespaces5.js
whitespaces6.js
whitespaces7.js
whitespaces8.js
whitespaces9.js
whitespaces.js
with-function-expression.js
with-leave.js
with-parameter-access.js
with-prototype.js
with-readonly.js
with-value.js