bcb5d45210
Adding the StringSubstring simplified operator is a precursor to improve inlining of String.p.{substr,substring,slice}. This also contains a drive-by renaming to normalize different spellings of 'Substring'. Bug: v8:7250, v8:7340 Change-Id: I89e0fbafeab80f5d2f3ef348a5303d32c0abfe0a Reviewed-on: https://chromium-review.googlesource.com/919084 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#51522}
58 lines
1.2 KiB
JavaScript
58 lines
1.2 KiB
JavaScript
// Copyright 2018 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 --opt --no-always-opt
|
|
|
|
(()=> {
|
|
function f(a, b, c) {
|
|
return a.indexOf(b, c);
|
|
}
|
|
f("abc", "de", 1);
|
|
f("abc", "de", 1);
|
|
%OptimizeFunctionOnNextCall(f);
|
|
f("abc", "de", {});
|
|
%OptimizeFunctionOnNextCall(f);
|
|
f("abc", "de", {});
|
|
assertOptimized(f);
|
|
})();
|
|
|
|
(()=> {
|
|
function f(a, b, c) {
|
|
return a.indexOf(b, c);
|
|
}
|
|
f("abc", "de", 1);
|
|
f("abc", "de", 1);
|
|
%OptimizeFunctionOnNextCall(f);
|
|
f("abc", {}, 1);
|
|
%OptimizeFunctionOnNextCall(f);
|
|
f("abc", {}, 1);
|
|
assertOptimized(f);
|
|
})();
|
|
|
|
(()=> {
|
|
function f(a, b, c) {
|
|
return a.substring(b, c);
|
|
}
|
|
f("abcde", 1, 4);
|
|
f("abcde", 1, 4);
|
|
%OptimizeFunctionOnNextCall(f);
|
|
f("abcde", 1, {});
|
|
%OptimizeFunctionOnNextCall(f);
|
|
f("abcde", 1, {});
|
|
assertOptimized(f);
|
|
})();
|
|
|
|
(()=> {
|
|
function f(a, b, c) {
|
|
return a.substring(b, c);
|
|
}
|
|
f("abcde", 1, 4);
|
|
f("abcde", 1, 4);
|
|
%OptimizeFunctionOnNextCall(f);
|
|
f("abcde", {}, 4);
|
|
%OptimizeFunctionOnNextCall(f);
|
|
f("abcde", {}, 4);
|
|
assertOptimized(f);
|
|
})();
|