erik.corry@gmail.com [Tue, 31 May 2011 15:21:25 +0000 (15:21 +0000)]
Revert 8122 (stub call asserts) while test failures are investigated.
Review URL: http://codereview.chromium.org/
7050039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8125
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Tue, 31 May 2011 14:37:34 +0000 (14:37 +0000)]
Reduced the code ping-pong between the full code generator and contexts a bit.
* Centralized AND/OR handling, keeping related code together.
* Removed HandleExpression/HandleInNonTestContext and introduced VisitInSameContext instead, making it more obvious what's actually going on.
* Consistently use a new context when visiting the left sub-expression of an AND/OR. Note that the context stacks in the full code generator and crankshaft are still a bit out of sync for the right sub-expression.
Review URL: http://codereview.chromium.org/
6976028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8124
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 31 May 2011 13:35:52 +0000 (13:35 +0000)]
Fix two bugs in LiveRange::SplitAt:
- when splitting at the beginning of the UseInterval we need to find an interval preceding it.
- we need to reset cached iteration state after splitting.
BUG=v8:1410
Review URL: http://codereview.chromium.org/
7053039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8123
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 31 May 2011 12:38:45 +0000 (12:38 +0000)]
Add asserts and state tracking to ensure that we do not call
into C++ without having a valid stack frame that can be
traversed at GC.
Also add asserts to track that we do not try to generate a stub
while we are generating a stub, since the stub creation code is
not GC safe.
Review URL: http://codereview.chromium.org/
7084032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8122
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 31 May 2011 11:54:46 +0000 (11:54 +0000)]
Support optimization of named function literals.
Introduce a Hydrogen value for the value denoted by the function name.
R=fschneider@chromium.org,mnaganov@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
7083024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8121
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 31 May 2011 10:38:41 +0000 (10:38 +0000)]
Update apply with arguments optimization for strict mode functions and builtins.
Do not convert to object for values for strict-mode functions and
builtins.
R=ricow@chromium.org
BUG=v8:1412
TEST=mjsunit/regress/regress-1412.js
Review URL: http://codereview.chromium.org/
7096006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8120
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Tue, 31 May 2011 09:42:17 +0000 (09:42 +0000)]
Add support for external arrays to d8
Review URL: http://codereview.chromium.org/
7053038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8119
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Tue, 31 May 2011 09:34:37 +0000 (09:34 +0000)]
Push the general AST id field down from ASTNode to Expression.
Almost all uses were below Expression already, only a single use in IfStatement
had to be handled explicitly (probably an oversight from earlier changes?). This
is a small step towards a less ad-hoc handling of IDs in the front end.
Review URL: http://codereview.chromium.org/
7054034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8118
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 31 May 2011 08:08:42 +0000 (08:08 +0000)]
Fix a number of tests that incorrectly used assertUnreachable.
Our testing infrastructure uses exceptions to indicate
errors. assertUnreachable therefore throws an exception to indicate
that it was reached. Therefore, it cannot be used to check that an
exception was thrown using the pattern:
try {
shouldThrow();
assertUnreachable();
} catch(e) {
}
Such a test will always pass because assertUnreachable will throw an
exception if shouldThrow does not.
R=ricow@chromium.org
Review URL: http://codereview.chromium.org/
7053035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8117
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 31 May 2011 07:57:22 +0000 (07:57 +0000)]
Fix receiver for calls to strict-mode and builtin functions that are
potentially shadowed by eval.
R=sgjesse@chromium.org
TEST=mjsunit/regress/regress-124.js
Review URL: http://codereview.chromium.org/
7096004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8116
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 30 May 2011 14:33:23 +0000 (14:33 +0000)]
Fix building with profilingsupport=off
Using profilingsupport=off is not recommended as it will turn off crankshaft. With this change it will build though.
R=erik.corry@gmail.com
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//
7085025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8113
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Mon, 30 May 2011 14:31:47 +0000 (14:31 +0000)]
Heap profiler: fetch document.URL of global objects.
This allows to distinguish DOMWindow objects in browser from each other.
R=vitalyr@chromium.org,sgjesse@chromium.org
BUG=https://bugs.webkit.org/show_bug.cgi?id=61177
TEST=cctest/test-heap-profiler/DocumentURL
Review URL: http://codereview.chromium.org/
7082012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8111
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 30 May 2011 13:49:22 +0000 (13:49 +0000)]
Reapply change to Pass undefined to JS builtins when called with
implicit receiver.
A couple of corner cases have to be treated specially to not break
everything: eval and getter/setter definitions.
R=fschneider@chromium.org
BUG=v8:1365
TEST=mjsunit/regress/regress-1365.js
Review URL: http://codereview.chromium.org/
7085034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8110
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 30 May 2011 13:23:17 +0000 (13:23 +0000)]
Fix a number of IC stubs to correctly set the call kind.
Make the call kind and call wrapper arguments explicit to force
developers to make a choice. This would have avoided the bug in the
first case.
R=fschneider@chromium.org
TEST=mjsunit/strict-mode-implicit-receiver.js
Review URL: http://codereview.chromium.org/
7086029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8109
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Mon, 30 May 2011 12:48:35 +0000 (12:48 +0000)]
Fix timeout and a small bug in a regression test.
Review URL: http://codereview.chromium.org/
7085031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8106
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Mon, 30 May 2011 11:31:41 +0000 (11:31 +0000)]
Simple support for const variables in Crankshaft.
The approach is to handle the common case in the optimizing
compiler and to bailout for the rare corner cases.
This is done by initializing all local const-variables with
the hole value and disallowing any use of the hole value statically.
Review URL: http://codereview.chromium.org/
6026006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8104
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sandholm@chromium.org [Mon, 30 May 2011 10:47:38 +0000 (10:47 +0000)]
Fix JSON issue with arrays.
Review URL: http://codereview.chromium.org/
7089003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8100
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Mon, 30 May 2011 09:42:28 +0000 (09:42 +0000)]
Removed dead flags.
Review URL: http://codereview.chromium.org/
7077028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8097
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sandholm@chromium.org [Mon, 30 May 2011 09:23:17 +0000 (09:23 +0000)]
Minor JSON cleanup. Also added comment requested for r8086.
Review URL: http://codereview.chromium.org/
7086026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8095
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Mon, 30 May 2011 08:43:52 +0000 (08:43 +0000)]
Prepare push to trunk. Now working on version 3.4.1.
Review URL: http://codereview.chromium.org/
7087025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8094
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Mon, 30 May 2011 07:53:21 +0000 (07:53 +0000)]
Allocate normal register for LDoubleToI in DoToInt32 (fixes no-sse3 issue)
Review URL: http://codereview.chromium.org/
7083021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8093
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 30 May 2011 07:38:45 +0000 (07:38 +0000)]
Remove unused DummyScope implementation.
R=lrn@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
7062020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8092
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 30 May 2011 07:33:12 +0000 (07:33 +0000)]
Simplify the Scope API.
Eliminate the LocalType enum in favor of a pair of functions, one for var
and const declarations and one for parameters. Move the responsibility for
adding a parameter variable to the Scope's internal data structure into the
Scope and out of the parser.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8091
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 30 May 2011 06:10:41 +0000 (06:10 +0000)]
linux: extend the ifdefs in shell.cc to cover V8_SHARED too
Review URL: http://codereview.chromium.org/
7076030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8090
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Mon, 30 May 2011 06:04:36 +0000 (06:04 +0000)]
Correctly set the length of string before creating filler object in the json parser (fixes crbug 84186).
Testcase created based on the supplied test case from the bug report, but using json parse directly instead of through the chrome javascript console.
Review URL: http://codereview.chromium.org/
7084023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8089
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sandholm@chromium.org [Thu, 26 May 2011 14:41:11 +0000 (14:41 +0000)]
Fix Win compilation issue introduced in r8081.
Review URL: http://codereview.chromium.org/
7074009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8086
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Thu, 26 May 2011 14:03:30 +0000 (14:03 +0000)]
Double allocation size for special json strings on every resize (fixes
crbug 83877)
The issue was that with the relatively small start and increment size of the string we created a ton of string handles when scanning a large string with special characters (500k+ in this case).
In addition, since we can not be sure the the newly allocated string
is in newspace a check is introduced and if not a filler object is
inserted instead of shrinking.
Review URL: http://codereview.chromium.org/
7075009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8082
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sandholm@chromium.org [Thu, 26 May 2011 13:58:48 +0000 (13:58 +0000)]
JSON.stringify improvement. Fast case in C++ for string arrays.
Review URL: http://codereview.chromium.org/
7077004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8081
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 26 May 2011 13:52:14 +0000 (13:52 +0000)]
ARM: Avoid using ldrd/strd with post increment
These instructions seems to cause problems in some situations. This reverts parts of r7873.
R=erik.corry@gmail.com
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//
6962010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8080
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Thu, 26 May 2011 12:16:13 +0000 (12:16 +0000)]
Fix stray character in last build
TBR=kmillikin@chromium.org
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8078
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Thu, 26 May 2011 12:07:22 +0000 (12:07 +0000)]
Prevent deopt on double value assignment to typed arrays
Implement truncation of double and tagged values when assigning to an element of a typed arrays in order to avoid depots.
BUG=1313
TEST=test/mjsunit/external-array.js
Review URL: http://codereview.chromium.org/
6961019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8077
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 26 May 2011 11:22:29 +0000 (11:22 +0000)]
Revert "Pass undefined to JS builtins when called with implicit receiver."
Presubmit and failing test.
TBR=lrn@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
7071009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8075
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 26 May 2011 11:17:15 +0000 (11:17 +0000)]
Add a simple test for inlining of arguments accesses.
R=whesse@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
7062018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8074
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 26 May 2011 11:07:48 +0000 (11:07 +0000)]
Pass undefined to JS builtins when called with implicit receiver.
A couple of corner cases have to be treated specially to not break
everything: eval and getter/setter definitions.
R=lrn@chromium.org
BUG=v8:1365
TEST=mjsunit/regress/regress-1365.js
Review URL: http://codereview.chromium.org/
7068009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8073
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 26 May 2011 10:56:07 +0000 (10:56 +0000)]
Do not allow inlining functions with direct arguments access.
Our implementations of arguments without materializing the arguments
object (based on inspecting the stack frame) does not work for inlined
functions. Guard all attempts by disallowing them if possible or else
bailing out of the optimizing compiler.
R=fschneider@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
6976022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8072
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 26 May 2011 07:46:18 +0000 (07:46 +0000)]
MIPS: Added the stop() instruction with same behavior as on Arm simulator.
The already working watchpoint break mechanism has been extended to handle "stop" instructions, with text messages.
Explanation (also in constants-mips.h):
On MIPS Simulator breakpoints can have different codes:
- Breaks between 0 and kMaxWatchpointCode are treated as simple watchpoints, the simulator will run through them and print the registers.
- Breaks between kMaxWatchpointCode and kMaxStopCode are treated as stop() instructions (see Assembler::stop()).
- Breaks larger than kMaxStopCode are simple breaks, dropping you into the debugger.
The current values are 31 for kMaxWatchpointCode and 127 for kMaxStopCode.
From the user's point of view this works the same way as the ARM stop instruction except for the break code usage detailed above.
Ported commits: r5723 (
3ba78d24)
BUG=
TEST=
Review URL: http://codereview.chromium.org//
7062014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8069
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 26 May 2011 07:35:09 +0000 (07:35 +0000)]
Make RegExp objects not callable.
Review URL: http://codereview.chromium.org/
6930006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8068
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 26 May 2011 07:02:35 +0000 (07:02 +0000)]
MIPS: port Fix GC-unsafe corner case in bit-not on ARM.
Port r8055 to mips.
(
5b50df9c)
BUG=
TEST=
Review URL: http://codereview.chromium.org//
7075003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8067
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
cira@chromium.org [Wed, 25 May 2011 22:18:41 +0000 (22:18 +0000)]
Landing codereview.chromium.org/
7033038 for jshin.
Make 'ignoreCase' work in collator.
BUG=28604
TEST=http://www.i18nl10n.com/chrome/coll.html
Review URL: http://codereview.chromium.org/
7008023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8066
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Wed, 25 May 2011 17:07:05 +0000 (17:07 +0000)]
Add fast cases for flat comparison to String::Is{Ascii,TwoByte}EqualTo.
R=ager@chromium.org
Review URL: http://codereview.chromium.org/
7064017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8065
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Wed, 25 May 2011 16:47:54 +0000 (16:47 +0000)]
tools/stats-viewer: Update chromium stats table layout.
R=vegorov@chromium.org
Review URL: http://codereview.chromium.org/
6992068
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8064
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 25 May 2011 12:40:04 +0000 (12:40 +0000)]
Untank the build.
Review URL: http://codereview.chromium.org/
6992061
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8060
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 25 May 2011 12:26:15 +0000 (12:26 +0000)]
Add comment better explaining the calling-stubs-from-stubs issue.
Review URL: http://codereview.chromium.org/
7031046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8059
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Wed, 25 May 2011 10:49:48 +0000 (10:49 +0000)]
Add a comment about map collection into MarkCompactCollector::MarkUnmarkedObject.
Review URL: http://codereview.chromium.org/
6992059
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8056
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 25 May 2011 10:35:00 +0000 (10:35 +0000)]
Fix GC-unsafe corner case in bit-not on ARM
Review URL: http://codereview.chromium.org/
6987009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8055
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Wed, 25 May 2011 08:37:38 +0000 (08:37 +0000)]
Change calls to undefined property setters to not throw (fixes issue 1355).
We currently throw when there is only a getter defined on the
property, but this should only be the case in strict mode.
Review URL: http://codereview.chromium.org/
7064027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8054
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Wed, 25 May 2011 07:37:14 +0000 (07:37 +0000)]
Prepare push to trunk. Now working on version 3.4.0.
R=ager@chromium.org
Review URL: http://codereview.chromium.org/
6979008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8052
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 25 May 2011 06:41:39 +0000 (06:41 +0000)]
MIPS: Fixed two bugs related to double function calls.
These originated from
4dfb7f2e.
This fixes cctest test-api/ConversionNumber in soft-float mode.
BUG=
TEST=
Review URL: http://codereview.chromium.org//
7068002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8051
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 25 May 2011 06:04:01 +0000 (06:04 +0000)]
MIPS: port Fix calls of strict mode function with an implicit receiver.
Port of r8040 to mips.
Original commit message:
Strict mode functions are to get 'undefined' as the receiver when
called with an implicit receiver. Modes are bad! It forces us to have
checks on all function calls.
This change attempts to limit the cost by passing information about
whether or not a call is with an implicit or explicit receiver in ecx
as part of the calling convention. The cost is setting ecx on all
calls and checking ecx on entry to strict mode functions.
Implicit/explicit receiver state has to be maintained by ICs. Various
stubs have to not clobber ecx or save and restore it.
CallFunction stub needs to check if the receiver is implicit when it
doesn't know from the context.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
6992051
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8050
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 24 May 2011 21:07:55 +0000 (21:07 +0000)]
Migrate flag from bit_field2 to bit_field3
R=ager@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/
7064029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8049
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 24 May 2011 16:23:22 +0000 (16:23 +0000)]
Ensure that external pixel arrays use a byte register in Crankshaft.
BUG=v8:1406
TEST=fast/canvas/canvas-putImageData.html
Review URL: http://codereview.chromium.org/
7067028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8048
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 24 May 2011 15:11:48 +0000 (15:11 +0000)]
Remove some dead code from full-codegen on all platforms.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
6966033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8047
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 24 May 2011 14:49:02 +0000 (14:49 +0000)]
Platform and build updates for Android build
R=ager@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//
7059015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8042
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Tue, 24 May 2011 14:02:59 +0000 (14:02 +0000)]
Add tests for function statements in strict mode.
Small fixes.
Added test for const declaration in strict mode.
TEST=preparser/strict-function-statement
Review URL: http://codereview.chromium.org/
6990056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8041
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 24 May 2011 14:01:36 +0000 (14:01 +0000)]
Fix calls of strict mode function with an implicit receiver.
Only IA32 version for now. I'll start porting.
Strict mode functions are to get 'undefined' as the receiver when
called with an implicit receiver. Modes are bad! It forces us to have
checks on all function calls.
This change attempts to limit the cost by passing information about
whether or not a call is with an implicit or explicit receiver in ecx
as part of the calling convention. The cost is setting ecx on all
calls and checking ecx on entry to strict mode functions.
Implicit/explicit receiver state has to be maintained by ICs. Various
stubs have to not clobber ecx or save and restore it.
CallFunction stub needs to check if the receiver is implicit when it
doesn't know from the context.
Review URL: http://codereview.chromium.org/
7039036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8040
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 24 May 2011 13:48:55 +0000 (13:48 +0000)]
Modify use of RelocInfo::CODE_TARGET_WITH_ID in full-codegen to make it the same on all platforms.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
7063021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8039
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 24 May 2011 13:02:01 +0000 (13:02 +0000)]
Update gyp files with json parser.
Review URL: http://codereview.chromium.org/
7066019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8034
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 24 May 2011 12:28:10 +0000 (12:28 +0000)]
Handle changes to the Object prototype in fast handling of arrays
R=ager@chromium.org
BUG=v8:1403
TEST=test/mjsunit/regress/regress-1403.js
Review URL: http://codereview.chromium.org//
7067019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8032
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 24 May 2011 12:20:16 +0000 (12:20 +0000)]
Rename TypeRecording...Stub into ...Stub.
There is no need for this long name.
Review URL: http://codereview.chromium.org/
7063017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8031
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 24 May 2011 12:19:57 +0000 (12:19 +0000)]
Enhance gc-nvp-trace-processor.py:
- correctly display time spent in scavenger (it was attributed to 'other' scope).
- display time spent in 'external' scope.
Review URL: http://codereview.chromium.org/
7067022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8030
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 24 May 2011 12:16:23 +0000 (12:16 +0000)]
Create stand-alone json parser (including scanner).
The current json parser and scanner inherits fromt he normal scanners and parsers,
which are more complicated than we need for parsing json.
The supplied scanner works directly on the string supplied and has a
fast case mode for scanning only ascii characters (it will simply
create a substring or a symbol directly from the existing string). To
allow for creating symbols from a substring I have added a
SubStringAsciiSymbolKey that creates the hash based from our string
without extracting the sub-string. In case we need to add the symbol
it simply creates the symbol directly from the characters inside the
given string.
Review URL: http://codereview.chromium.org/
7039037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8029
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 24 May 2011 12:12:41 +0000 (12:12 +0000)]
Fix a bug in deoptimization on x64.
When deoptimizing to just after an ignored (because of a duplicate
property name) object literal property initializer, we incorrectly saw
the value of the initializer expression on the stack in the
unoptimized code. The bug affected x64 only.
R=fschneider@chromium.org
BUG=v8:1404
Review URL: http://codereview.chromium.org/
7066015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8028
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 24 May 2011 11:07:06 +0000 (11:07 +0000)]
Change strict mode poison pill to be the samme type error function (fixes issue 1387).
We are now following the spec, and with regards to the error message we are following firefox (webkit still has different type errors in their nightly)
Review URL: http://codereview.chromium.org/
7067017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8026
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 24 May 2011 08:59:51 +0000 (08:59 +0000)]
Fix poliarty of CheckMap smi check on ia32
R=karlklose@chromium.org
BUG=none
TEST=existing tests
Review URL: http://codereview.chromium.org/
7067018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8025
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 24 May 2011 08:38:42 +0000 (08:38 +0000)]
Remove wrong assert to fix a debug crash with arguments object.
We don't need to assert the existence of a length-property of the
arguments object because it is not a JSArray, but just a normal JSObject.
BUG=v8:1227
Review URL: http://codereview.chromium.org/
7064020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8024
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 24 May 2011 07:56:20 +0000 (07:56 +0000)]
MIPS: arch-independent changes to support mips.
This change supports all non-crankshaft features except serialization.
This must be built after the changes in http://codereview.chromium.org/
6966031
are landed.
BUG=
TEST=
Review URL: http://codereview.chromium.org//
7039058
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8023
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 24 May 2011 07:23:32 +0000 (07:23 +0000)]
MIPS: Update for 23-May commits, and a few older ones.
Make mips-specifc changes for r7999, r8001, r8002.
Also bring in changes for older commits 7203, 7279, 7693, 7715, 7788.
Mips changes for 7715 (Arm: Support hardfloat in SCons build), and
7693 (Implement hardfloat calling convention in macro assembler and simulator)
resulted in changes to SConstruct.
BUG=
TEST=
Review URL: http://codereview.chromium.org//
6966031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8022
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Mon, 23 May 2011 22:23:50 +0000 (22:23 +0000)]
Inline more zone stuff.
R=ager@chromium.org
Review URL: http://codereview.chromium.org/
7066004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8009
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Mon, 23 May 2011 16:17:40 +0000 (16:17 +0000)]
Remove stub call in non-VFP3 code path of external array load.
KeyedLoadStubCompiler::GenerateLoadExternalArray is tail-calling a stub, which it is not allowed to, because its major key is higher than InstanceOf. Instead of changing the major key I decided to provide an inline implementation.
TEST=test-api/ExternalArrays with --noenable-vfp3
R=danno@chromium.org
Review URL: http://codereview.chromium.org/
7060007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8002
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Mon, 23 May 2011 15:59:38 +0000 (15:59 +0000)]
Add bit_field3 to Map objects
Reuse instance_descriptor field in the map to store additional flags when there are no descriptors. When descriptors get added to the map, move the flags to the DescriptorArray and access through indirection.
Review URL: http://codereview.chromium.org/
7033024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8001
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 23 May 2011 15:17:10 +0000 (15:17 +0000)]
Avoid calling ToObject on JSFunction receiver arguments for Function.call and Function.apply.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
7062007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8000
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Mon, 23 May 2011 15:04:32 +0000 (15:04 +0000)]
Ensure SMI check for receiver in external array store stub for ARM.
R=ager@chromium.org
BUG=none
TEST=test/mjsunit/external-array.js
Review URL: http://codereview.chromium.org/
7058011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7999
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Mon, 23 May 2011 13:42:33 +0000 (13:42 +0000)]
SMI checks for receiver in KeyedLoad/Store (done right this time)
R=ager@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/
7059013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7998
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 23 May 2011 13:03:45 +0000 (13:03 +0000)]
Add regression test for issue 1401
R=ager@chromium.org
BUG=v8:1401
TEST=test/regress/regress-1401.js
Review URL: http://codereview.chromium.org//
7062002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7995
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Mon, 23 May 2011 13:00:11 +0000 (13:00 +0000)]
Use placement new for ZoneLists in the parser.
Review URL: http://codereview.chromium.org/
7059012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7994
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Mon, 23 May 2011 12:59:02 +0000 (12:59 +0000)]
Isolates cleanup: get rid of some ugly macros.
Review URL: http://codereview.chromium.org/
7062003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7993
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 23 May 2011 12:56:00 +0000 (12:56 +0000)]
Remove newlines from preparser command line parameters to make Windows happy.
Review URL: http://codereview.chromium.org/
6974009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7992
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 23 May 2011 12:48:17 +0000 (12:48 +0000)]
Optimise the deoptimisation check to improve performance on modern ARM cores.
BUG=none
TEST=none
Committed: http://code.google.com/p/v8/source/detail?r=7909
Reverted in r7916.
Review URL: http://codereview.chromium.org//
7021007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7991
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Mon, 23 May 2011 11:41:28 +0000 (11:41 +0000)]
grokdump: Update the list of instance types.
Review URL: http://codereview.chromium.org/
7058008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7990
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Mon, 23 May 2011 11:40:36 +0000 (11:40 +0000)]
Add missing SMI checks to fix reliability bots
R=ager@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/
6974008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7989
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 23 May 2011 10:53:39 +0000 (10:53 +0000)]
Fix missing retun value.
Why did it ever work?
Review URL: http://codereview.chromium.org/
6990035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7988
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 23 May 2011 10:47:43 +0000 (10:47 +0000)]
Improve bit tests on IA32.
Bit tests with a memory operand should be avoided on Intel processors.
On Atom bts with a memory operand has 10~11 cycles latency and on Core 2
it has 5~6 cycles latency, and also produces multiple uops.
If the bit base operand is a register the latency is 1 cycle instead.
This CL improves several cases from Kraken 1.1 benchmark on Atom. For example,
12% for imaging-desaturate, 8% for audio-fft, and 5% for audio-beat-detection.
Review URL: http://codereview.chromium.org//
7048003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7987
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Mon, 23 May 2011 10:41:02 +0000 (10:41 +0000)]
Changed d8 to print exception stack traces like samples/shell.cc.
Review URL: http://codereview.chromium.org/
7060006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7986
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 23 May 2011 10:35:30 +0000 (10:35 +0000)]
Create template system for strict-mode tests.
This makes it possible to get total coverage without creating thousands
of individual test files.
Review URL: http://codereview.chromium.org/
7061008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7985
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Mon, 23 May 2011 09:11:24 +0000 (09:11 +0000)]
Fix object visitor.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7984
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 23 May 2011 08:35:46 +0000 (08:35 +0000)]
Experimental i18n extension breaks shared library build. Revert recent
changes to unblock V8 release.
Revert "Adding DateTimeFormat class to i18n API with following methods:"
Revert "Some internal methods are requested when v8 is built as DLL (V8_SHARED), and"
R=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/
7060005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7981
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 23 May 2011 07:12:58 +0000 (07:12 +0000)]
MIPS: Minor fixes to simulator and builtins-mips.
Updated to include fixes to several mips arch-specific files, corresponding to recent changes in r7944, r7935, r7926, r7914, r7910, r7895, and parts of r7423, which had previously been missed for mips. Rebased on r7964.
The simulator changes were missed on r7893 for code-stubs-mips,
where the DirectCEntry stuff was added.
There are also a couple small changes to builtins-mips following
r7879 for the other architectures.
BUG=
TEST=
Review URL: http://codereview.chromium.org//
7042031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7977
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Mon, 23 May 2011 07:00:54 +0000 (07:00 +0000)]
Fixed pretty printing of typeof/delete/void expressions. Put spaces around binary operations and comparisons to improve readability.
Review URL: http://codereview.chromium.org/
7055008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7976
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 23 May 2011 06:14:32 +0000 (06:14 +0000)]
Some internal methods are requested when v8 is built as DLL (V8_SHARED), and
they are not available.
Make them no-op (or better yet part of public API).
TEST = Build Chromium with V8_SHARED
Review URL: http://codereview.chromium.org/
7004051
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7973
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 23 May 2011 06:00:45 +0000 (06:00 +0000)]
Prepare push to trunk. Now working on version 3.3.10.
R=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/
7059006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7971
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Fri, 20 May 2011 15:45:06 +0000 (15:45 +0000)]
ll_prof: Add function optimization status markers.
Review URL: http://codereview.chromium.org/
7056012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7970
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Fri, 20 May 2011 15:11:00 +0000 (15:11 +0000)]
Remove redundant 'running' checks for ProfilerEventsProcessor in tests.
A follow up to r7949
R=vitalyr@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/
7040014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7969
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Fri, 20 May 2011 11:49:52 +0000 (11:49 +0000)]
Refactoring only: Simplified LChunkBuilder:DoTest a bit, making it a simple if-then-else cascade.
Review URL: http://codereview.chromium.org/
7055006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7968
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
cira@chromium.org [Thu, 19 May 2011 21:12:47 +0000 (21:12 +0000)]
Adding DateTimeFormat class to i18n API with following methods:
- format
- getWeekdays
- getMonths
- get Eras
- getAmPm
TEST=Visit i18n.kaziprst.org/datetimeformat.html
Review URL: http://codereview.chromium.org/
7014019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7967
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 19 May 2011 13:26:47 +0000 (13:26 +0000)]
Allocate fewer handles in the TypeFeedbackOracle.
R=vegorov@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
7047009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7964
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 19 May 2011 13:15:57 +0000 (13:15 +0000)]
When inlining fails, disable optimization of the proper function.
Also, refactor disabling of optimization to make it easier to ensure
that both SharedFunctionInfo and Code get disabled.
R=whesse@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
7033020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7963
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Thu, 19 May 2011 13:14:12 +0000 (13:14 +0000)]
Also skip unary op IC when iterating over break locations in the debugger.
Review URL: http://codereview.chromium.org/
7040002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7962
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 19 May 2011 12:53:50 +0000 (12:53 +0000)]
Refactor TraceInlining method of hydrogen so it works correctly.
Fix TraceInline.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
7049005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7961
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Thu, 19 May 2011 11:47:34 +0000 (11:47 +0000)]
Rename Proxy class to Foreign, to avoid confusion with Harmony proxies.
Also fix grokdump, which was off by one after intro of JSProxy type.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7959
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 19 May 2011 09:22:32 +0000 (09:22 +0000)]
Avoid conflict between method and type name.
Make builder happy.
Review URL: http://codereview.chromium.org/
7046004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7954
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00