platform/upstream/v8.git
13 years agoReapply 7143 after fixing issue 1250
ricow@chromium.org [Tue, 15 Mar 2011 12:25:13 +0000 (12:25 +0000)]
Reapply 7143 after fixing issue 1250

Review URL: http://codereview.chromium.org/6698027

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7175 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoARM: Improved double to integer truncation.
karlklose@chromium.org [Tue, 15 Mar 2011 11:19:13 +0000 (11:19 +0000)]
ARM: Improved double to integer truncation.

Patch from ARM Ltd.

BUG=none
TEST=Added to cctest/test-assembler-arm.cc and cctest/test-disasm-arm.cc

Review URL: http://codereview.chromium.org/6625084

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7174 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRevert "Strict mode ThrowTypeError functions for"
ager@chromium.org [Tue, 15 Mar 2011 11:01:21 +0000 (11:01 +0000)]
Revert "Strict mode ThrowTypeError functions for"

TBR=mmaly@chromium.org

Review URL: http://codereview.chromium.org/6696018

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7173 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix SmiCompare on 64 bit to distinguish between comparisons where
erik.corry@gmail.com [Tue, 15 Mar 2011 10:03:57 +0000 (10:03 +0000)]
Fix SmiCompare on 64 bit to distinguish between comparisons where
we know that both sides are Smi and those where we don't.  Fix inlined
symbol table probes to cope with strings, undefined and null (indicating
a deleted entry).  Some changes to other architectures that were found
with the new asserts.
Review URL: http://codereview.chromium.org/6682026

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7172 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoDo not set value on host objects in Object.defineProperty (fixes issue 1250).
ricow@chromium.org [Tue, 15 Mar 2011 09:16:12 +0000 (09:16 +0000)]
Do not set value on host objects in Object.defineProperty (fixes issue 1250).

To be compatible with safari we should not change the value on API
objects in Object.defineProperty (e.g., the window.location object).

Review URL: http://codereview.chromium.org/6673042

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7169 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoStrict mode ThrowTypeError functions for
mmaly@chromium.org [Mon, 14 Mar 2011 17:46:37 +0000 (17:46 +0000)]
Strict mode ThrowTypeError functions for
- function.caller
- function.arguments

Review URL: http://codereview.chromium.org/6691003/

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7168 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRemove unused StringCharCodeAt stub.
vitalyr@chromium.org [Mon, 14 Mar 2011 16:54:51 +0000 (16:54 +0000)]
Remove unused StringCharCodeAt stub.

Review URL: http://codereview.chromium.org/6690014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7163 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoPrepare push to trunk. Now working on version 3.2.3.
whesse@chromium.org [Mon, 14 Mar 2011 15:43:36 +0000 (15:43 +0000)]
Prepare push to trunk.  Now working on version 3.2.3.
Review URL: http://codereview.chromium.org/6685048

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7161 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoCrankshaft support for StringCharFromCode.
vitalyr@chromium.org [Mon, 14 Mar 2011 15:36:00 +0000 (15:36 +0000)]
Crankshaft support for StringCharFromCode.

This allows more efficient implementations of string keyed access,
String.prototype.chatAt, and String.fromCharCode.

Review URL: http://codereview.chromium.org/6682025

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7160 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix presubmit failure introduced by r7158.
vegorov@chromium.org [Mon, 14 Mar 2011 15:09:50 +0000 (15:09 +0000)]
Fix presubmit failure introduced by r7158.

TBR=kmillikin@chromium.org

Review URL: http://codereview.chromium.org/6685047

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7159 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoReduce strength of ModI for power-of-2 divisor.
vegorov@chromium.org [Mon, 14 Mar 2011 14:42:14 +0000 (14:42 +0000)]
Reduce strength of ModI for power-of-2 divisor.

This is ia32 only. I will port it to other platforms if this looks good to you.

Review URL: http://codereview.chromium.org/6665006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7158 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoARM: Move the constant pool blocking for call instruction sequences
sgjesse@chromium.org [Mon, 14 Mar 2011 12:32:20 +0000 (12:32 +0000)]
ARM: Move the constant pool blocking for call instruction sequences

The constant pool blocking for call instruction sequences is hoisted to the begof the function generating the call sequence.
Review URL: http://codereview.chromium.org/6690009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7155 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoWhen aborting optimization attempts for a function, make sure
kasperl@chromium.org [Mon, 14 Mar 2011 11:26:19 +0000 (11:26 +0000)]
When aborting optimization attempts for a function, make sure
to clear any eager optimizing hints in the compilation cache.
Review URL: http://codereview.chromium.org/6681031

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7154 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix a problem where Object.getOwnPropertyDescriptor and related functions unintention...
whesse@chromium.org [Fri, 11 Mar 2011 13:57:20 +0000 (13:57 +0000)]
Fix a problem where Object.getOwnPropertyDescriptor and related functions unintentionally called toString on the values of an object's properties.  Fixes issue 1233.
Review URL: http://codereview.chromium.org/6677017

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7151 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoX64: Load more values from the root array, rather than from immediate 64-bit constants.
whesse@chromium.org [Fri, 11 Mar 2011 13:33:39 +0000 (13:33 +0000)]
X64: Load more values from the root array, rather than from immediate 64-bit constants.
Review URL: http://codereview.chromium.org/6676025

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7150 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFaster invocation for most of API calls.
antonm@chromium.org [Fri, 11 Mar 2011 13:25:01 +0000 (13:25 +0000)]
Faster invocation for most of API calls.

For most of API calls we generate better stub which is faster than invocation
via builtin, so use IC instead of direct call in Hydrogen.

Review URL: http://codereview.chromium.org/6672026

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7149 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoARM: Implement inline conversion of heap numbers to int32 values for bitoperations.
karlklose@chromium.org [Fri, 11 Mar 2011 12:12:44 +0000 (12:12 +0000)]
ARM: Implement inline conversion of heap numbers to int32 values for bitoperations.

For bit operations, values are truncated and converted to the range -2^31 through 2^31 - 1. This patch provides inlined handling of this conversion for all heap numbers.

Before, we were calling runtime for every heap number that did not fit into a signed int32.

Review URL: http://codereview.chromium.org/6658034

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7148 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix compile failure with GCC 4.5.0 (issue 1244)
ricow@chromium.org [Fri, 11 Mar 2011 11:02:27 +0000 (11:02 +0000)]
Fix compile failure with GCC 4.5.0 (issue 1244)

GCC apparently assumes that given that we do a static cast in the next
line the value must actually be in StrictModeFlag enum range (even
though this is actually what we are asserting)

Review URL: http://codereview.chromium.org/6670031

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7147 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix x64 array length operations in Crankshaft
danno@chromium.org [Fri, 11 Mar 2011 10:30:33 +0000 (10:30 +0000)]
Fix x64 array length operations in Crankshaft

x64-bit array length loads and bounds checks should be 32-bits

Review URL: http://codereview.chromium.org/6676009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7146 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix presubmit by deleting regress-1240 not deleted by last patch.
ricow@chromium.org [Fri, 11 Mar 2011 09:08:52 +0000 (09:08 +0000)]
Fix presubmit by deleting regress-1240 not deleted by last patch.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7145 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRevert revision 7143, this causes a number of webkit tests to fail.
ricow@chromium.org [Fri, 11 Mar 2011 09:02:54 +0000 (09:02 +0000)]
Revert revision 7143, this causes a number of webkit tests to fail.

This includes a security test. Reverting to investigate further.

Review URL: http://codereview.chromium.org/6673019

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7144 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoChange __defineGetter__ and __defineSetter__ to respect non-configurable.
ricow@chromium.org [Fri, 11 Mar 2011 08:05:59 +0000 (08:05 +0000)]
Change __defineGetter__ and __defineSetter__ to respect non-configurable.

This makes us compatible with firefox. Earlier on we were somehow
compatible with safari - which will allow defining a getter even when
an existing getter is present and non-configurable. We would, however,
in addition to overwriting the getter also change configurable to
true. The approach used by firefox seems much more sound, i.e., why
should it be possible to use __defineGetter__ or __defineSetter__ to
overwrite a non-configurable getter or setter respectively.

I will file a bug on the webkit bugtracker.

Review URL: http://codereview.chromium.org/6658037

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7143 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoUse pthread_kill on solaris.
vitalyr@chromium.org [Fri, 11 Mar 2011 07:41:45 +0000 (07:41 +0000)]
Use pthread_kill on solaris.

Landing patch by Ryan Dahl.

TBR=vegorov@chromium.org

Original review: http://codereview.chromium.org/6667030/

Review URL: http://codereview.chromium.org/6667031

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7142 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoSample correct registers on solaris.
vitalyr@chromium.org [Fri, 11 Mar 2011 07:34:55 +0000 (07:34 +0000)]
Sample correct registers on solaris.

Landing patch by Ryan Dahl.

TBR=vegorov@chromium.org

Original review: http://codereview.chromium.org/6676019/

Review URL: http://codereview.chromium.org/6665023

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7141 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoUpdate platform-solaris to support runtime profiling.
vitalyr@chromium.org [Fri, 11 Mar 2011 01:43:44 +0000 (01:43 +0000)]
Update platform-solaris to support runtime profiling.

Landing patch by Ryan Dahl.

TBR=vegorov@chromium.org

Original review: http://codereview.chromium.org/6674002/

Review URL: http://codereview.chromium.org/6667025

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7140 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix bit field for GlobalHandles::Node State in MSVC.
mikhail.naganov@gmail.com [Thu, 10 Mar 2011 17:29:37 +0000 (17:29 +0000)]
Fix bit field for GlobalHandles::Node State in MSVC.

TBR=vitalyr@chromium.org
BUG=1243
TEST=none

Review URL: http://codereview.chromium.org/6658040

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7136 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix error in sin-cos.js test introduced in r7129.
whesse@chromium.org [Thu, 10 Mar 2011 14:04:18 +0000 (14:04 +0000)]
Fix error in sin-cos.js test introduced in r7129.
Review URL: http://codereview.chromium.org/6659034

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7133 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoARM: Port r7089 to ARM
sgjesse@chromium.org [Thu, 10 Mar 2011 13:58:20 +0000 (13:58 +0000)]
ARM: Port r7089 to ARM

Ensure that there is always enough bytes between consequtive calls in optimized code to write a call instruction at the return points without overlapping.

Add a call to deoptimize all functions after running tests with --stress-opt. This will catch some issues with functions which cannot be forcefully deoptimized. Some of the tests failed on ARM with that change without the rest of the changes in this change.
Review URL: http://codereview.chromium.org/6661022

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7132 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix for win32 after r7125. For some reason introducing a bit field into GlobalHandles...
mikhail.naganov@gmail.com [Thu, 10 Mar 2011 13:45:35 +0000 (13:45 +0000)]
Fix for win32 after r7125. For some reason introducing a bit field into GlobalHandles::Node causes a trouble.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7131 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoCrankshaft: Fix error in range analysis of compare operations.
whesse@chromium.org [Thu, 10 Mar 2011 13:34:56 +0000 (13:34 +0000)]
Crankshaft: Fix error in range analysis of compare operations.
Review URL: http://codereview.chromium.org/6658035

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7130 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoX64 Crankshaft: Fix error in computation of sine and cosine.
whesse@chromium.org [Thu, 10 Mar 2011 13:34:23 +0000 (13:34 +0000)]
X64 Crankshaft: Fix error in computation of sine and cosine.
Review URL: http://codereview.chromium.org/6646047

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7129 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoNormalize statistics about compilation time and allocation size.
fschneider@chromium.org [Thu, 10 Mar 2011 13:26:51 +0000 (13:26 +0000)]
Normalize statistics about compilation time and allocation size.

Now we print compilation time and zone allocation per KB of compiled
source code to better compare with previous revisions.

Review URL: http://codereview.chromium.org/6646015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7128 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix x64 build after r7125
mikhail.naganov@gmail.com [Thu, 10 Mar 2011 12:58:57 +0000 (12:58 +0000)]
Fix x64 build after r7125

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7127 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoA follow-up to r7125: fix a couple of remaining comments.
mikhail.naganov@gmail.com [Thu, 10 Mar 2011 12:22:59 +0000 (12:22 +0000)]
A follow-up to r7125: fix a couple of remaining comments.

Review URL: http://codereview.chromium.org/6626043/

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7126 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAdd an interface for an embedder to provide information about native
mikhail.naganov@gmail.com [Thu, 10 Mar 2011 12:05:31 +0000 (12:05 +0000)]
Add an interface for an embedder to provide information about native
objects retained by object groups and global handles.

This information is then used during heap snapshot generation
to provide a more complete memory picture.

This patch will be needed to fix https://bugs.webkit.org/show_bug.cgi?id=53659.

Review URL: http://codereview.chromium.org/6626043

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7125 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRemove `sfi' abbreviations (a follow-up to r6902).
mikhail.naganov@gmail.com [Thu, 10 Mar 2011 12:00:27 +0000 (12:00 +0000)]
Remove `sfi' abbreviations (a follow-up to r6902).

BUG=none
TEST=none

Review URL: http://codereview.chromium.org/6646022/

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7124 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRevert r7119..r7121
mikhail.naganov@gmail.com [Thu, 10 Mar 2011 11:55:03 +0000 (11:55 +0000)]
Revert r7119..r7121

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7123 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoInitialize zone lists in the register allocator with more reasonable initial capacities.
fschneider@chromium.org [Thu, 10 Mar 2011 11:54:55 +0000 (11:54 +0000)]
Initialize zone lists in the register allocator with more reasonable initial capacities.

Also replace fixed length zone lists with embedded vectors for the fixed live ranges.

Review URL: http://codereview.chromium.org/6660023

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7122 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agolint
mikhail.naganov@gmail.com [Thu, 10 Mar 2011 11:49:17 +0000 (11:49 +0000)]
lint

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7121 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agocomment
mikhail.naganov@gmail.com [Thu, 10 Mar 2011 11:49:07 +0000 (11:49 +0000)]
comment

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7120 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agorenamed
mikhail.naganov@gmail.com [Thu, 10 Mar 2011 11:48:56 +0000 (11:48 +0000)]
renamed

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7119 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoX64: Change kSmiConstantRegister to r12.
lrn@chromium.org [Thu, 10 Mar 2011 10:14:24 +0000 (10:14 +0000)]
X64: Change kSmiConstantRegister to r12.

We never use the smi register in places where it matters that r12 as
a base register needs an extra SIB byte. Might as well free up the
unencumbered r15 register instead.

Review URL: http://codereview.chromium.org/6647015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7113 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoPrepare push to trunk. Now working on version 3.2.2.
danno@chromium.org [Thu, 10 Mar 2011 09:43:58 +0000 (09:43 +0000)]
Prepare push to trunk.  Now working on version 3.2.2.

Review URL: http://codereview.chromium.org/6659030

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7112 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAdd bailout to x64 pixel array lithium instructions.
danno@chromium.org [Wed, 9 Mar 2011 17:14:12 +0000 (17:14 +0000)]
Add bailout to x64 pixel array lithium instructions.

Stops segfaults in tests while tracking down the problem.

TBR=kmillikin@chromium.org

Review URL: http://codereview.chromium.org/6647024

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7111 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRebuild scope chain from serialized scope info before parsing lazily.
vegorov@chromium.org [Wed, 9 Mar 2011 16:57:03 +0000 (16:57 +0000)]
Rebuild scope chain from serialized scope info before parsing lazily.

We used to rebuild it in Scope::Analyze but this might lead to mismatch between scopes seen by parser during the first and the second parse of the function.

BUG=v8:1230

Review URL: http://codereview.chromium.org/6646017

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7110 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoX64 Crankshaft: Add inline one-element cache for Instanceof.
whesse@chromium.org [Wed, 9 Mar 2011 15:57:47 +0000 (15:57 +0000)]
X64 Crankshaft: Add inline one-element cache for Instanceof.
Review URL: http://codereview.chromium.org/6621071

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7109 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoReuse backing store of two zone lists by using Rewind(0) instead of Clear().
fschneider@chromium.org [Wed, 9 Mar 2011 15:50:24 +0000 (15:50 +0000)]
Reuse backing store of two zone lists by using Rewind(0) instead of Clear().

Review URL: http://codereview.chromium.org/6647019

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7108 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoX64 Crankshaft: Fix unrestored context register in Math.power.
whesse@chromium.org [Wed, 9 Mar 2011 15:27:07 +0000 (15:27 +0000)]
X64 Crankshaft: Fix unrestored context register in Math.power.
Review URL: http://codereview.chromium.org/6649020

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7107 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoCombine typed and pixel arrays.
danno@chromium.org [Wed, 9 Mar 2011 15:01:16 +0000 (15:01 +0000)]
Combine typed and pixel arrays.

Worth mentioning:
- Specialized versions of pixel array and store/loads inside the generic stubs have been removed, since to have parity for all external arrays, 8 different versions would have to be inlined/checked.
- There's a new constant in v8.h for external arrays with pixel array elements.

Review URL: http://codereview.chromium.org/6546036

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7106 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRemove class HSubgraph.
kmillikin@chromium.org [Wed, 9 Mar 2011 12:37:56 +0000 (12:37 +0000)]
Remove class HSubgraph.

Review URL: http://codereview.chromium.org/6647018

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7100 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRefactor construction of switch statements to avoid subgraphs.
kmillikin@chromium.org [Wed, 9 Mar 2011 12:06:54 +0000 (12:06 +0000)]
Refactor construction of switch statements to avoid subgraphs.

Refactor construction of switch statements so it doesn't use class
HSubgraph.

There are also a few improvements.  We do not use an auxiliary list of
comparisons because they're embedded as a linked list in the graph
under construction.  We share a common break block for all breaks from
the same switch.  We do not insert empty blocks unless necessary to
maintain edge-split form.

There is also a bug fix.  The entry to a clause body is a potential
join and must have a join ID set, otherwise deoptimization within the
body can go to an unpredictable place in the unoptimized code.

Review URL: http://codereview.chromium.org/6650021

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7099 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRemove deserializer assert checking object size allocated in large object space
sgjesse@chromium.org [Wed, 9 Mar 2011 11:50:03 +0000 (11:50 +0000)]
Remove deserializer assert checking object size allocated in large object space

The change r7079 could allocate a few small code objects in large object space. Therefore the assert is no longer valid.
Review URL: http://codereview.chromium.org/6647017

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7098 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAdd the possibility for a code stub to be non-movable
sgjesse@chromium.org [Wed, 9 Mar 2011 10:38:19 +0000 (10:38 +0000)]
Add the possibility for a code stub to be non-movable

Non-moveable code-stube are allocated in large object space. They are only required on ARM where the different C-entry stubs are required to never move.

This gets rid of pre-computing these stubs and hope that they never move. Also for crankshaft the C-entry stub which saved doubles is not generated in the snapshot so it ends up being generated at runtime and potentially move.
Review URL: http://codereview.chromium.org/6626072

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7097 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRemove unneccesary JumpTableEntry pointer from lithium-codegen-x64.cc
ricow@chromium.org [Wed, 9 Mar 2011 10:29:14 +0000 (10:29 +0000)]
Remove unneccesary JumpTableEntry pointer from lithium-codegen-x64.cc

Review URL: http://codereview.chromium.org/6648028

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7096 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix memory leaks on x64
ricow@chromium.org [Wed, 9 Mar 2011 10:02:47 +0000 (10:02 +0000)]
Fix memory leaks on x64

This change uses ZoneObject as base class for our jumptable entry. In
addition this change refactors the JumpTableEntry a bit.

Review URL: http://codereview.chromium.org/6647012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7095 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAvoid allocation of temporary zone lists when inserting representation changes.
fschneider@chromium.org [Tue, 8 Mar 2011 15:08:36 +0000 (15:08 +0000)]
Avoid allocation of temporary zone lists when inserting representation changes.

Instead of allocating fresh temporary lists for every instruction, reuse
the same instance and reset it between instructions.

This reduces the amount of zone memory used for inserting the HChange
instructions roughly by half.

Review URL: http://codereview.chromium.org/6628079

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7094 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix release build
sgjesse@chromium.org [Tue, 8 Mar 2011 15:00:08 +0000 (15:00 +0000)]
Fix release build

Disassemble is not available in release build
Review URL: http://codereview.chromium.org/6635043

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7093 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRemove GetProvidedParametersCount from JavaScriptFrame, it simply calls ComputeParame...
ricow@chromium.org [Tue, 8 Mar 2011 14:18:28 +0000 (14:18 +0000)]
Remove GetProvidedParametersCount from JavaScriptFrame, it simply calls ComputeParametersCount.

Review URL: http://codereview.chromium.org/6635042

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7092 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix bug in X64 RegExpExec stub.
lrn@chromium.org [Tue, 8 Mar 2011 14:15:25 +0000 (14:15 +0000)]
Fix bug in X64 RegExpExec stub.

Used incorrect register for referencing RegExp data, so it always failed
to match the fast case.
When modifiying the object layout, it was possible to make it crash instead.

BUG=v8:1236
TEST=test/mjsunit/regress/regress-1236.js

Review URL: http://codereview.chromium.org/6635041

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7091 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix Issue 1234.
lrn@chromium.org [Tue, 8 Mar 2011 11:21:38 +0000 (11:21 +0000)]
Fix Issue 1234.

Ensure that there is always enough bytes between consequtive calls in
unoptimized code to write a call instruction at the return points
without overlapping.

This handles the case where two return points were only four bytes
apart (because the latter call was to a register).

BUG=v8:1234

Review URL: http://codereview.chromium.org/6624091

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7089 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoEnsure the result is used for the remaining calls to SetElement
sgjesse@chromium.org [Tue, 8 Mar 2011 11:14:25 +0000 (11:14 +0000)]
Ensure the result is used for the remaining calls to SetElement

Now mark SetElement as must use result

The debugger runs inside its own context so there should be no setters hit. Which is the reason for the live-edit code asserting non-empty handles.
Review URL: http://codereview.chromium.org/6621042

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7088 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix assertion failure introduced by my previous change.
fschneider@chromium.org [Tue, 8 Mar 2011 10:49:01 +0000 (10:49 +0000)]
Fix assertion failure introduced by my previous change.

Review URL: http://codereview.chromium.org/6621068

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7087 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoARM: Implement MathPowStub and DoMathPowHalf.
karlklose@chromium.org [Tue, 8 Mar 2011 10:29:40 +0000 (10:29 +0000)]
ARM: Implement MathPowStub and DoMathPowHalf.

Review URL: http://codereview.chromium.org/6613015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7086 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoImprove dead phi elimination.
fschneider@chromium.org [Tue, 8 Mar 2011 10:04:23 +0000 (10:04 +0000)]
Improve dead phi elimination.

This change splits the existing phi elimination into two phases:
1. Remove redundant phis
2. Remove dead phis with a fixed point iteration.

The new approach allows us to remove dead phis that are connected
in a cycle.

Review URL: http://codereview.chromium.org/6624061

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7085 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoStrict mode arguments do not share binding with formal parameters.
mmaly@chromium.org [Mon, 7 Mar 2011 19:23:46 +0000 (19:23 +0000)]
Strict mode arguments do not share binding with formal parameters.

Move strict mode flag from TemporaryScope to Scope so that it can be accessed from variable binding code.
Arguments do not alias in strict mode (ia32, x64 and arm, codegen and full codegen).
Hydrogen tolerates null arguments_shadow().
In codegen-<arch> arguments object is allocated eagerly to capture values before they get modified.

Review URL: http://codereview.chromium.org/6625048/

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7083 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix a stack-height mismatch during deoptimization.
kmillikin@chromium.org [Mon, 7 Mar 2011 17:01:12 +0000 (17:01 +0000)]
Fix a stack-height mismatch during deoptimization.

When deoptimizing after a conditional expression in an effect context, we
should not see the value of the conditional expression.

BUG=v8:1237

Review URL: http://codereview.chromium.org/6625057

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7082 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoMake the typefeedback oracle use a NumberDictionary instead of JSObject as its backin...
fschneider@chromium.org [Mon, 7 Mar 2011 16:09:56 +0000 (16:09 +0000)]
Make the typefeedback oracle use a NumberDictionary instead of JSObject as its backing store.

This avoids problems when getters/setters are defined on Object.

BUG=v8:1232

Review URL: http://codereview.chromium.org/6625054

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7081 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRefactor inlined functions to avoid using subgraphs.
kmillikin@chromium.org [Mon, 7 Mar 2011 15:42:23 +0000 (15:42 +0000)]
Refactor inlined functions to avoid using subgraphs.

Function inlining no longer uses subgraphs.  We detect inlining in an
effect context and avoid materializing a return value earlier than we
did before.

Review URL: http://codereview.chromium.org/6635012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7080 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoPrepare push to trunk. Now working on version 3.2.1.
karlklose@chromium.org [Mon, 7 Mar 2011 13:48:02 +0000 (13:48 +0000)]
Prepare push to trunk. Now working on version 3.2.1.
Review URL: http://codereview.chromium.org/6623053

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7076 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix presubmit errors.
kmillikin@chromium.org [Mon, 7 Mar 2011 12:08:51 +0000 (12:08 +0000)]
Fix presubmit errors.

TBR=whesse

Review URL: http://codereview.chromium.org/6627049

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7075 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRefactor polymorphic load and inline function graph construction.
kmillikin@chromium.org [Mon, 7 Mar 2011 11:52:36 +0000 (11:52 +0000)]
Refactor polymorphic load and inline function graph construction.

Change the way we construct the graph for polymorphic loads to match that of
polymorphic stores.

Introduce a stack-allocated helper for saving and restoring all the
function-specific graph builder state that needs to change when we begin
translating an inlined function.  Make this class authoritative by moving
redundant state out of the builder and deferring to the current function's
state.

Ensure that we always print a tracing message when abandoning an inlining
attempt.

Review URL: http://codereview.chromium.org/6628012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7074 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoX64 Crankshaft: Revert r7071 and fix DoStoreContextSlot in a different way.
whesse@chromium.org [Mon, 7 Mar 2011 11:26:43 +0000 (11:26 +0000)]
X64 Crankshaft: Revert r7071 and fix DoStoreContextSlot in a different way.
Review URL: http://codereview.chromium.org/6627048

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7073 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoX64: Ensure that there is always room for a call between recoreded safepoints.
lrn@chromium.org [Mon, 7 Mar 2011 10:30:58 +0000 (10:30 +0000)]
X64: Ensure that there is always room for a call between recoreded safepoints.

Fixes issue 1234.

BUG=v8:1234

Review URL: http://codereview.chromium.org/6624053

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7072 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoX64 Crankshaft: Fix bug in DoStoreContextSlot, and enable it.
whesse@chromium.org [Mon, 7 Mar 2011 10:28:37 +0000 (10:28 +0000)]
X64 Crankshaft: Fix bug in DoStoreContextSlot, and enable it.
Review URL: http://codereview.chromium.org/6627046

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7071 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoX64: Make sure that all Win64 Visual Studio project file builds have a large enough...
whesse@chromium.org [Mon, 7 Mar 2011 09:27:43 +0000 (09:27 +0000)]
X64: Make sure that all Win64 Visual Studio project file builds have a large enough stack.
Review URL: http://codereview.chromium.org/6626013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7070 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoOptimize loads from root-array in X64.
lrn@chromium.org [Mon, 7 Mar 2011 08:35:19 +0000 (08:35 +0000)]
Optimize loads from root-array in X64.

Move the value of the root-array register to offset 128 from the start of
the root array. This allows indices 16..31 to be reached using only an
8-bit displacement, saving three bytes per access.

Review URL: http://codereview.chromium.org/6594115

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7069 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoThrow if setting length of a string in strict mode.
mmaly@chromium.org [Fri, 4 Mar 2011 21:12:29 +0000 (21:12 +0000)]
Throw if setting length of a string in strict mode.

BUG=
TEST=test/mjsunit/strict-mode.js

Review URL: http://codereview.chromium.org/6623002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7064 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix memory corruption with AdoptText method.
cira@chromium.org [Fri, 4 Mar 2011 17:22:03 +0000 (17:22 +0000)]
Fix memory corruption with AdoptText method.
Icu setText method keeps pointer to text, it doesn't copy it so we have to keep text around for the lifetime of the break iterator object,
or next setText operation.

Review URL: http://codereview.chromium.org/6609038

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7063 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoX64: Fix error in Win64 platform specific code in regexp stub.
whesse@chromium.org [Fri, 4 Mar 2011 13:01:47 +0000 (13:01 +0000)]
X64: Fix error in Win64 platform specific code in regexp stub.
Review URL: http://codereview.chromium.org/6626011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7062 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix X64 Crankshaft error on Win64 platform, in deoptimizer-x64.cc parameter passing.
whesse@chromium.org [Fri, 4 Mar 2011 12:34:05 +0000 (12:34 +0000)]
Fix X64 Crankshaft error on Win64 platform, in deoptimizer-x64.cc parameter passing.
Review URL: http://codereview.chromium.org/6623013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7061 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoReorganize code for range analysis and suppress unnecessary debug printing of unknown...
fschneider@chromium.org [Fri, 4 Mar 2011 12:09:54 +0000 (12:09 +0000)]
Reorganize code for range analysis and suppress unnecessary debug printing of unknown ranges.

Review URL: http://codereview.chromium.org/6611020

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7060 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoStart sampler for the runtime profiler even when we can't setup a signal handler.
vitalyr@chromium.org [Fri, 4 Mar 2011 10:12:33 +0000 (10:12 +0000)]
Start sampler for the runtime profiler even when we can't setup a signal handler.

Review URL: http://codereview.chromium.org/6625013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7059 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoChange the translation of polymorphic stores.
kmillikin@chromium.org [Fri, 4 Mar 2011 10:07:43 +0000 (10:07 +0000)]
Change the translation of polymorphic stores.

They do not use subgraphs or subgraph scopes.  Instead of computing a list
of single-block subgraphs and then adding all the edges afterward, build
both the blocks and edges directly.

Review URL: http://codereview.chromium.org/6615014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7058 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAdd missing cast.
sgjesse@chromium.org [Fri, 4 Mar 2011 09:36:04 +0000 (09:36 +0000)]
Add missing cast.
Review URL: http://codereview.chromium.org/6623010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7057 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRemove unused label from lithium-codegen-ia32
ricow@chromium.org [Fri, 4 Mar 2011 09:07:31 +0000 (09:07 +0000)]
Remove unused label from lithium-codegen-ia32

Review URL: http://codereview.chromium.org/6615007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7056 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoMinor bug in int32 TypeRecordingBinaryOpStub.
sgjesse@chromium.org [Fri, 4 Mar 2011 07:36:52 +0000 (07:36 +0000)]
Minor bug in int32 TypeRecordingBinaryOpStub.

BUG=none
TEST=none
Patch by Rodolph Perfetta from ARM Ltd.

Review URL: http://codereview.chromium.org/6612017

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7055 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix presubmit.
mmaly@chromium.org [Fri, 4 Mar 2011 00:28:54 +0000 (00:28 +0000)]
Fix presubmit.

TBR=ager@chromium.org

BUG=
TEST=

Review URL: http://codereview.chromium.org/6603032

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7054 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoPassing strict mode throughout SetElement.
mmaly@chromium.org [Fri, 4 Mar 2011 00:21:52 +0000 (00:21 +0000)]
Passing strict mode throughout SetElement.

Throw if assigning to read only element.
Adding tests for element assignment in strict mode.

Fix tests for strict mode SetElement.

Review URL: http://codereview.chromium.org/6613005/

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7053 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAdding break iterator support to the i18n api extension.
cira@chromium.org [Thu, 3 Mar 2011 17:32:18 +0000 (17:32 +0000)]
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/6610006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7051 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRenaming strict to strict_mode for uniformity.
mmaly@chromium.org [Thu, 3 Mar 2011 16:17:28 +0000 (16:17 +0000)]
Renaming strict to strict_mode for uniformity.

Review URL: http://codereview.chromium.org/6611003/

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7050 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRevert change 7048
whesse@chromium.org [Thu, 3 Mar 2011 16:09:52 +0000 (16:09 +0000)]
Revert change 7048
Review URL: http://codereview.chromium.org/6613019

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7049 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoX64 Crankshaft: Fix and enable StoreContextSlot in lithium codegen on x64.
whesse@chromium.org [Thu, 3 Mar 2011 15:36:13 +0000 (15:36 +0000)]
X64 Crankshaft: Fix and enable StoreContextSlot in lithium codegen on x64.
Review URL: http://codereview.chromium.org/6614017

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7048 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoMark HChange that convert to int32 with truncation with the appropiate flag.
fschneider@chromium.org [Thu, 3 Mar 2011 13:50:16 +0000 (13:50 +0000)]
Mark HChange that convert to int32 with truncation with the appropiate flag.

Before we would compute the flag by iterating over all uses. The truncating
flag is always determined at construction time since we already computed
the flag for all other instructions before inserting HChange instructions.

Review URL: http://codereview.chromium.org/6615012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7047 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRemove tests for being the normal array constructor from the ArrayConstructCode builtin.
lrn@chromium.org [Thu, 3 Mar 2011 13:36:31 +0000 (13:36 +0000)]
Remove tests for being the normal array constructor from the ArrayConstructCode builtin.

Review URL: http://codereview.chromium.org/6613016

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7046 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRefactor translation of short-circuit logical operations to avoid subgraphs.
kmillikin@chromium.org [Thu, 3 Mar 2011 13:02:56 +0000 (13:02 +0000)]
Refactor translation of short-circuit logical operations to avoid subgraphs.

Do not use a subgraph or subgraph scope for the Hydrogen translation
of the short-circuit logical operations.

Review URL: http://codereview.chromium.org/6615010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7045 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoMore cases of CallFunction that doesn't work correctly.
lrn@chromium.org [Thu, 3 Mar 2011 12:56:14 +0000 (12:56 +0000)]
More cases of CallFunction that doesn't work correctly.

Review URL: http://codereview.chromium.org/6603015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7044 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoUndo change from .call to %_CallFunction.
lrn@chromium.org [Thu, 3 Mar 2011 12:44:39 +0000 (12:44 +0000)]
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

13 years agoAdd new ARM macro assembler function CompareRoot left out of previous commit.
whesse@chromium.org [Thu, 3 Mar 2011 12:21:37 +0000 (12:21 +0000)]
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

13 years agoSimplify test for typeof x == 'y' on all platforms.
whesse@chromium.org [Thu, 3 Mar 2011 12:16:21 +0000 (12:16 +0000)]
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

13 years agoStop using plain Arrays internally in built-in functions.
lrn@chromium.org [Thu, 3 Mar 2011 11:49:03 +0000 (11:49 +0000)]
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