palfia@homejinni.com [Mon, 27 May 2013 22:11:06 +0000 (22:11 +0000)]
MIPS: Tag smi-constants as smi. This also fixes code that copies holes into arrays.
Port r14814 (
8a28ccfb)
BUG=
Review URL: https://codereview.chromium.org/
16041005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14830
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Mon, 27 May 2013 17:33:14 +0000 (17:33 +0000)]
Fix the hole loading optimization.
- Holes are only ever loaded as double or tagged.
- Change to tagged has to deoptimize on undefined (no implicit
conversions from double the hole NaN -> tagged undefined).
BUG=
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
16099006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14829
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Mon, 27 May 2013 17:12:48 +0000 (17:12 +0000)]
MIPS: Fix unaligned address of double.
TEST=mjsunit/debug-evaluate-locals-optimized-double
BUG=
Review URL: https://codereview.chromium.org/
14631016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14828
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Mon, 27 May 2013 16:53:30 +0000 (16:53 +0000)]
MIPS: make isolate accessible from returnvalue
Port r14819 (
1ee1db14)
BUG=
Review URL: https://codereview.chromium.org/
16099003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14827
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dcarney@chromium.org [Mon, 27 May 2013 14:34:16 +0000 (14:34 +0000)]
Add template parameter to ReturnValue::Set.
E.g., v8-i18n wants to set the return value with a different type of a Persistent.
BUG=NONE
R=dcarney@chromium.org, svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
16102002
Patch from Marja Hölttä <marja@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14826
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Mon, 27 May 2013 13:59:20 +0000 (13:59 +0000)]
Collect type feedback in separate pass and store it in AST
Notes:
- For now, just adds the missing type info fields to the AST nodes directly.
I'd like to factor that out more nicely in a follow-up CL.
- All type feedback now is uniformly collected through AST nodes'
RecordTypeFeedback functions. At some point, this logic should be moved
out of ast.cc.
- The typing pass currently simulates the exact same conditions under
which feedback was collected in Hydrogen before. That also should be
made more generic in the future.
- Type information itself is unchanged. Making it more regular is
yet more future work.
Some additional cleanups:
- Lifted out nested class ObjectLiteral::Property, to enable forward declaration.
- Moved around some auxiliary enums.
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
14990014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14825
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
titzer@chromium.org [Mon, 27 May 2013 12:45:46 +0000 (12:45 +0000)]
Extract GlobalValueNumberer and helper classes from hydrogen.cc and move to hydrogen-gvn.cc.
BUG=
Review URL: https://codereview.chromium.org/
16095004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14824
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Mon, 27 May 2013 12:39:01 +0000 (12:39 +0000)]
MIPS: Remove HCheckSmi, LCheckSmi and rename LCheckSmiAndReturn to LCheckSmi.
Port r14816 (
0485153d)
BUG=
Review URL: https://codereview.chromium.org/
16035008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14823
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Mon, 27 May 2013 12:19:49 +0000 (12:19 +0000)]
Prepare push to trunk. Now working on version 3.19.6.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
15838010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14820
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dcarney@chromium.org [Mon, 27 May 2013 11:50:08 +0000 (11:50 +0000)]
make isolate accessible from returnvalue
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
16021010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14819
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Mon, 27 May 2013 10:56:27 +0000 (10:56 +0000)]
Fix Object.freeze for objects with mixed accessors and data properties
The bug in the existing code was that it modified the |attributes|
local variable on its way through the loop in CopyUpToAddAttributes.
But that affected any properties updated after an accessor property.
The code now sets up a mask each time and applies that instead of
mutating |attributes|.
R=verwaest@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
16051002
Patch from Adam Klein <adamk@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14818
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 27 May 2013 10:53:37 +0000 (10:53 +0000)]
Regexp parser: reset flag after scanning ahead for capture groups.
When the regexp pattern parser encounters an unbound reference to a
capturing group, it needs to scan ahead to decide whether it really
is a reference. The scan advances to the end of the pattern string
and sets has_more_ to false, but fails to reset it to true so that
later on, parsing a character class wrongly fails.
R=ulan@chromium.org
BUG=v8:2690
Review URL: https://chromiumcodereview.appspot.com/
15712006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14817
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Mon, 27 May 2013 09:58:46 +0000 (09:58 +0000)]
Remove HCheckSmi, LCheckSmi and rename LCheckSmiAndReturn to LCheckSmi.
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
15841007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14816
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Mon, 27 May 2013 08:50:52 +0000 (08:50 +0000)]
Fix build
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
15881004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14815
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Mon, 27 May 2013 08:43:58 +0000 (08:43 +0000)]
Tag smi-constants as smi. This also fixes code that copies holes into arrays.
BUG=
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
15861009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14814
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Sat, 25 May 2013 17:10:42 +0000 (17:10 +0000)]
MIPS: Fix DIRECT_API_CALL_NEW and DIRECT_GETTER_CALL_NEW call.
This commit fixes the register usage of DIRECT_API_CALL_NEW
and DIRECT_GETTER_CALL_NEW:
* These functions expect arguments in a0-a1 and not in a1-a2
as the and DIRECT_API_CALL and DIRECT_GETTER_CALL do.
* Fixes the simulator to expect *_NEW arguments in a0-a1.
* Adds more comment to simulator to better explain the
register usage.
TEST=cctest/test-api/LoadICFastApi_DirectCall_GCMoveStub,cctest/test-api/SimpleCallback
BUG=
Review URL: https://codereview.chromium.org/
15813005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14813
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Fri, 24 May 2013 20:20:08 +0000 (20:20 +0000)]
MIPS: Fix hole handling, and ensure smi representation is handled properly
Port r14807 (
c26f44d6)
BUG=
Review URL: https://codereview.chromium.org/
15821007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14812
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Fri, 24 May 2013 20:19:18 +0000 (20:19 +0000)]
MIPS: DummyUse if Representation::Tagged()+Type::Smi() to Representation::Smi()
Port r14802 (
d4a53e02)
BUG=
Review URL: https://codereview.chromium.org/
16019009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14811
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Fri, 24 May 2013 20:18:24 +0000 (20:18 +0000)]
MIPS: Replace tagged keys for fast access by smi, and use smi in boundscheck.
Port r14794 (
05b08564)
BUG=
Review URL: https://codereview.chromium.org/
15937009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14810
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Fri, 24 May 2013 16:19:06 +0000 (16:19 +0000)]
Un-flake test-cpu-profiler/SampleWhenFrameIsNotSetup
It is OK for FindChild to return NULL. If the child must
exist GetChild should be used to force the assertion.
BUG=v8:2628
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
15786004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14809
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
olivf@chromium.org [Fri, 24 May 2013 15:20:48 +0000 (15:20 +0000)]
trace compare_nil_ic state in --trace-ic output
BUG=
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
15735020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14808
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Fri, 24 May 2013 13:40:02 +0000 (13:40 +0000)]
Fix hole handling, and ensure smi representation is handled properly
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
16013003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14807
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
titzer@chromium.org [Fri, 24 May 2013 12:40:08 +0000 (12:40 +0000)]
Remove offset() and is_in_object() from hydrogen and lithium LoadNamedField and StoreNamedField and use the appropriate methods on HObjectAccess instead
BUG=
Review URL: https://codereview.chromium.org/
15881003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14806
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Fri, 24 May 2013 12:34:41 +0000 (12:34 +0000)]
Prepare push to trunk. Now working on version 3.19.5.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
16002003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14803
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Fri, 24 May 2013 12:30:24 +0000 (12:30 +0000)]
DummyUse if Representation::Tagged()+Type::Smi() to Representation::Smi()
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
15778006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14802
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Fri, 24 May 2013 12:29:37 +0000 (12:29 +0000)]
Update representation-from-uses to support smi.
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
15692004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14801
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
olivf@chromium.org [Fri, 24 May 2013 11:44:55 +0000 (11:44 +0000)]
fix some names in compare nil ic
The compare nil ic introduces a mechanism called lightweight miss. The
idea is to insert a direct call to the miss handler instead of going
through the deopt routine. This can be use for uninitialized stubs, to
directly jump to the runtime.
This cl
1. Cleans up naming
2. localizes the lightweight miss functionality on the only user (compare nil ic)
3. fixes DoCodegen, to actually call the correct method (uninitialized vs initialized)
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
15806005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14798
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 24 May 2013 11:33:46 +0000 (11:33 +0000)]
Fix edge case in stack trace formatting.
Bug description: in strict mode, null as receiver is not implicitly converted
to the global object, so that when formatting the stack trace, the receiver of
the stack frame is null. The IS_OBJECT check returns true for null, but
%GetDataProperty expected a JSObject, which results in a failed RUNTIME_ASSERT.
R=mvstanton@chromium.org
BUG=237617
Review URL: https://chromiumcodereview.appspot.com/
15670003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14797
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Fri, 24 May 2013 10:57:59 +0000 (10:57 +0000)]
Make (most of) --trace-codegen available in release mode. Better output.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
15941004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14796
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Fri, 24 May 2013 09:32:10 +0000 (09:32 +0000)]
fix thread safety issue in FunctionTemplate test
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
15791005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14795
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Fri, 24 May 2013 08:52:35 +0000 (08:52 +0000)]
Replace tagged keys for fast access by smi, and use smi in boundscheck.
BUG=
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
15763004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14794
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
titzer@chromium.org [Fri, 24 May 2013 08:38:21 +0000 (08:38 +0000)]
Introduce ObjectAccess, which is used by LoadNamedField and StoreNamedField to denote what parts of an object are referred to by a given load or store. Refactor HGraphBuilder to use ObjectAccess, which removes the need to manually set GVN flags and simplifies the code as well.
Review URL: https://codereview.chromium.org/
14284010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14791
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 24 May 2013 08:37:27 +0000 (08:37 +0000)]
Add belated test for the SeqStringSetChar bug.
R=titzer@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
15849003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14790
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dcarney@chromium.org [Fri, 24 May 2013 07:59:33 +0000 (07:59 +0000)]
callback handler map not correctly populated by direct use of SetCallHandler
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
15814005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14789
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Fri, 24 May 2013 01:11:33 +0000 (01:11 +0000)]
MIPS: Fix assert on ARM
Port r14781 (
a3491cb7)
BUG=
Review URL: https://codereview.chromium.org/
15952002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14788
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Fri, 24 May 2013 01:10:23 +0000 (01:10 +0000)]
MIPS: Require smi for keyed store to smi.
Port r14779 (
33d24080)
BUG=
Review URL: https://codereview.chromium.org/
15889007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14787
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Fri, 24 May 2013 01:09:23 +0000 (01:09 +0000)]
MIPS: Tag length of FixedArrayBase and smi-array[x] as smi representation
Port r14778 (
c7fdf61b)
BUG=
Review URL: https://codereview.chromium.org/
15927005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14786
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Fri, 24 May 2013 01:06:57 +0000 (01:06 +0000)]
MIPS: Improve SeqStringSetChar implementation.
Port r14769 (
f0000b20)
BUG=
Review URL: https://codereview.chromium.org/
15949002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14785
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Fri, 24 May 2013 01:05:42 +0000 (01:05 +0000)]
MIPS: Always require exact maps.
Port r14768 (
5dec309f)
BUG=
Review URL: https://codereview.chromium.org/
15948003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14784
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Fri, 24 May 2013 01:04:08 +0000 (01:04 +0000)]
MIPS: Omit smi-check for write-barrier unless tagged.
Port r14767 (
40dd85ec)
BUG=
Review URL: https://codereview.chromium.org/
15745021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14783
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Fri, 24 May 2013 01:02:27 +0000 (01:02 +0000)]
MIPS: Implement HChange support for Smis and use it in Load/StoreNameField
Port r14765 (
22625125)
BUG=
Review URL: https://codereview.chromium.org/
15781006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14782
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 23 May 2013 16:54:12 +0000 (16:54 +0000)]
Fix assert on ARM
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
15886004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14781
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Thu, 23 May 2013 15:11:43 +0000 (15:11 +0000)]
Simplifying GC heuristics, deleted old generation allocation limit.
BUG=
Review URL: https://codereview.chromium.org/
14700006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14780
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 23 May 2013 15:01:17 +0000 (15:01 +0000)]
Require smi for keyed store to smi.
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
15884002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14779
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 23 May 2013 14:38:39 +0000 (14:38 +0000)]
Tag length of FixedArrayBase and smi-array[x] as smi representation
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
15858006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14778
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Thu, 23 May 2013 14:06:28 +0000 (14:06 +0000)]
Fix embedded new-space pointer in LCmpObjectEqAndBranch.
R=mvstanton@chromium.org
BUG=chromium:240032
TEST=mjsunit/regress/regress-crbug-240032
Review URL: https://codereview.chromium.org/
15779004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14777
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Thu, 23 May 2013 13:53:49 +0000 (13:53 +0000)]
Add asserts to String::GetFlatContent.
R=verwaest@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
13841012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14776
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Thu, 23 May 2013 13:45:33 +0000 (13:45 +0000)]
Missing type cell on ia32 from bindings.
Javascript constructors called from C++ code didn't have a type cell
properly filled in on ia32. This showed up as a bug in webkit bindings.
Re-enabled flag optimize-constructed-arrays.
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
15870002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14775
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 23 May 2013 11:30:24 +0000 (11:30 +0000)]
Don't use fast literal if the boilerplate map is still deprecated.
R=mvstanton@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
15660005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14774
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Thu, 23 May 2013 10:29:28 +0000 (10:29 +0000)]
Fix Windows build after r14770
TBR=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
15848003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14771
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Thu, 23 May 2013 10:01:42 +0000 (10:01 +0000)]
Externalization API for ArrayBuffer
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
15001041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14770
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Thu, 23 May 2013 09:51:06 +0000 (09:51 +0000)]
Improve SeqStringSetChar implementation.
R=jkummerow@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
15743006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14769
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 23 May 2013 09:19:18 +0000 (09:19 +0000)]
Always require exact maps.
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
13923003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14768
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 23 May 2013 09:18:52 +0000 (09:18 +0000)]
Omit smi-check for write-barrier unless tagged.
R=mvstanton@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
15848002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14767
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Thu, 23 May 2013 09:17:01 +0000 (09:17 +0000)]
Avoid creating duplicate entries for a value when merging HSimulates
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
15660003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14766
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 23 May 2013 08:32:07 +0000 (08:32 +0000)]
Implement HChange support for Smis and use it in Load/StoreNameField
BUG=
R=verwaest@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
15303004
Patch from Daniel Clifford <danno@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14765
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dcarney@chromium.org [Thu, 23 May 2013 08:19:27 +0000 (08:19 +0000)]
de-isolate Persistent::Dispose
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
15648008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14764
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Thu, 23 May 2013 08:17:03 +0000 (08:17 +0000)]
Move global pretenuring flag check to ShouldGloballyPretenure().
BUG=
Review URL: https://codereview.chromium.org/
15734007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14763
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 23 May 2013 07:05:58 +0000 (07:05 +0000)]
Make Object.freeze fast
This patch both speeds up the freeze operation itself, but also
allows properties to remain in fast mode. Objects with non-empty
elements backing stores still end up with slow elements.
Relanding r14758 and r14759 with fix for Test262: only mark properties
and elements READ_ONLY if they are not JS setter/getters. Tightened up
tests to assert frozen-ness, and added targeted tests for the new code
(covering accessors).
BUG=v8:1858, 115960
R=verwaest@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
15691007
Patch from Adam Klein <adamk@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14762
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Wed, 22 May 2013 23:09:22 +0000 (23:09 +0000)]
MIPS: Handle holes in smi-untag from LoadKeyed requiring hole handling.
Port r14756 (
fda1989f)
BUG=
Review URL: https://codereview.chromium.org/
15690003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14761
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
adamk@chromium.org [Wed, 22 May 2013 21:27:00 +0000 (21:27 +0000)]
Revert "Make Object.freeze fast"
and "Fix Object.freeze on dictionary-backed arrays to properly freeze elements"
This reverts r14758 and r14759 due to introducing failures in Test262
TBR=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
15681004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14760
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
adamk@chromium.org [Wed, 22 May 2013 20:40:04 +0000 (20:40 +0000)]
Fix Object.freeze on dictionary-backed arrays to properly freeze elements
Follow-up to r14758: slightly rearranges JSObject::Freeze() to avoid duplicating
code while still retaining proper dictionary elements storage behavior.
Also fix a lint error.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
15737018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14759
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
adamk@chromium.org [Wed, 22 May 2013 18:53:58 +0000 (18:53 +0000)]
Make Object.freeze fast
This patch both speeds up the freeze operation itself, but also
allows properties to remain in fast mode. Objects with non-empty
elements backing stores still end up with slow elements.
BUG=v8:1858, 115960
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
14888005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14758
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 22 May 2013 17:58:21 +0000 (17:58 +0000)]
Fix bogus deopt in BuildEmitDeepCopy for holey arrays.
R=verwaest@chromium.org
BUG=chromium:242924
TEST=mjsunit/regress/regress-crbug-242924
Review URL: https://codereview.chromium.org/
15735012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14757
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Wed, 22 May 2013 16:32:33 +0000 (16:32 +0000)]
Handle holes in smi-untag from LoadKeyed requiring hole handling.
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
15737003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14756
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Wed, 22 May 2013 15:33:53 +0000 (15:33 +0000)]
Don't allow copying holes to fields.
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
15745006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14753
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 22 May 2013 15:29:02 +0000 (15:29 +0000)]
Fix corner case in optimized code map zapping.
R=jkummerow@chromium.org
TEST=mjsunit/math-floor-part2
Review URL: https://codereview.chromium.org/
15743005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14752
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Wed, 22 May 2013 15:12:07 +0000 (15:12 +0000)]
Fix Windows shared library build.
We cannot dll-export templates.
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
15697006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14751
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Wed, 22 May 2013 14:03:32 +0000 (14:03 +0000)]
Prepare push to trunk. Now working on version 3.19.4.
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
15746005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14748
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 22 May 2013 13:27:00 +0000 (13:27 +0000)]
Fix VisitLogicalExpression for empty blocks on RHS.
R=jkummerow@chromium.org
BUG=chromium:242870
TEST=mjsunit/regress/regress-crbug-242870
Review URL: https://codereview.chromium.org/
15744002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14747
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 22 May 2013 13:24:18 +0000 (13:24 +0000)]
Fix unexpected elements transition in JSON.parse
R=verwaest@chromium.org
BUG=241344
Review URL: https://chromiumcodereview.appspot.com/
15739003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14746
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Wed, 22 May 2013 10:46:33 +0000 (10:46 +0000)]
Keep representations while overwriting transitions.
BUG=chromium:241477
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
15718002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14745
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 22 May 2013 09:17:27 +0000 (09:17 +0000)]
Use explicit type feedback clearing in some tests.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
15711004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14744
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Wed, 22 May 2013 09:05:22 +0000 (09:05 +0000)]
Force GC before executing unbox double arrays test to avoid timeouts.
BUG=
Review URL: https://codereview.chromium.org/
15292002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14743
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dcarney@chromium.org [Wed, 22 May 2013 07:32:36 +0000 (07:32 +0000)]
build fix for 14738
BUG=
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
15688003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14739
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dcarney@chromium.org [Wed, 22 May 2013 06:35:38 +0000 (06:35 +0000)]
implement fast ReturnValue setters
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
15398008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14738
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Tue, 21 May 2013 23:09:04 +0000 (23:09 +0000)]
MIPS: fix arm simulator after 14725
Port r14731 (
046b5d8d)
BUG=
Review URL: https://codereview.chromium.org/
15606002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14737
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Tue, 21 May 2013 21:09:58 +0000 (21:09 +0000)]
MIPS: new style of property/function callbacks
Port r14725 (d393d88)
BUG=
Review URL: https://codereview.chromium.org/
15562007
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14736
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Tue, 21 May 2013 17:21:27 +0000 (17:21 +0000)]
Don't track representations in context extensions.
This also enables verification of representations.
BUG=
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
15411003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14735
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 21 May 2013 14:20:42 +0000 (14:20 +0000)]
Add regression test for fix from r14732.
R=verwaest@chromium.org
BUG=chromium:242502
TEST=mjsunit/regress/regress-crbug-242502
Review URL: https://codereview.chromium.org/
15288008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14734
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmassi@chromium.org [Tue, 21 May 2013 14:09:28 +0000 (14:09 +0000)]
a tiny bug in DehoistArrayIndex
R=mmassi@chromium.org
Review URL: https://codereview.chromium.org/
15268009
Patch from Weiliang Lin <weiliang.lin2@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14733
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Tue, 21 May 2013 12:59:48 +0000 (12:59 +0000)]
Zap map value in the stub-cache on clear.
The empty_string is a valid key for keyed loads and stores.
BUG=
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
15565002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14732
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dcarney@chromium.org [Tue, 21 May 2013 12:17:04 +0000 (12:17 +0000)]
fix arm simulator after 14725
BUG=
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
15484006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14731
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Tue, 21 May 2013 12:03:49 +0000 (12:03 +0000)]
Make sure we register extensions only once. Removed unused member variable.
V8::Initialize() can be called from various threads simultaneously, so
everything should be done only once per process or within the Isolate. For
registering extensions, we do the former now.
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/
15564002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14730
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 21 May 2013 11:24:20 +0000 (11:24 +0000)]
Disable flaky test after r14723.
R=svenpanne@chromium.org
BUG=v8:2628
TEST=cctest/test-cpu-profiler/SampleWhenFrameIsNotSetup
Review URL: https://codereview.chromium.org/
15415007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14729
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Tue, 21 May 2013 11:20:24 +0000 (11:20 +0000)]
Don't create new maps in CurrentMapForDeprecated.
R=yangguo@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
15358005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14728
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
wingo@igalia.com [Tue, 21 May 2013 10:45:58 +0000 (10:45 +0000)]
Remove unneeded argument from Parser::GetSymbol
Parser::GetSymbol can't actually fail, so no need for the bool* ok
argument or the CHECK_OK in callers.
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
15421007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14727
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 21 May 2013 09:25:57 +0000 (09:25 +0000)]
Make Runtime_Abort print to stderr instead of stdout.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/
15298005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14726
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dcarney@chromium.org [Tue, 21 May 2013 06:36:24 +0000 (06:36 +0000)]
new style of property/function callbacks
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
12494012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14725
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rodolph.perfetta@gmail.com [Fri, 17 May 2013 15:38:14 +0000 (15:38 +0000)]
ARM: Smi refactoring and improvements.
Refactoring:
* consistent use of SmiTag/Untag
* added a few Smi macros and helpers
Improvements
* small optimisations (e.g. merging untag and cmp #0)
* added fixed point to double conversion instructions for simpler conversions
More on the last point: a Smi can be seen as a fixed point number with the
a one bit fractional part. Fixed to double instructions allow us to convert
a Smi to a double without untagging.
BUG=none
TEST=none
Review URL: https://chromiumcodereview.appspot.com/
15085026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14724
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Fri, 17 May 2013 15:10:25 +0000 (15:10 +0000)]
Allow for no samples in test-cpu-profiler/SampleWhenFrameIsNotSetup
The test should only check that there are no sample stacks that never possible in the JS code being profiled.
BUG=v8:2628
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
14845018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14723
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Fri, 17 May 2013 13:54:12 +0000 (13:54 +0000)]
Reduce register pressure in some runtime functions
Hoped to cure the spurious 3% regression we saw on beloved chromium-rel-win7-dual/sunspider after http://code.google.com/p/v8/source/detail?r=14236
R=mstarzinger@chromium.org
BUG=chromium:233441
Review URL: https://codereview.chromium.org/
15297004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14722
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Fri, 17 May 2013 13:37:26 +0000 (13:37 +0000)]
Prepare push to trunk. Now working on version 3.19.3.
R=danno@chromium.org
Review URL: https://codereview.chromium.org/
15295007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14719
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Fri, 17 May 2013 12:33:48 +0000 (12:33 +0000)]
Turning off optimize-constructed-arrays to investigate a WebKit/bindings issue.
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
15303002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14718
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Fri, 17 May 2013 10:46:42 +0000 (10:46 +0000)]
MIPS: Unify deoptimizer for JavaScript frames.
Port r14715 (
84633474)
Original commit message:
This unifies the translation of an optimized frame to a full JavaScript
frame. Only the frame's context and fp register as well as alignment
padding are different on each architecture and can be factored out.
BUG=
Review URL: https://codereview.chromium.org/
15291002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14717
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Fri, 17 May 2013 08:56:45 +0000 (08:56 +0000)]
Fix transition test to support allocation site info.
BUG=
Review URL: https://codereview.chromium.org/
15270002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14716
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Fri, 17 May 2013 08:27:56 +0000 (08:27 +0000)]
Unify deoptimizer for JavaScript frames.
This unifies the translation of an optimized frame to a full JavaScript
frame. Only the frame's context and fp register as well as alignment
padding are different on each architecture and can be factored out.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
14843020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14715
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Fri, 17 May 2013 06:58:06 +0000 (06:58 +0000)]
Fill in one-word-fillers for the unused property fields.
BUG=chromium:240056
Review URL: https://chromiumcodereview.appspot.com/
15247003
Patch from Toon Verwaest <verwaest@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14714
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Fri, 17 May 2013 03:16:20 +0000 (03:16 +0000)]
Fix bugs in rewriting combined with attributes and accessors
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
14843023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14713
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Fri, 17 May 2013 01:10:09 +0000 (01:10 +0000)]
MIPS: Implement yield* (delegating yield)
Port r14669 (
b64ce42a)
Original commit message:
Ideally this would have been implemented via desugaring at parse-time,
but yield* is an expression, and its desugaring includes statements like
while and try/catch. We'd have to have BlockExpression in the AST to
support that, and it's not worth it for this feature.
So instead we implement all of the logic in
FullCodeGenerator::VisitYield. Delegating yield AST nodes now have a
try handler index, for the try/catch. Otherwise the implementation is
straightforward.
BUG=
Review URL: https://codereview.chromium.org/
15210004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14712
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00