kmillikin@chromium.org [Tue, 25 Oct 2011 09:24:49 +0000 (09:24 +0000)]
Handlify CallStubCompiler::CompileCallField.
This function relies on a number of helpers for checking prototypes and
probing dictionaries. It is not possible to wrap these helpers to retry
after allocation failure in a safe way---the assembler has no way to undo
what it has already assembled.
These functions have all been duplicated with handle and raw versions. The
raw versions will eventually be removed completely.
R=ulan@chromium.org,vegorov@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8332003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9769
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 25 Oct 2011 09:07:09 +0000 (09:07 +0000)]
CompileArrayPushCall should not use context register as a scratch.
R=kmillikin@chromium.org
Review URL: http://codereview.chromium.org/
8330026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9768
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 25 Oct 2011 09:06:07 +0000 (09:06 +0000)]
Provide fast-path for CHECK macro.
Makes debug build 20% faster.
R=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/
8256011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9767
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 25 Oct 2011 08:59:03 +0000 (08:59 +0000)]
Fix 9763 for real.
Review URL: http://codereview.chromium.org/
8382032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9766
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 25 Oct 2011 08:42:38 +0000 (08:42 +0000)]
Fix 9763 after build bot failures.
Review URL: http://codereview.chromium.org/
8382031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9765
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
keuchel@chromium.org [Tue, 25 Oct 2011 08:33:08 +0000 (08:33 +0000)]
Block scoped const variables.
This implements block scoped 'const' declared variables in harmony mode. They
have a temporal dead zone semantics similar to 'let' bindings, i.e. accessing
uninitialized 'const' bindings in throws a ReferenceError.
As for 'let' bindings, the semantics of 'const' bindings in global scope is not
correctly implemented yet. Furthermore assignments to 'const's are silently
ignored. Another CL will introduce treatment of those assignments as early
errors.
Review URL: http://codereview.chromium.org/
7992005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9764
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 25 Oct 2011 08:24:06 +0000 (08:24 +0000)]
Get the speed back in new context creation after it was tanked
in 9744.
Review URL: http://codereview.chromium.org/
8380035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9763
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 25 Oct 2011 08:23:56 +0000 (08:23 +0000)]
Add missing comment from last commit.
Review URL: http://codereview.chromium.org/
8383003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9762
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Mon, 24 Oct 2011 16:25:30 +0000 (16:25 +0000)]
Adapt to latest spec changes for Proxy.create[Function].
R=mstarzinger@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8271005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9761
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Mon, 24 Oct 2011 15:56:18 +0000 (15:56 +0000)]
Implement for-in loop for proxies.
Fix related corner case for Object.keys.
Remove obsolete GET_KEYS builtin.
R=ricow@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8256015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9760
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 24 Oct 2011 15:06:20 +0000 (15:06 +0000)]
Handle COW-arrays correctly when converting smi->double fast elements.
TEST=mjsunit/elements-transition.js
Review URL: http://codereview.chromium.org/
8383002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9759
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Mon, 24 Oct 2011 13:53:08 +0000 (13:53 +0000)]
Fix bug in environment simulation after inlined call-as-function.
This change is based on my previous change enabling inlining calls-as-function
fixing the bugs related to deoptimization.
The function value on top of the environment was dropped too late in the old code.
As a result we could get a wrong value on top after deoptimization.
This change includes r9619. It was reverted because of test failures that are fixed
with this patch.
Review URL: http://codereview.chromium.org/
8360001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9758
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Mon, 24 Oct 2011 13:45:19 +0000 (13:45 +0000)]
Use handle lists in Map::FindTransitionedMap.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8373030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9757
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Mon, 24 Oct 2011 13:11:14 +0000 (13:11 +0000)]
Use handle lists instead of raw pointer lists in polymorphic code cache.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8368024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9756
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Mon, 24 Oct 2011 12:39:29 +0000 (12:39 +0000)]
Fix crash in partial snapshot test when running with no boot snapshot.
Review URL: http://codereview.chromium.org/
8381003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9755
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 24 Oct 2011 12:19:55 +0000 (12:19 +0000)]
Fix typo in type-name and reorder initialization order.
Remember, when coming back to an old CL, do check that it still works.
Review URL: http://codereview.chromium.org/
8351002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9754
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 24 Oct 2011 12:12:21 +0000 (12:12 +0000)]
Moved random generator state to global context.
Change Random to take global context, not isolate.
BUG=v8:864
Review URL: http://codereview.chromium.org/
8162014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9753
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 24 Oct 2011 12:07:35 +0000 (12:07 +0000)]
Remove one static initializer from disasm.
Review URL: http://codereview.chromium.org/
8381002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9752
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 24 Oct 2011 11:16:38 +0000 (11:16 +0000)]
Further improvements upon r9747.
Review URL: http://codereview.chromium.org/
8372028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9751
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 24 Oct 2011 10:55:00 +0000 (10:55 +0000)]
Handlify the remaining stub compiler functions for call ICs.
Handlify StubCompiler functions for CallIC and KeyedCallIC cases
Megamorphic, Arguments, DebugBreak, and DebugPrepareStepIn.
R=ulan@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8372029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9750
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 24 Oct 2011 09:33:11 +0000 (09:33 +0000)]
Handlify call cases for pre-monomorphic, normal, and miss.
These cases turn out to be easy. There is a lingering raw pointer
implementation of TryCompileCallMiss because it's need by some of the
unconverted call stubs.
R=ulan@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8366036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9749
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Mon, 24 Oct 2011 08:59:34 +0000 (08:59 +0000)]
Fix initialization of allocation timeout value.
The allocation timeout value should not be initialized to 0, that
triggers a collection at the first allocation which breaks assumptions
for some test cases.
R=ricow@chromium.org
TEST=cctest/test-heap/Iteration
Review URL: http://codereview.chromium.org/
8275032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9748
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 24 Oct 2011 07:55:50 +0000 (07:55 +0000)]
Refactor and clean up array allocation across platforms.
Review URL: http://codereview.chromium.org/
8359034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9747
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
keuchel@chromium.org [Mon, 24 Oct 2011 07:47:22 +0000 (07:47 +0000)]
Replace boolean indications of strict mode by an enum value.
Review URL: http://codereview.chromium.org/
8344082
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9746
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 21 Oct 2011 18:40:36 +0000 (18:40 +0000)]
MIPS: Porting r9605 to arm (elements kind conversion in generated code).
Port r9690 (
857eacf)
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8366031
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9745
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Fri, 21 Oct 2011 15:20:53 +0000 (15:20 +0000)]
Fix missing write barrier in deserialization. Issue 1783.
Review URL: http://codereview.chromium.org/
8352045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9744
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Fri, 21 Oct 2011 15:15:47 +0000 (15:15 +0000)]
MIPS: port Support array literals with FAST_DOUBLE_ELEMENTS ElementsKind.
Port r9698 (
cf0cc54f)
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8363025
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9743
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Fri, 21 Oct 2011 13:05:37 +0000 (13:05 +0000)]
The detailed heap snapshot generator was slightly adjusted for tracking sliced strings.
BUG=v8:1779
TEST=cctest/test-heap-profiler/HeapSnapshotSlicedString
Review URL: http://codereview.chromium.org/
8362028
Patch from Ilya Tikhonovsky <loislo@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9742
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Fri, 21 Oct 2011 11:42:54 +0000 (11:42 +0000)]
Handlify KeyedIC::ComputeStub.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8356041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9741
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Fri, 21 Oct 2011 10:59:25 +0000 (10:59 +0000)]
MIPS: port RegExpMacroAssembler::CheckStackGuardState should update input string pointer...
... when it is moved or changed by GC.
Port r9697 (
d53382a)
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8362024
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9740
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Fri, 21 Oct 2011 10:53:02 +0000 (10:53 +0000)]
Fix compilation on ARM and x64 broken by r9738
R=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/
8359026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9739
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Fri, 21 Oct 2011 10:37:56 +0000 (10:37 +0000)]
Avoid write-barriers when initializing newly created Code object.
R=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/
8365029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9738
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Fri, 21 Oct 2011 10:33:50 +0000 (10:33 +0000)]
Disable incremental marking when GC extension is exposed.
R=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/
8366001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9737
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Fri, 21 Oct 2011 10:33:12 +0000 (10:33 +0000)]
Fix CountLeadingZeros on non-ARMv5 hardware.
R=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/
8361030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9736
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Fri, 21 Oct 2011 10:32:38 +0000 (10:32 +0000)]
Avoid incremental marking write-barrier when constructing descriptor arrays.
R=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/
8360004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9735
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
keuchel@chromium.org [Fri, 21 Oct 2011 10:26:59 +0000 (10:26 +0000)]
Reapply r9673 "Scope tree serialization and ScopeIterator cleanup."
This also includes the two fixes from r9674 and r9675. Here's the diff
to the previous CL.
--- a/src/runtime.cc
+++ b/src/runtime.cc
@@ -11133,17 +11133,26 @@ class ScopeIterator {
context_(Context::cast(frame->context())),
nested_scope_chain_(4) {
+ // Catch the case when the debugger stops in an internal function.
+ Handle<SharedFunctionInfo> shared_info(function_->shared());
+ if (shared_info->script() == isolate->heap()->undefined_value()) {
+ if (shared_info->scope_info()->HasContext()) Next();
+ return;
+ }
+
// Check whether we are in global code or function code. If there is a stack
// slot for .result then this function has been created for evaluating
// global code and it is not a real function.
// Checking for the existence of .result seems fragile, but the scope info
// saved with the code object does not otherwise have that information.
- int index = function_->shared()->scope_info()->
+ int index = shared_info->scope_info()->
StackSlotIndex(isolate_->heap()->result_symbol());
// Reparse the code and analyze the scopes.
ZoneScope zone_scope(isolate, DELETE_ON_EXIT);
- Handle<SharedFunctionInfo> shared_info(function_->shared());
Handle<Script> script(Script::cast(shared_info->script()));
Scope* scope;
if (index >= 0) {
Review URL: http://codereview.chromium.org/
8344046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9734
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 21 Oct 2011 10:19:16 +0000 (10:19 +0000)]
Handlify StubCompiler::CompileCallInitialize.
CallIC::GenerateInitialize and KeyedCallIC::GenerateInitialize are
verified safe for GC.
R=ulan@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8361028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9733
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Fri, 21 Oct 2011 09:55:25 +0000 (09:55 +0000)]
Avoid static initializers in assember-arm.h.
Patch by joth@chromium.org.
BUG=v8:1784
Review URL: http://codereview.chromium.org/
8367001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9732
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 21 Oct 2011 08:59:32 +0000 (08:59 +0000)]
MIPS: port Handlify the stub cache lookup and patching for CallIC and KeyedCallIC.
Port r9729 (
4aa1f5a6)
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8365026
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9731
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 20 Oct 2011 17:28:14 +0000 (17:28 +0000)]
Fix presubmit failure.
TBR=ulan@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8364004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9730
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 20 Oct 2011 17:08:53 +0000 (17:08 +0000)]
Handlify the stub cache lookup and patching for CallIC and KeyedCallIC.
R=ulan@chromium.org,vegorov@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8357010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9729
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Thu, 20 Oct 2011 16:39:26 +0000 (16:39 +0000)]
Reset failure flag before retrying stub compilation.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8365003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9728
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Thu, 20 Oct 2011 13:54:16 +0000 (13:54 +0000)]
Handlify upper layers of KeyedStoreIC.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8356039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9727
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Thu, 20 Oct 2011 13:47:14 +0000 (13:47 +0000)]
Fix the build on Mac.
Review URL: http://codereview.chromium.org/
8354037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9726
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Thu, 20 Oct 2011 12:55:31 +0000 (12:55 +0000)]
Improved printing of Simulate, LoadNamedFieldPolymorphic, LoadNamedGeneric, and StoreNamedField Hydrogen instructions a bit.
Review URL: http://codereview.chromium.org/
8352044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9725
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Thu, 20 Oct 2011 12:36:45 +0000 (12:36 +0000)]
Refactor elements kind conversion.
Review URL: http://codereview.chromium.org/
8355035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9724
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 20 Oct 2011 12:31:33 +0000 (12:31 +0000)]
Make builtin functions be skipped in stack traces.
Does include exposed builtin functions ("native functions").
Review URL: http://codereview.chromium.org/
8345039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9723
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Thu, 20 Oct 2011 12:27:10 +0000 (12:27 +0000)]
Shave 39% from snapshot size.
Review URL: http://codereview.chromium.org/
8344079
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9722
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Thu, 20 Oct 2011 11:40:16 +0000 (11:40 +0000)]
Switch UnreachableObjectsFilter to use Marking instead of InstrusiveMarking.
GcSafeFindCodeForInnerPointer does not work with intrusive marking now and it is used when roots are iterated.
R=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/
8342037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9721
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 20 Oct 2011 10:26:45 +0000 (10:26 +0000)]
Speed up comparison with a constant.
Improve optimized code for comparison of an int32 against a constant, or comparison of two double constants. Contributed by m.m.capewell.
Original codereview is http://codereview.chromium.org/
7489045/.
This cl is just created in order to commit the change.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8352040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9718
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Thu, 20 Oct 2011 10:07:54 +0000 (10:07 +0000)]
Fix x64 and ARM builds.
TBR=jkummerow@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/
8358001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9717
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Thu, 20 Oct 2011 09:56:18 +0000 (09:56 +0000)]
Make sure PrintElementsKind is compiled in release mode.
TBR=jkummerow@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/
8357035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9716
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Thu, 20 Oct 2011 09:38:24 +0000 (09:38 +0000)]
Add flag to trace element kind transitions
Currently only traces transitions from generated ia32 code.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/
8357004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9715
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Thu, 20 Oct 2011 09:35:47 +0000 (09:35 +0000)]
Handlify upper layers of KeyedLoadIC.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8352003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9714
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Thu, 20 Oct 2011 08:49:01 +0000 (08:49 +0000)]
ElementsKind transitioning support for keyed loads in Crankshaft
Review URL: http://codereview.chromium.org/
8352012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9713
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Thu, 20 Oct 2011 08:41:38 +0000 (08:41 +0000)]
Handle keyed stores after elements transition monomorphically if possible
Review URL: http://codereview.chromium.org/
8354003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9712
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Thu, 20 Oct 2011 07:55:30 +0000 (07:55 +0000)]
Make IsGenericDescriptor spec-conformant.
When the descriptor argument is undefined, the spec is very explicit about the
fact that we should return false (not true, like we did previously). I couldn't
come up with a test case for this, but the old code leaves a bad feeling about
corner cases, so better play safe.
Review URL: http://codereview.chromium.org/
8356004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9711
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 19 Oct 2011 15:34:32 +0000 (15:34 +0000)]
Adapt sputnik test expectations to last change.
The version of Sputnik which we test against uses the obsolete ES3
specification when it comes to Function.prototype.apply, ignore some
test cases that are supposed to fail according to ES5.
TBR=rossberg@chromium.org
TEST=sputnik
Review URL: http://codereview.chromium.org/
8355005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9710
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 19 Oct 2011 13:56:18 +0000 (13:56 +0000)]
Fix handling Function.apply for non-array arguments.
R=rossberg@chromium.org
TEST=mjsunit/apply,test262
Review URL: http://codereview.chromium.org/
8342034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9709
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 19 Oct 2011 13:47:53 +0000 (13:47 +0000)]
Temporarily skip asserts in test mjsunit/debug-step-3.js until issue is resolved
R=kmillikin@chromium.org
BUG=v8:1782
TEST=mjsunit/debug-step-3.js
Review URL: http://codereview.chromium.org//
8356001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9708
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 19 Oct 2011 13:44:29 +0000 (13:44 +0000)]
Fix Array.filter to use internal array for result.
In built-in code we use arrays for internal computations. This makes it
possible to affect the built-in code by putting getters or setters on
the array prototype chain. Using internal arrays prevents those issues.
Related to: http://code.google.com/p/v8/source/detail?r=7040
R=svenpanne@chromium.org
TEST=test262/15.4.4.20-9-b-6
Review URL: http://codereview.chromium.org/
8353006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9707
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Wed, 19 Oct 2011 13:29:37 +0000 (13:29 +0000)]
[[DefineOwnProperty]] should always return true/false (or throw an exception), never undefined.
Note that this is not an observable behavior, but following the principle of
least surprise, we should follow the spec. Additional (extremely tiny) bonus:
Some ICs see fewer values => better code.
Review URL: http://codereview.chromium.org/
8352004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9706
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Wed, 19 Oct 2011 12:44:50 +0000 (12:44 +0000)]
Adjust elements-kind.js expectation when --smi-only-arrays is off
TEST=mjsunit/elements-kind passes both with and without --smi-only-arrays flag
Review URL: http://codereview.chromium.org/
8356002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9705
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 19 Oct 2011 12:15:15 +0000 (12:15 +0000)]
Optimize fast element conversion in arm using batch store/loads.
Review URL: http://codereview.chromium.org/
8353002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9704
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
keuchel@chromium.org [Wed, 19 Oct 2011 12:15:02 +0000 (12:15 +0000)]
Revert 9673, 9674 and 9675 because of failing webkit tests.
This reverts commits
r9673: "Scope tree serialization and ScopeIterator cleanup."
r9674: "Use OS::SNPrintF instead of snprintf."
r9675: "Use int instead of size_t, StrLength instead of strlen."
Review URL: http://codereview.chromium.org/
8353003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9703
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Wed, 19 Oct 2011 12:10:18 +0000 (12:10 +0000)]
Introduce HTransitionElementsKind instruction.
TEST=mjsunit/elements-kind
Review URL: http://codereview.chromium.org/
8305001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9702
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 19 Oct 2011 12:04:16 +0000 (12:04 +0000)]
Handlify the runtime lookup of CallIC and KeyedCallIC.
R=ulan@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8345038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9701
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 19 Oct 2011 11:44:38 +0000 (11:44 +0000)]
MIPS: port Fix evaluation order of GT and LTE operators.
Port r9641 (
2876c37)
Note that this port does not include crankshaft portions of this
commit. They have been included in today's update to
http://codereview.chromium.org/
7934002/
Also, this fixes a changed function prototype for:
void Deoptimizer::RevertStackCheckCodeAt()
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8348028
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9700
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 19 Oct 2011 11:41:22 +0000 (11:41 +0000)]
Allow inlining of named function expressions containing ThisFunction reference.
Named function expression have an implicit local variable that
refers to the current function (ThisFunction). Before we only could inline
anonymous function expressions like:
A.prototype.foo = function() {}
as opposed to
A.prototype.foo = function foo() {}
This change enables inlining function of expressions like this.
Review URL: http://codereview.chromium.org/
8346032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9699
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Wed, 19 Oct 2011 11:36:55 +0000 (11:36 +0000)]
Support array literals with FAST_DOUBLE_ELEMENTS ElementsKind.
BUG=none
TEST=test/mjsunit/array-literal.js
Review URL: http://codereview.chromium.org/
8258015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9698
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Wed, 19 Oct 2011 11:01:02 +0000 (11:01 +0000)]
RegExpMacroAssembler::CheckStackGuardState should update input string pointer when it is moved or changed by GC.
If input string was cons-string it might undergo short-circuiting during GC. This does not change input start if underlying seq-string (first element of cons-string) does not move but this makes input-string pointer on the native regexp's frame invalid.
R=lrn@chromium.org
Review URL: http://codereview.chromium.org/
8343001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9697
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 19 Oct 2011 10:44:20 +0000 (10:44 +0000)]
Bugfix for r9690.
BUG=arm debug test of mjsunit/elements-transition segfaults
Review URL: http://codereview.chromium.org/
8342032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9696
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Wed, 19 Oct 2011 10:15:09 +0000 (10:15 +0000)]
Don't allow large object space to grow over the max oldspace limit (fixes issue 1717)
Review URL: http://codereview.chromium.org/
8345040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9695
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Wed, 19 Oct 2011 09:52:08 +0000 (09:52 +0000)]
Fixed evaluation order issue in defineProperties.
This is not covered by test262 yet, but it really makes sense and matches Firefox's behaviour.
TEST=mjsunit/define-properties.js
Review URL: http://codereview.chromium.org/
8349031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9694
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 19 Oct 2011 09:24:37 +0000 (09:24 +0000)]
Fix handling of non-object receivers for array builtins.
R=svenpanne@chromium.org
BUG=chromium:100702
TEST=mjsunit/regress/regress-100702
Review URL: http://codereview.chromium.org/
8347034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9693
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Wed, 19 Oct 2011 09:17:01 +0000 (09:17 +0000)]
Handlify upper layers of StoreIC based on
8337008.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8341008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9692
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 19 Oct 2011 09:06:15 +0000 (09:06 +0000)]
Fix updating of property attributes for elements.
This fixes updating of property attributes for data elements when
attributes are already present on a dictionary element but get removed
by a subsequent redefinition of that element.
R=rossberg@chromium.org
BUG=v8:1772
TEST=test262/15.2.3.6-4-82-18
Review URL: http://codereview.chromium.org/
8337017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9691
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 19 Oct 2011 09:04:35 +0000 (09:04 +0000)]
Porting r9605 to arm (elements kind conversion in generated code).
Review URL: http://codereview.chromium.org/
8329022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9690
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 19 Oct 2011 07:49:47 +0000 (07:49 +0000)]
Fix from Paul Lind that helps post-isolates V8 work with older
Android releases. See http://code.google.com/p/v8/issues/detail?id=1780
Review URL: http://codereview.chromium.org/
8347032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9689
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Wed, 19 Oct 2011 07:35:30 +0000 (07:35 +0000)]
Recognize special comparisons via pattern matching on the hydrogen graph, 2nd attempt.
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
fschneider@chromium.org [Tue, 18 Oct 2011 15:07:42 +0000 (15:07 +0000)]
Add write barrier helper for code patching and refactor stack check patching.
The new helper avoids expensive FindCodeForInnerPointer invocation when we have
the host code object available. It is used when patching stack checks.
Also some comments on the ARM platform are corrected.
Review URL: http://codereview.chromium.org/
8330021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9687
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 18 Oct 2011 14:41:45 +0000 (14:41 +0000)]
Increase ARM/MIPS simulators stack safety margin to 512 bytes
R=erik.corry@gmail.com
BUG=v8:1773
Review URL: http://codereview.chromium.org/
8337014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9686
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 18 Oct 2011 13:49:19 +0000 (13:49 +0000)]
Fix updating of property attributes for elements.
This fixes updating of property attributes for getters and setters on
dictionary elements while redefining. This just updates the property
details on the existing element.
R=rossberg@chromium.org
BUG=v8:1772
TEST=test262
Review URL: http://codereview.chromium.org/
8337013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9685
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 18 Oct 2011 13:40:33 +0000 (13:40 +0000)]
Reapply "Support for precise stepping in functions compiled before debugging was started (step 2)"
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
lrn@chromium.org [Tue, 18 Oct 2011 12:26:53 +0000 (12:26 +0000)]
Make bound functions have poisoned .caller and .arguments.
Also makes func.caller return null if the caller is a bound function,
matching JSC.
Fix bug preventing poisoned setters from triggering.
TEST=mjsunit/function-bind, mjsunit/strict-mode
Review URL: http://codereview.chromium.org/
8333019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9681
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Tue, 18 Oct 2011 12:19:18 +0000 (12:19 +0000)]
Handlify upper layers of LoadIC.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8337008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9680
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Tue, 18 Oct 2011 12:10:13 +0000 (12:10 +0000)]
Silence GCC-4.5.3 warning about unused result in d8.cc
TEST=GCC 4.5.3 successfully compiles d8.cc even with -Werror enabled.
Review URL: http://codereview.chromium.org/
8296018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9679
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 18 Oct 2011 11:32:57 +0000 (11:32 +0000)]
Fix assert by reordering the initialization of the arguments boilerplate.
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
lrn@chromium.org [Tue, 18 Oct 2011 11:30:29 +0000 (11:30 +0000)]
Fix bug in instanceof of bound functions on ARM.
Implement same on Mips.
BUG=v8:1774
TEST=mjsunit/function-bind
Review URL: http://codereview.chromium.org/
8337012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9677
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 18 Oct 2011 11:18:55 +0000 (11:18 +0000)]
Make the GC aware of JSReceiver pointers in LookupResults.
The LookupResult utility class is used in handlified code, but it can
contain a raw pointer to the lookup's holder object. Create a per-thread
stack of live LookupResults and iterate all the live ones on GC.
R=vegorov@chromium.org,erik.corry@gmail.com
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8341009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9676
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
keuchel@chromium.org [Tue, 18 Oct 2011 10:08:33 +0000 (10:08 +0000)]
Use int instead of size_t, StrLength instead of strlen.
Review URL: http://codereview.chromium.org/
8339013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9675
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
keuchel@chromium.org [Tue, 18 Oct 2011 09:48:13 +0000 (09:48 +0000)]
Use OS::SNPrintF instead of snprintf.
Review URL: http://codereview.chromium.org/
8339011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9674
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
keuchel@chromium.org [Tue, 18 Oct 2011 08:46:46 +0000 (08:46 +0000)]
Scope tree serialization and ScopeIterator cleanup.
The intention is to store enough scope information for the debugger to
handle stack allocation of block scoped variables introduced by
http://codereview.chromium.org/
7860045/ .
This CL is based on
http://codereview.chromium.org/
7904008/ .
Review URL: http://codereview.chromium.org/
7979001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9673
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
keuchel@chromium.org [Mon, 17 Oct 2011 15:19:34 +0000 (15:19 +0000)]
Replace calls_eval() by calls_non_strict_eval() where possible.
Review URL: http://codereview.chromium.org/
8321002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9666
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 17 Oct 2011 13:39:56 +0000 (13:39 +0000)]
Rolling back r9662.
Review URL: http://codereview.chromium.org/
8321001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9665
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Mon, 17 Oct 2011 13:27:57 +0000 (13:27 +0000)]
Change to disable stupid gcc warning.
Review URL: http://codereview.chromium.org/
8318003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9664
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Mon, 17 Oct 2011 12:58:32 +0000 (12:58 +0000)]
Mark Test262 test cases for known issue 893.
R=lrn@chromium.org
BUG=v8:893
TEST=test262
Review URL: http://codereview.chromium.org/
8320001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9663
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 17 Oct 2011 12:49:34 +0000 (12:49 +0000)]
Changes around ascii-check for strings wrt external strings.
Review URL: http://codereview.chromium.org/
8312015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9662
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erikcorry [Mon, 17 Oct 2011 12:48:31 +0000 (12:48 +0000)]
Improve speed of Utf8Write by always flattening the string first and
detecting the ASCII case. Also rewrite Utf8Length to work on an
unflattened string. Bug: http://code.google.com/p/v8/issues/detail?id=1665
Review URL: http://codereview.chromium.org/
8304021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9661
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 17 Oct 2011 12:45:52 +0000 (12:45 +0000)]
Make native syntax an early error in the preparser.
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