platform/upstream/v8.git
13 years agox64: Implement delete property in lithium backend.
ager@chromium.org [Wed, 23 Feb 2011 10:10:47 +0000 (10:10 +0000)]
x64: Implement delete property in lithium backend.

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

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

13 years agox64: Implement context stores and loads, unknown osr value, and osr
ager@chromium.org [Wed, 23 Feb 2011 09:51:53 +0000 (09:51 +0000)]
x64: Implement context stores and loads, unknown osr value, and osr
entry in lithium backend.

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

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

13 years agoProperly reset external catcher if exception couldn't be externally caught.
ager@chromium.org [Wed, 23 Feb 2011 06:55:47 +0000 (06:55 +0000)]
Properly reset external catcher if exception couldn't be externally caught.

We can wrongly assume that exception which is not intended to be caught
by external try/catch should be caught if this exception inherits
external catcher from some previous exception.  To prevent that,
clear external catcher when processing exceptions which cannot be
externally caught.

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

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

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

13 years agoFix for bug http://code.google.com/p/v8/issues/detail?id=1176.
mmaly@chromium.org [Tue, 22 Feb 2011 17:20:25 +0000 (17:20 +0000)]
Fix for bug code.google.com/p/v8/issues/detail?id=1176.

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

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

13 years agoOptimize functions needing a local context.
rossberg@chromium.org [Tue, 22 Feb 2011 16:56:57 +0000 (16:56 +0000)]
Optimize functions needing a local context.

Allocate the context in the prologue. Two issues had to be solved:
(1) deoptimization needs to handle functions with a local context,
(2) we need a safepoint in the prologue.
(Thanks to Kevin.)

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

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

13 years agoFix CPU profiling for Crankshaft.
mikhail.naganov@gmail.com [Tue, 22 Feb 2011 16:31:24 +0000 (16:31 +0000)]
Fix CPU profiling for Crankshaft.

The main issue was due to multiple recompilations of functions.  Now
code objects are grouped by function using SFI object address.
JSFunction objects are no longer tracked, instead we track SFI object
moves. To pick a correct code version, we now sample return addresses
instead of JSFunction addresses.

tools/{linux|mac|windows}-tickprocessor scripts differentiate
between code optimization states for the same function
(using * and ~ prefixes introduced earlier).

DevTools CPU profiler treats all variants of function code as
a single function.

ll_prof treats each optimized variant as a separate entry, because
it can disassemble each one of them.

tickprocessor.py not updated -- it is deprecated and will be removed.

BUG=v8/1087,b/3178160
TEST=all existing tests pass, including Chromium layout tests

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

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

13 years agoX64 Crankshaft: Implement CallKeyed in optimizing compiler.
whesse@chromium.org [Tue, 22 Feb 2011 14:40:13 +0000 (14:40 +0000)]
X64 Crankshaft: Implement CallKeyed in optimizing compiler.
Review URL: http://codereview.chromium.org/6541069

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

13 years agogrokdump: Simple windows minidump analysis on linux.
vitalyr@chromium.org [Tue, 22 Feb 2011 14:25:26 +0000 (14:25 +0000)]
grokdump: Simple windows minidump analysis on linux.

Analyses full minidump (.dmp) files.

Shows the processor state at the point of exception including the
stack of the active thread and the referenced objects in the V8
heap. Code objects are disassembled and the addresses linked from the
stack (pushed return addresses) are marked with "=>".

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

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

13 years agoAdd file left out of last commit.
ricow@chromium.org [Tue, 22 Feb 2011 12:42:40 +0000 (12:42 +0000)]
Add file left out of last commit.

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

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

13 years agoAdd more generic version of reloc info padding to ensure enough space for reloc patch...
ricow@chromium.org [Tue, 22 Feb 2011 12:28:33 +0000 (12:28 +0000)]
Add more generic version of reloc info padding to ensure enough space for reloc patching during deoptimization (fixes issue 1174).

The old version only added extra space when we did indirect calls, but
the problem remains the same with normal calls that can be represented
as a single byte. When doing patching each call will always be at
least 2 bytes long because we use RUNTIME_ENTY as the reloc mode.

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

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

13 years agoFix second half of issue 1151, the first change (r6765) only fixed FunctionGetPrototy...
ricow@chromium.org [Tue, 22 Feb 2011 12:27:36 +0000 (12:27 +0000)]
Fix second half of issue 1151, the first change (r6765) only fixed FunctionGetPrototype, not FunctionSetPrototype.

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

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

13 years agoX64: Refactor the string add in the type recording binary operation stub
sgjesse@chromium.org [Tue, 22 Feb 2011 12:26:31 +0000 (12:26 +0000)]
X64: Refactor the string add in the type recording binary operation stub

This makes the code have the same structore as on IA32 and ARM, and will also support possible fast adding a smi and string where the string is to the right and fast adding of String objects.
Review URL: http://codereview.chromium.org/6542060

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

13 years agoFix bug with input representation of HValueOf.
fschneider@chromium.org [Tue, 22 Feb 2011 12:14:53 +0000 (12:14 +0000)]
Fix bug with input representation of HValueOf.

The class did not correctly implement the RequiredInputRepresentation.
I changed this functions to be abstract so that all hydrogen classes
must implement it.

As a convention instructions with zero input operands return None as input
representation.

Instructions that can handle all input representations without converting before
also have None as required input representation (e.g. HTest)

All other instructions need a proper required input representation.

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

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

13 years agoX64 Crankshaft: Implement DoubleToI in optimizing compiler.
whesse@chromium.org [Tue, 22 Feb 2011 12:02:47 +0000 (12:02 +0000)]
X64 Crankshaft: Implement DoubleToI in optimizing compiler.
Review URL: http://codereview.chromium.org/6551009

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

13 years agoImprove parseInt.
sandholm@chromium.org [Tue, 22 Feb 2011 11:21:15 +0000 (11:21 +0000)]
Improve parseInt.
Review URL: http://codereview.chromium.org/6546055

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

13 years agoPartial refactoring of subgraphs.
kmillikin@chromium.org [Tue, 22 Feb 2011 10:32:16 +0000 (10:32 +0000)]
Partial refactoring of subgraphs.

Change the interface to the Hydrogen graph builder to appear like it
directly holds a current basic block and a current environment.
Remove some direct accesses to the current subgraph, and remove
subgraph accessors that simply forwarded to the exit block.

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

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

13 years agoRefactored PathTracer in heap.cc.
sgjesse@chromium.org [Tue, 22 Feb 2011 10:05:30 +0000 (10:05 +0000)]
Refactored PathTracer in heap.cc.

This is so that it can be reused by LOL code later.

Patch by Mark Lam from Hewlett-Packard Development Company, LP

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

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

13 years agoARM: Add support for just one string argument in the string add stub
sgjesse@chromium.org [Tue, 22 Feb 2011 09:35:37 +0000 (09:35 +0000)]
ARM: Add support for just one string argument in the string add stub

Having a string add stub which can handle a string in just one of the arguments is essencial for the type recording binary operation stub when expecting strings. Otherwise string added with e.g. smi will always call the runtime for a type transition which will be back to the same types as the transition code keeps it in string arguments when one argument is a string.

This fixes the regression (especially Delta Blue) caused by replacing the generic binary operation stub with the type recording binary operation stub in the ARM lithium code generator.
Review URL: http://codereview.chromium.org/6551008

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

13 years agoRevert "Expand fast case of parseInt to include radix == 10 and radix == 0."
ager@chromium.org [Tue, 22 Feb 2011 09:14:47 +0000 (09:14 +0000)]
Revert "Expand fast case of parseInt to include radix == 10 and radix == 0."

Causes Mozilla failures.

TBR=sandholm@chromium.org

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

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

13 years agoExpand fast case of parseInt to include radix == 10 and radix == 0.
sandholm@chromium.org [Tue, 22 Feb 2011 09:01:06 +0000 (09:01 +0000)]
Expand fast case of parseInt to include radix == 10 and radix == 0.
Review URL: http://codereview.chromium.org/6532087

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

13 years agoChange the translation of break/continue into Hydrogen.
kmillikin@chromium.org [Tue, 22 Feb 2011 08:40:10 +0000 (08:40 +0000)]
Change the translation of break/continue into Hydrogen.

Resolve break and continue when we see them, rather then deferring
them until later.

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

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

13 years agoFix presubmit failure.
kmillikin@chromium.org [Tue, 22 Feb 2011 06:41:32 +0000 (06:41 +0000)]
Fix presubmit failure.

TBR=ager@chromium.org

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

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

13 years agoShorten live ranges for arguments to runtime calls.
kmillikin@chromium.org [Tue, 22 Feb 2011 06:25:01 +0000 (06:25 +0000)]
Shorten live ranges for arguments to runtime calls.

Before, the live ranges of the arguments extended to the call itself, and
they were pushed immediately before the call.  Now, they are spilled eagerly
as soon as their value is available and they are spilled to the right place.

The inlined runtime calls in the optimized backend are changed to work as in
all the other backends: they get their arguments untranslated and can choose
their own custom evaluation order.

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

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

13 years agoFix Xcode project.
mmaly@chromium.org [Tue, 22 Feb 2011 01:10:28 +0000 (01:10 +0000)]
Fix Xcode project.

TBR= ager@chromium.org

BUG=
TEST=

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

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

13 years agoCallIC and KeyedCallIC not wrapping this for strict mode functions.
mmaly@chromium.org [Tue, 22 Feb 2011 00:39:21 +0000 (00:39 +0000)]
CallIC and KeyedCallIC not wrapping this for strict mode functions.
Fix CallIC and KeyedCallIC to correctly use Handle<Object>.

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

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

13 years agoMinor refactoring: unify lazy function compilation for in loop and no in loop variants.
antonm@chromium.org [Mon, 21 Feb 2011 18:28:20 +0000 (18:28 +0000)]
Minor refactoring: unify lazy function compilation for in loop and no in loop variants.

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

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

13 years agoBug: OS::MemoryMappedFile::open() should not truncate a pre-existing file.
mikhail.naganov@gmail.com [Mon, 21 Feb 2011 17:17:26 +0000 (17:17 +0000)]
Bug: OS::MemoryMappedFile::open() should not truncate a pre-existing file.

Patch by Mark Lam from Hewlett-Packard Development Company, LP

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

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

13 years agoChange the baseline compiler to match the Hydrogen graph builder.
kmillikin@chromium.org [Mon, 21 Feb 2011 16:49:39 +0000 (16:49 +0000)]
Change the baseline compiler to match the Hydrogen graph builder.

The Hydrogen graph translation does not build a branch for unary negation in
an effect context, so the baseline compiler should not do so either.

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

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

13 years agoHeap::gc_count_, last_gc_count, and kGCsBetweenCleanup should be unsigned
vegorov@chromium.org [Mon, 21 Feb 2011 16:11:46 +0000 (16:11 +0000)]
Heap::gc_count_, last_gc_count, and kGCsBetweenCleanup should be unsigned
in order to not be vulnerable to overflow issues.

Patch by Mark Lam of Hewlett-Packard Development Company, LP

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

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

13 years agoImplement pixel array elements access in the presence of an
ager@chromium.org [Mon, 21 Feb 2011 15:59:23 +0000 (15:59 +0000)]
Implement pixel array elements access in the presence of an
interceptor that does not handle the elements load.

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

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

13 years agoFix broken build by removing more const qualifiers.
fschneider@chromium.org [Mon, 21 Feb 2011 13:27:36 +0000 (13:27 +0000)]
Fix broken build by removing more const qualifiers.

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

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

13 years agoRemove const qualifier in a few places in the hydrogen IR files.
fschneider@chromium.org [Mon, 21 Feb 2011 12:05:17 +0000 (12:05 +0000)]
Remove const qualifier in a few places in the hydrogen IR files.

This is a preparation step for a larger refactoring of the
hydrogen instructions.

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

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

13 years agoRemove passing tests from ARM test expectations. Yay!
ager@chromium.org [Mon, 21 Feb 2011 11:58:19 +0000 (11:58 +0000)]
Remove passing tests from ARM test expectations. Yay!

TBR=karlklose@chromium.org

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

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

13 years agoRemove passing tests from expectations. Yay!
ager@chromium.org [Mon, 21 Feb 2011 11:55:45 +0000 (11:55 +0000)]
Remove passing tests from expectations. Yay!

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

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

13 years agoX64 Crankshaft: Add ModI and ModT to x64 optimizing compiler.
whesse@chromium.org [Mon, 21 Feb 2011 11:32:28 +0000 (11:32 +0000)]
X64 Crankshaft: Add ModI and ModT to x64 optimizing compiler.
Review URL: http://codereview.chromium.org/6548005

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

13 years agoUnifying the handling of storing and loading from safepoint stack
ager@chromium.org [Mon, 21 Feb 2011 11:29:45 +0000 (11:29 +0000)]
Unifying the handling of storing and loading from safepoint stack
slots across architectures.

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

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

13 years agoARM: Implement DoMathRound in the lithium code generator.
karlklose@chromium.org [Mon, 21 Feb 2011 10:30:25 +0000 (10:30 +0000)]
ARM: Implement DoMathRound in the lithium code generator.

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

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

13 years agox64: implement apply with arguments in lithium backend.
ager@chromium.org [Mon, 21 Feb 2011 07:54:55 +0000 (07:54 +0000)]
x64: implement apply with arguments in lithium backend.

Includes the plumbing to make sure that all calls generated by the macroassembler for lithium will generate record a safepoint.

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

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

13 years agoAdjust pointer maps for branches when connecting live ranges.
vegorov@chromium.org [Fri, 18 Feb 2011 16:29:41 +0000 (16:29 +0000)]
Adjust pointer maps for branches when connecting live ranges.

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

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

13 years agox64: Fix safepoint register index calculation.
ager@chromium.org [Fri, 18 Feb 2011 16:16:17 +0000 (16:16 +0000)]
x64: Fix safepoint register index calculation.

We leave room for all registers on the stack so we have to add a bit.

This is not nicely factored and I need to do that. This will fix the breakage and I
will fix the rest on Monday.

TBR=lrn@chromium.org

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

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

13 years agoX64 Crankshaft: Implement MathRound, MathFloor, MathSqrt, and MathPowHalf UnaryMathOp...
whesse@chromium.org [Fri, 18 Feb 2011 14:34:17 +0000 (14:34 +0000)]
X64 Crankshaft: Implement MathRound, MathFloor, MathSqrt, and MathPowHalf UnaryMathOperations in optimizing code generator.  Remove unneeded bailout on Math.pow(-0, 0.5) from ia32 and x64 platforms - we produce the correct value without bailing out.
Review URL: http://codereview.chromium.org/6532054

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

13 years agoMinor cleanup.
antonm@chromium.org [Fri, 18 Feb 2011 14:22:29 +0000 (14:22 +0000)]
Minor cleanup.

Do not relookup code object and use optimized_code instead
shadowing existing code local.

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

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

13 years agoFix presubmit.
ager@chromium.org [Fri, 18 Feb 2011 14:10:42 +0000 (14:10 +0000)]
Fix presubmit.

TBR=lrn@chromium.org

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

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

13 years agox64: Implement regexp literals and string CharCodeAt in lithium backend.
ager@chromium.org [Fri, 18 Feb 2011 14:00:46 +0000 (14:00 +0000)]
x64: Implement regexp literals and string CharCodeAt in lithium backend.

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

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

13 years agox64: Implement the missing generic load and store operations.
ager@chromium.org [Fri, 18 Feb 2011 12:54:43 +0000 (12:54 +0000)]
x64: Implement the missing generic load and store operations.

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

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

13 years agoX64 Crankshaft: Implement LValueOf and (dummy) LArgumentsObject.
whesse@chromium.org [Fri, 18 Feb 2011 12:06:52 +0000 (12:06 +0000)]
X64 Crankshaft: Implement LValueOf and (dummy) LArgumentsObject.
Review URL: http://codereview.chromium.org/6542011

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

13 years agoUse [[DefineOwnProperty]] to put 'constructor' field on the protoype object.
antonm@chromium.org [Fri, 18 Feb 2011 10:53:38 +0000 (10:53 +0000)]
Use [[DefineOwnProperty]] to put 'constructor' field on the protoype object.

That better follows ECMA-262 (see 13.2 Creating Function Objects) and allows
to ignore nasty JS accessors for 'constructor' property.

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

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

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

13 years agoAdd access checks to Object.preventExtensions + add regression test for 1027.
ricow@chromium.org [Fri, 18 Feb 2011 10:39:02 +0000 (10:39 +0000)]
Add access checks to Object.preventExtensions + add regression test for 1027.

Object.preventExtensions can currently be used cross-domain. With this
change we follow firefox (IE9 has our current behaviour). In addition
this includes a regression test for 1027 and access tests for
Object.seal and Object.freeze.

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

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

13 years agoRevert "This is not wrapped for strict mode and builtin functions."
mmaly@chromium.org [Thu, 17 Feb 2011 21:56:37 +0000 (21:56 +0000)]
Revert "This is not wrapped for strict mode and builtin functions."

This reverts commit 6845

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

13 years agoChange behavior of global declarations in the presence of setters.
ager@chromium.org [Thu, 17 Feb 2011 21:04:53 +0000 (21:04 +0000)]
Change behavior of global declarations in the presence of setters.

Call accessors in the global object prototype when initializing global
variables. Function declarations are special cased for compatibility
with Safari and setters are not called for them. If this special
casing was not done webkit layout tests would fail.

Make the declaration of global const variables in the presence of
callbacks a redeclaration error.

Handle const context slot declarations conflicting with a CALLBACK as
a redeclaration error. That is, unless it is on a context extension
object which is not a real object and therefore conceptually have no
accessors in prototype chains. Accessors in prototype chains of
context extension objects are explicitly ignored in SetProperty.

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

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

13 years agoThis is not wrapped for strict mode and builtin functions.
mmaly@chromium.org [Thu, 17 Feb 2011 17:52:03 +0000 (17:52 +0000)]
This is not wrapped for strict mode and builtin functions.
CallIC and KeyedCallIC do not wrap this when calling builtin
and strict mode functions.

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

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

13 years agoMake OutOfMemory exception thrown from JS call into FatalProcessOutOfMemory as well.
antonm@chromium.org [Thu, 17 Feb 2011 17:21:59 +0000 (17:21 +0000)]
Make OutOfMemory exception thrown from JS call into FatalProcessOutOfMemory as well.

That unifies the behaviour with CALL_HEAP_FUNCTION macro.

BUG=v8:1165

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

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

13 years agoRevert change to const and global variable declarations. It causes
ager@chromium.org [Thu, 17 Feb 2011 16:54:49 +0000 (16:54 +0000)]
Revert change to const and global variable declarations. It causes
may WebKit layout test failures.

I will look into it tomorrow.
TBR=kmillikin@chromium.org

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

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

13 years agoCygwin support
vegorov@chromium.org [Thu, 17 Feb 2011 16:33:10 +0000 (16:33 +0000)]
Cygwin support

Patch by Bert Belder.

BUG=v8:64
BUG=v8:964
BUG=v8:1029

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

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

13 years agoCall accessors in the global object prototype when initializing global
ager@chromium.org [Thu, 17 Feb 2011 16:30:15 +0000 (16:30 +0000)]
Call accessors in the global object prototype when initializing global
variables.

Make the declaration of global const variables in the presence of
callbacks a redeclaration error.

Handle const context slot declarations conflicting with a CALLBACK as
a redeclaration error. That is, unless it is on a context extension
object which is not a real object and therefore conceptually have no
accessors in prototype chains. Accessors in prototype chains of
context extension objects are explicitly ignored in SetProperty.

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

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

13 years agoAvoid clobbering register containing name in CompilerStoreGlobal.
vegorov@chromium.org [Thu, 17 Feb 2011 16:02:12 +0000 (16:02 +0000)]
Avoid clobbering register containing name in CompilerStoreGlobal.

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

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

13 years agoARM: Port new version of ParallelMove's GapResolver to ARM. Fix error in vstr(Double...
whesse@chromium.org [Thu, 17 Feb 2011 15:25:38 +0000 (15:25 +0000)]
ARM: Port new version of ParallelMove's GapResolver to ARM.  Fix error in vstr(DoubleRegister, MemOperand), where it was implemented as a vldr, in r6830.
Review URL: http://codereview.chromium.org/6311010

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

13 years agoRevert 6832.
lrn@chromium.org [Thu, 17 Feb 2011 14:13:25 +0000 (14:13 +0000)]
Revert 6832.

The test contains a syntax error that shouldn't be detected, but it sometimes is.

TBR: kmillikin@chromium.org

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

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

13 years agoFix incorrect deoptimization for logical not in an effect context.
kmillikin@chromium.org [Thu, 17 Feb 2011 13:05:49 +0000 (13:05 +0000)]
Fix incorrect deoptimization for logical not in an effect context.

The baseline compiler does not materialize a value for expressions of
the form !expr in an effect context so the graph translation should
not produce such an environment, otherwise we risk targeting it by
deoptimization.

BUG=v8:1167

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

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

13 years agoHandle exceptions thrown while parsing lazy functions for inlining.
lrn@chromium.org [Thu, 17 Feb 2011 12:23:18 +0000 (12:23 +0000)]
Handle exceptions thrown while parsing lazy functions for inlining.
We currently leave the exception as pending without returning a Failure::Exception() value. This is either caught immediately if running with --debug-code, or caught later by an assert in debug mode.

This change makes the pending exception be cleared before returning from the failed optimization attempt.

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

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

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

13 years agoFix a bug in deoptimization after logical expressions in an effect context.
kmillikin@chromium.org [Thu, 17 Feb 2011 11:06:50 +0000 (11:06 +0000)]
Fix a bug in deoptimization after logical expressions in an effect context.

When deoptimizing to after an expression of the form (expr0 || expr1)
or (expr0 && expr1) in an effect context, the unoptimized code could
incorrectly see the value of the expression.

Handle the short-circuit binary operators specially in effect contexts.
This fixes the issue and will generate better code when the left
subexpression is boolean-valued.

BUG=v8:1166

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

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

13 years agoARM: Enable loads and stores of VFP registers with offsets >= 1024 bytes.
whesse@chromium.org [Thu, 17 Feb 2011 10:07:13 +0000 (10:07 +0000)]
ARM: Enable loads and stores of VFP registers with offsets >= 1024 bytes.
Review URL: http://codereview.chromium.org/6530002

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

13 years agoARM: Don't try to flush the icache when there is nothing to flush
sgjesse@chromium.org [Thu, 17 Feb 2011 07:47:05 +0000 (07:47 +0000)]
ARM: Don't try to flush the icache when there is nothing to flush

The simulator implementation of the icache did not like size being zero.

BUG=v8:1090
Review URL: http://codereview.chromium.org/6526052

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

13 years agoGBDJIT: Do not check unwinding information correctness on x64.
vegorov@chromium.org [Wed, 16 Feb 2011 17:40:28 +0000 (17:40 +0000)]
GBDJIT: Do not check unwinding information correctness on x64.

This does not affect correctness of most common use cases.

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

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

13 years agoX64 Crankshaft: Start using LCallFunction, remove errors in it.
whesse@chromium.org [Wed, 16 Feb 2011 15:45:45 +0000 (15:45 +0000)]
X64 Crankshaft: Start using LCallFunction, remove errors in it.
Review URL: http://codereview.chromium.org/6529053

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

13 years agoX64 Crankshaft: Implement LCallFunction.
whesse@chromium.org [Wed, 16 Feb 2011 15:15:52 +0000 (15:15 +0000)]
X64 Crankshaft: Implement LCallFunction.
Review URL: http://codereview.chromium.org/6529052

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

13 years agoX64 Crankshaft: Implement InstanceOf and InstanceOfKnownGlobal
whesse@chromium.org [Wed, 16 Feb 2011 15:15:20 +0000 (15:15 +0000)]
X64 Crankshaft: Implement InstanceOf and InstanceOfKnownGlobal
Review URL: http://codereview.chromium.org/6529024

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

13 years agoARM: Remove crankshaft dependency on the generic binary operation stub
sgjesse@chromium.org [Wed, 16 Feb 2011 14:48:41 +0000 (14:48 +0000)]
ARM: Remove crankshaft dependency on the generic binary operation stub

The crankshaft code now only relies on the type recording binary operation stub.

Added check for overwritable heap number in the type recording binary operation stub.
Review URL: http://codereview.chromium.org/6529050

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

13 years agoFix syntax error, feel sheepish.
danno@chromium.org [Wed, 16 Feb 2011 13:59:26 +0000 (13:59 +0000)]
Fix syntax error, feel sheepish.

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

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

13 years agoAttempt to disambiguate RUNTIME_FUNCTION for win64 build in serialization tests.
ager@chromium.org [Wed, 16 Feb 2011 13:56:23 +0000 (13:56 +0000)]
Attempt to disambiguate RUNTIME_FUNCTION for win64 build in serialization tests.

BUG=
TEST=

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

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

13 years agoFix presubmit problem.
danno@chromium.org [Wed, 16 Feb 2011 13:52:46 +0000 (13:52 +0000)]
Fix presubmit problem.

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

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

13 years agoBlargh. Yet another shot in the dark attempt to fix win64 compile.
ager@chromium.org [Wed, 16 Feb 2011 13:42:26 +0000 (13:42 +0000)]
Blargh. Yet another shot in the dark attempt to fix win64 compile.

BUG=
TEST=

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

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

13 years agoAnother attempt to fix win64 compile.
ager@chromium.org [Wed, 16 Feb 2011 13:37:26 +0000 (13:37 +0000)]
Another attempt to fix win64 compile.

BUG=
TEST=

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

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

13 years agoImplement crankshaft support for pixel array stores.
danno@chromium.org [Wed, 16 Feb 2011 13:31:12 +0000 (13:31 +0000)]
Implement crankshaft support for pixel array stores.

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

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

13 years agoSpeculative fix for win64 build breakage.
ager@chromium.org [Wed, 16 Feb 2011 13:24:40 +0000 (13:24 +0000)]
Speculative fix for win64 build breakage.

strstr returns a pointer and we are using an int to store a pointer difference. Using intptr_t instead.

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

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

13 years agoPrepare push to trunk. We are now working on version 3.1.6.
kmillikin@chromium.org [Wed, 16 Feb 2011 12:19:14 +0000 (12:19 +0000)]
Prepare push to trunk.  We are now working on version 3.1.6.

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

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

13 years agoHandle indexed properties on value objects correctly.
ager@chromium.org [Wed, 16 Feb 2011 12:10:48 +0000 (12:10 +0000)]
Handle indexed properties on value objects correctly.

As with named properties, search the value wrapper prototypes for properties.

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

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

13 years agoProperly process try/finally blocks.
antonm@chromium.org [Wed, 16 Feb 2011 11:40:48 +0000 (11:40 +0000)]
Properly process try/finally blocks.

In some circumstances, try/finally block can actually catch the exception:

function f() {
  try {
    throw 42;
  } finally {
    return 0;
  }
}

Therefore when propagating exception to v8::TryCatch, we must be sure
there is no try/finally blocks as well.

When bulding the messages we should be more conservative and expect that
any v8::TryCatch with no JS try/catch in between can potentionally
be the right exception handler.

Plus various minor refactorings.

BUG=1147
TEST=cctest/test-api/TryCatchAndFinallyHidingException, cctest/test-api/TryCatchAndFinally

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

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

13 years agoX64: Enable OSR as default on x64
ricow@chromium.org [Wed, 16 Feb 2011 10:10:59 +0000 (10:10 +0000)]
X64: Enable OSR as default on x64

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

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

13 years agoARM: Add inlined smi binary operations in full code generator
sgjesse@chromium.org [Wed, 16 Feb 2011 09:20:16 +0000 (09:20 +0000)]
ARM: Add inlined smi binary operations in full code generator
Review URL: http://codereview.chromium.org/6529022

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

13 years agoFix non-simulated ARM calling of RegExp code.
lrn@chromium.org [Wed, 16 Feb 2011 09:18:19 +0000 (09:18 +0000)]
Fix non-simulated ARM calling of RegExp code.

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

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

13 years agoARM: Implement GetCachedArrayIndex in the lithium code generator.
karlklose@chromium.org [Wed, 16 Feb 2011 08:21:45 +0000 (08:21 +0000)]
ARM: Implement GetCachedArrayIndex in the lithium code generator.

Add GetCachedArrayIndex to the Hydrogen instruction set and implement GetCachedArrayIndex in the lithium code generator. The x64 and ia32 code generators implementations abort in the chunk builder.

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

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

13 years agoFix bug 1137. No longer allow the RegExp /(*)/.
lrn@chromium.org [Wed, 16 Feb 2011 08:10:47 +0000 (08:10 +0000)]
Fix bug 1137. No longer allow the RegExp /(*)/.

BUG=v8:1137
TEST=test/mjsunit/regexp.js

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

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

13 years agoAdded gdb-jit interface support for ARM. Compressed .debug_line table by 1)
vegorov@chromium.org [Tue, 15 Feb 2011 21:11:31 +0000 (21:11 +0000)]
Added gdb-jit interface support for ARM. Compressed .debug_line table by 1)
removing duplicate adjacent entries having the same line number, and 2) using
special opcodes to encode multiple machine register state changes in one byte.
Also made a fix involving the order in which static initializers are performed.

Patch by Shasank Chavan of Hewlett-Packard Development Company, LP

BUG=none
TEST=Try building for arm

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

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

13 years agoFix presubmit.
mmaly@chromium.org [Tue, 15 Feb 2011 19:15:59 +0000 (19:15 +0000)]
Fix presubmit.

TBR= ager@chromium.org

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

13 years agoStrict mode "this" transformation in Function.call/Function.apply.
mmaly@chromium.org [Tue, 15 Feb 2011 18:57:37 +0000 (18:57 +0000)]
Strict mode "this" transformation in Function.call/Function.apply.
In strict mode the transformation of "this" is skipped.

Code review feedback.
Testing memory operand against 8 bit IMM on ia32 and x64.

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

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

13 years agoEnable compound assignment to context slots.
rossberg@chromium.org [Tue, 15 Feb 2011 16:37:40 +0000 (16:37 +0000)]
Enable compound assignment to context slots.
Review URL: http://codereview.chromium.org/6523025

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

13 years agoFix wrong assert in ia32 deoptimizer.
ricow@chromium.org [Tue, 15 Feb 2011 16:12:46 +0000 (16:12 +0000)]
Fix wrong assert in ia32 deoptimizer.

In revision 6795 I introduced an assertion in the deoptimizer that was
wrong. We check that curr_address - prev_address > patch_size(), but
prev_address is actually the address right after the last patched
call, so we just need to be larger than or equal to prev_address.

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

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

13 years agoFix issue 1160: check array elements in ArrayJoin.
vitalyr@chromium.org [Tue, 15 Feb 2011 15:12:51 +0000 (15:12 +0000)]
Fix issue 1160: check array elements in ArrayJoin.

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

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

13 years agoMake sure we always have room for patching the reloc info during lazy deoptimization...
ricow@chromium.org [Tue, 15 Feb 2011 14:36:12 +0000 (14:36 +0000)]
Make sure we always have room for patching the reloc info during lazy deoptimization (fixes issue 1156).

Before we could have calls to builtins that would not be in the
relocation info since this used a register as target. Whenever we have
this case (from lithium codegen) we now emit a comment in the reloc
info.

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

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

13 years agoChange native RegExp call code to properly set C++ structures and
lrn@chromium.org [Tue, 15 Feb 2011 13:53:51 +0000 (13:53 +0000)]
Change native RegExp call code to properly set C++ structures and
to handle exceptions on return from RegExp.

BUG=1108
TEST=

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

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

13 years agoFix issue 1152: temporary JS array invariant violation in ArrayConcat.
vitalyr@chromium.org [Tue, 15 Feb 2011 13:53:30 +0000 (13:53 +0000)]
Fix issue 1152: temporary JS array invariant violation in ArrayConcat.

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

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

13 years agox64: Port OSR to the x64 platform.
ricow@chromium.org [Tue, 15 Feb 2011 13:37:10 +0000 (13:37 +0000)]
x64: Port OSR to the x64 platform.

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

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

13 years agoX64 Crankshaft: Fix another error in pushed registers at safepoints.
whesse@chromium.org [Tue, 15 Feb 2011 12:17:53 +0000 (12:17 +0000)]
X64 Crankshaft: Fix another error in pushed registers at safepoints.
Review URL: http://codereview.chromium.org/6525014

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

13 years agoFix FastPixelArrayStore on X64 platform.
whesse@chromium.org [Tue, 15 Feb 2011 12:17:42 +0000 (12:17 +0000)]
Fix FastPixelArrayStore on X64 platform.
TEST=test-api/PixelArray
Review URL: http://codereview.chromium.org/6529014

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

13 years agoFix ARM debug build: remove ASSERT.
karlklose@chromium.org [Tue, 15 Feb 2011 10:50:09 +0000 (10:50 +0000)]
Fix ARM debug build: remove ASSERT.

TBR=ricow@

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

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

13 years agoAdd access check when Object.keys is called on the global js proxy (fixes issue 1154)
ricow@chromium.org [Tue, 15 Feb 2011 10:39:22 +0000 (10:39 +0000)]
Add access check when Object.keys is called on the global js proxy (fixes issue 1154)

I will land access checks for a range of ES5 features in another patch (we added a bunch of cases like this in the past few weeks, i.e., cases where we simply use the global object instead of the js global proxy).

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

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

13 years agoARM: Implement DoHasCachedArrayIndex and DoHasCachedArrayIndexAndBranch.
karlklose@chromium.org [Tue, 15 Feb 2011 10:22:24 +0000 (10:22 +0000)]
ARM: Implement DoHasCachedArrayIndex and DoHasCachedArrayIndexAndBranch.

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

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

13 years agoARM: Enable OSR by default.
karlklose@chromium.org [Tue, 15 Feb 2011 08:47:14 +0000 (08:47 +0000)]
ARM: Enable OSR by default.

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

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

13 years agoRefactor construction of polymorphic loads, stores, and calls.
kmillikin@chromium.org [Tue, 15 Feb 2011 07:58:04 +0000 (07:58 +0000)]
Refactor construction of polymorphic loads, stores, and calls.

Rather than passing in a pair of unequal-length lists, pass the default
subgraph separately.  Construct the typecase from the top down rather than
the bottom up, so it doesn't need an intermediate zone list.

Also, change a basic block's 'last' instruction field to really be its last
instruction by correctly updating it when inserting and removing
instructions.

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

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