v8/test/mjsunit/harmony/regress/regress-508074.js
caitpotter88 510baeacba [es6] Re-implement rest parameters via desugaring.
Kills the kRestParameter bailout/disabled optimization, and fixes
lazily parsed arrow functions with rest parameters.

Supercedes https://crrev.com/1235153006/

BUG=chromium:508074, v8:2160, v8:2700
LOG=N
R=rossberg@chromium.org, adamk@chromium.org, wingo@igalia.com

Review URL: https://codereview.chromium.org/1272673003

Cr-Commit-Position: refs/heads/master@{#30550}
2015-09-02 21:11:05 +00:00

27 lines
502 B
JavaScript

// Copyright 2015 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --harmony-rest-parameters --harmony-arrow-functions
// Flags: --allow-natives-syntax
var f = (a, b, ...c) => {
print(a);
print(b);
print(c);
assertEquals(6, a);
assertEquals(5, b);
assertEquals([4, 3, 2, 1], c);
};
function g() {
f(6, 5, 4, 3, 2, 1);
};
g();
g();
g();
%OptimizeFunctionOnNextCall(g);
g();