platform/upstream/v8.git
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

13 years agoHandled return-value of SetElement in some cases, or avoided it in other.
lrn@chromium.org [Thu, 3 Mar 2011 10:16:22 +0000 (10:16 +0000)]
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

13 years agoFix mistake in r7033
sgjesse@chromium.org [Thu, 3 Mar 2011 09:46:27 +0000 (09:46 +0000)]
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

13 years agoAdd lithium support for %_GetCachedArrayIndex for IA32 and X64
sgjesse@chromium.org [Thu, 3 Mar 2011 09:33:08 +0000 (09:33 +0000)]
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

13 years agoRemove unwanted character
sgjesse@chromium.org [Thu, 3 Mar 2011 08:50:35 +0000 (08:50 +0000)]
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

13 years agoTurn on crankshaft as the default for X64 and ARM
sgjesse@chromium.org [Thu, 3 Mar 2011 08:43:55 +0000 (08:43 +0000)]
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

13 years agoARM: Support %_SwapElements in the full compiler
sgjesse@chromium.org [Thu, 3 Mar 2011 07:36:04 +0000 (07:36 +0000)]
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

13 years agoFixed lol SetProperty() calls to specify the needed strict mode.
sgjesse@chromium.org [Thu, 3 Mar 2011 07:14:55 +0000 (07:14 +0000)]
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

13 years agoAdd ArithmeticD(MOD) to x64 optimizing code generator. Minor changes to ArithmeticD...
whesse@chromium.org [Wed, 2 Mar 2011 15:04:20 +0000 (15:04 +0000)]
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

13 years agoARM: Implement untagged input for TranscendentalCacheStub.
karlklose@chromium.org [Wed, 2 Mar 2011 14:40:38 +0000 (14:40 +0000)]
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

13 years agoRemove some more uses of subgraphs and more cleanup of the graph builder.
kmillikin@chromium.org [Wed, 2 Mar 2011 14:09:59 +0000 (14:09 +0000)]
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

13 years agoDelete empty directories.
ager@chromium.org [Wed, 2 Mar 2011 13:51:41 +0000 (13:51 +0000)]
Delete empty directories.

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

13 years agoPrepare push to trunk. Now working on version 3.2.0.
ager@chromium.org [Wed, 2 Mar 2011 13:29:59 +0000 (13:29 +0000)]
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

13 years agoAdd MarkAsCall to the LArithmeticD::MOD instruction, that calls a C function, on...
whesse@chromium.org [Wed, 2 Mar 2011 12:26:20 +0000 (12:26 +0000)]
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

13 years agoGeneralize fix for overflowing of the frame-element constant pool.
ager@chromium.org [Wed, 2 Mar 2011 11:45:31 +0000 (11:45 +0000)]
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

13 years agoTranslate loops without using subgraphs.
kmillikin@chromium.org [Wed, 2 Mar 2011 11:09:25 +0000 (11:09 +0000)]
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

13 years agoEnable optimizing JSFunctions that are in new-space.
fschneider@chromium.org [Wed, 2 Mar 2011 10:16:47 +0000 (10:16 +0000)]
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

13 years agoX64: implement DoHasCachedArrayIndex in lithium compiler.
ricow@chromium.org [Wed, 2 Mar 2011 10:12:33 +0000 (10:12 +0000)]
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

13 years agoImplement int32 TypeRecordingBinaryOp on ARM.
sgjesse@chromium.org [Wed, 2 Mar 2011 09:31:42 +0000 (09:31 +0000)]
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

13 years agoX64: Implement StringCharAtStub which is used from lithium codegen.
ricow@chromium.org [Wed, 2 Mar 2011 09:28:04 +0000 (09:28 +0000)]
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

13 years agoAdding files for LiveObjectList implementation.
sgjesse@chromium.org [Wed, 2 Mar 2011 09:16:05 +0000 (09:16 +0000)]
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

13 years agoAdding debugger interface and runtime functions hooks for supporting
sgjesse@chromium.org [Wed, 2 Mar 2011 08:10:38 +0000 (08:10 +0000)]
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

13 years agoX64: Always use rax as left register from DoInstanceOfKnownGlobal.
ricow@chromium.org [Wed, 2 Mar 2011 07:52:14 +0000 (07:52 +0000)]
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

13 years agoRemove break iterator support from the i18n api extension. It breaks
ager@chromium.org [Wed, 2 Mar 2011 07:32:59 +0000 (07:32 +0000)]
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

13 years agoAttempt to fix WebCore windows build.
ager@chromium.org [Wed, 2 Mar 2011 07:12:53 +0000 (07:12 +0000)]
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

13 years agoAssignment to read only properties throws in strict mode.
mmaly@chromium.org [Wed, 2 Mar 2011 04:53:43 +0000 (04:53 +0000)]
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

13 years agoAdding break iterator support to the i18n api extension.
cira@chromium.org [Tue, 1 Mar 2011 19:43:28 +0000 (19:43 +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/6598014

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

13 years agoAllow eval to be overridden with a callable non-function object.
vitalyr@chromium.org [Tue, 1 Mar 2011 19:05:06 +0000 (19:05 +0000)]
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

13 years agoRefactor heap profiler's code to make possible including
mikhail.naganov@gmail.com [Tue, 1 Mar 2011 17:38:49 +0000 (17:38 +0000)]
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

13 years agoRevert 6996, causes Mozilla debug failures on x64 with crankshaft.
ricow@chromium.org [Tue, 1 Mar 2011 16:32:30 +0000 (16:32 +0000)]
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

13 years agoCorrectly maintain virtual frame in unary operations on ia32.
vegorov@chromium.org [Tue, 1 Mar 2011 15:41:23 +0000 (15:41 +0000)]
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

13 years agoAdd lazy deoptimization environment to instanceof by marking it as a call.
fschneider@chromium.org [Tue, 1 Mar 2011 15:37:24 +0000 (15:37 +0000)]
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

13 years agoPort eval resolve in call optimization from classic to full codegen.
vitalyr@chromium.org [Tue, 1 Mar 2011 15:34:23 +0000 (15:34 +0000)]
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

13 years agoSmall fix for when not building with OBJECT_PRINT defined.
mikhail.naganov@gmail.com [Tue, 1 Mar 2011 14:49:07 +0000 (14:49 +0000)]
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

13 years agoReenable DoStoreContextSlot, I can't reproduce any local bugs on this.
ricow@chromium.org [Tue, 1 Mar 2011 14:33:33 +0000 (14:33 +0000)]
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

13 years agoX64: Add inline SwapElements to fundamental code generator on x64 platform.
whesse@chromium.org [Tue, 1 Mar 2011 14:29:27 +0000 (14:29 +0000)]
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

13 years agoARM: Support inlined version of %_FastAsciiArrayJoin on ARM
sgjesse@chromium.org [Tue, 1 Mar 2011 14:09:23 +0000 (14:09 +0000)]
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

13 years agoRemove HandleCell and use GlobalHandle and HandleScope::Escape instead.
lrn@chromium.org [Tue, 1 Mar 2011 14:00:55 +0000 (14:00 +0000)]
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

13 years agoFix several evaluation order sensitive GC-unsafe places.
vegorov@chromium.org [Tue, 1 Mar 2011 13:16:57 +0000 (13:16 +0000)]
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

13 years agoUse correct type for the map-counters flag used in d8.
ager@chromium.org [Tue, 1 Mar 2011 12:26:19 +0000 (12:26 +0000)]
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

13 years agoRemove exception for mjsunit/regress/regress-deopt-gc on arm and x64.
ricow@chromium.org [Tue, 1 Mar 2011 11:36:45 +0000 (11:36 +0000)]
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

13 years agoARM: Fix unaligned read/write
sgjesse@chromium.org [Tue, 1 Mar 2011 11:23:29 +0000 (11:23 +0000)]
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

13 years agoMake the materialization of smi constants consistent between the two compilers.
fschneider@chromium.org [Tue, 1 Mar 2011 10:58:43 +0000 (10:58 +0000)]
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

13 years agoFix a stack height mismatch when deoptimizing.
kmillikin@chromium.org [Tue, 1 Mar 2011 09:32:45 +0000 (09:32 +0000)]
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

13 years agoX64 Crankshaft: Add DoPower to lithium compiler on x64 platform.
whesse@chromium.org [Tue, 1 Mar 2011 09:30:56 +0000 (09:30 +0000)]
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

13 years agoMinor change to FullCodeGenerator::EmitFastAsciiArrayJoin
sgjesse@chromium.org [Tue, 1 Mar 2011 08:17:13 +0000 (08:17 +0000)]
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

13 years agoDo not allow non-configurable global properties to be made configurable (fixes issue...
ricow@chromium.org [Tue, 1 Mar 2011 08:09:17 +0000 (08:09 +0000)]
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

13 years agoRevert "Assignment to read only properties throws in strict mode."
mmaly@chromium.org [Tue, 1 Mar 2011 06:10:41 +0000 (06:10 +0000)]
Revert "Assignment to read only properties throws in strict mode."

This reverts commit 503f2a501e504f330821f247074e731aa649b1f0.

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

13 years agoAssignment to read only properties throws in strict mode.
mmaly@chromium.org [Tue, 1 Mar 2011 01:42:37 +0000 (01:42 +0000)]
Assignment to read only properties throws in strict mode.

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

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

13 years agoStrict mode - allow function only in SourceElements.
mmaly@chromium.org [Mon, 28 Feb 2011 19:07:02 +0000 (19:07 +0000)]
Strict mode - allow function only in SourceElements.

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

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