[Interpreter] Don't compile Api or Builtin id functions through the interpreter.

The Interpreter uses the function_data slot in the shared function info, so
can't be used to compile functions which use that field for other reasons,
such as API functions or functions with builtin function ids.

BUG=v8:4280
LOG=N

Review URL: https://codereview.chromium.org/1427143002

Cr-Commit-Position: refs/heads/master@{#31721}
This commit is contained in:
rmcilroy 2015-11-02 12:37:49 -08:00 committed by Commit bot
parent 5a8da4945c
commit e4b4dd41ed

View File

@ -747,7 +747,8 @@ MUST_USE_RESULT static MaybeHandle<Code> GetUnoptimizedCodeCommon(
SetExpectedNofPropertiesFromEstimate(shared, lit->expected_property_count());
MaybeDisableOptimization(shared, lit->dont_optimize_reason());
if (FLAG_ignition && info->closure()->PassesFilter(FLAG_ignition_filter) &&
if (FLAG_ignition && !shared->HasBuiltinFunctionId() &&
info->closure()->PassesFilter(FLAG_ignition_filter) &&
ScriptPassesFilter(FLAG_ignition_script_filter, info->script())) {
// Compile bytecode for the interpreter.
if (!GenerateBytecode(info)) return MaybeHandle<Code>();