Commit Graph

14047 Commits

Author SHA1 Message Date
mvstanton@chromium.org
5ba1304d60 Array builtins need to be prevented from changing frozen objects, and changing structure on sealed objects.
BUG=299979
LOG=Y
R=verwaest@chromium.org

Review URL: https://codereview.chromium.org/80623002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18164 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-29 15:22:16 +00:00
m.m.capewell@googlemail.com
662fcc6363 ARM: Optimize NumberTagU
Optimize register constaints for NumberTagU Lithium instruction, and adjust code
generated to match.

TEST=none
BUG=
R=ulan@chromium.org

Review URL: https://codereview.chromium.org/94983002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18162 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-29 13:21:43 +00:00
verwaest@chromium.org
4d5ec5e656 Reupload CallIC changes.
Relands https://codereview.chromium.org/91963003/ with fix for the invalid receiver patching in case of the global object / interceptor.
BUG=
R=ishell@chromium.org

Review URL: https://chromiumcodereview.appspot.com/96763002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18161 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-29 12:57:47 +00:00
titzer@chromium.org
425f3fde00 Eliminate HCheckHeapObject instructions in check elimination.
BUG=
R=verwaest@chromium.org

Review URL: https://codereview.chromium.org/95263005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18160 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-29 12:37:35 +00:00
yangguo@chromium.org
e5eef90e76 Prepare push to trunk. Now working on version 3.23.16.
R=dslomov@chromium.org

Review URL: https://codereview.chromium.org/96593004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18157 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-29 11:43:05 +00:00
yangguo@chromium.org
fd124a390a Turn off new_string_add flag.
TBR=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/95603008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18156 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-29 11:20:59 +00:00
yangguo@chromium.org
21ce6100fb Revert r18144, r18143.
MIPS: Fix register usage.

MIPS: Cleanup in the CallStubCompiler.

The original revisions r18131 and r18139 have been reverted.

TBR=palfia@homejinni.com

Review URL: https://codereview.chromium.org/96743002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18154 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-29 10:31:49 +00:00
jkummerow@chromium.org
833ee3cdb7 A few small refactorings and typo fixes
R=yangguo@chromium.org

Review URL: https://codereview.chromium.org/95333002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18153 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-29 10:02:32 +00:00
mstarzinger@chromium.org
b506e8ce96 Follow-up fix for r18135 in TryCallApply.
R=yangguo@chromium.org
BUG=chromium:323942
TEST=mjsunit/regress/regress-crbug-323942
LOG=N

Review URL: https://codereview.chromium.org/95583002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18152 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-29 09:59:35 +00:00
yurys@chromium.org
5567426483 Do not put allocated block into HeapObjectsMap
Heap allocation reported to AllocationTracker may be later divided into several objects so it is incorrect to put the block as a new HeapObject into the map. We will match allocated block with actual HeapObjects later when iterating Heap (will be addressed in another patch). Since the objects are not assigned an id immediately after creation we need to call FindOrAddEntry when finding id for SharedFunctionInfo during stack crawling.

Removed hooks for tracking creation of AllocationMemento. AllocationMemento is not a HeapObject and should be considered as implementation overhead.

Renamed NewObjectEvent to AllocationEvent which is more precise in case of folded allocations and when a part of the new block becomes AllocationMemento.

BUG=None
LOG=N
R=loislo@chromium.org, mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/95283003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18151 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-29 09:54:38 +00:00
mstarzinger@chromium.org
c8bfa60c0f Fix context register allocation in LTransitionElementsKind.
R=yangguo@chromium.org
BUG=chromium:324306
LOG=N

Review URL: https://codereview.chromium.org/95293003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18150 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-29 09:47:40 +00:00
yurys@chromium.org
c7053c8a37 Move heap profiler state flags to HeapProfiler
- moved is_tracking_objects_ flag to HeapProfiler and renamed it to is_tracking_objects_moves_
- Removed redundant call to UpdateHeapObjectsMap

BUG=None
LOG=N
R=loislo@chromium.org, mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/94993004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18149 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-29 09:47:32 +00:00
bmeurer@chromium.org
ba06898781 Enable --new-string-add by default.
R=hpayer@chromium.org

Review URL: https://codereview.chromium.org/96513002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18148 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-29 09:44:54 +00:00
yangguo@chromium.org
31837891f8 Fix build.
R=mvstanton@chromium.org

Review URL: https://codereview.chromium.org/96623003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18147 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-29 09:31:45 +00:00
yangguo@chromium.org
09c63bc961 Revert r18131 and r18139 "Clean up in the CallStubCompiler".
and "Fix register usage."

TBR=verwaest@chromium.org

Review URL: https://codereview.chromium.org/96573002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18146 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-29 09:02:00 +00:00
palfia@homejinni.com
d778f7088f MIPS: Fetch strictmode in the interceptor setter from the IC.
Port r18140 (9d563402)

BUG=
R=gergely@homejinni.com

Review URL: https://codereview.chromium.org/96043003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18145 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-29 01:47:48 +00:00
palfia@homejinni.com
dd26204073 MIPS: Fix register usage.
Port r18139 (2d54152a)

BUG=
R=gergely@homejinni.com

Review URL: https://codereview.chromium.org/96083002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18144 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-29 01:46:43 +00:00
palfia@homejinni.com
b9e40ff332 MIPS: Cleanup in the CallStubCompiler.
Port r18131 (b49d9992)

BUG=
R=gergely@homejinni.com

Review URL: https://codereview.chromium.org/96053002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18143 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-29 01:44:23 +00:00
palfia@homejinni.com
2c674d4ce1 MIPS: Use the HandlerFrontendHeader in most call compilers.
Port r18125 (e541c68d)

BUG=
R=gergely@homejinni.com

Review URL: https://codereview.chromium.org/96043002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18142 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-29 01:43:02 +00:00
verwaest@chromium.org
268f224f92 Remove strictmode from FindHandler.
R=mvstanton@chromium.org

Review URL: https://chromiumcodereview.appspot.com/95433002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18141 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 18:13:30 +00:00
verwaest@chromium.org
60d995fc99 Fetch strictmode in the interceptor setter from the IC.
R=mvstanton@chromium.org

Review URL: https://chromiumcodereview.appspot.com/95373002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18140 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 18:11:15 +00:00
verwaest@chromium.org
cb481195b3 Fix register usage.
R=ishell@chromium.org

Review URL: https://chromiumcodereview.appspot.com/95333004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18139 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 18:09:05 +00:00
titzer@chromium.org
5afd609aa1 Remove static asserts that dont compile on windows
TBR=mvstanton

BUG=

Review URL: https://codereview.chromium.org/95493002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18138 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 16:14:54 +00:00
titzer@chromium.org
6e5e23d630 Implement global check elimination using the HFlowEngine.
BUG=
R=mvstanton@chromium.org

Review URL: https://codereview.chromium.org/46883009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18137 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 15:50:54 +00:00
mvstanton@chromium.org
e066a3667d Move responsibility for definition of ExtraICState bits into the ICs.
Currently it's in the Code object for some ICs and in ICs for other ICs.
This should make it easier to alter bits as needed.

2) Recover an extra bit in the code object to give us 6 bits for the extra ic state. We'll need it soon to store contextual state.

3) Cleanup code that treated StrictMode enum and ExtraICState enum as interchangeble.

R=verwaest@chromium.org

Review URL: https://codereview.chromium.org/91803003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18136 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 15:32:55 +00:00
yangguo@chromium.org
f235194518 Fix bug in inlining Function.apply.
R=jkummerow@chromium.org
BUG=323942
LOG=Y

Review URL: https://codereview.chromium.org/95123003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18135 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 15:30:17 +00:00
titzer@chromium.org
bbdd21ebb0 Fix load elimination: can only .Equals() GVN-able instructions.
BUG=
R=yangguo@chromium.org

Review URL: https://codereview.chromium.org/95193002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18133 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 15:27:42 +00:00
verwaest@chromium.org
bb86f02462 Cleanup in the CallStubCompiler.
BUG=
R=ishell@chromium.org

Review URL: https://chromiumcodereview.appspot.com/91963003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18131 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 15:26:04 +00:00
rossberg@chromium.org
b974978e41 Move more logic from AST to oracle, pt 2
(More to follow)

R=jkummerow@chromium.org
BUG=

Review URL: https://codereview.chromium.org/95163002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18130 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 15:25:38 +00:00
dslomov@chromium.org
7372596615 Ensure that length is Smi in TypedArrayFromArrayLike constructor.
R=jkummerow@chromium.org
BUG=324028
LOG=Y

Review URL: https://codereview.chromium.org/94473002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18129 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 15:22:36 +00:00
jochen@chromium.org
5264959374 Undeprecate Persistent::ClearAndLeak
We depend on this in blink, and won't be able to replace it in
the near future

R=svenpanne@google.com, svenpanne@chromium.org
BUG=none
LOG=n

Review URL: https://codereview.chromium.org/95003004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18128 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 14:30:20 +00:00
rmcilroy@chromium.org
adbcede1c8 Swap cp and pp registers on Arm such for work on OOL Constant Pool.
R=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/94723002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18127 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 14:13:47 +00:00
machenbach@chromium.org
3516002001 Fix quickcheck make target.
BUG=
R=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/95073002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18126 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 14:10:56 +00:00
verwaest@chromium.org
bbef8af130 Use the HandlerFrontendHeader in most call compilers.
R=ishell@chromium.org

Review URL: https://chromiumcodereview.appspot.com/83753002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18125 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 13:56:49 +00:00
hpayer@chromium.org
0e95ffddf2 Fix allocation memento bookeeping code for js arrays.
BUG=
R=mvstanton@chromium.org

Review URL: https://codereview.chromium.org/95053002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18124 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 13:45:23 +00:00
machenbach@chromium.org
7b924a32de Prepare push to trunk. Now working on version 3.23.15.
R=yangguo@chromium.org

Review URL: https://codereview.chromium.org/95033002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18121 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 13:42:23 +00:00
machenbach@chromium.org
59ff4ec657 Add fast make and test all target.
The new target called "quickcheck" builds and tests with several configurations using recent test runner speed improvements.

Runtime from scratch (after make clean): < 8 min
Runtime tests only: < 3 min

TEST=make quickcheck
R=jkummerow@chromium.org, yangguo@chromium.org

Review URL: https://codereview.chromium.org/94703002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18120 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 13:18:04 +00:00
rossberg@chromium.org
5532af4437 Move more type collection logic from AST to oracle.
(More to come in follow-up CL.)

R=jkummerow@chromium.org
BUG=

Review URL: https://codereview.chromium.org/91863003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18119 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 13:16:51 +00:00
m.m.capewell@googlemail.com
843fca161a ARM: Optimize fixed double arguments
Optimize fixed double arguments to arithmetic Lithium instructions.

TEST=none
BUG=
R=ulan@chromium.org

Review URL: https://codereview.chromium.org/91113003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18118 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 11:38:40 +00:00
hpayer@chromium.org
0213fc9035 Added tracing support for pretenuring.
BUG=
R=mvstanton@chromium.org

Review URL: https://codereview.chromium.org/94493002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18117 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 10:49:02 +00:00
mstarzinger@chromium.org
d53e38777f Fix missing bounds check in n-arguments Array constructor.
LOG=N
R=mvstanton@chromium.org
BUG=v8:3027
TEST=mjsunit/regress/regress-3027

Review URL: https://codereview.chromium.org/92103003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18116 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 09:29:57 +00:00
yangguo@chromium.org
ea43173cf4 Shorten autogenerated error message.
R=rossberg@chromium.org
BUG=v8:3019
LOG=Y

Review URL: https://codereview.chromium.org/88393002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18115 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 08:59:45 +00:00
jochen@chromium.org
c1da40c08d Mark deprecated APIs with relatively little use as deprecated
BUG=none
R=svenpanne@chromium.org
LOG=n

Review URL: https://codereview.chromium.org/91503002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18114 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 08:21:26 +00:00
rossberg@chromium.org
e943623b12 Harmony promises
Based on prototype at

  https://github.com/rossberg-chromium/js-promise

which informed the latest spec draft version at

  https://github.com/domenic/promises-unwrapping/blob/master/README.md

Activated by --harmony-promises.

Feature complete with respect to the draft spec, plus the addition of .when and .deferred methods. Final naming and other possible deviations from the current draft will hopefully be resolved soon after the next TC39 meeting.

This CL also generalises the Object.observe delivery loop into a simplistic microtask loop. Currently, all observer events are delivered before invoking any promise handler in a single fixpoint iteration. It's not clear yet what the final semantics is supposed to be (should there be a global event ordering?), but it will probably require a more thorough event loop abstraction inside V8 once we get there.

R=dslomov@chromium.org, yhirano@chromium.org
BUG=

Review URL: https://codereview.chromium.org/64223010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18113 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-27 17:21:40 +00:00
machenbach@chromium.org
8903dcbab8 Prepare push to trunk. Now working on version 3.23.14.
R=yangguo@chromium.org

Review URL: https://codereview.chromium.org/91763002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18107 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-27 15:10:46 +00:00
mvstanton@chromium.org
d18a103e56 ARM/MIPS compilation error.
Due to an error during platform porting.

R=yangguo@chromium.org

Review URL: https://codereview.chromium.org/91583002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18106 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-27 14:32:35 +00:00
mvstanton@chromium.org
f3a22f965e The goal is to discover the appropriate heap space for objects created in full
code. By the time we optimize the code, we'll be able to decide on new or old
space based on the number of surviving objects after one or more gcs.

The mechanism is a "memento" placed behind objects in the heap. It's currently
done for array and object literals, with plans to use mementos for constructed
objects as well (in a later CL).

The feature is behind the flag allocation_site_pretenuring, currently off.

R=hpayer@chromium.org

Review URL: https://codereview.chromium.org/40063002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18104 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-27 14:03:40 +00:00
verwaest@chromium.org
50a4bb5084 Remove the strict-mode flag from store handlers. It's only relevant to the IC stub.
R=mvstanton@chromium.org

Review URL: https://chromiumcodereview.appspot.com/91413003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18103 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-27 14:00:54 +00:00
rmcilroy@chromium.org
49627050d0 Avoid trying to decode the raw inline constant which is part of the aged code prologue.
BUG=v8:3007
LOG=N
R=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/88303003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18097 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-27 10:07:57 +00:00
yangguo@chromium.org
525876350d Add ES specification reference to DateNow.
R=yangguo@chromium.org

Review URL: https://codereview.chromium.org/89353002

Patch from Victor Costan <costan@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18094 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-27 09:39:41 +00:00