danno@chromium.org [Thu, 17 Nov 2011 13:36:27 +0000 (13:36 +0000)]
MIPS: Cleaned up an unused declaration in lithium-codegen-mips.h.
DoDeferredBinaryOpStub is not used (or even defined) anywhere.
MIPS can handle special cases of div, which is the only place it's used in the ARM version.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8588005
Patch from Gergely Kis <gergely@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10018
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Thu, 17 Nov 2011 13:35:15 +0000 (13:35 +0000)]
MIPS: Fixed a minor inconsistency in lithium-codegen-mips.cc
EmitIsObject is only called from one function, DoIsObjectAndBranch.
DoIsObjectAndBranch now passes the temp2 register to EmitIsObject
instead of simply relying on the two functions using the same
lithium scratch register.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8588004
Patch from Gergely Kis <gergely@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10017
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Thu, 17 Nov 2011 13:33:56 +0000 (13:33 +0000)]
MIPS: Re-work DoModI.
Changes:
-separated the two code-paths (constant power of 2 divisor similar to ARM and everything else)
-replaced a bailout condition with faster handling (negative modulo result)
-removed a possibly useless mov instruction from one path
-replaced the IsConstantOperand condition with the more meaningful HasPowerOf2Divisor (although in this specific case they're equivalent)
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8591002
Patch from Gergely Kis <gergely@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10016
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Thu, 17 Nov 2011 13:31:26 +0000 (13:31 +0000)]
MIPS: Fix for Ins macro-assembler instruction for non-mips32r2 platforms.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8520023
Patch from Gergely Kis <gergely@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10015
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Thu, 17 Nov 2011 13:27:58 +0000 (13:27 +0000)]
MIPS: Implement runtime function for array literal transitions.
Port r9979(
0cf0570a).
Original commit message:
Also simplify ia32 and x64 handing of the trace_elements_transition flag.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8557004
Patch from Gergely Kis <gregely@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10014
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Thu, 17 Nov 2011 08:40:40 +0000 (08:40 +0000)]
Change generated code for substring not to bail out to runtime system.
There is no need to bail out to runtime system when creating sliced strings of external strings since the string content is unimportant.
Review URL: http://codereview.chromium.org/
8513016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10012
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Thu, 17 Nov 2011 08:10:30 +0000 (08:10 +0000)]
Prepare push to trunk. Now working on version 3.7.9.
Review URL: http://codereview.chromium.org/
8568042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10010
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Wed, 16 Nov 2011 22:25:56 +0000 (22:25 +0000)]
Reset allocation info when we are releasing the page that contains allocation top.
R=erik.corry@gmail.com
BUG=103587
Review URL: http://codereview.chromium.org/
8575006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10009
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 16 Nov 2011 14:35:47 +0000 (14:35 +0000)]
Adding NetBSD support for scons build.
BUG=v8:1678
Review URL: http://codereview.chromium.org/
8513012
Patch from Matthew Sporleder <msporleder@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10008
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Wed, 16 Nov 2011 10:40:50 +0000 (10:40 +0000)]
Use safe version (i.e. using write barrier) of set_map in ReinitializeJSReceiver.
We pass in the object that we set the map on.
Review URL: http://codereview.chromium.org/
8486005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10007
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 16 Nov 2011 08:44:30 +0000 (08:44 +0000)]
Fix lazy deoptimization at HInvokeFunction and enable target-recording call-function stub.
Changes the way we do lazy deoptimization:
1. For side-effect instructions, we insert the lazy-deopt call at
the following LLazyBailout instruction.
CALL
GAP
LAZY-BAILOUT ==> lazy-deopt-call
2. For other instructions (StackCheck) we insert it right after the
instruction since the deopt targets an earlier deoptimization environment.
STACK-CHECK
GAP ==> lazy-deopt-call
The pc of the lazy-deopt call that will be patched in is recorded in the
deoptimization input data. Each Lithium instruction can have 0..n safepoints.
All safepoints get the deoptimization index of the associated LAZY-BAILOUT
instruction. On lazy deoptimization we use the return-pc to find the safepoint.
The safepoint tells us the deoptimization index, which in turn finds us the
PC where to insert the lazy-deopt-call.
Additional changes:
* RegExpLiteral marked it as having side-effects so that it
gets an explicitlazy-bailout instruction (instead of
treating it specially like stack-checks)
* Enable target recording CallFunctionStub to achieve
more inlining on optimized code.
BUG=v8:1789
TEST=jslint and uglify run without crashing, mjsunit/compiler/regress-lazy-deopt.js
Review URL: http://codereview.chromium.org/
8492004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10006
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Wed, 16 Nov 2011 07:46:19 +0000 (07:46 +0000)]
Re-added missing return in HInferRepresentation::TryChange.
It mysteriously disappeared about 800 revisions ago... :-} Thanks to Jakob for spotting this!
Review URL: http://codereview.chromium.org/
8574036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10005
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Wed, 16 Nov 2011 01:44:17 +0000 (01:44 +0000)]
Fix presubmit errors introduced by r10002.
TBR=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/
8520031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10004
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Tue, 15 Nov 2011 23:26:22 +0000 (23:26 +0000)]
Presubmit failures fixed
TBR=vitalyr@chromium.org
Review URL: http://codereview.chromium.org/
8571017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10003
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 15 Nov 2011 22:52:38 +0000 (22:52 +0000)]
Introduce non auto-scaling mode in spinning balls benchmark.
Review URL: http://codereview.chromium.org/
8570017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10002
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Tue, 15 Nov 2011 22:48:55 +0000 (22:48 +0000)]
Extension state made per-siolate in genesis
BUG=http://code.google.com/p/v8/issues/detail?id=1821
Review URL: http://codereview.chromium.org/
8536042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10001
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 15 Nov 2011 14:01:02 +0000 (14:01 +0000)]
Elide superfluous write barriers.
Review URL: http://codereview.chromium.org/
8468005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10000
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
keuchel@chromium.org [Tue, 15 Nov 2011 13:48:40 +0000 (13:48 +0000)]
Static resolution of outer variables in eval code.
So far free variables references in eval code are not statically
resolved. For example in
function foo() { var x = 1; eval("y = x"); }
the variable x will get mode DYNAMIC and y will get mode DYNAMIC_GLOBAL,
i.e. free variable references trigger dynamic lookups with a fast case
handling for global variables.
The CL introduces static resolution of free variables references in eval
code. If possible variable references are resolved to bindings belonging to
outer scopes of the eval call site.
This is achieved by deserializing the outer scope chain using
Scope::DeserializeScopeChain prior to parsing the eval code similar to lazy
parsing of functions. The existing code for variable resolution is used,
however resolution starts at the first outer unresolved scope instead of
always starting at the root of the scope tree.
This is a prerequisite for statically checking validity of assignments in
the extended code as specified by the current ES.next draft which will be
introduced by a subsequent CL. More specifically section 11.13 of revision 4
of the ES.next draft reads:
* It is a Syntax Error if the AssignmentExpression is contained in extended
code and the LeftHandSideExpression is an Identifier that does not
statically resolve to a declarative environment record binding or if the
resolved binding is an immutable binding.
TEST=existing tests in mjsunit
Review URL: http://codereview.chromium.org/
8508052
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9999
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 15 Nov 2011 13:01:52 +0000 (13:01 +0000)]
We might decide to start incremental marking immediately after finishing one cycle.
In this case uncommiting marking deque is impossible.
R=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/
8528030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9998
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Tue, 15 Nov 2011 12:47:37 +0000 (12:47 +0000)]
Add -e to echo in push-to-trunk.sh to print \t properly
Review URL: http://codereview.chromium.org/
8510058
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9997
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 15 Nov 2011 12:34:55 +0000 (12:34 +0000)]
Fix test failures introduced by last revision.
R=erik.corry@gmail.com
TEST=mjsunit/array-elements-from-array-prototype-chain
Review URL: http://codereview.chromium.org/
8572004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9996
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 15 Nov 2011 12:18:24 +0000 (12:18 +0000)]
Avoid write barrier when writing an external pointer to an internal field.
Review URL: http://codereview.chromium.org/
8572003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9995
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 15 Nov 2011 10:10:35 +0000 (10:10 +0000)]
Fix missing HandleScope to prevent local handles to DOMWindow leaking.
R=erik.corry@gmail.com
BUG=102895
TEST=none
Review URL: http://codereview.chromium.org/
8528024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9994
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 15 Nov 2011 09:44:57 +0000 (09:44 +0000)]
Remove hidden prototype for builtin functions.
This is a deliberate non-conformity introduced more than 2 years ago to
be compatible with JSC. The current state is that all other browsers
perform ES5 conform in that regard.
R=erik.corry@gmail.com
BUG=chromium:1717,chromium:39662
TEST=test262/15.2.3.6-4-6??,mjsunit/undeletable-functions
Review URL: http://codereview.chromium.org/
8566009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9993
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Mon, 14 Nov 2011 13:31:57 +0000 (13:31 +0000)]
Prepare push to trunk. Now working on version 3.7.8.
R=yangguo@chromium.org
Review URL: http://codereview.chromium.org/
8510048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9988
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Mon, 14 Nov 2011 12:33:44 +0000 (12:33 +0000)]
Speedup unit test to avoid timeout on slow ARM simulator.
This test depends on OSR being triggered. That's why I can't
use %OptimizeFunctionOnNextCall.
Review URL: http://codereview.chromium.org/
8555004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9987
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Mon, 14 Nov 2011 11:36:04 +0000 (11:36 +0000)]
Fix static const weirdness in both gcc and msvs compatible way.
Afterpatch for r9985.
Review URL: http://codereview.chromium.org/
8565005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9986
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Mon, 14 Nov 2011 11:13:29 +0000 (11:13 +0000)]
Fix missing fast property accessors in heap snapshots.
Implementation for this case
var x = {};
x.__defineGetter__("y", function Y() { return 42; });
BUG=v8:1818
TEST=cctest/test-heap-profiler/FastCaseGetter
Review URL: http://codereview.chromium.org/
8491041
Patch from Ilya Tikhonovsky <loislo@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9985
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
keuchel@chromium.org [Mon, 14 Nov 2011 08:58:47 +0000 (08:58 +0000)]
Make eval compilation cache calling scope sensitive.
Review URL: http://codereview.chromium.org/
8518001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9984
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 11 Nov 2011 17:48:40 +0000 (17:48 +0000)]
Fixing build errors.
Review URL: http://codereview.chromium.org/
8540007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9981
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 11 Nov 2011 17:21:16 +0000 (17:21 +0000)]
Catch OOM when sparse array join results in too large array.
Review URL: http://codereview.chromium.org/
8540006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9980
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Fri, 11 Nov 2011 14:49:16 +0000 (14:49 +0000)]
ARM: Implement runtime function for array literal transitions.
Also simplify ia32 and x64 handing of the trace_elements_transition flag.
R=jkummerow@chromium.org
BUG=none
TEST=array-literal-transitions.js
Review URL: http://codereview.chromium.org/
8539011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9979
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Fri, 11 Nov 2011 14:48:16 +0000 (14:48 +0000)]
Improve push-to-trunk.sh
1) Make sure that commits sneaking in before the "Prepare Push" CL is landed are included in the push.
2) Easy-to-copy output at the end.
Review URL: http://codereview.chromium.org/
8511060
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9978
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 11 Nov 2011 13:48:14 +0000 (13:48 +0000)]
Reapply "Add a level of indirection to exception handler addresses."
Original commit message:
Add a level of indirection to exception handler addresses.
To support deoptimization of exception handlers, the handler address in the
stack is converted to a pair of code object and an index into a separate
table of code offsets. The index part is invariant under deoptimization.
The index is packed into the handler state field so that handler size does
not change.
R=vegorov@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8538011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9977
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 11 Nov 2011 13:13:35 +0000 (13:13 +0000)]
Revert "Add a level of indirection to exception handler addresses."
This reverts r9975. This change broke (at least) snapshots on x64.
TBR=fschneider@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8540005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9976
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 11 Nov 2011 12:51:42 +0000 (12:51 +0000)]
Add a level of indirection to exception handler addresses.
To support deoptimization of exception handlers, the handler address in the
stack is converted to a pair of code object and an index into a separate
table of code offsets. The index part is invariant under deoptimization.
The index is packed into the handler state field so that handler size does
not change.
R=vegorov@chromium.org,fschneider@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8462010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9975
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Fri, 11 Nov 2011 12:28:42 +0000 (12:28 +0000)]
Refactor embedded pointer visitors for the serializer
This patch continues the refactoring that started in r9597 and
extends it with support for the serializer.
This is required for MIPS support in the serializer.
Review URL: http://codereview.chromium.org/
8467010
Patch from Gergely Kis <gergely@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9971
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Fri, 11 Nov 2011 11:50:05 +0000 (11:50 +0000)]
Fix mistake in comment for last revision.
TBR=vegorov@chromium.org
Review URL: http://codereview.chromium.org/
8536011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9967
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Fri, 11 Nov 2011 11:44:16 +0000 (11:44 +0000)]
Prepare push to trunk. Now working on version 3.7.7.
R=jkummerow@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8538006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9966
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Fri, 11 Nov 2011 11:23:39 +0000 (11:23 +0000)]
8-byte align zone allocations of objects that may require it.
Review URL: http://codereview.chromium.org/
8539008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9965
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Fri, 11 Nov 2011 09:45:12 +0000 (09:45 +0000)]
Fix filtering of store buffer for large object pages.
Our Heap::FreeQueuedChunks generates fake inner chunks in large object
pages queued for freeing, so that StoreBuffer::Filter can recognize them
as pages to be freed. This also relies on MemoryChunk::Contains to work
properly, which is why the size field needs to be initialized as well.
R=vegorov@chromium.org
BUG=v8:1817
TEST=mozilla/js1_5/Regress/regress-360969-05
Review URL: http://codereview.chromium.org/
8536009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9964
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Fri, 11 Nov 2011 08:23:06 +0000 (08:23 +0000)]
ARM: Check that address given to __ RecordWrite is correct.
Review URL: http://codereview.chromium.org/
8511052
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9963
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Thu, 10 Nov 2011 17:01:32 +0000 (17:01 +0000)]
Fixing crash of StringHash test.
Review URL: http://codereview.chromium.org/
8520010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9962
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Thu, 10 Nov 2011 16:24:43 +0000 (16:24 +0000)]
A more holistic test case for proxies.
Depends on http://codereview.chromium.org/
8318014/
R=mstarzinger@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8392038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9961
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Thu, 10 Nov 2011 15:48:07 +0000 (15:48 +0000)]
Fixing test cases for correct assertSame.
Leaving out derived construct trap for now, which I'm working on separately.
R=mstarzinger@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8506020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9960
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Thu, 10 Nov 2011 15:37:24 +0000 (15:37 +0000)]
Make LiveRange objects 1 word smaller by using a bool instead of enum for register kind.
Review URL: http://codereview.chromium.org/
8462016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9959
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Thu, 10 Nov 2011 15:16:57 +0000 (15:16 +0000)]
Fixing build error on Win64.
Review URL: http://codereview.chromium.org/
8508058
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9958
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Thu, 10 Nov 2011 14:32:29 +0000 (14:32 +0000)]
Fixing presubmit failure in r9955.
Review URL: http://codereview.chromium.org/
8517007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9957
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Thu, 10 Nov 2011 14:26:57 +0000 (14:26 +0000)]
Fixing generated hash function on all platforms.
BUG=v8:1808
TEST=cctest/test-hashing.cc
Review URL: http://codereview.chromium.org/
8512004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9956
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Thu, 10 Nov 2011 14:13:32 +0000 (14:13 +0000)]
MIPS: Fixed a bug in StringHelper::GenerateTwoCharacterSymbolTableProbe.
r9871 (
5baeaf57) changed the fill value for deleted entries in hash tables from null_value to the_hole_value.
This commit changes an assertion in MIPS code that expects this value.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8479028
Patch from Gergely Kis <gergely@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9955
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Thu, 10 Nov 2011 13:39:22 +0000 (13:39 +0000)]
Fix instanceof a function proxy.
R=mstarzinger@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8520001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9954
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Thu, 10 Nov 2011 13:24:00 +0000 (13:24 +0000)]
Fix Heap::Shrink to ensure that it does not free pages that are still in use.
Heap::Shrink is called from EnsureFromSpaceIsCommitted at the very start of the GC. At this moment live bytes counts on pages are in inconsistent states. Some pages might have been already swept but have not been yet reached by an incremental marker (or incremental marker is not in progress) and have live bytes count set to 0. Thus we can't rely only on LiveBytes to determine which pages can be released to the OS.
R=mstarzinger@chromium.org
BUG=100414
Review URL: http://codereview.chromium.org/
8507038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9953
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Thu, 10 Nov 2011 12:32:39 +0000 (12:32 +0000)]
Implement inline runtime function %_SetValueOf for Crankshaft.
It is frequently used inside our builtins and is implemented purely
by HIR instructions: a smi check, an instance-type check and an
in-object property store for storing to the value field.
Review URL: http://codereview.chromium.org/
8507016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9952
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Thu, 10 Nov 2011 11:26:27 +0000 (11:26 +0000)]
Prepare push to trunk. Now working on version 3.7.6.
R=erik.corry@gmail.com
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8465016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9949
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Thu, 10 Nov 2011 08:25:23 +0000 (08:25 +0000)]
MIPS: Fix the cctest QuietSignalingNaNs for MIPS.
MIPS uses a different NAN bit pattern to represent quiet or
signalling NANs than does x86 or ARM.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8510007
Patch from Gergely Kis <gergely@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9948
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Thu, 10 Nov 2011 08:07:39 +0000 (08:07 +0000)]
MIPS: Simplify StringCharCodeAt in non-crankshaft codegen.
Port r9936 (61034d).
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8506024
Patch from Gergely Kis <gergely@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9947
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Thu, 10 Nov 2011 08:01:23 +0000 (08:01 +0000)]
MIPS: Repeat last debugger command in the arm simulator when command input is empty.
Port r9937 (
c263a9e).
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8509015
Patch from Gergely Kis <gergely@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9946
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Wed, 9 Nov 2011 19:02:41 +0000 (19:02 +0000)]
Tighten handling of pthread_create errors on Linux.
The return value of pthread_create is now checked to be 0.
Tests on MIPS boards had some silent and hard to find timeouts and errors related to this.
This ensures a proper error message and shutdown if a thread could not be started.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8497041
Patch from Gergely Kis <gergely@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9945
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Wed, 9 Nov 2011 18:36:31 +0000 (18:36 +0000)]
MIPS: Enable the ll_prof profiler on MIPS.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8509006
Patch from Gergely Kis <gergely@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9944
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Wed, 9 Nov 2011 16:18:36 +0000 (16:18 +0000)]
Add MIPS support to top-level Makefile
For now, MIPS targets are not included in the "all", "release", "debug" and corresponding ".check" convenience targets, but they can be built explicitly (e.g. "mips.release.check").
Review URL: http://codereview.chromium.org/
8510014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9943
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 9 Nov 2011 15:44:13 +0000 (15:44 +0000)]
Get rid of CodeStub::TryGetCode.
This function is no longer needed. It was only used (overly defensively)
when fetching the stack check stub for on-stack replacement patching.
R=vegorov@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8510013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9942
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Wed, 9 Nov 2011 15:40:08 +0000 (15:40 +0000)]
Fix Win64 compilation problems introduced by r9932.
R=yangguo@chromium.org
Review URL: http://codereview.chromium.org/
8505019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9941
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Wed, 9 Nov 2011 15:31:54 +0000 (15:31 +0000)]
MIPS: Initial gyp infrastructure for MIPS architecture.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8505007
Patch from Gergely Kis <gergely@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9940
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 9 Nov 2011 15:06:10 +0000 (15:06 +0000)]
Fixing presubmit.
Review URL: http://codereview.chromium.org/
8510012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9939
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 9 Nov 2011 14:47:12 +0000 (14:47 +0000)]
Removing outdated assertions.
R=mstarzinger@chromium.org
Review URL: http://codereview.chromium.org/
8497045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9938
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 9 Nov 2011 14:37:04 +0000 (14:37 +0000)]
Repeat last debugger command in the arm simulator when command input is empty.
Review URL: http://codereview.chromium.org/
8506015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9937
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 9 Nov 2011 14:32:51 +0000 (14:32 +0000)]
Simplify StringCharCodeAt in non-crankshaft codegen.
TEST=test/mjsunit/string-slices.js
Review URL: http://codereview.chromium.org/
8510005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9936
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Wed, 9 Nov 2011 14:18:30 +0000 (14:18 +0000)]
Add getters for column number and script id to v8::Function
Review URL: http://codereview.chromium.org/
8508008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9935
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Wed, 9 Nov 2011 14:04:56 +0000 (14:04 +0000)]
Fix presubmit error introduced by r9932.
R=erik.corry@gmail.com
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8511010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9934
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 9 Nov 2011 13:54:26 +0000 (13:54 +0000)]
A small collection of cleanup in the parser and AST.
* Remove a couple of unused fields from the FunctionLiteral, ensure that all
the bools are packed.
* Rename SaveScope and LexicalScope in the parser.
* Use an enum to generate the numbers 0..N and the dependent count, rather
than static const ints. This is simpler to extend (coming in a future
change).
R=danno@chromium.org,keuchel@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8505012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9933
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Wed, 9 Nov 2011 13:48:43 +0000 (13:48 +0000)]
Ensure that promotion queue does not overlap with objects relocated to ToSpace.
R=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/
8477030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9932
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 9 Nov 2011 13:11:11 +0000 (13:11 +0000)]
Temporarily skip one Mozilla regression test.
R=erik.corry@gmail.com
BUG=v8:1817
TEST=mozilla/js1_5/Regress/regress-360969-05
Review URL: http://codereview.chromium.org/
8508006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9931
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Wed, 9 Nov 2011 12:47:15 +0000 (12:47 +0000)]
Made PropertyType handling even more explicit.
Replaced FIRST_PHANTOM_PROPERTY_TYPE by a predicate. Removed the (hopefully)
last default cases for switches on PropertyType. Benchmarks show that both
changes are performace-neutral.
Now every value of PropertyType should either be handled by an explicit case in
a switch or by an equality operator. Therefore, the C++ compiler should finally
be able to tell us which places to touch when changing PropertyType.
Review URL: http://codereview.chromium.org/
8506004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9930
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 9 Nov 2011 12:19:26 +0000 (12:19 +0000)]
MIPS: Make _CallFunction proxy-aware.
Port r9916 (
d2195670)
Original commit message:
Change calling convention for CallFunction stub. Some fixes regarding strict mode call traps.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8509004
Patch from Gergely Kis <gergely@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9929
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Wed, 9 Nov 2011 12:15:35 +0000 (12:15 +0000)]
A page created a number of ConsStrings that refer to one big string.
Each such string requires small amount of heap memory.
Heap snapshot generator copies all the strings into internal hash map for future use.
The each copy requires much more memory than original v8 string.
I made a workaround for this. The snapshot will copy only first 1024 symbols.
A simple drive-by fix was made for a performance problem in ToCString implementation.
BUG=v8:1816
TEST=none
Review URL: http://codereview.chromium.org/
8509003
Patch from Ilya Tikhonovsky <loislo@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9928
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 9 Nov 2011 12:01:45 +0000 (12:01 +0000)]
sync the OpenBSD code with Linux. Committing codereview.chromium.org/
8499016/ for Robert Nagy
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9927
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 9 Nov 2011 11:57:05 +0000 (11:57 +0000)]
MIPS: Enable the V8 profiler on MIPS.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8507008
Patch from Gergely Kis <gergely@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9926
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 9 Nov 2011 11:35:06 +0000 (11:35 +0000)]
Update v8.gyp to reflect deleted file.
TBR=svenpanne@chromium.org
Review URL: http://codereview.chromium.org/
8509007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9925
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 9 Nov 2011 11:32:54 +0000 (11:32 +0000)]
Remove ast-inl.h. This file is not necessary.
R=svenpanne@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8509005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9924
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 9 Nov 2011 11:04:41 +0000 (11:04 +0000)]
MIPS: Tighten the code for MacroAssembler::ThrowUncatchable.
Port r9909 (
56c8728aa).
Original commit message:
Test at the bottom in the unwind loop. Eliminate the possibility of a
useless move to the eax/rax/r0 register (currently impossible because
this function has two call sites). Do not explicitly zero the context
because we've already saved 0 as the context in the handler.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8507007
Patch from Gergely Kis <gergely@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9923
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 9 Nov 2011 09:51:54 +0000 (09:51 +0000)]
Fix size of store buffer to depend on pointer size.
This makes the store buffer size depend on the pointer size so that
store buffers can hold the same number of entries on all architectures.
The number of pages marked scan-on-scavenge should decrease on x64 and
performance of splay should drastically improve on x64.
R=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/
8498013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9922
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 8 Nov 2011 14:59:40 +0000 (14:59 +0000)]
Fixing issue 103259.
BUG=103259
TEST=regress-103259.js
Review URL: http://codereview.chromium.org/
8498011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9917
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Tue, 8 Nov 2011 14:39:37 +0000 (14:39 +0000)]
Make _CallFunction proxy-aware.
Change calling convention for CallFunction stub.
Some fixes regarding strict mode call traps.
R=kmillikin@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8318014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9916
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
keuchel@chromium.org [Tue, 8 Nov 2011 13:28:53 +0000 (13:28 +0000)]
Reapply r9870 "Remove some initialization checks based on source positions.".
This reverts r9896 "Revert r9870 due to browser-test failures." See below for
the diff from the previous version for the ia32 platform. The code for other
platforms has been changed accordingly.
TEST=mjsunit/compiler/lazy-const-lookup.js
diff --git a/src/ia32/full-codegen-ia32.cc b/src/ia32/full-codegen-ia32.cc
index
2cbf518..
1990f2f 100644
--- a/src/ia32/full-codegen-ia32.cc
+++ b/src/ia32/full-codegen-ia32.cc
@@ -1258,13 +1258,17 @@ void FullCodeGenerator::EmitVariableLoad(VariableProxy* proxy) {
// binding is initialized:
// function() { f(); let x = 1; function f() { x = 2; } }
//
- // Check that we always have valid source position.
- ASSERT(var->initializer_position() != RelocInfo::kNoPosition);
- ASSERT(proxy->position() != RelocInfo::kNoPosition);
- bool skip_init_check =
- var->mode() != CONST &&
- var->scope()->DeclarationScope() == scope()->DeclarationScope() &&
- var->initializer_position() < proxy->position();
+ bool skip_init_check;
+ if (var->scope()->DeclarationScope() != scope()->DeclarationScope()) {
+ skip_init_check = false;
+ } else {
+ // Check that we always have valid source position.
+ ASSERT(var->initializer_position() != RelocInfo::kNoPosition);
+ ASSERT(proxy->position() != RelocInfo::kNoPosition);
+ skip_init_check = var->mode() != CONST &&
+ var->initializer_position() < proxy->position();
+ }
+
if (!skip_init_check) {
// Let and const need a read barrier.
Label done;
Review URL: http://codereview.chromium.org/
8479034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9915
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 8 Nov 2011 13:16:56 +0000 (13:16 +0000)]
Fix removed return parameter count.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/
8496011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9914
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 8 Nov 2011 13:07:14 +0000 (13:07 +0000)]
Attempt to fix Windows x64 build.
R=jkummerow@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/
8495012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9913
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Tue, 8 Nov 2011 12:42:02 +0000 (12:42 +0000)]
Shrink the new space and uncommit marking deque on low memory notification.
BUG=v8:1669
TEST=cctest/test-heap/CollectingAllAvailableGarbageShrinksNewSpace
Review URL: http://codereview.chromium.org/
8065003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9912
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 8 Nov 2011 11:59:56 +0000 (11:59 +0000)]
Fix setting array length to be ES5 conform.
This also refactors the way we set the length of an arrays' backing
store to use the new elements accessor interface. The actual fix is in
DictionaryElementsAccessor::SetLengthWithoutNormalize() where we first
search for non-deletable elements according to ES5 section 15.4.5.2
specifications.
Snippet from the specification: Attempting to set the length property of
an Array object to a value that is numerically less than or equal to the
largest numeric property name of an existing array indexed non-deletable
property of the array will result in the length being set to a numeric
value that is one greater than that largest numeric property name.
R=danno@chromium.org
TEST=test262/15.4.4.??-7-b-16
Review URL: http://codereview.chromium.org/
8372064
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9911
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 8 Nov 2011 11:24:44 +0000 (11:24 +0000)]
Another 64->32 bit warning from the Windows compiler.
Review URL: http://codereview.chromium.org/
8503010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9910
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 8 Nov 2011 11:09:00 +0000 (11:09 +0000)]
Tighten the code for MacroAssembler::ThrowUncatchable.
Test at the bottom in the unwind loop. Eliminate the possibility of a
useless move to the eax/rax/r0 register (currently impossible because
this function has two call sites). Do not explicitly zero the context
because we've already saved 0 as the context in the handler.
R=fschneider@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8493008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9909
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 8 Nov 2011 10:57:34 +0000 (10:57 +0000)]
Try to fix compile error on Windows.
Review URL: http://codereview.chromium.org/
8497010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9908
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Tue, 8 Nov 2011 10:43:25 +0000 (10:43 +0000)]
Disentangle header dependecies a bit by moving PropertyDetails-related types into a separate header
This moves PropertyType and its related predicate out of v8globals.h, where it didn't belong.
Review URL: http://codereview.chromium.org/
8501006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9907
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 8 Nov 2011 10:28:58 +0000 (10:28 +0000)]
Clean up the marking speed heuristics. This reduces the
max heap size on 64 bit from ca. 300Mbytes to ca. 200Mbytes
on Ulan's splay variant. On 32 bit not much change.
Review URL: http://codereview.chromium.org/
8494012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9906
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 8 Nov 2011 10:18:25 +0000 (10:18 +0000)]
Improve dominator computation to avoid worst-case quadratic time.
In case of a degenerated CFG like in the example below processing
predecessors in the wrong order yields n^2 runtime.
do {
if (x) break;
if (x) break;
if (x) break;
if (x) break;
if (x) break;
if (x) break;
if (x) break;
if (x) break;
if (x) break;
if (x) break;
if (x) break;
// etc.
} while (false);
Reversing iteration order avoids this.
Review URL: http://codereview.chromium.org/
8502012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9905
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 8 Nov 2011 10:14:03 +0000 (10:14 +0000)]
Upstream Android V8 change.
Review URL: http://codereview.chromium.org/
8351073
Patch from Jing Zhao <jingzhao@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9904
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 8 Nov 2011 10:10:24 +0000 (10:10 +0000)]
Create stub and runtime function for x64 full-codegen array literal element initialization.
R=svenpanne@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/
8493024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9903
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 8 Nov 2011 09:56:09 +0000 (09:56 +0000)]
Revert r9901 to make tree green again.
There was a test failure on x64 mozilla tests.
TBR=ricow@chromium.org
Review URL: http://codereview.chromium.org/
8495011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9902
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 8 Nov 2011 09:08:33 +0000 (09:08 +0000)]
[hydrogen] optimize switch with string clauses
Hydrogen should optimize not only SMI clauses, but clauses with string literals
too.
Patch from fedor.indutny <fedor.indutny@gmail.com>.
R=vegorov@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8373029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9901
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Tue, 8 Nov 2011 08:42:13 +0000 (08:42 +0000)]
Refactoring only: Make the handling of PropertyType more explicit.
Do not rely on 'default' clauses or 'if's when analysing a PropertyType, because
this makes it hard to find the relevant places when a new type is added. Note
that the detection of "phantom property types" is left untouched, because this
might have a performance impact, especially for the GC (to be investigated).
This is a preliminary step for introducing a new kind of map transition.
Review URL: http://codereview.chromium.org/
8491016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9900
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Mon, 7 Nov 2011 14:00:02 +0000 (14:00 +0000)]
Revert accidental commit that messed up the incremental speed heuristics.
Review URL: http://codereview.chromium.org/
8467014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9899
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00