Index: src/compiler.cc |
=================================================================== |
--- src/compiler.cc (revision 4675) |
+++ src/compiler.cc (working copy) |
@@ -120,7 +120,21 @@ |
? info->scope()->is_global_scope() |
: (shared->is_toplevel() || shared->try_full_codegen()); |
- if (FLAG_always_full_compiler || (FLAG_full_compiler && is_run_once)) { |
+ bool force_full_compiler = false; |
+#ifdef V8_TARGET_ARCH_IA32 |
+ // On ia32 the full compiler can compile all code whereas the other platforms |
+ // the constructs supported is checked by the associated syntax checker. When |
+ // --always-full-compiler is used on ia32 the syntax checker is still in |
+ // effect, but there is a special flag --force-full-compiler to ignore the |
+ // syntax checker completely and use the full compiler for all code. Also |
+ // when debugging on ia32 the full compiler will be used for all code. |
+ force_full_compiler = |
+ Debugger::IsDebuggerActive() || FLAG_force_full_compiler; |
+#endif |
+ |
+ if (force_full_compiler) { |
+ return FullCodeGenerator::MakeCode(info); |
+ } else if (FLAG_always_full_compiler || (FLAG_full_compiler && is_run_once)) { |
FullCodeGenSyntaxChecker checker; |
checker.Check(function); |
if (checker.has_supported_syntax()) { |