• neis's avatar
    Fix treatment of rest pattern in array destructuring. · 4edf16dd
    neis authored
    When seeing a rest pattern, we used to get the remaining elements from the
    iterator by calling %concat_iterable_to_array on it.  This was wrong because it
    caused an observable [[Get]] for @@iterator (which the iterator may not even
    provide).
    
    This CL gets rid of the call to %concat_iterable_to_array and does the iteration
    manually in a simple while-loop.  It also gets rid of %concat_iterable_to_array
    itself because there aren't any other uses of it.
    
    BUG=v8:4759
    LOG=n
    R=adamk@chromium.org
    
    Review URL: https://codereview.chromium.org/1852703002
    
    Cr-Commit-Position: refs/heads/master@{#35251}
    4edf16dd
Name
Last commit
Last update
..
debug-promises Loading commit data...
regress Loading commit data...
arguments-iterator.js Loading commit data...
array-concat.js Loading commit data...
array-copywithin.js Loading commit data...
array-fill.js Loading commit data...
array-find.js Loading commit data...
array-findindex.js Loading commit data...
array-from.js Loading commit data...
array-iterator.js Loading commit data...
array-length.js Loading commit data...
array-of.js Loading commit data...
array-prototype-values.js Loading commit data...
array-reverse-order.js Loading commit data...
array-tostring.js Loading commit data...
arrow-functions-lexical-arguments.js Loading commit data...
arrow-functions-this.js Loading commit data...
arrow-functions.js Loading commit data...
arrow-rest-params-lazy-parsing.js Loading commit data...
arrow-rest-params.js Loading commit data...
block-conflicts.js Loading commit data...
block-const-assign.js Loading commit data...
block-early-errors.js Loading commit data...
block-for.js Loading commit data...
block-leave.js Loading commit data...
block-let-contextual-sloppy.js Loading commit data...
block-let-crankshaft.js Loading commit data...
block-let-declaration.js Loading commit data...
block-let-semantics.js Loading commit data...
block-non-strict-errors.js Loading commit data...
block-scope-class.js Loading commit data...
block-scoping-top-level.js Loading commit data...
block-scoping.js Loading commit data...
built-in-accessor-names.js Loading commit data...
class-computed-property-names-super.js Loading commit data...
class-property-name-eval-arguments.js Loading commit data...
classes-derived-return-type.js Loading commit data...
classes-experimental.js Loading commit data...
classes-lazy-parsing.js Loading commit data...
classes-maps.js Loading commit data...
classes-proxy.js Loading commit data...
classes-subclass-arrays.js Loading commit data...
classes-subclass-builtins.js Loading commit data...
classes-super.js Loading commit data...
classes.js Loading commit data...
classof-proxy.js Loading commit data...
collection-iterator.js Loading commit data...
collections.js Loading commit data...
completion.js Loading commit data...
computed-property-names-classes.js Loading commit data...
computed-property-names-deopt.js Loading commit data...
computed-property-names-object-literals-methods.js Loading commit data...
computed-property-names-super.js Loading commit data...
computed-property-names.js Loading commit data...
debug-blockscopes.js Loading commit data...
debug-break-default-constructor.js Loading commit data...
debug-evaluate-arrow-function-receiver.js Loading commit data...
debug-evaluate-blockscopes.js Loading commit data...
debug-function-scopes.js Loading commit data...
debug-liveedit-new-target-1.js Loading commit data...
debug-liveedit-new-target-2.js Loading commit data...
debug-liveedit-new-target-3.js Loading commit data...
debug-step-destructuring-assignment.js Loading commit data...
debug-step-destructuring-bind.js Loading commit data...
debug-step-into-class-extends.js Loading commit data...
debug-step-into-constructor.js Loading commit data...
debug-step-into-regexp-subclass.js Loading commit data...
debug-stepin-collections-foreach.js Loading commit data...
debug-stepin-default-parameters.js Loading commit data...
debug-stepin-generators.js Loading commit data...
debug-stepin-microtasks.js Loading commit data...
debug-stepin-proxies.js Loading commit data...
debug-stepin-string-template.js Loading commit data...
debug-stepin-tailcalls.js Loading commit data...
debug-stepnext-for.js Loading commit data...
debug-stepout-tailcalls.js Loading commit data...
default-parameters-debug.js Loading commit data...
default-parameters-destructuring.js Loading commit data...
default-parameters.js Loading commit data...
destructuring-assignment-lazy.js Loading commit data...
destructuring-assignment.js Loading commit data...
destructuring-parameters-literalcount-nolazy.js Loading commit data...
destructuring-parameters-literalcount.js Loading commit data...
destructuring.js Loading commit data...
empty-for.js Loading commit data...
for-of.js Loading commit data...
function-length-configurable.js Loading commit data...
function-name-configurable.js Loading commit data...
function-prototype-name.js Loading commit data...
generators-debug-liveedit.js Loading commit data...
generators-debug-scopes.js Loading commit data...
generators-iteration.js Loading commit data...
generators-mirror.js Loading commit data...
generators-objects.js Loading commit data...
generators-parsing.js Loading commit data...
generators-poisoned-properties.js Loading commit data...
generators-relocation.js Loading commit data...
generators-runtime.js Loading commit data...
generators-states.js Loading commit data...
hasinstance-symbol.js Loading commit data...
indexed-integer-exotics.js Loading commit data...
instanceof-proxies.js Loading commit data...
iteration-semantics.js Loading commit data...
iteration-syntax.js Loading commit data...
iterator-prototype.js Loading commit data...
json.js Loading commit data...
legacy-subclassing.js Loading commit data...
map-minus-zero.js Loading commit data...
math-cbrt.js Loading commit data...
math-clz32.js Loading commit data...
math-expm1.js Loading commit data...
math-fround.js Loading commit data...
math-hyperbolic.js Loading commit data...
math-hypot.js Loading commit data...
math-log1p.js Loading commit data...
math-log2-log10.js Loading commit data...
math-sign.js Loading commit data...
math-trunc.js Loading commit data...
math.js Loading commit data...
method-name-eval-arguments.js Loading commit data...
microtask-delivery.js Loading commit data...
mirror-collections.js Loading commit data...
mirror-iterators.js Loading commit data...
mirror-promises.js Loading commit data...
mirror-symbols.js Loading commit data...
new-target.js Loading commit data...
no-unicode-regexp-flag.js Loading commit data...
numeric-literals.js Loading commit data...
object-assign.js Loading commit data...
object-literals-method.js Loading commit data...
object-literals-property-shorthand.js Loading commit data...
object-literals-super.js Loading commit data...
object-tostring.js Loading commit data...
pattern-brand-check.js Loading commit data...
promise-internal-setter.js Loading commit data...
promises.js Loading commit data...
prototype-ordinary-objects.js Loading commit data...
proxies-accesschecks.js Loading commit data...
proxies-apply.js Loading commit data...
proxies-bind.js Loading commit data...
proxies-construct.js Loading commit data...
proxies-cross-realm-exception.js Loading commit data...
proxies-define-property.js Loading commit data...
proxies-delete-property.js Loading commit data...
proxies-example-membrane.js Loading commit data...
proxies-for.js Loading commit data...
proxies-function.js Loading commit data...
proxies-get-own-property-descriptor.js Loading commit data...
proxies-get-prototype-of.js Loading commit data...
proxies-get.js Loading commit data...
proxies-global-reference.js Loading commit data...
proxies-has-own-property.js Loading commit data...
proxies-has.js Loading commit data...
proxies-hash.js Loading commit data...
proxies-integrity.js Loading commit data...
proxies-is-extensible.js Loading commit data...
proxies-json.js Loading commit data...
proxies-keys.js Loading commit data...
proxies-object-assign.js Loading commit data...
proxies-ownkeys.js Loading commit data...
proxies-prevent-extensions.js Loading commit data...
proxies-property-is-enumerable.js Loading commit data...
proxies-prototype-handler-stackoverflow.js Loading commit data...
proxies-prototype-target-stackoverflow.js Loading commit data...
proxies-revocable.js Loading commit data...
proxies-set-prototype-of.js Loading commit data...
proxies-set.js Loading commit data...
proxies-with-unscopables.js Loading commit data...
proxies-with.js Loading commit data...
proxies.js Loading commit data...
reflect-apply.js Loading commit data...
reflect-construct.js Loading commit data...
reflect-define-property.js Loading commit data...
reflect-get-own-property-descriptor.js Loading commit data...
reflect-get-prototype-of.js Loading commit data...
reflect-own-keys.js Loading commit data...
reflect-prevent-extensions.js Loading commit data...
reflect-set-prototype-of.js Loading commit data...
reflect.js Loading commit data...
regexp-constructor.js Loading commit data...
regexp-flags.js Loading commit data...
regexp-match-lastindex.js Loading commit data...
regexp-prototype.js Loading commit data...
regexp-replace-lastindex.js Loading commit data...
regexp-sticky.js Loading commit data...
regexp-tolength.js Loading commit data...
regexp-tostring.js Loading commit data...
rest-params-lazy-parsing.js Loading commit data...
rest-params.js Loading commit data...
set-minus-zero.js Loading commit data...
spread-array.js Loading commit data...
spread-call-new-class.js Loading commit data...
spread-call-new.js Loading commit data...
spread-call-super-property.js Loading commit data...
spread-call.js Loading commit data...
string-codepointat.js Loading commit data...
string-endswith.js Loading commit data...
string-fromcodepoint.js Loading commit data...
string-html.js Loading commit data...
string-includes.js Loading commit data...
string-iterator.js Loading commit data...
string-raw.js Loading commit data...
string-repeat.js Loading commit data...
string-search.js Loading commit data...
string-startswith.js Loading commit data...
super.js Loading commit data...
symbols.js Loading commit data...
tail-call-megatest-shard0.js Loading commit data...
tail-call-megatest-shard1.js Loading commit data...
tail-call-megatest-shard2.js Loading commit data...
tail-call-megatest-shard3.js Loading commit data...
tail-call-megatest-shard4.js Loading commit data...
tail-call-megatest-shard5.js Loading commit data...
tail-call-megatest-shard6.js Loading commit data...
tail-call-megatest-shard7.js Loading commit data...
tail-call-megatest-shard8.js Loading commit data...
tail-call-megatest-shard9.js Loading commit data...
tail-call-megatest.js Loading commit data...
tail-call-proxies.js Loading commit data...
tail-call-simple.js Loading commit data...
tail-call.js Loading commit data...
templates.js Loading commit data...
throw-type-error-function-restrictions.js Loading commit data...
typed-array-iterator.js Loading commit data...
typedarray-copywithin.js Loading commit data...
typedarray-every.js Loading commit data...
typedarray-fill.js Loading commit data...
typedarray-find.js Loading commit data...
typedarray-findindex.js Loading commit data...
typedarray-foreach.js Loading commit data...
typedarray-from.js Loading commit data...
typedarray-indexing.js Loading commit data...
typedarray-iteration.js Loading commit data...
typedarray-of.js Loading commit data...
typedarray-proto.js Loading commit data...
typedarray-reduce.js Loading commit data...
typedarray-reverse.js Loading commit data...
typedarray-set-length.js Loading commit data...
typedarray-slice.js Loading commit data...
typedarray-sort.js Loading commit data...
typedarray-tostring.js Loading commit data...
typedarray.js Loading commit data...
unicode-escapes.js Loading commit data...
unscopables.js Loading commit data...