From a64ac4575a235fa7efc44b4f56a34c20e5634d9c Mon Sep 17 00:00:00 2001 From: bmeurer Date: Fri, 2 Jan 2015 00:17:50 -0800 Subject: [PATCH] Fix %NeverOptimizeFunction() intrinsic. Set a valid reason for disabling optimization when using %NeverOptimizeFunction. TEST=mjsunit/compiler/regress-445732 BUG=chromium:445732 LOG=y TBR=machenbach@chromium.org Review URL: https://codereview.chromium.org/832003002 Cr-Commit-Position: refs/heads/master@{#25949} --- src/runtime/runtime-test.cc | 1 + test/mjsunit/compiler/regress-445732.js | 11 +++++++++++ 2 files changed, 12 insertions(+) create mode 100644 test/mjsunit/compiler/regress-445732.js diff --git a/src/runtime/runtime-test.cc b/src/runtime/runtime-test.cc index 9faa2dc..b4b90e2 100644 --- a/src/runtime/runtime-test.cc +++ b/src/runtime/runtime-test.cc @@ -94,6 +94,7 @@ RUNTIME_FUNCTION(Runtime_NeverOptimizeFunction) { HandleScope scope(isolate); DCHECK(args.length() == 1); CONVERT_ARG_CHECKED(JSFunction, function, 0); + function->shared()->set_disable_optimization_reason(kOptimizationDisabled); function->shared()->set_optimization_disabled(true); return isolate->heap()->undefined_value(); } diff --git a/test/mjsunit/compiler/regress-445732.js b/test/mjsunit/compiler/regress-445732.js new file mode 100644 index 0000000..199a29a --- /dev/null +++ b/test/mjsunit/compiler/regress-445732.js @@ -0,0 +1,11 @@ +// Copyright 2014 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-asm + +"use asm"; + +%NeverOptimizeFunction(f); +function f() { } +f(); -- 2.7.4