// Copyright 2013 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 Cb(a, trigger) { var f, g; for(f = a.length; f--;) { g = a.charCodeAt(f); // This will fail after OSR if Runtime_StringCharCodeAt is modified // to iterates optimized frames and visit safepoint pointers. if (g == "C".charCodeAt(0)) { %OptimizeOsr(); %PrepareFunctionForOptimization(Cb); } } return g; } var s1 = "long string to make cons string 1"; var s2 = "long string to make cons string 2"; %PrepareFunctionForOptimization(Cb); Cb(s1 + s2); %PrepareFunctionForOptimization(Cb); Cb(s1); var s3 = "string for triggering osr in Cb"; %PrepareFunctionForOptimization(Cb); Cb(s3 + s3); %PrepareFunctionForOptimization(Cb); Cb(s1 + s2);