Commit f774d8c5 authored by Ross McIlroy's avatar Ross McIlroy Committed by Commit Bot

[Flags] Add negation implications for --turbo negative so --no-turbo works.

Once we enabled --turbo by default we need to turn all the implications
off with --no-turbo as well. Chrome sets flags in V8 using SetFlagFromString,
which enforces the implications each time it is called. Therefore, if --turbo
is enabled by default, and an unrelated flag is set, the turbo implications are
enabled but not later disabled if we set --no-turbo. To fix this, add negative
implications as well.

BUG=chromium:692409

Change-Id: Iadb0ca542f49ba65c7419cda8c7a03636a8d5ba9
Reviewed-on: https://chromium-review.googlesource.com/451320
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#43655}
parent 6cf8f54d
......@@ -19,6 +19,10 @@
#define DEFINE_NEG_NEG_IMPLICATION(whenflag, thenflag) \
DEFINE_NEG_VALUE_IMPLICATION(whenflag, thenflag, false)
#define DEFINE_DUAL_IMPLICATION(whenflag, thenflag) \
DEFINE_IMPLICATION(whenflag, thenflag) \
DEFINE_NEG_NEG_IMPLICATION(whenflag, thenflag)
// We want to declare the names of the variables for the header file. Normally
// this will just be an extern declaration, but for a readonly flag we let the
// compiler make better optimizations by giving it the value.
......@@ -264,15 +268,15 @@ DEFINE_BOOL(future, FUTURE_BOOL,
"not-too-far future")
DEFINE_IMPLICATION(future, turbo)
DEFINE_IMPLICATION(turbo, ignition_staging)
DEFINE_IMPLICATION(turbo, enable_fast_array_builtins)
DEFINE_IMPLICATION(turbo, thin_strings)
DEFINE_DUAL_IMPLICATION(turbo, ignition_staging)
DEFINE_DUAL_IMPLICATION(turbo, enable_fast_array_builtins)
DEFINE_DUAL_IMPLICATION(turbo, thin_strings)
// TODO(rmcilroy): Remove ignition-staging and set these implications directly
// with the turbo flag.
DEFINE_BOOL(ignition_staging, false, "use ignition with all staged features")
DEFINE_IMPLICATION(ignition_staging, ignition)
DEFINE_IMPLICATION(ignition_staging, compiler_dispatcher)
DEFINE_DUAL_IMPLICATION(ignition_staging, ignition)
DEFINE_DUAL_IMPLICATION(ignition_staging, compiler_dispatcher)
// Flags for experimental implementation features.
DEFINE_BOOL(allocation_site_pretenuring, true,
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --ignition
// Flags: --ignition --turbo
// Test that asynchronous features do not work with
// side-effect free debug-evaluate.
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --ignition
// Flags: --ignition --turbo
Debug = debug.Debug
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --ignition
// Flags: --ignition --turbo
Debug = debug.Debug
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --ignition
// Flags: --ignition --turbo
// Test that declaring local variables in IIFEs works with
// side-effect free debug-evaluate.
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --ignition
// Flags: --ignition --turbo
Debug = debug.Debug
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --ignition
// Flags: --ignition --turbo
// The functions used for testing backtraces. They are at the top to make the
// testing of source line/column easier.
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --ignition
// Flags: --ignition --turbo
InspectorTest.addScript(`
function testFunction()
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --ignition --trace-ignition-dispatches
// Flags: --ignition --turbo --trace-ignition-dispatches
assertEquals(typeof getIgnitionDispatchCounters, "function");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment