Commit Graph

7816 Commits

Author SHA1 Message Date
svenpanne@chromium.org
065cc14449 Use map transitions when defining accessor properties.
AccessorPairs can now contain map transitions, which is similar to our current
handling of CONSTANT_FUNCTION/CONSTANT_TRANSITION, but generalized to a pair for
holding info about the getter and the setter. This way we can achieve map
sharing for objects with accessor properties, which is a prerequisite for making
them fast via inlining. We fall back to the previous way of handling accessor
properties when sharing is not possible or we don't handle a special case.

Note: When an exisiting accessor property is redefined we could in principle
move the AccessorPair out of the descriptor into the object itself (again just
like the way we do something similar for CONSTANT_FUNCTION/CONSTANT_TRANSITION),
but this would require a new property kind for holding a pair of values. Perhaps
we can implement this later, but for now this hopefully rare case is handled
like before, losing map sharing and potentially creating more maps than strictly
necessary.

Review URL: https://chromiumcodereview.appspot.com/10238005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11496 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-03 12:41:40 +00:00
mstarzinger@chromium.org
d965561862 Fix register clobbering in LoadIC for interceptors.
This fixes a corner-case where the receiver register was clobbered by
LoadICs for interceptors and inlined followup code still relied on the
receiver to be intact in case of prototype changes.

R=vegorov@chromium.org
BUG=chromium:125988
TEST=cctest/test-api/Regress125988

Review URL: https://chromiumcodereview.appspot.com/10358010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11492 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-03 11:28:24 +00:00
mstarzinger@chromium.org
c810016e77 Implement clearing of CompareICs.
This allows CompareICs to be cleared during garbage collection to avoid
cross-context garbage retention through maps stored in CompareIC stubs
for the KNOWN_OBJECTS state.

R=vegorov@chromium.org
BUG=v8:2102

Review URL: https://chromiumcodereview.appspot.com/10263008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11491 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-03 10:54:17 +00:00
danno@chromium.org
7f5920dc94 Prepare push to trunk. Now working on version 3.11.0.
R=jkummerow@chromium.org

Review URL: https://chromiumcodereview.appspot.com/10354006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11488 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-03 09:02:57 +00:00
erik.corry@gmail.com
baf7ebd6da Fix assert triggered in fast/regex/pcre-test-4.html We were not filtering out
all the nodes that had non-ASCII characters.  That has been fixed, but because
of the protection against over-deep recursion when filtering it is wrong to
assert that all nodes were filtered.  This change therefore also makes sure we
can cope with non-filtered nodes by adding back some code removed in
https://chromiumcodereview.appspot.com/10174017/
Review URL: https://chromiumcodereview.appspot.com/10358008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11487 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-03 08:22:12 +00:00
danno@chromium.org
eb05917323 ARM: Ensure reload of elements pointer in StoreFastDoubleElement stub
R=mstarzinger@chromium.org
TEST=test/mjsunit/regress/regress-125515.js
BUG=chromium:125515

Review URL: https://chromiumcodereview.appspot.com/10298010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11483 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-03 07:09:17 +00:00
erik.corry@gmail.com
cb8df6e624 Sort functions when doing megamorphic dispatch/inlining so their
order does not depend on the hash seed.
Review URL: https://chromiumcodereview.appspot.com/10270032

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11482 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-02 13:07:31 +00:00
erik.corry@gmail.com
bd3c2c028f Enable code flushing even when objects were marked incrementally,
since the incremental visitor is setting the gc_age fields correctly.
This means the ResetSharedFunctionInfoCountersDuringIncrementalMarking
test passes even if it hits a marking stack overflow.
Review URL: https://chromiumcodereview.appspot.com/10258001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11481 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-02 12:58:40 +00:00
yangguo@chromium.org
ce8f4df9b2 Small patch to save one jump instruction and one label bind in JSEntryStub.
BUG=v8:2105
TEST=

Review URL: https://chromiumcodereview.appspot.com/10249003
Patch from Zhongping Wang <kewpie.w.zp@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11480 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-02 12:13:39 +00:00
danno@chromium.org
908e77a53a Ensure reload of elements pointer in StoreFastDoubleElement stub.
R=mstarzinger@chromium.org
TEST=test/mjsunit/regress/regress-125515.js
BUG=chromium:125515

Review URL: https://chromiumcodereview.appspot.com/10260014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11479 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-02 09:58:42 +00:00
mstarzinger@chromium.org
2c64592065 MIPS: Fix LFastLiteral to check boilerplate elements kind.
Port r11470 (621f96c0)

Original commit message:
Fix LFastLiteral to check boilerplate elements kind.

Adds a missing check that the elements kind of the boilerplate object
still has the expected elements kind, unoptimized code can transition
the boilerplate. Corner cases might cause the optimized code to be
reentered again.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10271018
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11474 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-02 07:51:03 +00:00
jkummerow@chromium.org
0133965d1b Fix mistakes in r11472
TBR=vegorov@chromium.org

Review URL: https://chromiumcodereview.appspot.com/10274008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11473 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-30 17:06:13 +00:00
jkummerow@chromium.org
f6dacfe83a Fixed corner cases in truncation behavior when storing to TypedArrays.
Also simplified ia32 KeyedStoreStubCompiler::GenerateStoreExternalArray a bit.

BUG=v8:2110
TEST=mjsunit/regress/regress-2110

Review URL: https://chromiumcodereview.appspot.com/10260011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11472 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-30 15:17:59 +00:00
vegorov@chromium.org
49989753ea Don't ignore return value of CommitCodePage in AllocateAlignedMemory.
Release the mapping as whole if commit failed to avoid leaking virtual address space.

R=mstarzinger@chromium.org
BUG=chromium:118625

Review URL: https://chromiumcodereview.appspot.com/10260012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11471 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-30 15:02:43 +00:00
mstarzinger@chromium.org
b54ca31fb2 Fix LFastLiteral to check boilerplate elements kind.
Adds a missing check that the elements kind of the boilerplate object
still has the expected elements kind, unoptimized code can transition
the boilerplate. Corner cases might cause the optimized code to be
reentered again.

R=danno@chromium.org
TEST=mjsunit/regress/regress-fast-literal-transition

Review URL: https://chromiumcodereview.appspot.com/10254006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11470 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-30 14:59:13 +00:00
ulan@chromium.org
bc46d6c4a4 Make sure idle notifications perform a round of incremental GCs after context disposal.
BUG=v8:2107

Review URL: https://chromiumcodereview.appspot.com/10209026

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11469 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-30 14:41:12 +00:00
svenpanne@chromium.org
6aceff1fa9 Fixed preparser for try statement. Tiny cleanup.
BUG=v8:2109
TBR=jkummerow@chromium.org

Review URL: https://chromiumcodereview.appspot.com/10270007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11468 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-30 13:04:08 +00:00
danno@chromium.org
a1fe6f3b58 Prepare push to trunk. Now working on version 3.10.8.
R=jkummerow@chromium.org

Review URL: https://chromiumcodereview.appspot.com/10268006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11465 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-30 12:32:11 +00:00
ulan@chromium.org
8768af54b6 Revert r11425 because of V8 benchmark performance regression.
Original CL: https://chromiumcodereview.appspot.com/10202007 "Re-enable optimization for hot functions that have optimization disabled due to many deopts."

Review URL: https://chromiumcodereview.appspot.com/10265008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11464 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-30 11:54:34 +00:00
jkummerow@chromium.org
347d28f282 One more register change missing from r11460.
Also re-enable disabled test (reverts r11461).

BUG=v8:2108
TEST=mozilla tests pass

Review URL: https://chromiumcodereview.appspot.com/10178039

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11463 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-30 08:53:48 +00:00
jkummerow@chromium.org
28bf8bfc4b ia32: Redefine register usage in LoadIC/KeyedLoadIC to match StoreIC and KeyedStoreIC
Review URL: https://chromiumcodereview.appspot.com/10254005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11460 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-27 13:05:45 +00:00
yangguo@chromium.org
03e8d039ca MIPS: Removed unused variables.
These were found by compilation errors with gcc 4.6.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10253004
Patch from Daniel Kalmar <kalmard@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11459 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-27 12:57:01 +00:00
peter.rybin@gmail.com
569eba39f5 Issue 2081: Expose function's (closure's) inner context in debugger.
This is against the correct branch (bleeding_edge).

Review URL: https://chromiumcodereview.appspot.com/10171003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11458 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-26 20:16:53 +00:00
mstarzinger@chromium.org
94e5a8dfcd Print compare-state with --print-code-stubs.
R=vegorov@chromium.org

Review URL: https://chromiumcodereview.appspot.com/10235006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11457 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-26 16:19:14 +00:00
erik.corry@gmail.com
292e007cf3 Remove more assumptions from debug tests. Even though a function
is optimized, does not mean all frames on the stack are optimized.
Also, when we ask for the list of scripts we may get more or less
depending on GC timing.  Also fixed a presubmit error and made
%GetOptimizationStatus a little more honest.
Review URL: https://chromiumcodereview.appspot.com/10234007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11455 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-26 13:44:18 +00:00
fschneider@chromium.org
f46906d7a8 Reduce size of LIR instruction by one word and remove dead code.
Until now we always recorded two deoptimization environments for instructions
that are marked as calls. We actually don't need two for all LIR
instructions except one (LInstanceOfKnownGlobal) where there is a lazy
deoptimization point in deferred code.

This change remove on of them and uses one virtual function instead
to make LInstanceOfKnownGlobal work as before.

Additionally, this change removes an unused predicate save_doubles_ from LIR
instructions and removes some helper functions that are used only in one place.
Review URL: https://chromiumcodereview.appspot.com/10035021

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11454 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-26 12:43:00 +00:00
yangguo@chromium.org
657ffd8815 Use simple concat of substrings instead of ReplaceStringBuilder for non-global replacements.
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10134057

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11448 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-26 11:43:59 +00:00
ulan@chromium.org
9e55943b64 Add missing literal pool guards.
BUG=V8:2095
TEST=see issue

Review URL: https://chromiumcodereview.appspot.com/10233006
Patch from Rodolph Perfetta <rodolph.perfetta@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11447 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-26 11:14:24 +00:00
erik.corry@gmail.com
7783ba5d81 Reenable some heap verification and fix test to keep
heap in a consistent state.
Review URL: https://chromiumcodereview.appspot.com/10227002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11446 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-26 09:11:45 +00:00
erik.corry@gmail.com
d511b69e86 Regexp: Remove nodes from the regexp that cannot match because
they contain non-ASCII characters and the input string is ASCII.
Remove unused Clone() method.
Review URL: https://chromiumcodereview.appspot.com/10174017

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11445 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-26 09:11:19 +00:00
danno@chromium.org
4b920a20ab Reduce expense of TraceGVN when --trace-gvn is off
R=mstarzinger@chromium.org

Review URL: https://chromiumcodereview.appspot.com/10233004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11444 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-26 09:07:39 +00:00
yangguo@chromium.org
86396a1cba Prepare push to trunk. Now working on version 3.10.7.
R=jkummerow@chromium.org
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10233003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11441 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-26 08:19:17 +00:00
yangguo@chromium.org
c5b9783edb Remove unused variable in src/platform-solaris.cc.
Based on a patch contributed by Heinz Gies <heinz@licenser.net>

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10231004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11440 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-26 07:45:29 +00:00
peter.rybin@gmail.com
53eb3b02e2 Add "step in recommended" to LiveEdit response object.
Review URL: https://chromiumcodereview.appspot.com/10185006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11439 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-25 23:06:30 +00:00
danno@chromium.org
b3f6c0b237 Fix 64-bit windows size_t assert
R=mstarzinger@chromium.org
TEST=Windows 64 bit build goes green

Review URL: https://chromiumcodereview.appspot.com/10221006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11438 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-25 15:41:57 +00:00
mmassi@chromium.org
93113da5a2 Eliminate redundant array bound checks (checks already performed earlier in the DT).
As a special case, for checks on index expressions with the form (expr + constant) if a smaller constant is checked later in the DT also eliminate the check.
Finally, if a larger constant is checked later in the same BB do the more general check (larger constant) earlier instead of the less general one.
This will not cause useless deoptimizations because, since we are in the same BB, all the checks would have been executed anyway.
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10032029

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11437 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-25 14:32:27 +00:00
mstarzinger@chromium.org
21fc0fef6a Fix deopted construct stub frame to contain code object.
R=danno@chromium.org
BUG=chromium:124594
TEST=mjsunit/regress/regress-124594

Review URL: https://chromiumcodereview.appspot.com/10155024

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11436 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-25 13:22:04 +00:00
erik.corry@gmail.com
810693a737 Temporarily disable some heap verification while test failures are
investigated.
Review URL: https://chromiumcodereview.appspot.com/10221004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11435 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-25 13:12:08 +00:00
danno@chromium.org
a1a4a1cf2f Use safe string utilities to fix Windows build error.
R=mstarzinger@chromium.org
TEST=waterfall goes green

Review URL: https://chromiumcodereview.appspot.com/10173023

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11434 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-25 13:12:00 +00:00
danno@chromium.org
39fa51d452 Improve --trace-gvn debug output
R=mstarzinger@chromium.org

Review URL: https://chromiumcodereview.appspot.com/10203010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11433 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-25 12:04:23 +00:00
erik.corry@gmail.com
13c4191d62 Fix release build. Add comment accidentally omitted from
preceeding change (stress-compaction).
Review URL: https://chromiumcodereview.appspot.com/10161027

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11432 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-25 11:49:31 +00:00
erik.corry@gmail.com
f6f954484c Make --stress-compaction more stressful.
Review URL: https://chromiumcodereview.appspot.com/10141007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11431 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-25 11:35:32 +00:00
alexeif@chromium.org
f7f81c4651 Add field names to Code, ConsString, and JSGlobalPropertyCell in heap snapshot.
Review URL: https://chromiumcodereview.appspot.com/10217001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11430 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-25 10:20:38 +00:00
mstarzinger@chromium.org
6aeed46180 Make String::Empty inlineable.
R=svenpanne@chromium.org
TEST=cctest/test-api/StringEmpty

Review URL: https://chromiumcodereview.appspot.com/10199019

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11429 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-25 08:45:45 +00:00
fschneider@chromium.org
e07be0b068 Attempt to fix Win32 build by avoiding a compiler intrinsic.
TBR=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10198020

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11428 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-24 16:37:43 +00:00
fschneider@chromium.org
6e713a269d Optimise Math.floor(x/y) to use integer division for specific divisor.
Landing for Rodolph Perfetta <rodolph.perfetta@gmail.com>. 

Original CL: http://codereview.chromium.org/9638018/
Review URL: https://chromiumcodereview.appspot.com/10197010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11427 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-24 15:59:07 +00:00
mstarzinger@chromium.org
c25a92d76b Make Isolate::GetData and Isolate::SetData inlineable.
R=svenpanne@chromium.org
TEST=cctest/test-api/IsolateEmbedderData

Review URL: https://chromiumcodereview.appspot.com/10196013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11426 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-24 14:37:53 +00:00
ulan@chromium.org
a139e38c0b Re-enable optimization for hot functions that have optimization disabled due to many deopts.
Use exponential backoff in order to avoid getting into optimization-deoptimization cycle.

BUG=v8:2040,121196

Review URL: https://chromiumcodereview.appspot.com/10202007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11425 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-24 14:05:07 +00:00
alexeif@chromium.org
20e6446bd2 Refactoring of heap profiler: split ExtractReferences into several functions.
Review URL: https://chromiumcodereview.appspot.com/10198011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11424 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-24 12:38:58 +00:00
erik.corry@gmail.com
83cbc638dc Remove some unused stuff from regexp implementation.
Review URL: https://chromiumcodereview.appspot.com/10205010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11423 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-24 09:34:13 +00:00
erik.corry@gmail.com
c436c70f8b Fix some bugs in accessing details of the lastest regexp
match.  Sometimes were were not updating it when we should
and sometimes we were leaving the lastMatchInfoOverride in
place when we should be using the updated regular last match
info.  Small optimization for zero length match in
String.prototype.replace.
Review URL: https://chromiumcodereview.appspot.com/10184004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11422 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-23 18:56:07 +00:00
fschneider@chromium.org
09657d94eb Revert r11420 because Win32 compilation was broken.
TBR=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10190007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11421 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-23 18:12:36 +00:00
fschneider@chromium.org
2957c20926 optimise Math.floor(x/y) to use integer divisiion for specific divisor.
BUG=none
TEST=mjsunit/math-floor-of-div.js

Landing for Rodolph Perfetta <rodolph.perfetta@gmail.com>.
Review URL: https://chromiumcodereview.appspot.com/9638018

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11420 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-23 17:44:21 +00:00
mstarzinger@chromium.org
7b459a27d7 Fix compile failure on Mac in r11417.
R=jkummerow@chromium.org

Review URL: https://chromiumcodereview.appspot.com/10187003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11419 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-23 16:42:34 +00:00
alexeif@chromium.org
ba6500b018 Show names of the context fields in heap snapshot.
Review URL: https://chromiumcodereview.appspot.com/10183005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11418 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-23 16:10:35 +00:00
mstarzinger@chromium.org
5113cc1bbc Make static API getters inlineable again.
This relands r11376 with minor fixes for Windows where offsets are
slightly different from Linux for unaligned fields.

R=svenpanne@chromium.org
TEST=cctest/test-api/StaticGetters

Review URL: https://chromiumcodereview.appspot.com/10176004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11417 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-23 15:09:59 +00:00
mstarzinger@chromium.org
e3be59512a Fix source property of empty RegExp objects.
R=rossberg@chromium.org
BUG=v8:1982
TEST=test262/15.10.4.1-5

Review URL: https://chromiumcodereview.appspot.com/10134010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11416 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-23 13:59:43 +00:00
erikcorry
7d4b983f55 Remove unused IsNan function
Review URL: http://codereview.chromium.org/10167008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11415 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-23 13:44:06 +00:00
mstarzinger@chromium.org
709aad075e Prepare push to trunk. Now working on version 3.10.6.
R=jkummerow@chromium.org

Review URL: https://chromiumcodereview.appspot.com/10187001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11412 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-23 12:54:47 +00:00
alexeif@chromium.org
e0e2c442a4 Exclude filler maps from object properties in heap snapshot.
Review URL: https://chromiumcodereview.appspot.com/10167013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11411 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-23 10:12:29 +00:00
alexeif@chromium.org
5596ef3b67 Add names to GlobalObject inline properties in heap snapshot.
Review URL: https://chromiumcodereview.appspot.com/10166007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11410 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-23 10:08:07 +00:00
peter.rybin@gmail.com
3d45d48fb2 Issue 2089 Expose value wrapper's inner values
Review URL: https://chromiumcodereview.appspot.com/10162006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11407 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-20 17:08:01 +00:00
yangguo@chromium.org
717dbba694 Disabling stepping into callback function of String.replace.
This is being done due to performance concerns.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10134006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11406 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-20 15:20:52 +00:00
erikcorry
9fda0c19c3 MIPS: Do the qNaN fixup at de-serialization time. This is a commit of https://chromiumcodereview.appspot.com/10093007/ for Paul Lind
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11405 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-20 14:12:49 +00:00
alexeif@chromium.org
d9f797b404 Eliminate internal and hidden links to oddballs and other non-essential objects in heap snapshot.
Review URL: https://chromiumcodereview.appspot.com/10162005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11404 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-20 14:03:06 +00:00
alexeif@chromium.org
d97aa5f51f Add missing named fields to SharedFunctionInfo in heap snapshot.
Review URL: https://chromiumcodereview.appspot.com/10169007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11403 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-20 13:57:13 +00:00
rossberg@chromium.org
c8aea7a184 Put new global var semantics behind a flag until WebKit tests are cleaned up.
R=mstarzinger@chromium.org
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10163003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11402 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-20 13:35:09 +00:00
mstarzinger@chromium.org
29f0463536 MIPS: Port function call type-feedback cells to x64 and ARM.
Port r11391 (789b1078)

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10124013
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11401 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-20 12:51:08 +00:00
fschneider@chromium.org
91ccfce2d9 Remove dead code from our JS builtin-code in math.js.
$random is never used within our JS builtin code.
Review URL: https://chromiumcodereview.appspot.com/10166003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11400 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-20 11:24:16 +00:00
yangguo@chromium.org
f516037a6f Enable stepping into callback passed to builtins (e.g. Array.forEach).
BUG=109564
TEST=

Review URL: https://chromiumcodereview.appspot.com/10078014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11399 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-20 11:06:12 +00:00
svenpanne@chromium.org
cac8bbff6e Replaced the --limit-inling flag by three separate flags and bumped hard limits.
This change makes experiments with inlining limits much easier. Note that the
default values for the limits keep their old values for now. Renamed things a
bit for more consistency.

Review URL: https://chromiumcodereview.appspot.com/10162001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11397 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-20 10:42:12 +00:00
fschneider@chromium.org
3760893edd Fix bug in forced-deletion of globals.
When inling functions across contexts in optimized code and using
ForceDelete from the API to delete a DontDelete global property we
can end up returning the hole value instead of throwing a ReferenceError
as expected after accessing a deleted global variable.

BUG=v8:2092
TEST=test/cctest/test-api/InlinedFunctionAcrossContexts
Review URL: https://chromiumcodereview.appspot.com/10035060

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11396 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-20 10:21:08 +00:00
svenpanne@chromium.org
a0d67fd9b0 Flush PC-to-code cache before doing verification.
Review URL: https://chromiumcodereview.appspot.com/10144002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11395 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-20 09:37:06 +00:00
fschneider@chromium.org
cadf058618 Finish refactoring done for ia32 for the other platforms.
Make non-templatized versions of LIR printing functions.

This avoid duplicating the code for each template instance.

BUG=v8:1803
Review URL: https://chromiumcodereview.appspot.com/10123011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11394 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-19 16:49:09 +00:00
alexeif@chromium.org
72a9e445e5 Show names for the strong roots in heap snapshot.
Review URL: https://chromiumcodereview.appspot.com/10128006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11392 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-19 15:58:42 +00:00
mstarzinger@chromium.org
60863e5cd6 Port function call type-feedback cells to x64 and ARM.
R=fschneider@chromium.org
BUG=v8:1857,v8:2079

Review URL: https://chromiumcodereview.appspot.com/10124008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11391 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-19 14:17:12 +00:00
fschneider@chromium.org
0556f87851 Optimize ~~(expr) in optimized code.
~~ is commonly used to truncate a value to int32 (ToInt32).

This change avoid actually emitting the bitwise operations, and
just truncates the subexpression of ~~.

BUG=v8:2037
TEST=test/mjsunit/compiler/optimize-bitnot.js
Review URL: https://chromiumcodereview.appspot.com/10123007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11390 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-19 13:24:15 +00:00
alexeif@chromium.org
988ea77bed Hide internal references pointing to the empty array in heap profiler.
Review URL: https://chromiumcodereview.appspot.com/10021052

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11389 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-19 12:16:37 +00:00
svenpanne@chromium.org
dfd54da6b1 Prepare push to trunk. Now working on version 3.10.5.
R=jkummerow@chromium.org

Review URL: https://chromiumcodereview.appspot.com/10070008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11386 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-19 11:59:52 +00:00
mstarzinger@chromium.org
7d22d73ebf Fix issues when stressing compaction with WeakMaps.
1) While marking the backing hash table of a WeakMap we also need to
   record the slot because it might be on an evacuation candidate.
2) With incremental marking one backing hash table might be marked more
   than once because the WeakMap might have gone through a white to gray
   transition.
3) The corner case when the allocation of the backing hash table itself
   causes a GC, leads to a WeakMap with an undefined table field, so we
   still need to handle this case correctly.

R=vegorov@chromium.org
TEST=mjsunit/harmony/proxies-example-membrane --stress-compaction

Review URL: https://chromiumcodereview.appspot.com/9985010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11385 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-19 10:32:38 +00:00
svenpanne@chromium.org
f5caf3a77b Fix mod on ia32 without SSE2.
Review URL: https://chromiumcodereview.appspot.com/10128004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11383 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-19 10:28:17 +00:00
mstarzinger@chromium.org
57739100f3 Fix missing GVN flag for new-space promotion.
R=vegorov@chromium.org
BUG=chromium:123919
TEST=mjsunit/regress/regress-123919

Review URL: https://chromiumcodereview.appspot.com/10119016

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11382 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-19 07:49:11 +00:00
svenpanne@chromium.org
73814e7500 Fixed type transitions for mod on ia32.
Previously we got stuck in the int32 state, because this handled everything
without a type transition. Note that other platforms do not have this bug.

Review URL: https://chromiumcodereview.appspot.com/10083044

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11381 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-19 07:19:33 +00:00
mstarzinger@chromium.org
0f590eb45f Revert r11376 and r11379 due to compile failures on Windows.
TBR=jkummerow@chromium.org

Review URL: https://chromiumcodereview.appspot.com/10116030

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11380 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-18 17:49:53 +00:00
alexeif@chromium.org
70918cb8a9 Always show link to prototype transitions in heap snapshot.
... otherwise it is shown as a hidden reference with a meaningless name.

Review URL: https://chromiumcodereview.appspot.com/10041028

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11378 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-18 17:02:57 +00:00
mstarzinger@chromium.org
3b3e701a27 Make static API getters inlineable.
R=danno@chromium.org
TEST=cctest/test-api/StaticGetters[AfterDeath]

Review URL: https://chromiumcodereview.appspot.com/10116024

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11376 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-18 16:07:08 +00:00
mstarzinger@chromium.org
a13e41f328 Make Value::IsUndefined and Value::IsNull inlineable.
R=danno@chromium.org
TEST=cctest/test-api

Review URL: https://chromiumcodereview.appspot.com/10091035

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11375 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-18 15:51:34 +00:00
rossberg@chromium.org
977b602727 MIPS: Implement rudimentary module linking.
Port r11336 (6dd4e844)

Original commit message:

Implement rudimentary module linking.

Constructs the (generally cyclic) graph of module instance objects
and populates their exports. Any exports other than nested modules
are currently set to 'undefined' (but already present as properties).

Details:
- Added new type JSModule for instance objects: a JSObject carrying a context.
- Statically allocate instance objects for all module literals (in parser 8-}).
- Extend interfaces to record and unify concrete instance objects,
and to support iteration over members.
- Introduce new runtime function for pushing module contexts.
- Generate code for allocating, initializing, and setting module contexts,
and for populating instance objects from module literals.
Currently, all non-module exports are still initialized with 'undefined'.
- Module aliases are resolved statically, so no special code is required.
- Make sure that code containing module constructs is never optimized
(macrofy AST node construction flag setting while we're at it).
- Add test case checking linkage.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10035028

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11374 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-18 15:48:01 +00:00
rossberg@chromium.org
1aa16d8689 MIPS: Refactor code generation for global declarations.
Port r11332 (0e6df8b6)

Original commit message:
Refactor code generation for global declarations.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10041029

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11373 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-18 15:46:08 +00:00
rossberg@chromium.org
42b77f3156 MIPS: Refactoring of code generation for declarations, in preparation for modules.
Port r11331 (bd7843a0)

Original commit message:
Refactoring of code generation for declarations, in preparation for modules.

Do proper dispatch on declaration type instead of mingling together
different code generation paths. Once we add more declaration forms,
this is more scalable.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10119017

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11372 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-18 15:43:29 +00:00
svenpanne@chromium.org
18af012b74 Make functions with switch statements inlinable.
Review URL: https://chromiumcodereview.appspot.com/10083038

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11370 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-18 11:58:13 +00:00
yangguo@chromium.org
7f30cf119d MIPS: Make SubStringStub more robust with unsafe arguments.
Port r11349 (5b381a).

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10107025
Patch from Daniel Kalmar <kalmard@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11367 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-18 11:17:04 +00:00
vegorov@chromium.org
bf2bc0b1db MIPS: Skip canonicalization check in LStoreKeyedFastDoubleElement when it is not needed
Port r11278 (e5dc7ebd).

Original commit message:

Skip canonicalization check in LStoreKeyedFastDoubleElement when it is not needed:

- if value is a result of integer32 to double conversion (can't be NaN);

- if value was loaded from fast double backing store (already canonicalized).

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10071004
Patch from Daniel Kalmar <kalmard@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11366 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-18 10:42:30 +00:00
vegorov@chromium.org
b635c90792 MIPS: fix-up after r11344
Removed a constant now duplicated by r11344 (7c41cf72).
This fixes compilation on MIPS (with the other submitted patches applied).

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10108023
Patch from Daniel Kalmar <kalmard@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11365 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-18 10:39:30 +00:00
vegorov@chromium.org
fd9bd722bc Simplify invocation sequence at monomorphic function invocation sites.
Provide known target as a hint to HInvokeFunction instruction so that it can statically determine if arguments adaptation is required.

R=fschneider@chromium.org
BUG=v8:2079

Review URL: https://chromiumcodereview.appspot.com/10116021

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11364 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-18 09:38:45 +00:00
yangguo@chromium.org
5713859c99 Fix typo in power_double_double
Contributed by net147@gmail.com

BUGS=
TEST=mjsunit/math-pow,mjsunit/math-sqrt

Review URL: https://chromiumcodereview.appspot.com/10116001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11363 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-18 07:02:21 +00:00
yangguo@chromium.org
661edb44de Fix incorrect Math.pow() calculations on MinGW-w64.
Original patch by Jonathan Liu <net147@gmail.com> https://chromiumcodereview.appspot.com/10026017/

BUG=
TEST=mjsunit/math-pow,mjsunit/math-sqrt

Review URL: https://chromiumcodereview.appspot.com/10108022

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11362 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-17 16:15:20 +00:00
jkummerow@chromium.org
6339bcb331 Fix typo in lazy-instance.h.
There was no build error since we never used LazyDynamicInstance's default parameter.

BUG=v8:2091

Review URL: https://chromiumcodereview.appspot.com/10103032
Patch from Philippe Liard <pliard@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11359 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-17 16:02:36 +00:00
alexeif@chromium.org
2ec3e5943b Remove Debug object from the user roots in heap profiler.
Review URL: https://chromiumcodereview.appspot.com/10096016

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11358 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-17 15:57:35 +00:00
yangguo@chromium.org
bf630e2371 Fix MinGW-w64 GCC 4.7 compilation
Contributed by net147@gmail.com

BUGS=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10019012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11357 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-17 14:53:06 +00:00
yangguo@chromium.org
ac72f5c441 Use ldexp instead of pow for more accuracy.
Original patch by net147@gmail.com: https://chromiumcodereview.appspot.com/10026011/

BUG=
TEST=cctest/test-conversions/Octal

Review URL: https://chromiumcodereview.appspot.com/10103030

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11356 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-17 13:16:25 +00:00
loislo@chromium.org
b2024c531c Push heap stats as HeapStatsUpdate struct instead of raw array of uint32_t values.
We are pushing stats data as a raw array of uint32_t values at the moment.
It makes tricky the process of updating the API between v8 and WebKit.

BUG=none
TEST=HeapSnapshotObjectsStats

Review URL: https://chromiumcodereview.appspot.com/10110001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11355 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-17 13:10:17 +00:00
erik.corry@gmail.com
78e4e76cc4 Prepare push to trunk. We are now working on 3.10.4.
Review URL: https://chromiumcodereview.appspot.com/10107013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11352 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-17 11:21:16 +00:00
loislo@chromium.org
23602bb8b2 Embed entries_ list into HeapObjectsMap by value.
Previously it was owned by pointer but now it is not necessary and we can own it by value.

BUG=none
TEST=none

Review URL: https://chromiumcodereview.appspot.com/9969197

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11351 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-17 11:14:14 +00:00
mstarzinger@chromium.org
47d07b8a7b Fix fast array literals to ignore prototype chain.
This makes sure that boilerplate objects for array literals with
non-constant elements (which will contain the hole at non-constant
positions) will not cause prototype chain lookups when generating
optimized code.

R=erik.corry@gmail.com
BUG=chromium:123512
TEST=mjsunit/regress/regress-123512

Review URL: https://chromiumcodereview.appspot.com/10105025

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11350 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-17 11:12:37 +00:00
yangguo@chromium.org
47c4a5b4ef Make SubStringStub more robust wrt unsafe arguments.
BUG=
TEST=test-strings/RobustSubStringStub

Review URL: https://chromiumcodereview.appspot.com/9969196

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11349 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-17 10:49:15 +00:00
kmillikin@chromium.org
174967d867 Fix a bug in heap profile tracing of closures.
The heap profile tracers assumed that a closure always closed over a
function context.  This is obviously not true (e.g., function expressions
nested inside catch or with).  This assumption could lead to using a
function's scope info to interpret a catch or with context.

R=vegorov@chromium.org
BUG=v8:2078
TEST=

Review URL: https://chromiumcodereview.appspot.com/9969198

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11348 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-17 10:42:17 +00:00
vegorov@chromium.org
870eba4c65 Process weak references between optimized JSFunctions on scavenges.
R=mstarzinger@chromium.org

Review URL: https://chromiumcodereview.appspot.com/10091027

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11347 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-17 10:37:41 +00:00
yurys@chromium.org
4f5d3361a2 Remove extra whitespace added in r11339
TBR=mnaganov
Review URL: https://chromiumcodereview.appspot.com/9956167

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11346 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-17 08:59:43 +00:00
erik.corry@gmail.com
6a1b70ccbc Regexp: Unify the lookahead code for the BoyerMoore-like skipping
and the lookahead code for simplifying \b.  Also cache lookahead
results on the nodes, fix a memory leak and remove some character
class code we are no longer using.
Review URL: https://chromiumcodereview.appspot.com/9961009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11345 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-17 08:06:53 +00:00
vegorov@chromium.org
2d757afab6 Try aligning unboxed double array backing store in allocation or scavenge promotion.
This CL does not align them during compaction or mark-sweep promotion because we are not using specialized evacuation visitors.

R=erik.corry@gmail.com

Review URL: https://chromiumcodereview.appspot.com/10001012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11344 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-17 07:52:39 +00:00
svenpanne@chromium.org
999fb73bc6 Tiny DescriptorArray cleanup.
Removed 2 useless functions, nuked a simple helper function with a single caller, and simplified things by changing a signature.

Review URL: https://chromiumcodereview.appspot.com/10066046

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11343 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-17 07:16:19 +00:00
mstarzinger@chromium.org
f7cd1e41f8 Fix illegal escape-sequences to throw syntax errors.
R=erik.corry@gmail.com
TEST=test262/S7.8.4_A6.*,test262/S7.8.4_A7.*

Review URL: https://chromiumcodereview.appspot.com/9490006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11340 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-16 15:54:02 +00:00
yurys@chromium.org
1ce7d5d0d4 Add method for resolving SnapshotObjectId by given object
Review URL: https://chromiumcodereview.appspot.com/10094011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11339 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-16 15:36:19 +00:00
rossberg@chromium.org
ab26fb6b21 Implement rudimentary module linking.
Constructs the (generally cyclic) graph of module instance objects
and populates their exports. Any exports other than nested modules
are currently set to 'undefined' (but already present as properties).

Details:
- Added new type JSModule for instance objects: a JSObject carrying a context.
- Statically allocate instance objects for all module literals (in parser 8-}).
- Extend interfaces to record and unify concrete instance objects,
  and to support iteration over members.
- Introduce new runtime function for pushing module contexts.
- Generate code for allocating, initializing, and setting module contexts,
  and for populating instance objects from module literals.
  Currently, all non-module exports are still initialized with 'undefined'.
- Module aliases are resolved statically, so no special code is required.
- Make sure that code containing module constructs is never optimized
  (macrofy AST node construction flag setting while we're at it).
- Add test case checking linkage.

Baseline: http://codereview.chromium.org/9722043/

R=svenpanne@chromium.org,mstarzinger@chromium.org
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9844002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11336 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-16 14:43:27 +00:00
alexeif@chromium.org
f4c15c4ec2 External references should not affect dominance relation.
Separate objects into two groups: reachable from a window (user),
and unreachable (system). Then do not take into account links
that come from system group to the user group when calculating
dominance relation.

Review URL: https://chromiumcodereview.appspot.com/10086006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11335 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-16 14:31:13 +00:00
rossberg@chromium.org
62945585fd Implement ES5 erratum: global declarations shadow inherited properties.
I also discovered that our treatment of const declarations is inconsistent
when inside a global eval under 'with' (i.e., when created by
DeclareContextSlots). That is,

  var x;
  eval("const x = 9")

and

  var x;
  eval("with({}) const x = 9")

differ (the former assigns 9, the latter throws). This appears to be an
oversight from earlier changes to our const semantics (the latter shouldn't
throw either). Fixing this is a separate issue, though (and one that doesn't
seem quite worthwhile).

R=mstarzinger@chromium.org
BUG=v8:1991,80591
TEST=

Review URL: https://chromiumcodereview.appspot.com/10067010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11333 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-16 13:20:50 +00:00
rossberg@chromium.org
ed68932861 Refactor code generation for global declarations.
(Baseline is http://codereview.chromium.org/9704054/)

R=fschneider@chromium.org
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9722043

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11332 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-16 12:26:16 +00:00
rossberg@chromium.org
43a52c4cee Refactoring of code generation for declarations, in preparation for modules.
Do proper dispatch on declaration type instead of mingling together
different code generation paths. Once we add more declaration forms,
this is more scalable.

In separate steps, I'd like to (1) clean up the logic for DeclareGlobal,
and (2) try to reduce the special handling of the name function var if
possible.

R=fschneider@chromium.org
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9704054

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11331 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-16 11:48:20 +00:00
svenpanne@chromium.org
ef29accd6f Improved printing of HBitwise instructions.
Review URL: https://chromiumcodereview.appspot.com/9972007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11330 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-16 11:38:01 +00:00
mstarzinger@chromium.org
875a57e658 Add PushAddress(ExternalReference) for X64.
R=erik.corry@gmail.com

Review URL: https://chromiumcodereview.appspot.com/10081009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11329 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-16 10:53:26 +00:00
ulan@chromium.org
44516ce7d7 Provide structures from <ucontext.h> for Android.
Patch from Ben Murdoch <benm@chromium.org>.

Review URL: https://chromiumcodereview.appspot.com/10001005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11328 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-16 10:42:39 +00:00
loislo@chromium.org
17632e447c Add size metric into Heap Stats.
The stats data have only count field at the moment.
A constantly growing array of integers also can be a reason of a leak.
Ans we have to have a way to detect such kind of leaks.

Drive by fix:
FindObject and AddEntry were replaced with FindEntry/FindOrAddEntry pair.

BUG=none
TEST=HeapSnapshotObjectsStats

Review URL: https://chromiumcodereview.appspot.com/10086004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11327 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-16 09:44:42 +00:00
ulan@chromium.org
267879e92c Fix fast API call for MinGW-w64
MinGW-w64 uses the rcx register for the first argument. Unlike MSVC, it does not require preparing a slot for the result handle on the stack and putting a pointer to it in the rcx register.

BUGS=v8:2026
TEST=cctest/test-api

Review URL: https://chromiumcodereview.appspot.com/9959050
Patch from Jonathan Liu <net147@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11325 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-16 09:22:12 +00:00
mstarzinger@chromium.org
a918cd92af Fix handling of this in Array.prototype.concat method.
R=jkummerow@chromium.org
BUG=v8:2080
TEST=test262/15.4.4.4-5-c-i-1

Review URL: https://chromiumcodereview.appspot.com/10095006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11323 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-16 08:12:12 +00:00
svenpanne@chromium.org
b1e95913a0 Valgrind cleanliness, part 6: Introduce OS::TearDown, cleaning up 2 mutexes.
Review URL: https://chromiumcodereview.appspot.com/10084003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11320 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-13 14:08:31 +00:00
mstarzinger@chromium.org
f07b21337b MIPS: Add isolate accessor to AccessorInfo and Arguments.
Port r11306 (36b58f7).

Original commit message:

This passes the isolate through to API callback functions so that it is
available through AccessorInfo and Arguments. This allows bindings to
avoid unnecessary TLS lookups to retrieve the current isolate.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10083001
Patch from Daniel Kalmar <kalmard@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11319 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-13 13:43:19 +00:00
fschneider@chromium.org
037785baaa MIPS: Improve performance of keyed loads/stores which have a HeapNumber index.
Port r11282 (bd2ab07).

Patch by Daniel Kalmar.

Original commit message:

Some GWT compiled code results in array access that has a heap number (e.g. -0)
as an index. Until now this would result in a generic IC.

For example:

a[-0] === a[0] or

a[0.25 * 4] === a[1]

This change detects heap numbers that are representable as a smi
and converts them. As a result we can still use the fast keyed monomorphic
ICs. Optimized code already handles keyed access with a double-key efficiently.

As a result the frame rate on the reported benchmark improves by roughly 2x.

BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10068012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11318 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-13 13:04:51 +00:00
alexeif@chromium.org
48777a7f5b Split nodes and edges into separate arrays in heap snapshot serialization.
Review URL: https://chromiumcodereview.appspot.com/10037004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11315 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-13 12:50:48 +00:00
erik.corry@gmail.com
5d164e4c7c MIPS: Implement CheckNotCharacterAfterMinusAnd. This is a commit of http://codereview.chromium.org/9721011/ for Daniel Kalmar
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11314 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-13 11:47:31 +00:00
mstarzinger@chromium.org
0803c4dfbf Fix r11306 to use external references on X64.
R=jkummerow@chromium.org

Review URL: https://chromiumcodereview.appspot.com/10079004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11313 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-13 11:25:13 +00:00
erik.corry@gmail.com
b32ff09a49 Regexp.rightContext was still not quite right. Fixed and
added more tests.
Review URL: https://chromiumcodereview.appspot.com/10008104

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11312 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-13 11:03:22 +00:00
mstarzinger@chromium.org
20777bf0c5 Fix several ancient presubmit failures.
R=jkummerow@chromium.org

Review URL: https://chromiumcodereview.appspot.com/10038046

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11308 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-13 09:58:29 +00:00
jkummerow@chromium.org
688e795314 Prepare push to trunk. Now working on version 3.10.3.
R=danno@chromium.org

Review URL: https://chromiumcodereview.appspot.com/10071039

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11307 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-13 09:44:33 +00:00
mstarzinger@chromium.org
2f732c2728 Add isolate accessor to AccessorInfo and Arguments.
This passes the isolate through to API callback functions so that it is
available through AccessorInfo and Arguments. This allows bindings to
avoid unnecessary TLS lookups to retrieve the current isolate.

R=danno@chromium.org
TEST=cctest/test-api,cctest/test-accessors

Review URL: https://chromiumcodereview.appspot.com/10069050

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11306 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-13 09:38:00 +00:00
svenpanne@chromium.org
436098b4a2 Prepare DefinePropertyAccessor for callback transitions.
Although things are currently OK here, in the future it won't be enough to check
for the existence of a CALLBACKS result, we must additionally check that it
actually contains an accessor. In a nutshell: 'sed s/IsFound/IsProperty/' once
again...

Additionally, the control flow in DefinePropertyAccessor has been simplified by
using a helper function.

Review URL: https://chromiumcodereview.appspot.com/10071009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11305 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-13 09:35:18 +00:00
jkummerow@chromium.org
18a24a5882 MIPS: Increase external array allocation header size to 8 bytes.
This fixes alignment issues on MIPS HW, found for example in mjsunit external-array.
The issue originates from r11144 (86563c3e21) which adds a 4-byte header to these arrays.
This causes problems on MIPS, where certain pointers need to be 8-byte aligned.

BUG=
TEST=mjsunit/external-array

Review URL: https://chromiumcodereview.appspot.com/9956049

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11303 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-13 09:00:02 +00:00
loislo@chromium.org
d1f83dd95a This patch is introducing a way to grab heap stats.
The idea is to monitor the heap regulary and track each object in the heap.
With this data we will be able do draw heap usage diagram.
Where X is time and Y is the number of objects.

BUG=none
TEST=HeapSnapshotObjectsStats

Review URL: https://chromiumcodereview.appspot.com/10049002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11302 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-13 08:52:25 +00:00
jkummerow@chromium.org
0070d4dfd7 Fix native ARM build
BUG=v8:1744, v8:539

Review URL: https://chromiumcodereview.appspot.com/10008082

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11300 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-13 07:59:09 +00:00
vegorov@chromium.org
ec4c772746 Return LOOKUP variable instead of CONTEXT for non-context allocated outer scope parameters.
R=kmillikin@chromium.org
BUG=chromium:119609
TEST=test/mjsunit/regress/regress-119609.js

Review URL: https://chromiumcodereview.appspot.com/10010046

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11298 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-12 19:32:29 +00:00
jkummerow@chromium.org
14e181709b Fix regular and ElementsKind transitions interfering with each other
R=danno@chromium.org
BUG=122271
TEST=mjsunit/regress/regress-crbug-122271

Review URL: https://chromiumcodereview.appspot.com/10038010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11286 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-12 12:30:32 +00:00
erikcorry
32f16418ea Regexp: Fix rightContext in the lastMatchInfoOverride
case.
Review URL: http://codereview.chromium.org/10068010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11285 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-12 12:13:18 +00:00
mstarzinger@chromium.org
40895f0250 Cleanup test-alloc unit test case.
This makes the test-alloc test case more robust against changes to the
initial heap size. It correctly simulates a full space now instead of
trying to fill the space up by allocating filler objects.

R=svenpanne@chromium.org
TEST=cctest/test-alloc

Review URL: https://chromiumcodereview.appspot.com/10071003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11284 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-12 10:06:32 +00:00
erik.corry@gmail.com
e9e291c331 MIPS: NaNs in the snapshot should be quiet according
to the MIPS FPU even when cross-building the snapshot.
This is based on code from Daniel Kalmar from
http://codereview.chromium.org/9910029/
Review URL: https://chromiumcodereview.appspot.com/10068006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11283 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-12 09:23:26 +00:00
fschneider@chromium.org
71702e1da3 Improve performance of keyed loads/stores which have a HeapNumber index.
Some GWT compiled code results in array access that has a heap number (e.g. -0)
as an index. Until now this would result in a generic IC.

For example:

a[-0] === a[0] or

a[0.25 * 4] === a[1]

This change detects heap numbers that are representable as a smi
and converts them. As a result we can still use the fast keyed monomorphic
ICs. Optimized code already handles keyed access with a double-key efficiently.

As a result the frame rate on the reported benchmark improves by roughly 2x.

BUG=v8:1388,v8:1295
Review URL: https://chromiumcodereview.appspot.com/9837109

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11282 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-12 08:35:30 +00:00
erik.corry@gmail.com
de169b7d43 Port regexp microoptimizations to MIPS. Also fix some formatting. This includes http://codereview.chromium.org/9965107/ from Daniel Kalmar
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11281 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-12 07:45:25 +00:00
mstarzinger@chromium.org
6276295e28 Fix WeakMap processing for evacuation candidates (2).
This fixes processing of WeakMaps so that keys on evacuation candidates
which are also reachable by other strong paths are correctly recorded in
the slots buffer.

Also backing stores that reside in the large-object-space now use the
correct anchor slot.

R=vegorov@chromium.org
BUG=v8:2060
TEST=cctest/test-weakmaps/Regress2060b

Review URL: https://chromiumcodereview.appspot.com/10034018

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11279 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-11 15:32:31 +00:00
vegorov@chromium.org
8bdbfc02e7 Skip canonicalization check in LStoreKeyedFastDoubleElement when it is not needed:
- if value is a result of integer32 to double conversion (can't be NaN);

- if value was loaded from fast double backing store (already canonicalized).

R=danno@chromium.org

Review URL: https://chromiumcodereview.appspot.com/10054009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11278 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-11 14:08:11 +00:00
vegorov@chromium.org
983d521fe9 Reland arguments access support for inlined functions (r11109,r11118).
When pushing arguments use correct initial values instead of fetching them from the environment which can be modified.

R=fschneider@chromium.org
TEST=test/mjsunit/compiler/inline-arguments.js

Review URL: https://chromiumcodereview.appspot.com/10033028

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11274 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-11 13:40:55 +00:00
mstarzinger@chromium.org
a9c664419e Fix presubmit error in r11270.
R=danno@chromium.org

Review URL: https://chromiumcodereview.appspot.com/10053011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11273 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-11 11:45:14 +00:00
mstarzinger@chromium.org
82cde7c832 Remove write-barriers for stores to new-space objects.
This change allows hydrogen instructions to keep track of instructions
that dominate certain side-effects (GVN flags) in the hydrogen graph. We
use the GVN pass to keep track of side-effects because accurate flags
are already in place.

It also adds a new side-effect (kChangesNewSpacePromotion) indicating
whether an instruction can cause a GC and have objects be promoted to
old-space. An object allocated in new-space is sure to stay on paths not
having said side-effect.

R=erik.corry@gmail.com
TEST=mjsunit/compiler/inline-construct

Review URL: https://chromiumcodereview.appspot.com/10031031

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11270 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-11 10:56:16 +00:00
erik.corry@gmail.com
0cdf6b50e7 Fix compile errors on 64 bit platforms.
Review URL: https://chromiumcodereview.appspot.com/10053009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11268 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-11 09:55:20 +00:00
erik.corry@gmail.com
a3629daa2c Fix external allocated memory accounting to use 64 bit values on
64 bit architectures.
Review URL: https://chromiumcodereview.appspot.com/10020032

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11265 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-11 09:23:57 +00:00
mstarzinger@chromium.org
00d9c14729 Fix WeakMap processing for evacuation candidates.
This fixes processing of WeakMaps so that value entries on an evacuation
candidate are correctly recorded in the slots buffer. We didn't pass the
correct slot into the backing hashtable while visiting values.

Also the live bytes counter for large object space pages was not reset
correctly when incremental marking is aborted.

R=vegorov@chromium.org
BUG=v8:2060
TEST=cctest/test-weakmaps/Regress2060

Review URL: https://chromiumcodereview.appspot.com/10034010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11264 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-11 09:14:29 +00:00
loislo@chromium.org
48f1f7b745 I'd like to add addr field into EntryInfo struct.
This will give us the ability to keep entries_ list sorted by id.
And based on that fact we will be able to use it for:
1) GetNodeById method and drop sorted version of entries list in HeapSnapshot;
2) building heap stats;
3) doing the fill stage instead of second iteration over heap.

BUG=none
TEST=none
R=yurys

Review URL: https://chromiumcodereview.appspot.com/10031032

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11259 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-11 06:58:42 +00:00
vegorov@chromium.org
e831ec2c4e Bailout on possible direct eval calls.
Environment structure for such calls is different from normal global calls.

R=fschneider@chromium.org
BUG=chromium:122681

Review URL: https://chromiumcodereview.appspot.com/10024060

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11256 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-10 13:41:00 +00:00
fschneider@chromium.org
caf579d09e Insert three missing FP register stack pop instructions.
We use fstp(0) already in other places. ffree does not pop the stack,
but only marks a FP register as empty.

BUG=v8:2065
Review URL: https://chromiumcodereview.appspot.com/9960066

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11255 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-10 13:39:28 +00:00
yurys@chromium.org
30d51abea1 Use SortedListBSearch instead of custom one in heap profiler
Review URL: https://chromiumcodereview.appspot.com/10006032

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11252 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-10 11:24:09 +00:00
kmillikin@chromium.org
abfe4f0562 Do not assume that names of function expressions are context-allocated.
The heap profile generator assumes that for named function expressions, the
name is context allocated.  This is not necessary true.

BUG=v8:2051
TEST=WebKit layout test inspector/profiler/heap-snapshot-inspect-dom-wrapper.html

Review URL: https://chromiumcodereview.appspot.com/9960065

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11251 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-10 11:07:16 +00:00
fschneider@chromium.org
752b05a003 Prepare push to trunk. Now working on version 3.10.2.
Review URL: https://chromiumcodereview.appspot.com/10024057

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11250 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-10 11:01:29 +00:00
erikcorry
f90e665e9a Ensure that a call to String.prototype.match with a
global regexp after a call to String.prototype.replace
with a function argument sets the last match info
correctly.  Bug=2058
Review URL: http://codereview.chromium.org/10029009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11249 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-10 10:42:25 +00:00
alexeif@chromium.org
d18eaffdae Revert "External references should not affect dominance relation."
This reverts commit 6e46549d13df2b211ea9b4fac9c09fe5013ec465.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10025014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11248 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-08 19:18:06 +00:00
alexeif@chromium.org
5ed3662407 External references should not affect dominance relation.
Review URL: https://chromiumcodereview.appspot.com/10007009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11247 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-08 18:28:32 +00:00
yurys@chromium.org
502036ae06 Fix presubmit warnings after r11245
TBR=mnaganov
Review URL: https://chromiumcodereview.appspot.com/10012040

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11246 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-06 14:52:20 +00:00
yurys@chromium.org
2f0e0afb09 We can avoid putting all nodes into a hash map from HeapEntry to ID and sorting that map as the nodes are already stored in right order in HeapSnapshot::entries_ list.
Review URL: https://chromiumcodereview.appspot.com/10012013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11245 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-06 14:16:45 +00:00
mstarzinger@chromium.org
78226352b7 Ensure HAllocateObject always allocates in new-space.
This is needed so that we can start removing write-barriers in optimized
code if we can prove that the receiver object is always in new-space.

TEST=cctest/test-heap/OptimizedAllocationAlwaysInNewSpace

Review URL: https://chromiumcodereview.appspot.com/10008007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11243 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-05 15:36:31 +00:00
danno@chromium.org
581e9368d3 Fix glibc presence checks that are incorrectly triggered in some cases.
This allows compilation of V8 using uClibc.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9702067
Patch from Daniel Kalmar <kalmard@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11242 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-05 15:22:51 +00:00
danno@chromium.org
a897e6e229 MIPS: Remove static initializers in v8.
Port r11010 (1daa81bc).

MIPS-specific changes:
-register codes and registers are defined using a macro to avoid redundancy
-renamed s8_fp to fp, removed the "fp" alias
-removed kSavedValueRegister (found by check-static-initializers.sh)

Original commit message:

Landing for pliard@chromium.org: Remove static initializers in v8.

This change includes two CLs by pliard@chromium.org:

1. http://codereview.chromium.org/9447052/ (Add CallOnce() and simple LazyInstance implementation):

Note that this implementation of LazyInstance does not handle global destructors (i.e. the lazy instances a

This CL was initially reviewed on codereview.appspot.com:
http://codereview.appspot.com/5687064/

2.  http://codereview.chromium.org/9455088/ (Remove static initializers in v8):
This CL depends on CL 9447052 (adding CallOnce and LazyInstance).
It is based on a patch sent by Digit.

With this patch applied, we have only one static initializer left (in atomicops_internals_x86_gcc.cc). This

This CL also modifies the presubmit script to check the number of static initializers.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9689069
Patch from Daniel Kalmar <kalmard@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11241 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-05 15:18:22 +00:00
danno@chromium.org
17db8efe0c MIPS: Ensure proper alignment of LazyInstance objects.
The template system converts the actual struct type to an array of chars.
Make sure the alignment is kept by the compiler.

This fixes a lot of serialization-related HW tests, for example cctest test-serialize/Serialize.

BUG=
TEST=cctest test-serialize

Review URL: https://chromiumcodereview.appspot.com/9702114
Patch from Daniel Kalmar <kalmard@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11240 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-05 15:12:28 +00:00
danno@chromium.org
db86043160 Minimize uses of lazy initialization by adding explicit initialization functions.
BUG=118686

Review URL: https://chromiumcodereview.appspot.com/9976003
Patch from Philippe Liard <pliard@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11239 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-05 14:10:39 +00:00
danno@chromium.org
ed5d288ac1 Adjust stack limit again to avoid overflow on 64 bit windows
Also add additional stack check.

R=mstarzinger@chromium.org

Review URL: https://chromiumcodereview.appspot.com/10006010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11238 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-05 14:01:39 +00:00
ulan@chromium.org
3861063018 Check for NaN in inlined versions of Math.min, Math.max.
R=danno@chromium.org
BUG=V8:2056
TEST=mjsunit/regress/regress-2056.js

Review URL: https://chromiumcodereview.appspot.com/10006008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11237 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-05 13:24:52 +00:00
danno@chromium.org
3c6f5774d2 Fix stack overflows on Windows x64.
R=mstarzinger@chromium.org
TEST=win 64 not red anymore

Review URL: https://chromiumcodereview.appspot.com/10008005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11236 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-05 12:32:35 +00:00
danno@chromium.org
dbf9c78990 Ensure default isolate is present in Context::New().
R=danno@chromium.org
BUG=chromium:118686
TEST=Run chrome with --single-process.

Review URL: https://chromiumcodereview.appspot.com/9949008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11233 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-05 10:54:11 +00:00
yurys@chromium.org
292d33f4fb Fix presubmit checks after r11223
TBR=mnaganov
Review URL: https://chromiumcodereview.appspot.com/9961008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11226 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-04 14:33:03 +00:00
danno@chromium.org
2b6aa495c2 Ensure default isolate is present in Add/RemoveCallCompletedCallback.
R=ulan@chromium.org,pliard@chromium.org
BUG=ui_tests don't crash in Chrome

Review URL: https://chromiumcodereview.appspot.com/9979003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11225 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-04 14:28:00 +00:00
mstarzinger@chromium.org
47aa3254c2 Fix rewriter to not treat throw as an expression.
Now we can correctly optimize top level code that contains a throw (or
return) as it's last statement.

R=ulan@chromium.org
BUG=v8:2054
TEST=mjsunit/regress/regress-2054

Review URL: https://chromiumcodereview.appspot.com/9969146

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11224 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-04 13:41:05 +00:00
yurys@chromium.org
a8ed9d6b23 Switching to a custom itoa implementation reduces serialization time at least by the factor of 2.
Review URL: https://chromiumcodereview.appspot.com/9950146

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11223 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-04 13:36:57 +00:00
ulan@chromium.org
232d990545 Reset function info counters after context disposal in incremental marking step.
R=mstarzinger@chromium.org
BUG=117767,V8:1902
TEST=test/cctest/test-heap/ResetSharedFunctionInfoCountersDuringIncrementalMarking

Review URL: https://chromiumcodereview.appspot.com/9903019

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11222 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-03 17:22:05 +00:00
mstarzinger@chromium.org
7b59b1d5ac Fix array boilerplate object transitioning.
Array literal boilerplate objects can be transitioned while existing
un-transitioned clones are still being populated. This adds a check that
prevents us from performing the same transition twice.

R=danno@chromium.org
BUG=v8:2055
TEST=mjsunit/regress/regress-2055

Review URL: https://chromiumcodereview.appspot.com/9950095

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11221 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-03 16:54:28 +00:00
danno@chromium.org
d366275dd6 Fix stack overflow test failures with no snap.
R=mstarzinger@chromium.org
BUG=chromium:119429

Review URL: https://chromiumcodereview.appspot.com/9963108

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11220 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-03 15:54:07 +00:00
danno@chromium.org
8dc9bc962f Don't crash on stack overflow entering the debugger.
R=ager@chromium.org, sgjesse@chromium.org
BUG=chromium:119429
TEST= test/mjsunit/regress/regress-119429.js

Review URL: https://chromiumcodereview.appspot.com/9965101

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11219 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-03 13:45:56 +00:00
erik.corry@gmail.com
965fea65c2 Switch regexp strategy for regexps that are just plain
strings with a small alphabet.  We already have code
that handles these regexps well, we were just not always
activating it.
Review URL: https://chromiumcodereview.appspot.com/9959096

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11218 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-03 12:24:55 +00:00
danno@chromium.org
d9437722da Properly support shrinking arrays in CopyDictionaryToObjectElements.
R=mstarzinger@chromium.org
BUG=chromium:121407
TEST=test/mjsunit/regress/regress-121407.js

Review URL: https://chromiumcodereview.appspot.com/9968056

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11214 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-03 08:13:59 +00:00
ulan@chromium.org
2b554f2448 Make progress in incremental marking if scavenge is delaying mark-sweep.
R=mstarzinger@chromium.org

Review URL: https://chromiumcodereview.appspot.com/9965054

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11213 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-03 07:32:19 +00:00
danno@chromium.org
f3348e9745 Adding missing SetCC before conditional branch.
BUG=none
TEST=none

Review URL: https://chromiumcodereview.appspot.com/9950015
Patch from Rodolph Perfetta <rodolph.perfetta@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11212 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-02 15:53:38 +00:00
ulan@chromium.org
e352114fb8 Check code kind when resetting profiler ticks.
BUG=121147
TEST=chromium gpu_tests/WebGLConformanceTests

Review URL: https://chromiumcodereview.appspot.com/9956060

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11208 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-02 13:27:41 +00:00
erik.corry@gmail.com
6c8a6c2640 Cosmetic (ARM/MIPS): Use FieldMemOperand where appropriate.
Review URL: https://chromiumcodereview.appspot.com/9963051

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11207 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-02 13:26:05 +00:00
erik.corry@gmail.com
b5bf01ec79 MIPS: RegExp: Add support for table-based character class code generation. This is a commit of http://codereview.chromium.org/9968032/ for Daniel Kalmar
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11206 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-02 11:27:37 +00:00
ulan@chromium.org
18068abd0e Change ASSERT(kind() == FUNCTION) to ASSERT_EQ(FUNCTION, kind()).
R=mstarzinger@chromium.org

Review URL: https://chromiumcodereview.appspot.com/9958062

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11205 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-02 10:57:17 +00:00
erikcorry
f14b93a508 Regexp: Improve the speed that we scan for an initial point where a non-anchored
regexp can match by using a Boyer-Moore-like table.  This is done by identifying
non-greedy non-capturing loops in the nodes that eat any character one at a time.
For example in the middle of the regexp /foo[\s\S]*?bar/ we find such a loop.
There is also such a loop implicitly inserted at the start of any non-anchored
regexp.

When we have found such a loop we look ahead in the nodes to find the set of
characters that can come at given distances.  For example for the regexp
/.?foo/ we know that there are at least 3 characters ahead of us, and the sets
of characters that can occur are [any, [f, o], [o]].  We find a range in the
lookahead info where the set of characters is reasonably constrained.  In our
example this is from index 1 to 2 (0 is not constrained).  We can now look 3
characters ahead and if we don't find one of [f, o] (the union of [f, o] and
[o]) then we can skip forwards by the range size (in this case 2).

For Unicode input strings we do the same, but modulo 128.

We also look at the first string fed to the regexp and use that to get a hint
of the character frequencies in the inputs.  This affects the assessment of
whether the set of characters is 'reasonably constrained'.

We still have the old lookahead mechanism, which uses a wide load of multiple
characters followed by a mask and compare to determine whether a match is
possible at this point.
Review URL: http://codereview.chromium.org/9965010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11204 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-02 09:38:07 +00:00
erik.corry@gmail.com
f00631b710 Reduce initial boot-up memory use. This is an other attempt at what
http://codereview.chromium.org/9179012 was trying to achieve.  This
time I am going for 80% of the benefit with around 5% of the complexity.

It works by reducing the size of the first page in each space.  Unlike the
previous change there is no attempt to grow pages, we just allocate more
full-sized pages when we need more memory.  For this reason the first pages are
not quite as small (compare
http://codereview.chromium.org/9179012/diff/1/src/snapshot.h with the changes
in spaces.cc in this cl):  We want to be able to do a little bit of allocation
before we have to add a full-sized page to the space.
Review URL: https://chromiumcodereview.appspot.com/9950048

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11203 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-02 08:32:31 +00:00
mstarzinger@chromium.org
5798bc27aa Fix hidden properties to ignore [[Extensible]].
The [[Extensible]] property prevented the very first hidden property
from being added. If any hidden property was added to the object before
preventing extension, adding subsequent hidden properties would have
succeed however.

R=svenpanne@chromium.org
BUG=v8:2034
TEST=mjsunit/regress/regress-2034

Review URL: https://chromiumcodereview.appspot.com/9844025

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11202 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-02 08:26:30 +00:00
danno@chromium.org
7c23b744fb Fix broken build on Windows due to r11198.
This also fixes a style issue in lazy-instance.h.

Review URL: https://chromiumcodereview.appspot.com/9960006
Patch from Philippe Liard <pliard@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11201 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-30 20:48:32 +00:00
danno@chromium.org
63f033576c Fix performance regressions due to lazy initialization.
This CL:
- Adds a new trait parameter to LazyInstance to let it initialize the instance
  without paying the cost of atomic operations (which are expensive on Mac).
  This only works for users who don't care about thread-safety and this is now
the default initialization trait used by LazyInstance in v8.

- Reverts the changes that were made in r11010 in isolate.{cc,h}. That lets
  Isolate's accessors be as cheap as they were before (but adds one static initializer).

- Adds OS::PostSetup() used to initialize the math functions which depend on CPU features.
That lets the math functions get rid of CallOnce().

BUG=118686

Review URL: https://chromiumcodereview.appspot.com/9873023
Patch from Philippe Liard <pliard@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11198 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-30 14:30:46 +00:00
vegorov@chromium.org
8360ec877e Ensure that arguments object is materialized when deoptimizing from inlined function.
Lithium translation rebuilds hydrogen environments from scratch so we have to ensure that arguments object is correctly bound on function entry otherwise deoptimization will not materialize it.

This fix was implemented as part of r11109 and then reverted.

R=danno@chromium.org
BUG=v8:2045
TEST=test/mjsunit/regress/regress-2045.js

Review URL: https://chromiumcodereview.appspot.com/9963008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11194 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-30 13:22:39 +00:00
jkummerow@chromium.org
6faf4059b4 Prepare push to trunk. Now working on version 3.10.1.
R=danno@chromium.org

Review URL: https://chromiumcodereview.appspot.com/9966002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11191 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-30 08:35:30 +00:00
erik.corry@gmail.com
e952ebb907 Fix missing static cast on Windows.
Review URL: https://chromiumcodereview.appspot.com/9963006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11190 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-30 07:55:16 +00:00
erik.corry@gmail.com
356cf1ed0a RegExp: Add support for table-based character class
code generation.  This is performance neutral for
all our tests, but a factor 6 faster for the Unicode
based regexp in the new test (and much more compact
code).
Review URL: https://chromiumcodereview.appspot.com/9854020

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11189 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-30 07:43:48 +00:00
loislo@chromium.org
d857c994b6 Current schema of calculation max_snapshot_js_object_id is not always correct.
As the result the test is flaky.

BUG=v8/2042
TEST=HeapEntryIdsAndGC
R=mnaganov

Review URL: https://chromiumcodereview.appspot.com/9918005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11187 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-29 14:18:11 +00:00
ulan@chromium.org
0acfd5af07 Fix offset computation for EmitProfilingCounterReset in x64.
R=jkummerow@chromium.org
BUG=v8:2039

Review URL: https://chromiumcodereview.appspot.com/9903015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11186 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-29 14:04:41 +00:00
svenpanne@chromium.org
7c7c2801f5 Valgrind cleanliness, part 5: Delete extensions on exit.
This fixes 4 leaks, returning 196 bytes of lost memory.

Review URL: https://chromiumcodereview.appspot.com/9864034

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11184 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-29 09:45:46 +00:00
svenpanne@chromium.org
6c392ffa79 Valgrind cleanliness, part 2: Delete lithium operand caches on exit.
This fixes 5 leaks, returning 1.6kB of lost memory.

Shocking news: I've actually introduced a 2nd-order macro for myself. I guess
I've been assimilated... ;-)

Review URL: https://chromiumcodereview.appspot.com/9860028

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11179 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-28 13:12:00 +00:00
svenpanne@chromium.org
fa91d25e67 MIPS: First implementation of fast path for instantiation of array literals composed of doubles.
Port r11114 (d8c975164).

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9834044

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11176 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-28 12:44:04 +00:00
ulan@chromium.org
82c0fec545 Reset the optimization_disabled flag in function info after context disposal.
R=jkummerow@chromium.org

Review URL: https://chromiumcodereview.appspot.com/9873022

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11174 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-28 09:47:53 +00:00
mstarzinger@chromium.org
4389c29cce Fix store IC writability check in strict mode.
The store ICs should only check writability attributes for actual
properties and not for map transitions.

R=jkummerow@chromium.org,svenpanne@chromium.org
BUG=chromium:120099
TEST=mjsunit/regress/regress-120099

Review URL: https://chromiumcodereview.appspot.com/9874015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11173 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-28 09:34:52 +00:00
jkummerow@chromium.org
1a8b6610c7 Add missing cast in d8
Review URL: https://chromiumcodereview.appspot.com/9866035

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11166 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 12:46:44 +00:00
ulan@chromium.org
2b3d6de2dd Resynchronize timers if the Windows system time was changed.
R=jkummerow@chromium.org
BUG=119815
TEST=Change the system time one day back: (new Date()) will return incorrect time.

Review URL: https://chromiumcodereview.appspot.com/9865021

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11165 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 12:34:32 +00:00
jkummerow@chromium.org
4b227a2a79 Profiler experiments: remove "stable on startup" rule
Review URL: https://chromiumcodereview.appspot.com/9864030

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11164 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 12:26:58 +00:00
jkummerow@chromium.org
b413f376c4 Move profiler_ticks to Code object, don't walk the stack when patching ICs
Review URL: https://chromiumcodereview.appspot.com/9866030

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11162 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 12:19:50 +00:00
loislo@chromium.org
b84b44d86c This value is required for showing the heap snapshot delta in Summary view of DevTools.Profiler.
At the moment it is evaluating on the front-end side and this is cost us 2 * (load time + parse time + traverse via snapshot) because I need this value for two previous snapshots.

BUG=none
TEST=test-heap-profiler

Review URL: https://chromiumcodereview.appspot.com/9858016

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11161 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 11:54:47 +00:00
jkummerow@chromium.org
d71c60e086 Port count-based profiler to x64
Review URL: https://chromiumcodereview.appspot.com/9845019

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11159 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 11:21:27 +00:00
loislo@chromium.org
9b9e458a43 Revert "This value is required for showing the heap snapshot delta in Summary view of DevTools.Profiler."
This reverts commit 634864d65ebe820a967f6162d8e226cf4a73e51a.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9861018

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11158 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 11:12:31 +00:00
fschneider@chromium.org
70074b6901 Fix undeclared variable in d8 debugger.
BUG=v8:2033
TEST='list' command works in d8 debugger.
Review URL: https://chromiumcodereview.appspot.com/9861017

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11155 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 10:55:34 +00:00
svenpanne@chromium.org
30e6cac50e Valgrind cleanliness, part 3: Delete elements accessors on exit.
This fixes 15 leaks, returning 132 bytes of lost memory.

As an additional bonus, elements accessors initialization has bee simplified a bit.

Review URL: https://chromiumcodereview.appspot.com/9836109

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11154 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 10:51:13 +00:00
mstarzinger@chromium.org
057371da13 Fix polymorphic load on named fields.
This fixes polymorphic loads to correctly compare in-object offsets
instead of indices, because indices might coincide even though the
actual slot is different because of different instance sizes.

R=danno@chromium.org
BUG=v8:2030
TEST=mjsunit/regress/regress-2030,mjsunit/mirror-array

Review URL: https://chromiumcodereview.appspot.com/9864028

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11153 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 10:42:38 +00:00
svenpanne@chromium.org
a071b4e04b Valgrind cleanliness, part 4: Delete CounterMap on exit.
This fixes 2 leaks, returning 112 bytes of lost memory.

As an additional bonus, a useless check has been removed (no need to check for
NULL before a delete).

Review URL: https://chromiumcodereview.appspot.com/9864029

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11152 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 09:50:48 +00:00
loislo@chromium.org
410f3a3375 This value is required for showing the heap snapshot delta in Summary view of DevTools.Profiler.
At the moment it is evaluating on the front-end side and this is cost us 2 * (load time + parse time + traverse via snapshot) because I need this value for two previous snapshots.

BUG=none
TEST=test-heap-profiler

Review URL: https://chromiumcodereview.appspot.com/9858016

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11150 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 08:52:00 +00:00
ulan@chromium.org
7a1cbb2db8 Remove dependency on _mkgmtime to determine local timezone offset
BUGS=v8:1386
TEST=

Review URL: https://chromiumcodereview.appspot.com/9600018
Patch from Jonathan Liu <net147@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11148 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 08:46:32 +00:00
erik.corry@gmail.com
bfb1e9e702 Fix edge case for case independent regexp character classes.
http://code.google.com/p/v8/issues/detail?id=2032
Review URL: https://chromiumcodereview.appspot.com/9860029

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11147 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 08:42:37 +00:00
svenpanne@chromium.org
a3eccef3fa Valgrind cleanliness, part 1: Delete current isolate on exit.
Currently we leak 140kB from 80 allocation sites when we evaluate a simple
"print(1+2)" in d8 and exit. This might not be a real problem in Chrome because
most of the time the whole process containing v8 vanishes, but it can hide real
leaks in a sea of false positives. Therefore, this CL and a few subsequent ones
clean this up a bit.

This simple CL alone fixes 45 leaks, leaving only 35 with a net loss of 2192
bytes (on ia32).

Review URL: https://chromiumcodereview.appspot.com/9791016

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11146 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 07:37:06 +00:00
loislo@chromium.org
b414adb1f3 Complete switch to SnapshotObjectId.
BUG=none
TEST=test-heap-profiler

Review URL: https://chromiumcodereview.appspot.com/9858010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11145 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-26 13:47:37 +00:00
jkummerow@chromium.org
3f7244e37b Properly AdjustAmountOfExternalAllocatedMemory() in d8
This is related to v8 issue 2022 but doesn't fix it as this patch only affects d8, while there is a related bug in the WebKit V8 bindings too.

Review URL: https://chromiumcodereview.appspot.com/9835055

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11144 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-26 13:24:20 +00:00
ulan@chromium.org
59b06fd638 Reset function info counters after context disposal.
R=jkummerow@chromium.org
BUG=117767,V8:1902

Review URL: https://chromiumcodereview.appspot.com/9836091

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11143 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-26 13:08:08 +00:00
jkummerow@chromium.org
d9936b4546 MIPS: Port count-based profiler
Port r11120 (548ba49bd).

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9835083
Patch from Daniel Kalmar <kalmard@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11141 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-26 11:29:44 +00:00
ulan@chromium.org
a47d1c0714 Fix the return type of the date set methods.
Date set methods (setMinutes, setHours, etc.) should return the time value as a number instead of JSDate.

R=jkummerow@chromium.org
TEST=test/mjsunit/regress/regress-2027.js

Review URL: https://chromiumcodereview.appspot.com/9809010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11140 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-26 10:13:03 +00:00
mstarzinger@chromium.org
5bca664574 MIPS: Improve polymorphic loads on single slots.
Port r11132 (91bdad6108).

Original commit message:

If all property lookups for a polymorphic load actually result in the
same field index under all maps, we can actually emit a monomorphic load
that is guarded by a map check that verifies that the actual map is in
the set of handled maps. This also allows GVN to get rid of redundant
such map checks.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9852007
Patch from Daniel Kalmar <kalmard@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11135 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-26 09:41:53 +00:00
jkummerow@chromium.org
4e405b6945 Fix missing write barrier in CopyObjectToObjectElements.
Passing the write barrier mode as a parameter does not make sense, as the elements kind specific copiers know best whether a write barrier is needed or not.

BUG=119926
TEST=mjsunit/regress/regress-crbug-119926
R=danno@chromium.org

Review URL: https://chromiumcodereview.appspot.com/9808111

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11134 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-25 15:16:06 +00:00
danno@chromium.org
8833c99552 Check double array bounds in HasElementImpl.
R=jkummerow@chromium.org
BUG=chromium:119925
TEST=test/mjsunit/regress/regress-119925.js

Review URL: https://chromiumcodereview.appspot.com/9808110

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11133 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-25 14:21:51 +00:00
mstarzinger@chromium.org
ab4e4cd917 Improve polymorphic loads on single slots.
If all property lookups for a polymorphic load actually result in the
same field index under all maps, we can actually emit a monomorphic load
that is guarded by a map check that verifies that the actual map is in
the set of handled maps. This also allows GVN to get rid of redundant
such map checks.

R=danno@chromium.org

Review URL: https://chromiumcodereview.appspot.com/9616014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11132 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-23 16:37:54 +00:00
vegorov@chromium.org
3ccc885c78 Revert arguments access support for inlined functions (r11109,r11118).
We are inserting HPushArgument instructions after HEnterInlined based on the environment at the point of the first arguments access. Which might create use before def if there are redundant phis in the environment. 
Review URL: https://chromiumcodereview.appspot.com/9837041

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11128 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-23 15:39:34 +00:00
fschneider@chromium.org
a43c00cbae Fix use of uninitialized values in the runtime profiler.
Review URL: https://chromiumcodereview.appspot.com/9835054

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11127 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-23 15:26:04 +00:00
danno@chromium.org
706c07d176 Prepare push to trunk. Now working on version 3.10.0.
R=jkummerow@chromium.org

Review URL: https://chromiumcodereview.appspot.com/9845013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11124 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-23 15:08:45 +00:00
ulan@chromium.org
ef2cfb55ee Fix compile error introduced by r11122.
R=jkummerow@chromium.org

Review URL: https://chromiumcodereview.appspot.com/9838054

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11123 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-23 13:52:15 +00:00
ulan@chromium.org
0b6a617779 Age inline caches after context disposal.
Review URL: https://chromiumcodereview.appspot.com/9837005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11122 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-23 13:33:11 +00:00
jkummerow@chromium.org
148f1c1701 Fix deopt condition in ForIn on x64
TEST=no more deopts in string-fasta

Review URL: https://chromiumcodereview.appspot.com/9836032

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11121 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-23 12:20:03 +00:00
jkummerow@chromium.org
390f0e6d05 Port count-based profiler to ARM
Review URL: https://chromiumcodereview.appspot.com/9837004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11120 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-23 12:16:40 +00:00
vegorov@chromium.org
9da07882c8 MIPS: Support arguments object access from inlined functions.
Port r11109 (a7770bdd7c).

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9808058
Patch from Daniel Kalmar <kalmard@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11118 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-23 11:38:40 +00:00
rossberg@chromium.org
00346bd1da Fix use of proxies as f.prototype properties.
R=mstarzinger@chromium.org
BUG=v8:2021
TEST=

Review URL: https://chromiumcodereview.appspot.com/9837008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11116 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-23 10:25:14 +00:00
mmassi@chromium.org
c39c2089a7 First implementation of fast path for instantiation of array literals composed of doubles.
Review URL: https://chromiumcodereview.appspot.com/9814006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11114 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-23 10:14:51 +00:00
svenpanne@chromium.org
4cb600962f Make setting of accessors even more atomic.
Now the whole getter/setter/attributes triple gets created/set together,
avoiding any hacks regarding previous values/attributes, making things a lot
simpler.

While doing this, an interesting problem surfaced, which has been there for a
long time: After adding/changing acessors in slow mode, we could potentially
fail going back to fast mode because of a failed memory allocation, signaling
the need for a GC. But we have already changed the object in slow mode, so we
are not idempotent and the retry would trigger a newly inserted assertion
(namely, that the code obeys access restrictions). This has been solved by
splitting the transformation to fast mode from the actual setting of the
accessors.

Review URL: https://chromiumcodereview.appspot.com/9716035

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11112 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-23 09:51:56 +00:00
vegorov@chromium.org
b7dca5d5a7 Support arguments object access from inlined functions.
R=fschneider@chromium.org
TEST=test/mjsunit/compiler/inline-arguments.js

Review URL: https://chromiumcodereview.appspot.com/9837002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11109 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-22 13:53:28 +00:00
jkummerow@chromium.org
f7073d467c Soften --type-info-threshold by eventually optimizing all functions
(but waiting very long if they don't have enough type feedback).

Review URL: https://chromiumcodereview.appspot.com/9834005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11108 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-22 11:05:33 +00:00
erik.corry@gmail.com
bc1eb293cd Enable snapshots on MIPS. This is based on
http://codereview.chromium.org/9372063 by Daniel Kalmar.
Review URL: https://chromiumcodereview.appspot.com/9722020

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11107 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-21 14:29:14 +00:00
erik.corry@gmail.com
6cd62ed2a3 Unbork Windows 64 bit build and guard against overlong UTF-8
serializations.
Review URL: https://chromiumcodereview.appspot.com/9817005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11105 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-21 14:04:24 +00:00
erik.corry@gmail.com
25f84a48ce Speed up WriteUtf8 in the case where the output buffer is large enough.
Review URL: https://chromiumcodereview.appspot.com/9696032

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11104 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-21 13:48:29 +00:00
ulan@chromium.org
2e9b509271 Prepare push to trunk. Now working on version 3.9.24.
R=jkummerow@chromium.org

Review URL: https://chromiumcodereview.appspot.com/9814007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11101 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-21 09:50:20 +00:00
fschneider@chromium.org
30a2f2c4ef When running with --always-opt, don't deoptimize named loads with uninitialized type feedback.
This avoids tests taking too long because of repeated deoptimizations.
Review URL: https://chromiumcodereview.appspot.com/9812004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11100 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-21 09:23:09 +00:00
danno@chromium.org
b49dd13c90 MIPS: Branch delay slot and other optimizations.
List of changes:
-added a minor optimization to the Simulator that quickly skips nops in the delay slot
-slightly re-worked CEntryStub to save a few instructions
 CEntryStub now expects the following values:
  -s0: number of arguments including receiver
  -s1: size of arguments excluding receiver
  -s2: pointer to builtin function
 Two new MacroAssembler functions were added to make usage more convenient:
  -PrepareCEntryArgs(int num_args) to set up s0 and s1
  -PrepareCEntryFunction(const ExternalReference&) to set up s2
-removed branch delay slot nops from the most frequently used code areas
-reorganized some code to execute fewer instructions
-utilized the delay slot of most Ret instructions
 This does not cover all Rets, only the most obvious cases.
 Also added a special version of DropAndRet that utilizes the delay slot.
-added some comments to code areas where explanation of the register/delay slot usage may be needed
-added an optimization to Jump so it doesn't always pre-load the target register

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9699071
Patch from Daniel Kalmar <kalmard@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11099 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-21 08:41:16 +00:00
vegorov@chromium.org
790219ec55 Use correct arguments adaptation environment when inlining function containing arguments.
R=mstarzinger@google.com
BUG=V8:2014
TEST=test/mjsunit/compile/inline-arguments.js

Review URL: https://chromiumcodereview.appspot.com/9750007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11098 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-20 18:15:31 +00:00