From 79748e3f7ced568355d00ea7d145790290e6df32 Mon Sep 17 00:00:00 2001 From: mstarzinger Date: Mon, 19 Jan 2015 07:51:50 -0800 Subject: [PATCH] Remove overzealous check from %OptimizeFunctionOnNextCall. R=titzer@chromium.org Review URL: https://codereview.chromium.org/863443003 Cr-Commit-Position: refs/heads/master@{#26142} --- src/runtime/runtime-test.cc | 5 ----- test/mjsunit/compiler/opt-next-call-turbo.js | 23 ++++++++++++++++++++ test/mjsunit/compiler/opt-next-call.js | 9 ++++++++ 3 files changed, 32 insertions(+), 5 deletions(-) create mode 100644 test/mjsunit/compiler/opt-next-call-turbo.js diff --git a/src/runtime/runtime-test.cc b/src/runtime/runtime-test.cc index a66e7665da..1778401210 100644 --- a/src/runtime/runtime-test.cc +++ b/src/runtime/runtime-test.cc @@ -64,11 +64,6 @@ RUNTIME_FUNCTION(Runtime_OptimizeFunctionOnNextCall) { // If the function is already optimized, just return. if (function->IsOptimized()) return isolate->heap()->undefined_value(); - // If the function cannot optimized, just return. - if (function->shared()->optimization_disabled()) { - return isolate->heap()->undefined_value(); - } - function->MarkForOptimization(); Code* unoptimized = function->shared()->code(); diff --git a/test/mjsunit/compiler/opt-next-call-turbo.js b/test/mjsunit/compiler/opt-next-call-turbo.js new file mode 100644 index 0000000000..3a7bf6ec61 --- /dev/null +++ b/test/mjsunit/compiler/opt-next-call-turbo.js @@ -0,0 +1,23 @@ +// 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: --allow-natives-syntax --turbo-filter=* + +function foo() { + with ({ value:"fooed" }) { return value; } +} + +%OptimizeFunctionOnNextCall(foo); +assertEquals("fooed", foo()); +assertOptimized(foo); + +function bar() { + with ({ value:"bared" }) { return value; } +} + +assertEquals("bared", bar()); +%OptimizeFunctionOnNextCall(bar); +assertEquals("bared", bar()); +// TODO(mstarzinger): Still not optimized, make sure it is. +// assertOptimized(bar); diff --git a/test/mjsunit/compiler/opt-next-call.js b/test/mjsunit/compiler/opt-next-call.js index 6366c7d72e..3d7e74f626 100644 --- a/test/mjsunit/compiler/opt-next-call.js +++ b/test/mjsunit/compiler/opt-next-call.js @@ -11,3 +11,12 @@ function foo() { %OptimizeFunctionOnNextCall(foo); assertEquals("fooed", foo()); assertOptimized(foo); + +function bar() { + return "bared"; +} + +assertEquals("bared", bar()); +%OptimizeFunctionOnNextCall(bar); +assertEquals("bared", bar()); +assertOptimized(bar);