array-shift5.js 1.65 KB
Newer Older
1 2 3 4 5 6 7
// Copyright 2017 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: --allow-natives-syntax

(function() {
8 9 10 11 12 13 14 15 16
function doShift(a) {
  return a.shift();
};
%PrepareFunctionForOptimization(doShift);
function test() {
  var a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
  assertEquals(0, doShift(a));
  assertEquals([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16], a);
}
17

18 19 20 21
test();
test();
%OptimizeFunctionOnNextCall(doShift);
test();
22 23 24
})();

(function() {
25 26 27 28 29 30 31 32 33
function doShift(a) {
  return a.shift();
};
%PrepareFunctionForOptimization(doShift);
function test() {
  var a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16.1];
  assertEquals(0, doShift(a));
  assertEquals([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16.1], a);
}
34

35 36 37 38
test();
test();
%OptimizeFunctionOnNextCall(doShift);
test();
39 40
})();

41
(function() {
42 43 44 45 46 47 48 49 50
function doShift(a) {
  return a.shift();
};
%PrepareFunctionForOptimization(doShift);
function test() {
  var a = [, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16.1];
  assertEquals(undefined, doShift(a));
  assertEquals([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16.1], a);
}
51

52 53 54 55
test();
test();
%OptimizeFunctionOnNextCall(doShift);
test();
56 57
})();

58
(function() {
59 60 61 62 63 64 65 66 67
function doShift(a) {
  return a.shift();
};
%PrepareFunctionForOptimization(doShift);
function test() {
  var a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, '16'];
  assertEquals(0, doShift(a));
  assertEquals([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, '16'], a);
}
68

69 70 71 72
test();
test();
%OptimizeFunctionOnNextCall(doShift);
test();
73
})();