This time, we initially leave the HTypeof instruction in the Hydrogen graph,
even for the special cases. We later try to remove this instruction (and any
HConstant) in the canonicalization pass, if possible. Always removing the
HTypeof during the initial graph construction is wrong if e.g. it is used in an
HSimulate.
The removals can be generalized a bit, but this will happen in a separate CL.
TEST=mjsunit/optimized-typeof.js
Review URL: http://codereview.chromium.org/8334021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9688 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This is reapplying r9501 with this single change which seemed to be causing most (all) of the failures for r9501.
--- a/src/debug.cc
+++ b/src/debug.cc
@@ -2230,6 +2230,7 @@ Debugger::Debugger(Isolate* isolate)
compiling_natives_(false),
is_loading_debugger_(false),
never_unload_debugger_(false),
+ force_debugger_active_(true),
message_handler_(NULL),
debugger_unload_pending_(false),
host_dispatch_handler_(NULL),
R=kmillikin@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org//8337009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9684 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
If a GC happened during initialization (when allocating the elements array)
of the non_strict_arguments_boilerplate, heap verification would fail with the following assert:
ASSERT_EQ((map()->has_fast_elements() || map()->has_fast_smi_only_elements()),
(elements()->map() == GetHeap()->fixed_array_map() ||
elements()->map() == GetHeap()->fixed_cow_array_map()));
This was not harmful since the boilerplate was setup
correctly immediatly afterwards.
Simplified the setup code by removing a call to GetElementsTransitionMap. It always return the same map as
the input object in this case and is therefore unnecessary.
Added more assertions to verify well-formed non-strict
arguments backing store.
BUG=v8:1520
TEST=no more flaky tests with failing this assert.
Review URL: http://codereview.chromium.org/8336021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9678 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Previously the preparser always accepted natives syntax and let the
real parser throw the syntax error. In ES5, it should be an early error,
so the preparser must catch the error.
The perparser library does not expose parsing for natives syntax, it's
only used internally.
Review URL: http://codereview.chromium.org/8306024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9660 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
1. Record AST id for CallFunctionStub.
2. Correctly extract cached target from CallFunctionStub inline cache.
3. Fix a bug when inling call as a function in effect or value context:
Handle abnormal exits correcty.
4. Fix a bug when inlining call as a function in test context: drop function
correctly from true and false block.
5. Avoid inlining mutually recursive functions by checking the stack of function
states before inlining. This was not a bug, but is just a more general
check to avoid recursive inlining.
Review URL: http://codereview.chromium.org/8258012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9619 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Previously, comparisons against null/undefined and comparisons of the result of
typeof against a constant string were done syntactically. Now we do this via
pattern matching on the hydrogen graph, which opens up more opportunities for
better code generation, e.g. the following comparisons are now recognized to be
special:
var bar = typeof foo;
var baz = "undefined";
if (bar == baz) ...
var blah = undefined;
if (hurz == blah) ...
If we did this handling of special cases even later at lithium generation time,
even more cases could be recognized, but this would involve bigger changes and
this CL handles most common cases.
Review URL: http://codereview.chromium.org/8242002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9612 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This ports the following list of commits to mips. It is provided in this form
so that the mips port of the new-gc can be easily tested on your end.
This must be downloaded or landed after http://codereview.chromium.org/8106002
This is based on r9585. With these two mips commits, all tests are passing.
9319 Fix a harmless assert and a genuine bug in the GC-safety of stub generation ...
9329 ARM: Pregenerate some stubs that we call from other stubs.
9335 Initialize pre-allocated fields of JSObject with undefined.
9344 Put back the asserts in RememberedSetHelper, but correct this time
9370 Reorganize object type enum, such that proxies are no longer in the middle...
9392 Basic support for tracking smi-only arrays on ia32.
9402 Notify collector about lazily deoptimized code objects.
9411 Porting r9392 to arm (smi-only arrays).
9418 Small refactor to KeyedStoreIC::GenerateGeneric to make it slightly faster.
9447 Tighten up assertions checking GC-safety of stub calls.
9449 Record function call targets, use them for inlining.
9459 Make sure we don't flush the pregenerated stubs, since they need to b
9461 Fix the build on ARM
9466 Move the is_pregenerated flag so it does not overlap other flags....
9468 Fix the no-VFP3 build on ARM.
9475 Pass correct anchor_slot for EMBEDDED_OBJECT pointers from
9490 Adjust assertions in UpdateSlot to match UpdatePointer in PointersUpdatingVisitor.
9511 Clean list of external references from internal objects like the hole value.
9514 Simplify compares in KeyedStoreIC::GenerateGeneric.
9531 Porting r9456 to arm (Optimize KeyedStoreGeneric for Smi arrays).
9541 Fix load of potentially eval-shadowed let bindings.
9542 Fast allocation of block contexts.
9553 Activate smi-only optimizations for large array literals.
9575 Move declaration of SerializedScopeInfo from variables.h to objects.h
9577 Track elements_kind transitions in KeyedStoreICs.
9583 Fixing a bug in arm as pointed out in issue 1759.
9584 Refactor and fix polymorphic KeyedStoreIC creation.
BUG=
TEST=
Review URL: http://codereview.chromium.org/8112008
Patch from Paul Lind <pling44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9601 ce2b1a6d-e550-0410-aec6-3dcde31c8c00