1 // Copyright 2014 the V8 project authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 // Flags: --allow-natives-syntax 6 7 // Inlining shift with holey smi arrays shouldn't deopt just because it 8 // encounters the hole on the copy step. 9 function doShift(a) { 10 var x = a.shift(); 11 return x; 12 } 13 14 function makeArray() { 15 var a = [1, 2,, 3]; 16 a[0] = 2; 17 return a; 18 } 19 20 doShift(makeArray()); 21 doShift(makeArray()); 22 %OptimizeFunctionOnNextCall(doShift); 23 doShift(makeArray()); 24 assertOptimized(doShift); 25