lrn@chromium.org
30c0420b39
Undo change from .call to %_CallFunction.
...
The latter doesn't handle promotion of null/undefined to global object as
receiver for non-strict functions.
Review URL: http://codereview.chromium.org/6615013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7043 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-03 12:44:39 +00:00
whesse@chromium.org
5a40de9b21
Add new ARM macro assembler function CompareRoot left out of previous commit.
...
Review URL: http://codereview.chromium.org/6614015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7042 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-03 12:21:37 +00:00
whesse@chromium.org
8ff9165055
Simplify test for typeof x == 'y' on all platforms.
...
Review URL: http://codereview.chromium.org/6606005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7041 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-03 12:16:21 +00:00
lrn@chromium.org
4707d7ac08
Stop using plain Arrays internally in built-in functions.
...
In built-in code we use arrays for internal computations.
This makes it possible to affect the built-in code by putting getters
or setters on the Array prototype chain.
This adds a new internal Array constructor that creates Arrays with
a very simplistic prototype chain that doesn't include any publicly
visible objects. These Arrays shoudl ofcourse never leak outside the
builtins, since that would expose the prototype object.
The prototype object contains only the array functions that we use:
push, pop and join (and not even a toString, so it doesn't stringify
well).
Also change uses of .call to %_CallFunction.
BUG=1206
Review URL: http://codereview.chromium.org/6602081
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7040 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-03 11:49:03 +00:00
lrn@chromium.org
8fddb2a664
Handled return-value of SetElement in some cases, or avoided it in other.
...
SetElement can cause an exception to be thrown. If its return value
isn't checked, this exception might not be handled at the correct time.
In some cases, it's a matter of returning Exception::Failure() from
a runtime function.
In other cases, code using SetElement on a JSArray has been changed
to setting directly on a FixedArray and only creating the JSArray
at the end.
Review URL: http://codereview.chromium.org/6588130
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7039 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-03 10:16:22 +00:00
sgjesse@chromium.org
e3c95a645f
Fix mistake in r7033
...
TBR=karlklose@chromium.org
Review URL: http://codereview.chromium.org/6614012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7038 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-03 09:46:27 +00:00
sgjesse@chromium.org
98d82ea9de
Add lithium support for %_GetCachedArrayIndex for IA32 and X64
...
BUG=v8:1093
Review URL: http://codereview.chromium.org/6611014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7037 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-03 09:33:08 +00:00
sgjesse@chromium.org
1c210fc221
Remove unwanted character
...
TBR=karlklose@chromium.org
Review URL: http://codereview.chromium.org/6615008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7036 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-03 08:50:35 +00:00
sgjesse@chromium.org
53764d16f5
Turn on crankshaft as the default for X64 and ARM
...
Review URL: http://codereview.chromium.org/6603012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7035 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-03 08:43:55 +00:00
sgjesse@chromium.org
39efab0df6
ARM: Support %_SwapElements in the full compiler
...
Review URL: http://codereview.chromium.org/6597106
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7033 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-03 07:36:04 +00:00
sgjesse@chromium.org
37214d189d
Fixed lol SetProperty() calls to specify the needed strict mode.
...
Patch by Mark Lam from Hewlett-Packard Development Company, LP
Review URL: http://codereview.chromium.org/6615006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7032 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-03 07:14:55 +00:00
whesse@chromium.org
9d89ec5c00
Add ArithmeticD(MOD) to x64 optimizing code generator. Minor changes to ArithmeticD on other platforms.
...
Review URL: http://codereview.chromium.org/6594118
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7029 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-02 15:04:20 +00:00
karlklose@chromium.org
64191ccc8d
ARM: Implement untagged input for TranscendentalCacheStub.
...
Review URL: http://codereview.chromium.org/6591073
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7028 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-02 14:40:38 +00:00
kmillikin@chromium.org
d6a041b8f9
Remove some more uses of subgraphs and more cleanup of the graph builder.
...
Do not use subgraphs to implement the translation of simple branching
control flow, for the function body entry, or for labeled blocks.
Combine all the loop construction functions into a single one.
Resolve a possible problem with duplicate AST IDs used both for joined loop
break blocks, the normal loop exit, and for their common successor, by never
introducing the extra (successor) block and instead making the normal loop
exit a predecessor of the break join block. There is a similar issue with
joined continue blocks.
Remove a (never needed) two-element zone list per each time we replace one
hydrogen value with another.
Review URL: http://codereview.chromium.org/6604002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7027 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-02 14:09:59 +00:00
ager@chromium.org
9390c69a54
Delete empty directories.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7026 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-02 13:51:41 +00:00
ager@chromium.org
b0aa981b61
Prepare push to trunk. Now working on version 3.2.0.
...
Review URL: http://codereview.chromium.org/6588118
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7022 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-02 13:29:59 +00:00
whesse@chromium.org
af77b5a878
Add MarkAsCall to the LArithmeticD::MOD instruction, that calls a C function, on ia32 platform
...
Review URL: http://codereview.chromium.org/6596105
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7021 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-02 12:26:20 +00:00
ager@chromium.org
6b069023c0
Generalize fix for overflowing of the frame-element constant pool.
...
BUG=74627
Review URL: http://codereview.chromium.org/6588116
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7018 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-02 11:45:31 +00:00
kmillikin@chromium.org
043a876e93
Translate loops without using subgraphs.
...
Build all loop graphs without using class HSubgraph. This also eliminates a
silly goto for the update expression of a for loop.
Support for peeling loops is removed because it's currently untested.
Review URL: http://codereview.chromium.org/6602031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7017 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-02 11:09:25 +00:00
fschneider@chromium.org
ef06ab5f3e
Enable optimizing JSFunctions that are in new-space.
...
It avoids strange performance behavior where hot functions do not
get optimized if there is no GC to promote them, and it does not seem
to hurt us otherwise.
Review URL: http://codereview.chromium.org/6594073
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7016 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-02 10:16:47 +00:00
ricow@chromium.org
3b5256b352
X64: implement DoHasCachedArrayIndex in lithium compiler.
...
Review URL: http://codereview.chromium.org/6596104
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7015 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-02 10:12:33 +00:00
sgjesse@chromium.org
1703b8a35c
Implement int32 TypeRecordingBinaryOp on ARM.
...
TEST=none
BUG=none
Patch by Rodolph Perfetta from ARM Ltd.
Review URL: http://codereview.chromium.org/6594009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7014 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-02 09:31:42 +00:00
ricow@chromium.org
617ccc1d93
X64: Implement StringCharAtStub which is used from lithium codegen.
...
This fixes issue 1116 and enables the stub in lithium codegen.
Review URL: http://codereview.chromium.org/6588113
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7013 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-02 09:28:04 +00:00
sgjesse@chromium.org
9c161bcf21
Adding files for LiveObjectList implementation.
...
Patch by Mark Lam from Hewlett-Packard Development Company, LP
Review URL: http://codereview.chromium.org/6357005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7012 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-02 09:16:05 +00:00
sgjesse@chromium.org
8481a75698
Adding debugger interface and runtime functions hooks for supporting
...
LiveObjectList functionality.
Patch by Mark Lam from Hewlett-Packard Development Company, LP
Review URL: http://codereview.chromium.org/6351007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7011 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-02 08:10:38 +00:00
ricow@chromium.org
33bc7f974f
X64: Always use rax as left register from DoInstanceOfKnownGlobal.
...
On IA32 we use InstanceofStub::left(), but on x64 we have just used rax and rdx directly. This fixes the assertion crashes on x64 crankshaft.
Review URL: http://codereview.chromium.org/6596101
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7010 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-02 07:52:14 +00:00
ager@chromium.org
ed7265ea21
Remove break iterator support from the i18n api extension. It breaks
...
the Windows WebCore build.
http://build.chromium.org/p/client.v8/builders/Webkit/builds/854/steps/compile/logs/stdio
TBR=cira@chromium.org
Review URL: http://codereview.chromium.org/6596100
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7009 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-02 07:32:59 +00:00
ager@chromium.org
06ecb61598
Attempt to fix WebCore windows build.
...
If this does not work I will revert the latests changes to the
experimental i8n extension.
TBR=cira@chromium.org
Review URL: http://codereview.chromium.org/6594111
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7008 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-02 07:12:53 +00:00
mmaly@chromium.org
1d040083b0
Assignment to read only properties throws in strict mode.
...
Review URL: http://codereview.chromium.org/6594037/
Revert "Revert "Assignment to read only properties throws in strict mode.""
This reverts commit aefcd82e1d36d458dd071ebf4777340f08aa67b1.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7007 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-02 04:53:43 +00:00
cira@chromium.org
ac7bc8f1c3
Adding break iterator support to the i18n api extension.
...
This is vendor specific, and is prefixed by v8.
WebKit layout tests will be added in a separate CL.
Review URL: http://codereview.chromium.org/6598014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7006 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-01 19:43:28 +00:00
vitalyr@chromium.org
d9b0c93d23
Allow eval to be overridden with a callable non-function object.
...
We simply need to remove early checks in the resolve eval runtime
functions. CallFunctionStub that follows will handle non-functions in
the right way.
Review URL: http://codereview.chromium.org/6591075
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7005 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-01 19:05:06 +00:00
mikhail.naganov@gmail.com
60711c074f
Refactor heap profiler's code to make possible including
...
into heap snapshots non-HeapObjects. This is needed as a
preparation for adding DOM subtrees tracking.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6596073
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7004 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-01 17:38:49 +00:00
ricow@chromium.org
63beeed358
Revert 6996, causes Mozilla debug failures on x64 with crankshaft.
...
Review URL: http://codereview.chromium.org/6594076
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7003 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-01 16:32:30 +00:00
vegorov@chromium.org
0117f823f4
Correctly maintain virtual frame in unary operations on ia32.
...
Review URL: http://codereview.chromium.org/6591070
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7000 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-01 15:41:23 +00:00
fschneider@chromium.org
8a72161585
Add lazy deoptimization environment to instanceof by marking it as a call.
...
This fixes an assert when an exception is thrown inside instanceof.
BUG=v8:1207
TEST=mjsunit/regress/regress-1207.js
Review URL: http://codereview.chromium.org/6588083
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6999 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-01 15:37:24 +00:00
vitalyr@chromium.org
9c05698145
Port eval resolve in call optimization from classic to full codegen.
...
Review URL: http://codereview.chromium.org/6598066
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6998 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-01 15:34:23 +00:00
mikhail.naganov@gmail.com
f0cf78f09e
Small fix for when not building with OBJECT_PRINT defined.
...
Patch by Mark Lam from Hewlett-Packard Development Company, LP
Review URL: http://codereview.chromium.org/6602034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6997 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-01 14:49:07 +00:00
ricow@chromium.org
4cac2c91b7
Reenable DoStoreContextSlot, I can't reproduce any local bugs on this.
...
Review URL: http://codereview.chromium.org/6588082
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6996 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-01 14:33:33 +00:00
whesse@chromium.org
505976cd53
X64: Add inline SwapElements to fundamental code generator on x64 platform.
...
Review URL: http://codereview.chromium.org/6594074
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6995 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-01 14:29:27 +00:00
sgjesse@chromium.org
7b0f5d4110
ARM: Support inlined version of %_FastAsciiArrayJoin on ARM
...
Review URL: http://codereview.chromium.org/6594071
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6994 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-01 14:09:23 +00:00
lrn@chromium.org
6475f8d7e5
Remove HandleCell and use GlobalHandle and HandleScope::Escape instead.
...
Added HandleScope::Escape to HandleScope to allow exiting a value
from a scope.
Review URL: http://codereview.chromium.org/6594075
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6993 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-01 14:00:55 +00:00
vegorov@chromium.org
97aecae1cb
Fix several evaluation order sensitive GC-unsafe places.
...
Review URL: http://codereview.chromium.org/6596070
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6991 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-01 13:16:57 +00:00
ager@chromium.org
ad27c1271e
Use correct type for the map-counters flag used in d8.
...
Review URL: http://codereview.chromium.org/6598063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6989 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-01 12:26:19 +00:00
ricow@chromium.org
78a21647b9
Remove exception for mjsunit/regress/regress-deopt-gc on arm and x64.
...
This was wrongly marked as skip since we do not need to patch reloc info on x64 and arm when doing deoptization (issue 1094).
Review URL: http://codereview.chromium.org/6597067
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6984 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-01 11:36:45 +00:00
sgjesse@chromium.org
45df23054a
ARM: Fix unaligned read/write
...
Fixed Building the simulator with CAN_USE_UNALIGNED_ACCESSES defined.
Fixed a bug in the code generator where it was doing unaliged read and write.
Review URL: http://codereview.chromium.org/6598062
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6983 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-01 11:23:29 +00:00
fschneider@chromium.org
5a9c4aad23
Make the materialization of smi constants consistent between the two compilers.
...
This change makes the full code generator always materialize smi constants to match the behavior
of the environment tracked in the optimizing compiler. The mismatch between environment
and what the non-optimized code causes problems and potentially crashes when doing deoptimization
and OSR.
BUG=67732
Review URL: http://codereview.chromium.org/6592064
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6982 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-01 10:58:43 +00:00
kmillikin@chromium.org
6b1530ea6d
Fix a stack height mismatch when deoptimizing.
...
When deoptimizing from the key subexpression of a keyed arguments access,
the unoptimized code expects to find the value of the receiver on the
expression stack. The environment of the optimizing compiler did not
contain this value during evaluation of the key subexpression.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6981 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-01 09:32:45 +00:00
whesse@chromium.org
83248ea0fd
X64 Crankshaft: Add DoPower to lithium compiler on x64 platform.
...
Review URL: http://codereview.chromium.org/6592038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6980 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-01 09:30:56 +00:00
sgjesse@chromium.org
8f78eb7d4c
Minor change to FullCodeGenerator::EmitFastAsciiArrayJoin
...
The counting loop is always run at least once, and checking the loop condition once is sufficient.
Review URL: http://codereview.chromium.org/6592010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6979 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-01 08:17:13 +00:00
ricow@chromium.org
c63d9c97cf
Do not allow non-configurable global properties to be made configurable (fixes issue 1213).
...
We do not currently check that a global property is actually
configurable before overwriting it with a new property.
Review URL: http://codereview.chromium.org/6597045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6978 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-01 08:09:17 +00:00