Commit Graph

9325 Commits

Author SHA1 Message Date
mmassi@chromium.org
ce682a2489 Allow property indexes to refer to slots inside the object header.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12944 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-13 11:07:04 +00:00
mvstanton@chromium.org
50bd6e9092 Revert change r12912 (http://code.google.com/p/v8/source/detail?r=12912) due to x64 perf issue
R=verwaest@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12943 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-13 10:53:34 +00:00
yangguo@chromium.org
827f8919f4 Reverting r12937.
R=verwaest@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12942 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-13 10:36:20 +00:00
yangguo@chromium.org
578a2c74bd Fix details in message formatting.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12940 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-13 09:01:43 +00:00
yangguo@chromium.org
c6b35d0310 Correctly handle uncaught exception objects.
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12939 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-12 17:32:30 +00:00
ulan@chromium.org
acd3013d9d Speed up native error check.
BUG=148757
TEST=largeObj test from the bug is 2x faster.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12938 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-12 15:33:31 +00:00
yangguo@chromium.org
ce884e13e3 Make kAsciiDataHintTag have correct semantics for all both 1 and 2 byte string types.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-12 14:57:59 +00:00
yangguo@chromium.org
693ee09cf3 Correctly check for stack overflow even when interrupt is pending.
BUG=v8:214

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12936 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-12 14:56:25 +00:00
yangguo@chromium.org
4c27298d27 Collect stack trace on stack overflow.
BUG=v8:2394

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12933 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-12 14:54:29 +00:00
mvstanton@chromium.org
69846ce69d Prepare push to trunk. Now working on version 3.15.3.
R=danno@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12932 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-12 14:43:21 +00:00
svenpanne@chromium.org
073dfc0a6f Fixed Code::FindCodeAgeSequence logic, removing a dead method on the way.
Review URL: https://codereview.chromium.org/11364177

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12930 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-12 13:27:36 +00:00
jkummerow@chromium.org
e8320f4f78 Function::GetScriptOrigin should supply sourceURL when script name is not available.
GetScriptOrigin is used for DevTools instrumentation.

If inspected call-site is inside "eval" then returned script name is "undefined". To fix this problem we can use the "nameOrSourceURL" method of script-wrapper.

This is a re-upload of https://codereview.appspot.com/6811090/ for the purpose of landing.

BUG=159413

Review URL: https://codereview.chromium.org/11312185
Patch from Eugene Klyuchnikov <eustas@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12929 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-12 12:34:18 +00:00
rossberg@chromium.org
92e783bc28 Minor cleanup and optimisation of element methods.
R=verwaest@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12927 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-12 11:08:34 +00:00
yangguo@chromium.org
4cca6c6081 Make formatting error message side-effect-free.
BUG=v8:2398

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12926 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-12 10:33:20 +00:00
yangguo@chromium.org
ef1b3d3a76 Fix length check in JSON.stringify.
R=verwaest@chromium.org
BUG=160010

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12925 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-12 10:20:07 +00:00
hpayer@chromium.org
ea9b1306fe Refactoring incremental marking
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12924 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-12 10:12:35 +00:00
rossberg@chromium.org
0e7306cc92 Implement Object.getNotifier() and remove Object.notify()
Updated all tests to use getNotifier or actual object mutation instead of notify, and added tests for new behavior of getNotifier.

Review URL: https://codereview.chromium.org/11369154
Patch from Adam Klein <adamk@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12923 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-09 16:14:42 +00:00
svenpanne@chromium.org
237684fa45 Refactoring: Make emit_debug_code flag handling architecture-independent.
Review URL: https://codereview.chromium.org/11312165

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12921 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-09 13:43:48 +00:00
svenpanne@chromium.org
a28bc2fd97 Refactoring: Make predictable code flag handling architecture-independent.
Review URL: https://codereview.chromium.org/11359127

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12920 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-09 13:10:10 +00:00
danno@chromium.org
92c6fe5c91 Disable code aging due to bugs.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12919 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-09 13:04:51 +00:00
rossberg@chromium.org
af7bfe0e27 Minimal implementation and tests of observable array methods
Bail out of any special-casing in array methods.
Further optimization is possible, but can be left for later.

Review URL: https://codereview.chromium.org/11369151
Patch from Adam Klein <adamk@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12917 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-09 12:28:22 +00:00
svenpanne@chromium.org
130c4041c7 Keep the number of descriptors below DescriptorArray::kMaxNumberOfDescriptors even for accessors
Review URL: https://codereview.chromium.org/11362182

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12916 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-09 11:30:05 +00:00
rossberg@chromium.org
b72e5811e7 Object.observe: notify when element addition causes array growth
Review URL: https://codereview.chromium.org/11369135
Patch from Adam Klein <adamk@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12914 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-09 10:57:54 +00:00
rossberg@chromium.org
127b944ab5 Fix InternalObjectHashTable to properly update table ref in observationState
The previous fix wasn't broad enough: it only fixed the reference for a single Context.

Review URL: https://codereview.chromium.org/11361172
Patch from Adam Klein <adamk@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12913 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-09 10:51:35 +00:00
mvstanton@chromium.org
803d8eada1 Some improvements in register usage in lithium compilation of LoadKeyed/StoreKeyed operations.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12912 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-09 10:21:07 +00:00
svenpanne@chromium.org
09666b60b8 Rollback of r12868, r12849 on bleeding_edge.
Fixed visibility attribute for GetPointerFromInternalField

Heavy cleanup of the external pointer API.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12911 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-09 10:07:54 +00:00
mstarzinger@chromium.org
2d69a2b12e ES6: Add support for Set and Map clear method
http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts, section
15.14.5.3 and 15.14.5.2

BUG=v8:2400

Review URL: https://codereview.chromium.org/11409002
Patch from Erik Arvidsson <arv@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12909 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-09 09:01:29 +00:00
yangguo@chromium.org
64da47559c Turn message property of the error object into a data property.
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12908 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-09 08:22:02 +00:00
svenpanne@chromium.org
e4cbac8dfd Fixed assertion.
The name in question is not necessarily a symbol, so we have to use Equals instead of ==.

BUG=http://www.playescapegoat.com/

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12907 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-09 07:26:05 +00:00
danno@chromium.org
cc1d08bf33 Active code aging by default.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12906 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-08 17:31:45 +00:00
rossberg@chromium.org
2af4744889 Handle Object.observe notifications for setting Array.length
Also handles notification of deleted properties when an array
is truncated by setting length.

Review URL: https://codereview.chromium.org/11338048
Patch from Adam Klein <adamk@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12905 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-08 16:12:12 +00:00
mstarzinger@chromium.org
a65e166aa7 Implement MarkIndependent(Isolate*) and MarkPartiallyDependent(Isolate*)
BUG=
TEST=cctest/test-api/IndependentWeakHandle

Review URL: https://codereview.chromium.org/11369131
Patch from Kentaro Hara <haraken@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12904 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-08 15:01:26 +00:00
mstarzinger@chromium.org
36d128d7b8 Reshuffle an if() condition to not depend on an uninitialized value.
Node::class_id_ contains garbage for newly allocated (FREE) nodes. This patch
changes the code to first test the node state_, then (for non-FREE nodes),
class_id_, and not the other way around.

This does not affect the branch taken (i.e. the current code is correct),
but makes Valgrind and MSan happy.

Review URL: https://codereview.chromium.org/11362158
Patch from Evgeniy Stepanov <eugenis@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12903 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-08 14:40:55 +00:00
rossberg@chromium.org
c203f05474 Delivery logic for Object.observe
This CL has two parts: the first is the logic itself, whereby each observer callback is assigned
a "priority" number the first time it's passed as an observer to Object.observe(), and that
priority is used to determine the order of delivery.

The second part invokes the above logic as part of the API, when the JS stack winds down to
zero.

Added several tests via the API, as the delivery logic isn't testable from a JS test
(it runs after such a test would exit).

Review URL: https://codereview.chromium.org/11266011
Patch from Adam Klein <adamk@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12902 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-08 13:44:59 +00:00
rossberg@chromium.org
8eb704257f Object.observe: Fixed missing case for turning off ICs.
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12901 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-08 13:15:54 +00:00
rossberg@chromium.org
fbc6e0d883 Object.observe: generate change records for indexed properties.
Details:
- Extend ElementAccessors with GetAttributes method.
- Add HasLocalElement, Get[Local]ElementAttribute methods to JSReceiver/JSObject.
- Otherwise, mirror implementation for named properties.

Cannot correctly handle the cases yet where an accessor is redefined or deleted.

Also fixed handling of object info table.

(Based on CL https://codereview.chromium.org/11362115/)

R=verwaest@chromium.org,mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12900 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-08 12:58:08 +00:00
danno@chromium.org
0f0da437e2 Fix intptr_t/int32_t casting problem on Win64.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12899 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-08 12:53:15 +00:00
danno@chromium.org
bd4e114b8e Add code again to allow reclaiming old unexecuted functions.
When code objects in the heap for FUNCTIONs and OPTIMIZED_FUNCTIONs are marked by the GC, their prologue is patched with a call to a stub that removes the patch. This allows the collector to quickly identify code objects that haven't been executed since the last full collection (they are the ones that sill contain the patch). The functionality is currently disabled, but can be activated by specifying the "--age-code".

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12898 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-08 12:18:11 +00:00
yangguo@chromium.org
943c10bb87 Rename kAsciiStringTag to kOneByteStringTag
This is just a rename. After commit, I'll begin with the semantic changes.
Until those are complete, kOneByteStringTag will have the same meaning as
kAsciiStringTag.

BUG=

Review URL: https://chromiumcodereview.appspot.com/11293168
Patch from Dan Carney <dcarney@google.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12897 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-08 12:14:29 +00:00
mstarzinger@chromium.org
a31889e2de Fix slack tracking when instance prototype changes.
This fixes a corner case when the instance prototype of a function is
changed while inobject slack tracking is still in progress. This caused
the intial map to be unrelated for functions with the same shared info
and hence the shared construct stub is no longer generic enough to work
for all those functions.

R=danno@chromium.org
BUG=chromium:157019
TEST=mjsunit/regress/regress-crbug-157019

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12896 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-08 11:56:44 +00:00
danno@chromium.org
bbcfa17134 Use movw/movt on ARM to load constant roots
BUG=none
TEST=none

Review URL: https://codereview.chromium.org/11307012
Patch from Jay Conrod <dconrod@codeaurora.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12895 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-08 10:32:39 +00:00
mstarzinger@chromium.org
8e7ae24b40 Fix disabling of code flusher while marking.
This fixes a corner case when the code flusher is disabled while
incremental marking is running. The list of candidates needs to be
evicted to prevent list fragments without a head floating around.

R=ulan@chromium.org
BUG=chromium:159140

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12894 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-08 10:26:50 +00:00
mstarzinger@chromium.org
e9efaf6c87 Revert r12889 due to Webkit test failures.
Pass the SIGPROF signal on to previously registered signal handler.

Regressions: Unexpected crashes (2)
  inspector/profiler/cpu-profiler-profiling-without-inspector.html
  inspector/profiler/cpu-profiler-profiling.html

R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12892 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-08 09:19:23 +00:00
danno@chromium.org
63ada1da1b Move vldr in DoLoadKeyedFastDoubleElement before the hole check
This reschedules instructions to better absorb VFP load latency.
BUG=none
TEST=none

Review URL: https://codereview.chromium.org/11363086
Patch from Rajeev Krithivasan <rkrithiv@codeaurora.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12890 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-07 21:38:46 +00:00
danno@chromium.org
17194b087e Pass the SIGPROF signal on to previously registered signal handler.
This enables the google-perftools SIGPROF signal handler to continue to work properly.

BUG=none

Review URL: https://codereview.chromium.org/11195045
Patch from William Chan <willchan@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12889 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-07 17:23:02 +00:00
rossberg@chromium.org
e059e64c98 Object.observe: include oldValue in change records,
plus more accurate distinction of different change types.

Required handlifying more code.

Also fixed a handlification bug in JSProxy::GetElementAttributeWithHandler.

R=verwaest@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12888 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-07 14:14:50 +00:00
ulan@chromium.org
101d64c1a6 Simplify some of the startup code for SubStringStub::Generate.
R=ulan@chromium.org

Review URL: https://chromiumcodereview.appspot.com/11098043
Patch from JF Bastien <jfb@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12887 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-07 13:22:03 +00:00
danno@chromium.org
d079e3f937 Fix another casting problem in Win64
TBR=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12881 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-07 10:31:45 +00:00
danno@chromium.org
a7a63219fe Fix size_t/int casting problem on Win64 build
TBR=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12880 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-07 09:59:50 +00:00
danno@chromium.org
0fc9527abe Decouple allocation and creation of deopt tables
This makes it possible to calculate the future address of a deopt entry before it is possible to generate the deopt table.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12877 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-07 08:49:17 +00:00
mvstanton@chromium.org
85ac311a6e MIPS: Consolidated all the key store/load classes in the Hydrogen and Lithium space into just two: HLoadKeyed/HLoadKeyedGeneric and HStoreKeyed/HStoreKeyedGeneric LLoadKeyed/LLoadKeyedGeneric and LStoreKeyed/LStoreKeyedGeneric
Port r12839 (b8b7faa3)

BUG=
TEST=

Review URL: https://codereview.chromium.org/11369110
Patch from palfia <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12876 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-07 08:37:58 +00:00
mstarzinger@chromium.org
e405ff84b4 ES6: Adding support for size to Set and Map
Section 15.14.5.10 and 15.16.5.7 in the October 26, 2012 ES6 draft,
http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts

This adds a getter for "size" to Set.prototype and Map.prototype which reflects
the number of elements in the Set and Map respectively.

BUG=v8:2395

Review URL: https://codereview.chromium.org/11360089
Patch from Erik Arvidsson <arv@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12875 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-06 18:14:45 +00:00
mstarzinger@chromium.org
762c36b6fb Allow collection of DOM objects in minor GC cycles.
A design document: https://docs.google.com/a/google.com/document/d/16DeHrzkm3cO9XCPT1aK3Y5qgUxXB3RFmueqQWYmN2rI/edit

Performance & memory results: https://docs.google.com/a/google.com/document/d/1h0-EsHu7T0sSMuZm5eE0r1e8sCAzY3weLvsDUpOSngE/edit

The WebKit side patch: https://bugs.webkit.org/show_bug.cgi?id=98725

At present no one is using the V8 APIs this patch is going to add. After this patch is landed, the WebKit side patch will use it.

BUG=

Review URL: https://codereview.chromium.org/11085015
Patch from Kentaro Hara <haraken@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12874 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-06 17:32:15 +00:00
mstarzinger@chromium.org
c54fc70f13 Store Object.observe state per-isolate rather than per-context
This requires adding a new JSObject to the strong root list and populating it from
object-observe.js. The main other change is that we now directly use ObjectHashTable
from JS rather than using WeakMap, since using the latter would end up leaking whichever
Context initialized that observation state.

Added a test via the API showing that different contexts all end up working on the same state.

Review URL: https://codereview.chromium.org/11274014
Patch from Adam Klein <adamk@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12873 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-06 16:47:15 +00:00
rossberg@chromium.org
b80cbd7922 Object.observe: generate change records for named properties.
In more detail:
- Set observation bit for observed objects (and make NormalizedMapCache respect it).
- Mutation of observed objects is always delegated from ICs to runtime.
- Introduce JS runtime function for notifying generated changes.
- Invoke this function in the appropriate places (including some local refactoring).
- Inclusion of oldValue field is not yet implemented, nor element properties.

Also, shortened flag to --harmony-observation.

R=verwaest@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12867 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-06 12:32:36 +00:00
rossberg@chromium.org
beaccd74cb Object.observe: implement map bit and functions to access it.
R=danno@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12866 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-06 12:30:22 +00:00
verwaest@chromium.org
83378890eb Prepare push to trunk. Now working on version 3.15.2.
R=danno@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12863 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-06 12:10:54 +00:00
mstarzinger@chromium.org
03ba764f3e Put incremental code flushing behind a flag.
This is used to disable incremental code flushing by default for now
until we can stabilize it and make it ready for production.

R=verwaest@chromium.org
BUG=chromium:159140

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12862 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-06 11:54:05 +00:00
yangguo@chromium.org
85bda7bc09 Fix stack overflow for mac build.
R=ulan@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12861 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-05 18:39:59 +00:00
verwaest@chromium.org
f95d9502c3 Removed duplicate line.
Review URL: https://chromiumcodereview.appspot.com/11359055

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12860 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-05 15:37:04 +00:00
yangguo@chromium.org
71688ba750 Reduce stack frame size in JSON.stringify.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12859 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-05 15:01:51 +00:00
verwaest@chromium.org
384ab895e8 Remove superfluous setting of bitfield3.
Review URL: https://chromiumcodereview.appspot.com/11367093

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12858 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-05 14:43:11 +00:00
svenpanne@chromium.org
6f9a75a449 Removed useless Canonicalize implementations subsumed by dead code elimination.
Review URL: https://codereview.chromium.org/11362085

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12857 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-05 14:38:00 +00:00
svenpanne@chromium.org
50f6e07e67 Nano-refactoring: Simplify initialization
Review URL: https://codereview.chromium.org/11368078

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12856 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-05 14:37:28 +00:00
ulan@chromium.org
f106c9c9f7 Add rotate-right instruction to hydrogen and use it instead of bitwise operations
of the form ((x >>> i) | (x << (32 - i))).

This CL is based on https://chromiumcodereview.appspot.com/10984057/
by Jay Conrod <dconrod@codeaurora.org>.

R=danno@chromium.org,mstarzinger@chromium.org,dconrod@codeaurora.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12855 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-05 13:28:10 +00:00
mstarzinger@chromium.org
b77e629f1a Implement IsIndependent(Isolate*)
BUG=
TEST=cctest/test-api/IndependentWeakHandle

Committed: https://code.google.com/p/v8/source/detail?r=12852

Review URL: https://codereview.chromium.org/11368053
Patch from Kentaro Hara <haraken@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12854 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-05 13:20:45 +00:00
yangguo@chromium.org
e452c10702 Add fast path for FastProperty objects in JSON.stringify.
R=verwaest@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12853 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-05 12:59:35 +00:00
mstarzinger@chromium.org
ea00c51e24 Implement IsIndependent(Isolate*)
BUG=
TEST=cctest/test-api/IndependentWeakHandle

Review URL: https://codereview.chromium.org/11368053
Patch from Kentaro Hara <haraken@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12852 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-05 12:35:51 +00:00
yangguo@chromium.org
e26012e771 Fix JSON.stringify wrt harmony proxies.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12851 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-05 10:53:56 +00:00
yangguo@chromium.org
17fab1dfa1 Improve handle allocation in JSON.parse.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12850 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-05 10:50:36 +00:00
svenpanne@chromium.org
f3807ca17b Heavy cleanup of the external pointer API.
Added highly efficient Object::SetAlignedPointerInInternalField and
Object::GetAlignedPointerFromInternalField functions for 2-byte-aligned
pointers. Their non-aligned counterparts Object::GetPointerFromInternalField and
Object::SetPointerInInternalField are now deprecated utility functions.

External is now a true Value again, with New/Value/Cast using a JSObject with an
internal field containing a Foreign. External::Wrap, and External::Unwrap are now
deprecated utility functions.

Added Context::GetEmbedderData and Context::SetEmbedderData. Deprecated
Context::GetData and Context::SetData, these are now only wrappers to access
internal field 0.

Added highly efficient Context::SetAlignedPointerInEmbedderData and
Context::GetAlignedPointerFromEmbedderData functions for 2-byte-aligned
pointers.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12849 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-05 10:25:32 +00:00
svenpanne@chromium.org
24bb0668e6 Simplified HCheckMaps handling a bit.
This is a refactoring-only CL which simplifies the way we emit combinations of
Smi+map checks.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12848 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-05 10:06:24 +00:00
svenpanne@chromium.org
9de1d40d28 Improve handling of property loads on the proto chain.
Previously Crankshaft emitted a generic load for these, now we emit a load of a
named field, guarded by a proto chain check.

LCheckPrototypeMaps now returns the holder, which is for free, because it
already had to check its map as the last step, anyway. This is in sync with what
StubCompiler::CheckPrototype does.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12847 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-05 08:53:54 +00:00
yangguo@chromium.org
e8d91b424c Handle edge cases in basic JSON.stringify.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12842 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-02 14:46:57 +00:00
yangguo@chromium.org
64793b3f0d Correctly visit all external strings.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12841 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-02 12:45:00 +00:00
verwaest@chromium.org
14abf05bd5 Ensure reducing the length of an array doesn't make it go holey.
Also only transition and/or change anything to the backing store if we are
actually going to delete anything.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12840 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-02 10:24:56 +00:00
mvstanton@chromium.org
a85fd03caa Consolidated all the key store/load classes in the Hydrogen and Lithium
space into just two:
HLoadKeyed/HLoadKeyedGeneric and HStoreKeyed/HStoreKeyedGeneric
LLoadKeyed/LLoadKeyedGeneric and LStoreKeyed/LStoreKeyedGeneric
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12839 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-02 09:18:53 +00:00
danno@chromium.org
75cec19872 Prepare push to trunk. Now working on version 3.15.1.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12835 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-31 09:58:22 +00:00
yangguo@chromium.org
fe7ec01096 Fix handling arrays with holes in JSON.stringify.
R=verwaest@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12834 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-30 15:29:34 +00:00
danno@chromium.org
5da0bbf390 Loosen aligned code target requirement on ARM
Fixes crashes when V8 is built as Thumb code.

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12832 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-29 16:27:54 +00:00
danno@chromium.org
60267da6d9 MIPS: Cleanup handling of shifts: SHR can deoptimize only when its a shift by 0, all other shift never deoptimize.
Port r12373 (9fdde2ad)

Original commit message:
Fix DoDeferredNumberTagU to keep the value in xmm1 instead of xmm0 on x64.

xmm0 is not saved across runtime call on x64 because MacroAssembler::EnterExitFrameEpilogue preserves only allocatable XMM registers unlike on ia32 where it preserves all registers.

Cleanup handling of shifts: SHR can deoptimize only when its a shift by 0, all other shift never deoptimize.

Fix type inference for i-to-t change instruction. On X64 this ensures that write-barrier is generated correctly.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10876054
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12831 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-29 15:10:21 +00:00
yangguo@chromium.org
8ed2e560ea Treat leading zeros in JSON.parse correctly.
R=verwaest@chromium.org
BUG=158185

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12830 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-29 12:01:29 +00:00
ulan@chromium.org
42c7166e75 Fix performance regression introduced by r12812.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12829 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-29 11:45:57 +00:00
danno@chromium.org
e96d49047b Remove redundant jump to deoptimization (the jump already exists in DoCheckMapCommon)
BUG=none
TEST=none

Review URL: https://codereview.chromium.org/11265044
Patch from Rajeev Krithivasan <rkrithiv@codeaurora.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12828 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-29 11:45:40 +00:00
mstarzinger@chromium.org
e363cd3425 Fix ugly typo in GenerateNewNonStrictFast.
R=svenpanne@chromium.org
BUG=chromium:157520
TEST=mjsunit/regress/regress-crbug-157520

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12826 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-26 10:55:25 +00:00
mstarzinger@chromium.org
014f00fa51 Fix code flusher to process weak function links.
This fixes a corner case where weak function links of the code flushing
candidates list were destroyed by scavenges that happened during
incremental marking. Now those weak function links are updated while
scavenging happens.

R=ulan@chromium.org
TEST=cctest/test-heap/TestCodeFlushingIncrementalScavenge

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12825 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-26 09:44:34 +00:00
mstarzinger@chromium.org
c0461d999c Update ReceiverObjectNeedsWriteBarrier to include HFastLiteral
This will prevent unnecessary write barriers for literals.
BUG=none
TEST=none

Review URL: https://codereview.chromium.org/11143005
Patch from Derek J Conrod <dconrod@codeaurora.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12823 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-25 15:45:24 +00:00
mstarzinger@chromium.org
e119459af2 Set kChangesNewSpacePromotion for HStringAdd
TEST=none
BUG=none

Review URL: https://codereview.chromium.org/11143006
Patch from Derek J Conrod <dconrod@codeaurora.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12822 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-25 15:23:39 +00:00
rossberg@chromium.org
aa5e1c3483 Set up Proxy methods the proper way.
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12821 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-25 15:13:44 +00:00
rossberg@chromium.org
ae93cf665d Initial JS stub implementation of Object.observe. Adds support for .object/.unobserve/.notify/.deliverChangeRecords. No delivery mechanism is implemented for end-of-microtask.
Review URL: https://codereview.chromium.org/11225058
Patch from Rafael Weinstein <rafaelw@google.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12820 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-25 14:56:44 +00:00
rossberg@chromium.org
cd9029a502 Initial JS stub implementation of Object.observe. Adds support for .object/.unobserve/.notify/.deliverChangeRecords. No delivery mechanism is implemented for end-of-microtask.
Review URL: https://codereview.chromium.org/11225058
Patch from Rafael Weinstein <rafaelw@google.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12819 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-25 14:53:26 +00:00
mstarzinger@chromium.org
8133d85955 Fix test failures in r12813.
R=yangguo@chromium.org
BUG=v8:1490

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12818 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-25 13:54:10 +00:00
yangguo@chromium.org
58c82e93b3 Catch stack overflow in JSON.parse.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12816 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-25 12:36:40 +00:00
mstarzinger@chromium.org
ebb44f0d30 Expose gc(true) to JavaScript, which triggers a scavenger GC.
With the --expose_gc option, gc() is exposed to JavaScript. Currently gc() triggers a full GC.

To enable JavaScript to test the behavior of a scavenger GC, this patch exposes gc(true). If the first argument is true, gc(...) triggers a scavenger GC. Otherwise, gc(...) triggers a full GC.

BUG=
Test=Manually confirmed that gc() and gc(false) trigger a full GC and that gc(true) triggers a scavenger GC.

Review URL: https://codereview.chromium.org/11232065
Patch from Kentaro Hara <haraken@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12815 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-25 12:23:03 +00:00
yangguo@chromium.org
e40b33d39e Correctly check for stack limit in JSON.stringify.
Changes include:
 - inline functions in a way as not to waste stack space.
 - reset StackReserveSize to the value prior to r12808.
 - check stack overflow dynamically.

R=ulan@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12814 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-25 12:18:24 +00:00
mstarzinger@chromium.org
b55988625d Get rid of obsolete unchecked accessors.
R=yangguo@chromium.org
BUG=v8:1490

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12813 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-25 11:52:37 +00:00
ulan@chromium.org
889de3b780 Fix memory leak in RegExpStack.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12812 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-25 11:10:13 +00:00
danno@chromium.org
0f8992395c Fast-forward to version 3.15.0
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12811 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-25 10:53:35 +00:00
mstarzinger@chromium.org
2baf7eb8e2 Fix typo in V8::MarkIndependent()
BUG=

Review URL: https://codereview.chromium.org/11238064
Patch from Kentaro Hara <haraken@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12810 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-25 10:07:26 +00:00
ulan@chromium.org
4183f03848 Fix memory leak in DeoptimizerData.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12809 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-25 09:35:55 +00:00
yangguo@chromium.org
b2d41f8fe8 Fix stack overflow in JSON.stringify.
R=verwaest@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12808 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-24 15:49:59 +00:00
yangguo@chromium.org
295dee36bb Use correct timezone information on Solaris
`timezone` variable contains the difference, in seconds, between UTC and
local standard time (see `man 3 localtime` on Solaris).

Call to `tzset` is required to apply contents of `TZ` variable to
`timezone` variable.

BUG=v8:2064

Review URL: https://chromiumcodereview.appspot.com/10967066
Patch from Maciej Małecki <me@mmalecki.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12802 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-23 13:04:05 +00:00
yangguo@chromium.org
169185088e Fix Windows 64 build.
R=verwaest@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12800 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-23 12:00:42 +00:00
yangguo@chromium.org
657cd22463 Fix Windows build.
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12799 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-23 09:39:19 +00:00
yangguo@chromium.org
748f8bf7e1 Optimize inner-loop in JSON.stringify.
R=verwaest@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12798 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-23 09:05:56 +00:00
mstarzinger@chromium.org
cee59bf522 Enable incremental code flushing.
This enables code flushing even with incremental marking enabled and
fully shares the function link field in JSFunctions between candidates
for code flushing and the optimized functions list. If a candidate for
code flushing gets optimized, it will be evicted from the candidates
list.

R=ulan@chromium.org
BUG=v8:1609

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12796 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-23 08:25:04 +00:00
verwaest@chromium.org
362e8cb02a Pretenure JSON graph if the input string is larger than 100*1024 chars.
Review URL: https://chromiumcodereview.appspot.com/11238031

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12795 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-23 08:06:28 +00:00
alexeif@chromium.org
b882786349 Add a type conversion to fix Windows build after r12793
TBR=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12794 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-22 18:25:10 +00:00
mstarzinger@chromium.org
37759f4d64 Implement committed physical memory stats for Linux.
The patch introduces CommittedPhysicalMemory function to
the Heap class that reports committed *physical* memory acquired
for the heap from the OS.
It is important because some OSes may defer actual committment on e.g.
first access to the region.
So reporting just plain committed size led to various weird artifacts
like showing V8 allocated memory higher than the whole process
private size.

BUG=v8:2191

Review URL: https://codereview.chromium.org/11066118
Patch from Alexei Filippov <alph@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12793 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-22 16:33:10 +00:00
ulan@chromium.org
3c864d3e79 Fix warnings about tautological compares by recent Clang versions.
This fixes the following Clang warnings:

../../v8/src/ia32/assembler-ia32.cc:1504:24: warning: comparison of constant 16 with expression of type 'v8::internal::Condition' is always true [-Wtautological-constant-out-of-range-compare]
  ASSERT(0 <= cc && cc < 16);
  ~~~~~~~~~~~~~~~~~~~~~^~~~~

../../v8/src/ia32/assembler-ia32.cc:1536:27: warning: comparison of constant 16 with expression of type 'v8::internal::Condition' is always true [-Wtautological-constant-out-of-range-compare]
  ASSERT((0 <= cc) && (cc < 16));
  ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~

BUG=crbug.com/151927

Review URL: https://chromiumcodereview.appspot.com/11225030
Patch from Hans Wennborg <hans@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12792 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-22 15:59:58 +00:00
ulan@chromium.org
d247c5e6c7 Change constant pool marker to be the unconditional, permanently undefined instruction.
The previously-used instruction isn't guaranteed to always be undefined,
and the encoding used was conditional (failing the condition on an
undefined instruction is itself undefined and not guaranteed to
fault!). I would have like to use a more clever encoding (see bug 2963),
but we need the extra bits to encode the size of the constant pool.

BUG=security
R=ulan@chromium.org

Review URL: https://chromiumcodereview.appspot.com/11242002
Patch from JF Bastien <jfb@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12791 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-22 15:25:17 +00:00
yangguo@chromium.org
e50ee08ad6 Reland JSON.stringify reimplementation.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12790 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-22 14:22:58 +00:00
rossberg@chromium.org
f923250daf Prepare push to trunk. Now working on version 3.14.6.
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12786 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-22 13:09:01 +00:00
mstarzinger@chromium.org
34d98a804d Fix deletion of hidden property with inline-stored hash.
R=yangguo@chromium.org
BUG=chromium:157124
TEST=cctest/test-api/Regress157124

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12785 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-22 12:50:51 +00:00
danno@chromium.org
f07b229104 MIPS: Use movw/movt instead of constant pool on ARMv7.
Port r12755 (5d62d66e)

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/11232036
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12784 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-22 11:15:09 +00:00
yangguo@chromium.org
e41250a390 Revert r12760 (JSON.stringify).
R=verwaest@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12783 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-22 11:11:22 +00:00
yangguo@chromium.org
3c5e899378 Fix two-char hash to use correct fallback for zero hashes.
R=verwaest@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12782 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-22 10:38:40 +00:00
ulan@chromium.org
18ff15ca8c Speed up function deoptimization by avoiding quadratic pass over optimized function list.
R=danno@chromium.org
BUG=155270

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12780 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-22 09:48:56 +00:00
verwaest@chromium.org
d33cda9338 Micro-optimizing the json parser
Review URL: https://chromiumcodereview.appspot.com/11237002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12779 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-19 15:37:28 +00:00
verwaest@chromium.org
4f40326fae Fast path for searching through simple transitions
Review URL: https://chromiumcodereview.appspot.com/11189089

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12778 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-19 15:03:27 +00:00
yangguo@chromium.org
06f7d1c92c Improve ClampDoubleToUint8 on ia32/x64.
It's measured faster when:
a) clamp never happens;
b) clamp random happens ([-128,384], pseudo random).

Review URL: https://chromiumcodereview.appspot.com/11190049
Patch from Zheng Liu <zheng.z.liu@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12777 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-19 13:20:22 +00:00
verwaest@chromium.org
c9e86f4b69 Remove scratch register requirement from LoadInstanceDescriptors on arm and mips.
Review URL: https://chromiumcodereview.appspot.com/11193022

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12776 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-19 12:39:59 +00:00
yangguo@chromium.org
8148f972e8 Stress GC less by allocating exponentially growing string chunks in JSON.stringify.
R=verwaest@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12775 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-19 12:39:43 +00:00
yangguo@chromium.org
f910052543 Always invoke the default Array.sort functions from builtin functions, part 2.
R=vegorov@chromium.org
BUG=v8:2372

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12774 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-19 12:30:18 +00:00
danno@chromium.org
063609280e Add a faster API for creating v8::Integer objects
In WebKit, we have a small integer cache because calling v8::Integer::New is
slow. This patch adds a faster API for creating integers that requires the
caller to supply the v8::Isolate, saving us the work of looking up the isolate
in thread-local storage.

BUG=

Review URL: https://codereview.chromium.org/11212004
Patch from Adam Barth <abarth@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12773 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-19 11:15:04 +00:00
verwaest@chromium.org
a0c9856bce Get the target field index when transitioning.
Review URL: https://chromiumcodereview.appspot.com/11194080

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12772 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-19 10:48:18 +00:00
danno@chromium.org
ace5bf3f94 Fix ARM dissambler test problems with movw/movt.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12771 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-19 10:44:56 +00:00
yangguo@chromium.org
5fa8f2f485 Pass pending exception to the message listener.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12768 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-19 08:45:24 +00:00
verwaest@chromium.org
fa53250dd2 Fixed json regression
BUG=v8:2374

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12766 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-19 08:23:45 +00:00
verwaest@chromium.org
7bc94a92c5 Fixed error introduced in r12761.
BUG=2373

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12765 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-18 18:43:19 +00:00
verwaest@chromium.org
7ce3a4021d Static cast char* diff to int.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12764 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-18 15:57:45 +00:00
verwaest@chromium.org
d04a1fff1f Keep track of the first non-ascii word/char to avoid redoing the work.
Review URL: https://chromiumcodereview.appspot.com/11194053

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12762 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-18 15:08:11 +00:00
verwaest@chromium.org
852de2e1ab Adding a fast path for parsing index keys.
Reduces overhead on http://code.google.com/p/chromium/issues/detail?id=156379 from 360ms down to 255ms.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12761 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-18 14:44:40 +00:00
yangguo@chromium.org
7a653c1675 Reimplement a simpler version of JSON.stringify.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12760 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-18 14:42:26 +00:00
danno@chromium.org
4431e0c54e Put more constants in movw/movt instructions
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12759 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-18 14:37:04 +00:00
yangguo@chromium.org
a7f3edb818 Make sure the fast case of ScanJsonString bails out to the slow case correctly.
R=verwaest@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12757 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-18 13:15:05 +00:00
danno@chromium.org
43e248d2e5 Use movw/movt instead of constant pool on ARMv7.
Some ARM architectures load 32-bit immediate constants more efficiently using movw/movt pairs rather than constant pool loads. This patch allows the assembler to generate one or the other load form at runtime depending on what is faster.

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12755 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-18 12:21:42 +00:00
danno@chromium.org
9d43ff71b8 Avoid unnecessary code target changes during code compaction.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12754 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-18 12:01:36 +00:00
verwaest@chromium.org
a38af4256c Fix typo in fast path for scanning json strings.
Review URL: https://chromiumcodereview.appspot.com/11191055

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12753 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-18 11:47:06 +00:00
fschneider@chromium.org
971e834a8d Always invoke the default Array.sort functions from builtin functions.
TEST=mjsunit/regress/regress-builtin-array-op.js
BUG=v8:2372
Review URL: https://chromiumcodereview.appspot.com/10559005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12752 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-18 11:18:08 +00:00
svenpanne@chromium.org
9dc2c5b83d Add an API for enumerating persistent handles
This API lets the embedder enumerate handles that have class ids. WebKit will
use this feature during garbage collection to compute object groups for DOM
nodes. Previously, we kept a list of DOM nodes on the WebKit side, but that
list is redundant with the global handles list in V8.

Review URL: https://codereview.chromium.org/11190011
Patch from Adam Barth <abarth@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12750 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-18 06:52:37 +00:00
danno@chromium.org
966b08440c MIPS: Fix compilation under clang.
Clang is a little more picky than gcc on unused variable
warnings, which become errors with -Werror. Clean up
these cases for mips.

BUG=
TEST=

Review URL: https://codereview.chromium.org/11175005
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12748 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-17 14:20:43 +00:00
verwaest@chromium.org
b61933ba10 Eagerly follow transitions to existing maps while json parsing.
Review URL: https://chromiumcodereview.appspot.com/11184006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12747 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-17 14:09:42 +00:00
verwaest@chromium.org
72424b3987 Move DescriptorArray into the map.
Review URL: https://chromiumcodereview.appspot.com/11188031

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12746 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-17 13:04:49 +00:00
jkummerow@chromium.org
62223bd2c0 Revert recent CPU profiler changes because they broke --prof.
This reverts r12649 and r12650.

BUG=v8:2364

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12745 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-17 12:24:31 +00:00
svenpanne@chromium.org
bcb383e055 Improved printing of HLoadElements instruction.
TBR=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12743 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-16 11:41:07 +00:00
danno@chromium.org
4a2a4b8647 MIPS: Fix ARM bug introduced in r12604 that caused crashes on ARM on crypto-md5 from SunSpider.
Port r12623 (22002351)

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10979066
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12742 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-16 08:45:17 +00:00
danno@chromium.org
1fe673a60d MIPS: Fix issue 2346 (order of operations in keyed store on arrays) and turn get-own-property-descriptor.js test into a regression test.
Port r12604 (ae837167)

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10987086
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12741 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-16 08:29:58 +00:00
mstarzinger@chromium.org
479b4d61a6 MIPS: Make the speed of incremental marking depend also on the rate at which we are hitting expensive write barrier operations, not just on the rate of allocation.
Port r12618 (c621b025)

BUG=
TEST=

Review URL: https://codereview.chromium.org/10977070
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12740 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-16 08:24:13 +00:00
ulan@chromium.org
9f2e52ac12 Fix MIPS build broken by r12735 'Allow unaligned accesses for ARMv7'.
R=mstarzinger@chromium.org,palfia@homejinni.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12739 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-16 08:23:15 +00:00
mstarzinger@chromium.org
e2da94b804 MIPS: Fix compilation failure on ARM in r12685.
Port r12686 (bdda5c81)

BUG=
TEST=

Review URL: https://codereview.chromium.org/11143029
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12738 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-16 08:16:36 +00:00
ulan@chromium.org
a86e897924 Simulate and disasm NOP on ARM
R=ulan@chromium.org

Review URL: https://chromiumcodereview.appspot.com/11116011
Patch from JF Bastien <jfb@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12737 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-15 15:42:09 +00:00
mstarzinger@chromium.org
02490829dd Fix bug in deletion of indexed properties
The delete operator always return true in case of indexed property. It
should return false if an indexed property can't be deleted (eg.
DontDelete attribute is set or a string object is the holder).

Contributed by Peter Varga <pvarga@inf.u-szeged.hu>

BUG=none
TEST=mjsunit/delete-non-configurable

Review URL: https://codereview.chromium.org/11094021
Patch from Peter Varga <pvarga@inf.u-szeged.hu>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12736 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-15 15:23:22 +00:00
ulan@chromium.org
86eedc26b5 Allow unaligned accesses for ARMv7.
R=mstarzinger@chromium.org,jfb@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12735 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-15 15:19:36 +00:00
mstarzinger@chromium.org
d9e3d35c07 Switch code flushing to use different JSFunction field.
This is another preparation for incremental code flushing. Instead of
linking candidates using the code entry field, we use the next pointer
that is also used to link optimized functions together. Since we only
support flushing of unoptimized code, this field can be shared.

R=ulan@chromium.org
BUG=v8:1609

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12734 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-15 14:43:57 +00:00
svenpanne@chromium.org
57116621eb Fixed VERIFY_HEAP without DEBUG.
Review URL: https://codereview.chromium.org/11155007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12731 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-15 12:36:58 +00:00
svenpanne@chromium.org
1fef757b4e Prepare push to trunk. Now working on version 3.14.5.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12728 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-15 11:49:59 +00:00
yurys@chromium.org
eee93ec99b Allow evals for debugger even if they are prohibited in the debugee context.
BUG=154733
Review URL: https://codereview.chromium.org/11111015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12726 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-15 10:15:25 +00:00
mstarzinger@chromium.org
3d0d211764 Ensure code flushing is disabled in incremental marking.
This fixes some test failures since r12714 which shared the code for
code flushing between full and incremental marking and is only a quick
fix until we can enable incremental code flushing.

R=jkummerow@chromium.org
BUG=v8:1609

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12723 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-15 09:25:30 +00:00
verwaest@chromium.org
7c28995e5d Invalidate the enum cache when converting a transition across which the descriptors are shared.
Review URL: https://chromiumcodereview.appspot.com/11145017

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12722 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-15 08:38:51 +00:00
svenpanne@chromium.org
5a0176222b Consistently make the bounds check for AccessArgumentsAt explicit.
This has the advantage that AccessArgumentsAt itself can't deopt anymore and the
bounds check is visible for the elimination phase. Furthermore, things are
simply more consistent now, a good thing in itself. :-)

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12721 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-15 07:25:20 +00:00
svenpanne@chromium.org
6cf48ce3d7 Fixed heap verification guards.
TBR=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12719 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-15 06:34:22 +00:00
danno@chromium.org
bf83c5fe32 Use immediate add when possible in space allocator
Save one instruction in allocating new space by using an immediate add if
possible to calculate the new top of heap.

BUG=

Review URL: https://chromiumcodereview.appspot.com/11091068
Patch from Anthony Berent <aberent@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12718 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-12 14:06:03 +00:00
ulan@chromium.org
c969afe137 Reland r12342: Flush monomorphic ICs on context disposal instead of context exit.
The crashes that caused r12342 to be reverted are fixed in r12563.

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12715 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-12 13:49:12 +00:00
mstarzinger@chromium.org
bf85da7441 Move code flushing support into shared visitor.
This is a first step towards incremental code flushing. The code
flushing support is now shared between full and incremental marking.
The code flusher itself is not yet activated in incremental mode and
will require some additional adaptations.

R=ulan@chromium.org
BUG=v8:1609

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12714 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-12 12:41:29 +00:00
mvstanton@chromium.org
b3c0ed8245 Enable --verify-heap in release mode
R=mstarzinger@chromium.org
BUG=v8:2120

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12713 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-12 11:41:14 +00:00
svenpanne@chromium.org
1f3bdabd80 Ensure that we do not accidentally emit debug code.
The call sites are more concise, the naming is better and at least one
case of superfluous code in release mode was removed.

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12712 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-12 11:09:14 +00:00
danno@chromium.org
0457a3be0a DoNumberTagD performance improvement
Allocate heap entry untagged and tag at end to avoid having to subtract off
the tag offset before storing the value.

BUG=

Review URL: https://codereview.chromium.org/11028115
Patch from Anthony Berent <aberent@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12711 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-12 10:58:25 +00:00
ulan@chromium.org
ede725d2f7 Fix vstr.cc S, [mem] to emit vstr instead of vldr.
BUG=emits wrong instruction
R=ulan@chromium.org

Review URL: https://chromiumcodereview.appspot.com/11118015
Patch from JF Bastien <jfb@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12710 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-12 09:27:12 +00:00
verwaest@chromium.org
9ecabf526c Make EnumCacheBridge immutable.
Review URL: https://chromiumcodereview.appspot.com/11048051

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12709 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-12 08:16:49 +00:00
svenpanne@chromium.org
48d92f6167 MIPS: Consistently use named getters for Lithium operands on ARM.
Port r12527 (24ed881a)

BUG=
TEST=

Review URL: https://codereview.chromium.org/11109003
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12708 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-12 07:05:00 +00:00
jkummerow@chromium.org
c756e14b0b Prepare push to trunk. Now working on version 3.14.4.
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12705 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-11 15:35:24 +00:00
verwaest@chromium.org
b75705f07b Don't clear EnumLength but rather copy the enum cache. Added regression test for crashes from chromecrash.
Review URL: https://chromiumcodereview.appspot.com/11103036

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12704 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-11 15:33:34 +00:00
jkummerow@chromium.org
942e7424e9 Use native context to retrieve ErrorMessageForCodeGenerationFromStrings
BUG=155076

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12703 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-11 14:14:24 +00:00
svenpanne@chromium.org
86bcbcdc0b HChange is only deletable under certain circumstances.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12702 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-11 14:14:03 +00:00
verwaest@chromium.org
ad6a21c0d0 Remove descriptors pointer.
Secondary changes:
- don't transfer ownership back on CNLT
- turned debugging checks back into ASSERT

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12699 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-11 12:01:19 +00:00
rossberg@chromium.org
00132da734 Bump variable limit further to 2^17.
R=jkummerow@chromium.org
BUG=151625

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12698 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-11 11:40:10 +00:00
svenpanne@chromium.org
f03fd70d9e Added a simple dead code removal phase.
We iteratively remove all dead Hydrogen instruction until we reach a fixed point. We consider an instruction dead if it is unused, has no observable side effects and is deletable. The last part of the condition is currently not very nice: We basically have to whitelist "safe" instructions, because we are missing more detailed dependencies and/or more detailed tracking of side effects.

We disable dead code elimination for now in our test runners, because we have tons of poorly written tests which wouldn't test anymore what they are supposed to test with this phase enabled. To get test coverage for dead code elimination itself, we should enable it on a few build bots. This is not really a perfect state, but the best we can do for now.

This patch includes a few const-correctness fixes, most of them were necessary for this CL.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12697 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-11 10:52:58 +00:00
verwaest@chromium.org
bfb2db2329 Prepare push to trunk. Now working on version 3.14.3.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12692 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-10 17:05:00 +00:00
verwaest@chromium.org
e5620d5a58 Also use binary search to search through valid entries.
Review URL: https://chromiumcodereview.appspot.com/11028056

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12690 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-10 14:48:07 +00:00
verwaest@chromium.org
c2a9d49393 Transition ownership back if the descriptors were shared via elements transitions.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12689 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-10 13:13:35 +00:00
verwaest@chromium.org
dde1cdfb8e Fix transition conversion from CONSTANT_FUNCTION to FIELD.
Review URL: https://chromiumcodereview.appspot.com/11094044

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12688 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-10 12:31:50 +00:00
verwaest@chromium.org
55e924c595 Fix CNLT regression.
This happens when a map A with no descriptors in fast_holey_elements
mode first gets some properties, making it share descriptor arrays with
a map B to which it transitions. Then map A transitions elements kind to
dictionary_elements in map C. C stores the empty_descriptor_array in its
own transition array. When adding a property to C, C transitions to D
and shares the descriptors. If D dies, a CNLT clears the transition
array of C, making the descriptor array of A (and thus also of B) shine
through. If a property is now added to an object in state C, it'll inherit
all the properties of A (and B). If those properties had high field indices,
we do not have a large enough backing store for the single newly added
property, and we'll write out of bounds.

BUG=chromium:151749

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12687 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-10 12:29:44 +00:00
mstarzinger@chromium.org
8b299a5b0e Fix compilation failure on ARM in r12685.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12686 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-10 11:58:22 +00:00
mstarzinger@chromium.org
270316e953 Improve page flag checking sequence on ARM.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12682 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-09 15:12:39 +00:00
svenpanne@chromium.org
f81b06dde5 Make sure that the context argument of HAdd is never NULL.
Although this doesn't hurt currently, it hurts any future compiler
pass relying on the invariant that no operand is NULL.

R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12681 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-09 13:53:24 +00:00
rossberg@chromium.org
012ae4761c Clarify that date parsing follows Safari.
R=ulan@chromium.org
BUG=145198

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12680 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-09 08:34:39 +00:00
mstarzinger@chromium.org
4887285da4 Make GDBJIT interface compile again.
R=ulan@chromium.org
BUG=v8:1804

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12679 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-09 08:24:58 +00:00
svenpanne@chromium.org
5d11c5ee69 Fixed Accessors::FunctionGetPrototype's proto chain traversal.
Actually it didn't traverse that far... ;-) Did some cleanup on the way.

R=rossberg@chromium.org
BUG=chrome:143967
TEST=regress/regress-143967.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12677 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-08 12:58:46 +00:00
danno@chromium.org
0a41d2731c ARM: Fast path for integer inputs to EmitVFPTruncate
BUG=none
TEST=none

Review URL: https://codereview.chromium.org/11049025
Patch from Martyn Capewell <m.m.capewell@googlemail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12676 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-08 12:50:15 +00:00
rossberg@chromium.org
0c2fd0daa7 Use dot_for_symbol.
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12672 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-08 11:39:08 +00:00
rossberg@chromium.org
329cf12363 Make sure that names of temporaries do not clash with real variables.
R=mstarzinger@chromium.org
BUG=v8:2322

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12668 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-05 12:47:34 +00:00
rossberg@chromium.org
b07f38a46b Reject local module declarations.
R=mstarzinger@chromium.org
BUG=150628

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12665 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-05 09:14:08 +00:00
rossberg@chromium.org
3f7b5c338a Reject uses of lexical for-loop variable on the RHS.
R=mstarzinger@chromium.org
BUG=v8:2322

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12664 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-05 09:07:53 +00:00
verwaest@chromium.org
6e1bafc808 Revert "Allow partial scanning of large arrays in order to avoid"
This reverts commit r12619.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12660 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-04 11:09:17 +00:00
danno@chromium.org
a92a9c8a2c MIPS: Changed "marked" nops to use sll(zero_reg, at, type).
We use marking bits in nops (in the 'sa' field) for debug markers, and for some IC stuff. A normal NOP in mips is sll(zero_reg, zero_reg, 0), where the 0 is a 5 bit immediate field in 'sa'.

See enum NopMarkerTypes at around line 654 of assembler-mips.h

The problem is that these markers use encodings that are reserved for the 'ssnop' and 'ehb' instructions. These are instructions used for hazard barriers.

It does not break anything, but it will slow things down a little bit as some pipeline stages are cleared, etc.

This commit changes the "marked" NOPs to sll(zero_reg, at, type) instructions, which is also a NOP operation on MIPS.

BUG=
TEST=

Review URL: https://codereview.chromium.org/10990110
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12657 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-04 09:46:50 +00:00
ulan@chromium.org
a80f7f42dd Make sure all labels are bound and linked in ARM DoModI.
BUG=v8:2354

TBR=danno@chromium.org,subratokde@codeaurora.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12656 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-02 16:48:45 +00:00
mstarzinger@chromium.org
739c9f6f01 Fix slot recording of code target patches.
This makes sure that we only record relocation slots for code target
patches that happen in marked objects. Unmarked ones might be visited
again, whereas marked ones are alive and will not be visited again.

R=ulan@chromium.org
BUG=chromium:152615,chromium:144230

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12655 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-02 15:46:55 +00:00
jkummerow@chromium.org
e0c7d8301f Revert "Adding a high-resolution timer to platform win32."
This reverts r12651.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12652 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-02 11:07:26 +00:00
jkummerow@chromium.org
bdc466422b Adding a high-resolution timer to platform win32.
BUG=None

Review URL: https://codereview.chromium.org/10867057
Patch from Sergey Rogulenko <rogulenko@google.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12651 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-02 10:59:44 +00:00
jkummerow@chromium.org
ecc7f4baad Replacing circular queue by single buffer in CPU Profiler.
BUG=None

Review URL: https://codereview.chromium.org/10871039
Patch from Sergey Rogulenko <rogulenko@google.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12650 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-02 10:51:00 +00:00
jkummerow@chromium.org
dfb4218a04 Moving cpu profiling into its own thread.
BUG=None

Review URL: https://codereview.chromium.org/10857035
Patch from Sergey Rogulenko <rogulenko@google.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12649 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-02 09:58:11 +00:00
verwaest@chromium.org
885837d981 MIPS: Fix mistake in r12549 (1597d7d9).
This commit fixes several test failures introduced by r12549 (1597d7d9):
- mjsunit/regress/regress-760-1
- mjsunit/strict-mode
- mjsunit/string-add

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/11039014
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12647 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-02 07:54:41 +00:00
danno@chromium.org
08747c3a16 Support for SDIV and MLS ARM instructions, and implement DoModI using them.
Also added support for the runtime detection to check if hardware supports SDIV/UDIV
Other new opportunities to exploit SDIV/UDIV will be done in separate issues.

Review URL: https://chromiumcodereview.appspot.com/10977051
Patch from Subrato K De <subratokde@codeaurora.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12646 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-01 21:27:33 +00:00
verwaest@chromium.org
efe955587e Allow optimistically hoisting elements transitions over accesses.
Review URL: https://chromiumcodereview.appspot.com/10972011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12642 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-01 16:22:43 +00:00
jkummerow@chromium.org
db91fd3acf Prepare push to trunk. Now working on version 3.14.2.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12641 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-01 16:19:43 +00:00
mstarzinger@chromium.org
5b64362706 Revert r12625 due to sandbox incompatibility.
Original message: Implement committed physical memory stats for Linux.
This had to be reverted because it crashes when compiled into Chromium
due to the sandbox not allowing the mincore call.

R=verwaest@chromium.org
BUG=v8:2191

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12640 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-01 12:11:06 +00:00
verwaest@chromium.org
15ebb22b6f Off-by-one error in zapping objects after right trimming.
Review URL: https://chromiumcodereview.appspot.com/11013012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12637 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-01 09:48:07 +00:00
verwaest@chromium.org
6fd0e69156 Restore the descriptor array before returning allocation failure.
BUG=chromium:151750

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12629 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-28 10:15:58 +00:00
verwaest@chromium.org
f623eefddb Only use OwnDescriptors to decide whether to go slow or not.
Review URL: https://chromiumcodereview.appspot.com/10996044

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12626 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-27 13:55:50 +00:00
mstarzinger@chromium.org
974a2268bb Implement committed physical memory stats for Linux.
The patch introduces CommittedPhysicalMemory function to the Heap class
that reports committed *physical* memory acquired from the OS.
It is important because some OSes may postpone actual commitment on e.g.
first access to the previously committed region.
So reporting just plain committed size led to various weird artifacts
like DevTools showing V8 allocated memory higher than the whole process
private size.

BUG=v8:2191

Review URL: https://codereview.chromium.org/10961042
Patch from Alexei Filippov <alph@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12625 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-27 13:27:50 +00:00
erik.corry@gmail.com
fbcc4a408e Add the VFP-ness to the minor number of the keyed store elements
IC so that the version from the snapshot is not used if we have
a more capable CPU at runtime.
Review URL: https://chromiumcodereview.appspot.com/10984065

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12624 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-27 11:31:26 +00:00
erik.corry@gmail.com
dc57f54548 Fix ARM bug introduced in r12604 that caused crashes on ARM
on crypto-md5 from SunSpider.  Bug=152402
Review URL: https://chromiumcodereview.appspot.com/10991045

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12623 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-27 07:45:49 +00:00
yangguo@chromium.org
29b6518874 Fix probing in JSON.parse.
R=verwaest@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12622 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-26 14:59:10 +00:00
ulan@chromium.org
944f933332 Fix Clang warning about tautological compare.
BUG=151927

R=hans@chromium.org

Patch from Hans Wennborg <hans@chromium.org>.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12621 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-26 14:42:08 +00:00
erik.corry@gmail.com
aba09dcf2e Allow partial scanning of large arrays in order to avoid
mark stack overflow.  This is a reland of r12609 -
https://chromiumcodereview.appspot.com/10959011 - but
this time VisitPointers has been fixed (it used to assume
that the first slot was on the first page of a large object).
Review URL: https://chromiumcodereview.appspot.com/10996018

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12619 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-26 12:17:24 +00:00
erik.corry@gmail.com
e8ffc2bebd Make the speed of incremental marking depend also on the rate
at which we are hitting expensive write barrier operations,
not just on the rate of allocation.
Review URL: https://chromiumcodereview.appspot.com/10974003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12618 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-26 11:35:42 +00:00
mmassi@chromium.org
8fbfad63cd Avoid wrong imul deopt on ia32 and x64 (fixes v8 bug 2339).
BUG=v8:2339

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12614 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-26 09:57:30 +00:00
mmassi@chromium.org
e7fc0207ab Lowered kMaxVirtualRegisters (fixes v8 2139 and chrome 123822 and 128252).
BUG=128252

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12613 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-26 09:35:41 +00:00
erik.corry@gmail.com
42e5dc2cc0 Make Kraken fasta.
Review URL: https://chromiumcodereview.appspot.com/10978040

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12611 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-26 09:01:13 +00:00
erik.corry@gmail.com
5547815daf Revert 12609 (Allow partial scanning of large arrays)
due to crashes in unbox-double-arrays.js test.
Review URL: https://chromiumcodereview.appspot.com/10996017

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12610 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-26 08:55:19 +00:00
erik.corry@gmail.com
a54e007a95 Allow partial scanning of large arrays in order to avoid
mark stack overflow.
Review URL: https://chromiumcodereview.appspot.com/10959011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12609 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-26 08:33:15 +00:00
yangguo@chromium.org
0f37cb0b79 Fix off-by-one error introduced in r12598.
R=verwaest@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12606 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-25 16:59:27 +00:00
danno@chromium.org
c467b2659f ARM: Small optimisation of VFP immediate creation
Save an instruction in VFP immediate creation by passing a scratch register.

BUG=none
TEST=none

Review URL: https://chromiumcodereview.appspot.com/10990024
Patch from Martyn Capewell <m.m.capewell@googlemail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12605 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-25 14:32:07 +00:00
erik.corry@gmail.com
72e9f1bea1 x64 and ARM: Fix issue 2346 (order of operations in keyed store
on arrays) and turn get-own-property-descriptor.js test into
a regression test.
Review URL: https://chromiumcodereview.appspot.com/10985017

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12604 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-25 13:35:42 +00:00
danno@chromium.org
b108180cd1 Fix 2346: Generic KeyedStoreIC doesn't change length and element_kind atomically
R=erik.corry@gmail.com
BUG=v8:2346

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12603 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-25 09:55:44 +00:00
rossberg@chromium.org
20b1c426cf Bump number of allowed variables per scope to 65535, to address GWT.
R=jkummerow@chromium.org
BUG=151625

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12600 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-24 16:22:17 +00:00
yangguo@chromium.org
2473aa31b3 Fix failures caused by r12598.
R=verwaest@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12599 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-24 15:03:09 +00:00
yangguo@chromium.org
681eda652d Fast path for symbol lookup in JSON.parse.
R=verwaest@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12598 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-24 14:23:46 +00:00
mstarzinger@chromium.org
1f13fca165 Improve --trace-gc-verbose to show sum of all spaces.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12597 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-24 13:03:11 +00:00
yurys@chromium.org
26721b7dc0 This issue is for landing patch by vsevik: http://codereview.chromium.org/10966011/
SourceURL comments for scripts having a name. 

sourceURL comment is now preferred script name for all scripts except 
for those with non zero start position (e.g. inline scripts in HTML). 


BUG=v8:2342
Review URL: https://codereview.chromium.org/10959038

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12576 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-21 08:09:34 +00:00
verwaest@chromium.org
083ee63a83 Fix CNLT for enum indices.
Review URL: https://chromiumcodereview.appspot.com/10958015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12569 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-20 15:18:00 +00:00
verwaest@chromium.org
ea31f868e8 Deopt on storing undefined into double elements.
Review URL: https://chromiumcodereview.appspot.com/10963010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12568 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-20 13:41:00 +00:00
ulan@chromium.org
260c7b255d Prepare push to trunk. Now working on version 3.14.1.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12565 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-20 12:09:06 +00:00
mstarzinger@chromium.org
84935fb23a Fix missing slot recodring during clearing of CallICs.
This fixes a rare corner case that was caused by missing recording of
relocation slots when the uninitialized CallIC stub happenes to land on
an evacuation candidate and the IC is cleared via the shared function.

R=ulan@chromium.org
BUG=chromium:144230
TEST=cctest/test-heap/Regression144230

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12563 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-20 10:45:38 +00:00
jkummerow@chromium.org
a8e502fe60 Fix LBoundsCheck on x64 to handle (stack slot + constant) correctly
BUG=150729

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12562 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-20 09:56:24 +00:00
verwaest@chromium.org
6f649aaece MIPS: Sharing of descriptor arrays.
Port r12492 (479be376)

Original commit message:
This CL adds multiple things:
Transition arrays do not directly point at their descriptor array anymore, but rather do so via an indirect pointer (a JSGlobalPropertyCell).

An ownership bit is added to maps indicating whether it owns its own descriptor array or not.

Maps owning a descriptor array can pass on ownership if a transition from that map is generated; but only if the descriptor array stays exactly the same; or if a descriptor is added.

Maps that don't have ownership get ownership back if their direct child to which ownership was passed is cleared in ClearNonLiveTransitions.

To detect which descriptors in an array are valid, each map knows its own NumberOfOwnDescriptors. Since the descriptors are sorted in order of addition, if we search and find a descriptor with index bigger than this number, it is not valid for the given map.

We currently still build up an enumeration cache (although this may disappear). The enumeration cache is always built for the entire descriptor array, even if not all descriptors are owned by the map. Once a descriptor array has an enumeration cache for a given map; this invariant will always be true, even if the descriptor array was extended. The extended array will inherit the enumeration cache from the smaller descriptor array. If a map with more descriptors needs an enumeration cache, it's EnumLength will still be set to invalid, so it will have to recompute the enumeration cache. This new cache will also be valid for smaller maps since they have their own enumlength; and use this to loop over the cache. If the EnumLength is still invalid, but there is already a cache present that is big enough; we just initialize the EnumLength field for the map.

When we apply ClearNonLiveTransitions and descriptor ownership is passed back to a parent map, the descriptor array is trimmed in-place and resorted. At the same time, the enumeration cache is trimmed in-place.

Only transition arrays contain descriptor arrays. If we transition to a map and pass ownership of the descriptor array along, the child map will not store the descriptor array it owns. Rather its parent will keep the pointer. So for every leaf-map, we find the descriptor array by following the back pointer, reading out the transition array, and fetching the descriptor array from the JSGlobalPropertyCell. If a map has a transition array, we fetch it from there. If a map has undefined as its back-pointer and has no transition array; it is considered to have an empty descriptor array.

When we modify properties, we cannot share the descriptor array. To accommodate this, the child map will get its own transition array; even if there are not necessarily any transitions leaving from the child map. This is necessary since it's the only way to store its own descriptor array.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10918287
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12549 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-19 14:29:27 +00:00
mmassi@chromium.org
9dc822ca13 Fixed minus zero test (fixes v8:2133).
BUG=v8:2133

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12548 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-19 12:48:49 +00:00
mstarzinger@chromium.org
c012afb6d4 Fix setting array length to zero for slow elements.
R=verwaest@chromium.org
BUG=chromium:146910
TEST=mjsunit/regress/regress-crbug-146910

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12547 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-19 11:52:33 +00:00
verwaest@chromium.org
ab94a69d3d Remove whitespace
Review URL: https://chromiumcodereview.appspot.com/10949018

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12546 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-19 11:09:07 +00:00
verwaest@chromium.org
947663aaa3 Use NumberOfOwnDescriptors/EnumLength for counting properties on fast objects.
Also split CNLT into small functions.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12545 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-19 10:06:02 +00:00
verwaest@chromium.org
8b57f2694b Reduce space usage of simple transitions and descriptors holders.
Review URL: https://chromiumcodereview.appspot.com/10915260

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12544 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-19 09:54:10 +00:00
mstarzinger@chromium.org
f0dcaf9a19 Fix lost arguments dropping in HLeaveInlined.
This fixes HleaveInlined to correctly drop pushed arguments on all code
paths and addresses a corner case where the arguments stack height
mismatched at an OSR entry point.

R=jkummerow@chromium.org
BUG=chromium:150545
TEST=mjsunit/regress/regress-crbug-150545

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12543 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-19 08:13:46 +00:00
verwaest@chromium.org
1b9c319da2 Clear EnumIndices as well on CNLT.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12542 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-19 08:08:02 +00:00
verwaest@chromium.org
bf48856a7d MIPS: Do not go to slow mode and back to fast in initializer blocks.
Port r12534 (4acfb92e)

BUG=
TEST=

Committed: https://code.google.com/p/v8/source/detail?r=12539

Review URL: https://chromiumcodereview.appspot.com/10905313
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12541 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-18 13:52:18 +00:00
verwaest@chromium.org
4edc2dbbc0 Revert due to invalid description / CL combination.
Revert "MIPS: Do not go to slow mode and back to fast in initializer blocks."

This reverts commit 9b05931ec130e831f7496aed6f7ae32e8f2da934.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12540 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-18 13:51:01 +00:00
verwaest@chromium.org
725818c32f MIPS: Do not go to slow mode and back to fast in initializer blocks.
Port r12534 (4acfb92e)

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10905313
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12539 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-18 13:40:24 +00:00
verwaest@chromium.org
5bf15c5d6c Preallocate space in descriptor arrays.
Review URL: https://chromiumcodereview.appspot.com/10916336

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12538 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-18 13:25:12 +00:00
mstarzinger@chromium.org
4d485a438d Fix printing of HCallKnownGlobal.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12537 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-18 11:06:05 +00:00
yangguo@chromium.org
cf85bfd725 Improve the assembly code for power function with integer exponential on x64
The change removes one unused multiply and reschedules
the shift, multiply and jump instructions to reduce
stall. Experiment shows it improve about 20% performance
on x64 for exponetials from about 100 to 2000.

Review URL: https://chromiumcodereview.appspot.com/10939013
Patch from Xi Qian <xi.qian@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12535 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-18 08:04:31 +00:00
verwaest@chromium.org
36dd23aa1b Do not go to slow mode and back to fast in initializer blocks.
Review URL: https://chromiumcodereview.appspot.com/10905308

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12534 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-17 17:18:27 +00:00
mstarzinger@chromium.org
86fd161fdc Fix casting error for receiver of interceptors.
This fixes a casting error that occured when the receiver of a missed
or uninitialized CallIC is a Smi and there is an interceptor installed
on the prototype chain.

R=yangguo@chromium.org
BUG=chromium:149912
TEST=cctest/test-api/Regress149912

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12531 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-17 14:39:10 +00:00
erik.corry@gmail.com
bafcfe5427 Fix misplaced assert in heap.cc.
Bug=2336
Review URL: https://chromiumcodereview.appspot.com/10911334

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12528 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-17 11:38:24 +00:00
svenpanne@chromium.org
6f5d872410 Consistently use named getters for Lithium operands on ARM.
Removed a dead Lithium instruction on the way.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12527 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-17 10:54:26 +00:00
mstarzinger@chromium.org
3018b875b1 Integrate map marking into static marking visitor.
This refactors the specialized marking of map contents to be done by the
static marking visitor shared between full and incremental marking. This
also fixes an issue where some maps weren't accounted for in the object
stats tracker. But more importantly, it simplifies the code base.

R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12526 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-17 10:04:39 +00:00
ulan@chromium.org
4bd4fb1aa4 Throw a more descriptive exception when blocking 'eval' via CSP.
BUG=140191

R=svenpanne@chromium.org,mkwst@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12525 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-17 09:58:22 +00:00
yangguo@chromium.org
70e09a7e22 Fix build on OpenBSD/i386.
BUG=v8:1445

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12522 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-17 07:56:15 +00:00
yangguo@chromium.org
9d94f92d56 Improve the assembly code for power function with integer exponential.
The change removes one unused multiply and reschedules
the shift, multiply and jump instructions to reduce
stall. Experiment shows it improve about 20% performance
on x86 for exponetials from about 100 to 2000.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12521 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-17 07:45:54 +00:00
danno@chromium.org
48d327d0b4 Let the embedder store arbitrary Values via Context::SetData
In WebKit, we would like to store a void* to a data structure that contains
lots of exciting per-context data. The current API restricts us to storing only
Strings, which is less useful.

I've also cleaned up the implementation of GetData to be less convoluted.

Review URL: https://codereview.chromium.org/10907189
Patch from Adam Barth <abarth@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12520 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-14 16:13:23 +00:00
verwaest@chromium.org
204d22a583 Moving the WhitenessWitness back to DescriptorArray.
TransitionArrays never allocate while being created.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12519 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-14 15:10:31 +00:00
yangguo@chromium.org
cb72bf5735 Fix debugger's eval when close to stack overflow.
R=verwaest@chromium.org
BUG=v8:2318

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12518 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-14 13:40:32 +00:00
verwaest@chromium.org
fb506e0864 Only count the descriptor array if it's owned by the map.
Review URL: https://chromiumcodereview.appspot.com/10918245

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12517 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-14 13:37:41 +00:00
yangguo@chromium.org
a3b006058a Add checks to live edit.
BUG=v8:2297

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12515 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-14 13:31:11 +00:00
erik.corry@gmail.com
07ac7a4032 Fix test failures on nosnap builder.
Review URL: https://chromiumcodereview.appspot.com/10915277

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12513 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-14 13:19:42 +00:00
verwaest@chromium.org
ad4746c8a3 CNLT with descriptors but no valid enum fields has to clear the EnumCache.
Review URL: https://chromiumcodereview.appspot.com/10928204

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12512 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-14 13:15:43 +00:00
erik.corry@gmail.com
a36695e853 Microoptimization to regexps.
Review URL: https://chromiumcodereview.appspot.com/10917260

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12511 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-14 12:01:12 +00:00
svenpanne@chromium.org
58c8d208f5 Consistently use named getters for Lithium operands on ia32.
With this CL we clearly distinguish two different views on Lithium
instructions: For register allocation, the actual instruction/operand
is irrelevant, so it has only an iterator/indexed view on the
instruction operands. All other places, most importantly code
generation, use named getters for the operands now, making it easy to
see where each one is used.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12510 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-14 11:55:49 +00:00
erik.corry@gmail.com
8924052787 Fix compile errors on Win64.
Review URL: https://chromiumcodereview.appspot.com/10913273

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12509 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-14 11:48:31 +00:00
svenpanne@chromium.org
924c38c063 Consistently use named getters for Lithium operands on x64
Review URL: https://codereview.chromium.org/10933087

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12508 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-14 11:46:01 +00:00
yangguo@chromium.org
8d04c8c89f Replace r12503. Explicitly check toString() for exception in d8's print().
R=jkummerow@chromium.org
BUG=v8:2317

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12507 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-14 11:43:46 +00:00
erik.corry@gmail.com
ee55b2c2d3 Switch on code compaction on incremental GCs.
Review URL: https://chromiumcodereview.appspot.com/10928203

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12506 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-14 11:38:45 +00:00
erik.corry@gmail.com
5a8d1764bc Refactoring of snapshots. This simplifies and improves
the speed of deserializing code.  The current startup
time improvement for V8 is around 6%, but code deserialization
is speeded up disproportionately, and we will soon have more
code in the snapshot.
* Removed support for deserializing into large object space.
  The regular pages are 1Mbyte now and that is plenty.  This
  is a big simplification.
* Instead of reserving space for the snapshot we actually
  allocate it now.  This removes some special casing from
  the memory management and simplifies deserialization since
  we are just bumping a pointer rather than calling the
  normal allocation routines during deserialization.
* Record in the snapshot how much we need to boot up and
  allocate it instead of just assuming that allocations in
  a new VM will always be linear.
* In the snapshot we always address an object as a negative
  offset from the current allocation point.  We used to
  sometimes address from the start of the deserialized data,
  but this is less useful now that we have good support for
  roots and repetitions in the deserialization data.
* Code objects were previously deserialized (like other
  objects) by alternating raw data (deserialized with memcpy)
  and pointers (to external references, other objects, etc.).
  Now we deserialize code objects with a single memcpy,
  followed by a series of skips and pointers that partially
  overwrite the code we memcopied out of the snapshot.
  The skips are sometimes merged into the following
  instruction in the deserialization data to reduce dispatch
  time.
* Integers in the snapshot were stored in a variable length
  format that gives a compact representation for small positive
  integers.  This is still the case, but the new encoding can
  be decoded without branches or conditional instructions,
  which is faster on a modern CPU.
Review URL: https://chromiumcodereview.appspot.com/10918067

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12505 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-14 11:16:56 +00:00
mstarzinger@chromium.org
77a7d9f539 Fix caching of optimized code for OSR.
This makes sure we do not share optimized code across closures that were
optimized using OSR (for a particular OSR entry AST id) even if caching
of optimized code kicks in.

R=danno@chromium.org
BUG=v8:2326
TEST=mjsunit/regress/regress-2326

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12504 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-14 10:41:31 +00:00
yangguo@chromium.org
4fe330c055 Not mask exception thrown by toString in String::UtfValue etc.
R=jkummerow@chromium.org
BUG=v8:2317

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12503 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-14 08:13:57 +00:00
danno@chromium.org
e8e675f259 Skip version 3.13.8 and fast-forward to 3.14.0
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12502 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-14 07:44:28 +00:00
verwaest@chromium.org
7a84e84143 Directly set the value in the descriptors pointer to avoid checks.
This is the only place from where we are allowed to modify the value of
the descriptors pointer.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12500 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-13 16:48:31 +00:00
verwaest@chromium.org
c037a7fe10 Clear the EnumLength fields of maps that lose their enumeration cache.
Review URL: https://chromiumcodereview.appspot.com/10905262

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12498 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-13 14:36:51 +00:00
mstarzinger@chromium.org
8db2000615 Fix API check for length of external arrays.
R=jkummerow@chromium.org
BUG=chromium:148896
TEST=cctest/test-api/ExternalArrayLimits

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12495 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-13 09:36:56 +00:00
verwaest@chromium.org
1d1adaf9d3 Ensure correct enumeration indices in the dict
BUG=chromium:148376

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12494 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-13 08:52:55 +00:00
mmassi@chromium.org
22aed1cddd Fixed bounds check removal by restricting it to int32 indexes (and reenabled both ABCR and index dehoisting).
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12493 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-12 17:00:25 +00:00
verwaest@chromium.org
ebd3241b05 Sharing of descriptor arrays.
This CL adds multiple things:
Transition arrays do not directly point at their descriptor array anymore, but rather do so via an indirect pointer (a JSGlobalPropertyCell).

An ownership bit is added to maps indicating whether it owns its own descriptor array or not.

Maps owning a descriptor array can pass on ownership if a transition from that map is generated; but only if the descriptor array stays exactly the same; or if a descriptor is added.

Maps that don't have ownership get ownership back if their direct child to which ownership was passed is cleared in ClearNonLiveTransitions.

To detect which descriptors in an array are valid, each map knows its own NumberOfOwnDescriptors. Since the descriptors are sorted in order of addition, if we search and find a descriptor with index bigger than this number, it is not valid for the given map.

We currently still build up an enumeration cache (although this may disappear). The enumeration cache is always built for the entire descriptor array, even if not all descriptors are owned by the map. Once a descriptor array has an enumeration cache for a given map; this invariant will always be true, even if the descriptor array was extended. The extended array will inherit the enumeration cache from the smaller descriptor array. If a map with more descriptors needs an enumeration cache, it's EnumLength will still be set to invalid, so it will have to recompute the enumeration cache. This new cache will also be valid for smaller maps since they have their own enumlength; and use this to loop over the cache. If the EnumLength is still invalid, but there is already a cache present that is big enough; we just initialize the EnumLength field for the map.

When we apply ClearNonLiveTransitions and descriptor ownership is passed back to a parent map, the descriptor array is trimmed in-place and resorted. At the same time, the enumeration cache is trimmed in-place.

Only transition arrays contain descriptor arrays. If we transition to a map and pass ownership of the descriptor array along, the child map will not store the descriptor array it owns. Rather its parent will keep the pointer. So for every leaf-map, we find the descriptor array by following the back pointer, reading out the transition array, and fetching the descriptor array from the JSGlobalPropertyCell. If a map has a transition array, we fetch it from there. If a map has undefined as its back-pointer and has no transition array; it is considered to have an empty descriptor array.

When we modify properties, we cannot share the descriptor array. To accommodate this, the child map will get its own transition array; even if there are not necessarily any transitions leaving from the child map. This is necessary since it's the only way to store its own descriptor array.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12492 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-12 16:43:57 +00:00
yangguo@chromium.org
67d0506622 Correctly initialize regexp global cache.
R=ulan@chromium.org
BUG=148378

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12491 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-12 15:26:43 +00:00
mstarzinger@chromium.org
a3733c64a7 Fix compilation issue in r12489.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12490 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-12 14:11:37 +00:00
mstarzinger@chromium.org
f37f504de5 Fix arguments object materialization during deopt.
This fixes materialization of arguments objects for strict mode functions during
deoptimization. We materialize arguments from the stack area where optimized
code pushes the arguments when entering the inlined environment. For adapted
invocations we use the arguments adaptor frame for materialization.

R=svenpanne@chromium.org
BUG=v8:2261
TEST=mjsunit/regress/regress-2261,mjsunit/compiler/inline-arguments

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12489 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-12 12:28:42 +00:00
yangguo@chromium.org
6a9e4048aa Introduce new API to expose external string resource regardless of encoding.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12488 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-12 11:29:50 +00:00
yangguo@chromium.org
7276fa39ab Shorten code path in string allocation.
This was part of r12430 (http://codereview.chromium.org/10857030/) which has been reverted.

R=ulan@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12487 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-12 11:15:20 +00:00
jkummerow@chromium.org
b6770314ab Fixed CHECK failure in LCodeGen::DoWrapReceiver when --deopt-every-n-times flag is present
BUG=148389

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12486 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-12 08:37:47 +00:00
yangguo@chromium.org
59b9a32b34 Fix edge case of extension with NULL as source string.
BUG=144649

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12485 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-11 14:16:56 +00:00
mmassi@chromium.org
bff3d2a8a6 Fix array index dehoisting.
BUG=141395
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12484 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-11 14:14:32 +00:00
erik.corry@gmail.com
1987542825 Fix invariant so that we cannot record relocation slots for
white objects when compacting.  Add flag for incremental code
compaction.
Review URL: https://chromiumcodereview.appspot.com/10907174

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12483 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-11 14:01:39 +00:00
mstarzinger@chromium.org
a64410d956 Prepare push to trunk. Now working on version 3.13.8.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12480 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-11 13:19:02 +00:00
yangguo@chromium.org
474e34e3c5 Fix TypeError message for Date builtins.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12479 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-11 12:43:17 +00:00
ulan@chromium.org
a9162af1af Fix delta computation in DoDeferredInstanceOfKnownGlobal() for ARM.
BUG=v8:2314

R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12478 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-11 11:36:48 +00:00
peter.rybin@gmail.com
bda5ce9cd6 Introduce InternalProperty type and expose internal properties for bound functions
Committed: https://code.google.com/p/v8/source/detail?r=12346

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12477 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-10 23:17:04 +00:00
yangguo@chromium.org
266cca47fc Add more checks for native callback results.
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12474 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-10 13:38:21 +00:00
mstarzinger@chromium.org
f6cd2403e3 Fix deoptimizer for shared optimized code.
The deoptimizer searched the stack for activations of the same function to
determine whether to trigger lazy deopting. Since we share optimized code we
actually need to search for activations of the same code (but potentially
different functions).

R=jkummerow@chromium.org
BUG=chromium:147475
TEST=mjsunit/regress/regress-crbug-147475

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12473 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-10 11:05:17 +00:00
yangguo@chromium.org
bf229e93eb Enable/disable LiveEdit using the (C++) debug API.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12472 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-10 09:24:17 +00:00
yangguo@chromium.org
1a0c14f12c Add checks to runtime functions.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12471 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-10 08:35:26 +00:00
svenpanne@chromium.org
7af6883098 Fixed deoptimization of inlined getters.
It is necessary to explicitly handle the internal frame lying between the caller
of the getter and the getter itself in the deoptimizer: When the getter is
inlined, leaving the internal frame restores the correct context.

BUG=http://crbug/134609
TEST=mjsunit/regress/regress-crbug-134609

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12470 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-07 09:01:54 +00:00
ulan@chromium.org
6df4bcfecf Add support for running low level profiler on Android.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12469 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-06 15:01:20 +00:00
jkummerow@chromium.org
26f9e973eb Prepare push to trunk. Now working on version 3.13.7.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12464 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-06 13:45:58 +00:00
jkummerow@chromium.org
5330f5b24f Check the return value of API calls on ia32 and x64.
This implies that the return value of native getters is checked. The nice part
is that one can even see the name of the property in question in the abort
output when the check failed.

Under some circumstances even the return value of interceptors gets checked, but
I'm not 100% sure about this, because the interceptor code is basically tuned to
death.

The change seems to have very low overhead, so it might be feasible to keep this
check enabled unconditionally.

Review URL: https://chromiumcodereview.appspot.com/10918071
Patch from Sven Panne <svenpanne@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12446 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-05 16:08:13 +00:00
jkummerow@chromium.org
fe5ce826c8 Add empty-handle checks to API functions (#ifdef ENABLE_EXTRA_CHECKS)
Review URL: https://chromiumcodereview.appspot.com/10917088

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12445 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-05 16:06:53 +00:00
jkummerow@chromium.org
c2fedcc344 Disable accessor inlining (due to broken deopts)
BUG=134609

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12444 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-05 16:06:07 +00:00
verwaest@chromium.org
61d25b01bc Push stacktrace and die if the receiver is of unknown type.
Review URL: https://chromiumcodereview.appspot.com/10917086

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12443 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-05 12:30:49 +00:00
erik.corry@gmail.com
9ff7ec1c4a Fix binding in new Function().
Review URL: https://chromiumcodereview.appspot.com/10916114

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12442 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-05 11:45:58 +00:00
erik.corry@gmail.com
e5df02834b Fix some corner cases in skipping native methods using caller.
Review URL: https://chromiumcodereview.appspot.com/10911063

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12439 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-05 08:19:49 +00:00
yangguo@chromium.org
5ac2a5d22e Revert r12430, r12432, r12433 (basic support for Latin1).
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12438 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-04 12:23:22 +00:00
verwaest@chromium.org
a8638c1570 Support register as right operand in min/max support.
R=jkummerow@chromium.org
BUG=chromium:145961
TEST=mjsunit/regress/regress-crbug-145961.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12434 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-04 09:35:43 +00:00
yangguo@chromium.org
37c1c06108 Fix more windows build warnings.
TBR=ulan@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12433 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-03 15:50:24 +00:00
yangguo@chromium.org
f653480a0c Fix windows compile errors introduced by r12430.
R=ulan@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12432 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-03 15:40:00 +00:00
verwaest@chromium.org
4c7be4f6c6 Do not generate new enumeration indices for global objects.
Review URL: https://chromiumcodereview.appspot.com/10911058

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12431 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-03 15:15:32 +00:00
yangguo@chromium.org
74f06b1f99 Add basic support for Latin1 to the API.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12430 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-03 15:06:36 +00:00
yangguo@chromium.org
66a16bd63a Use local variable for getter function in Error.stack
R=verwaest@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12429 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-03 15:05:08 +00:00
mstarzinger@chromium.org
74aa15bfa0 Fix FindSharedFunctionInfoInScript to not optimize.
This prevents a corner case in FindSharedFunctionInfoInScript that would cause
functions to be optimized because an intermittent GC would clear the flag
indicating whether breakpoints are present. Above method was also moved into the
Debug class because it is only used by the debugger.

R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12428 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-03 14:23:00 +00:00
verwaest@chromium.org
996c84fb51 If we are trimming the whole array, just return the empty fixed array.
Review URL: https://chromiumcodereview.appspot.com/10911054

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12427 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-03 13:27:17 +00:00
verwaest@chromium.org
3eed540a0e Optimize dictionary enum generation.
Review URL: https://chromiumcodereview.appspot.com/10916076

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12426 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-03 12:31:24 +00:00
verwaest@chromium.org
53dd910bba Directly use %ObjectKeys in json stringify.
BUG=2312

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12424 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-03 08:37:47 +00:00
svenpanne@chromium.org
b7398b33c1 MIPS: First steps towards named Litihium operands.
Port r12383 (881d7d4d)

Original commit message:
Accessing Lithium operands via position is fragile and makes it impossible to
statically find all uses of a given operand. This CL is a step towards cleaning
this up, more to come...

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10911021
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12423 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-03 06:36:19 +00:00
verwaest@chromium.org
cc17d6dc47 Only regenerate enumeration indices if properties were deleted.
This indicated by the NextEnumerationIndex diverging from the actual
NumberOfElements.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12422 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-31 18:12:25 +00:00
verwaest@chromium.org
9b7a673d47 Clear descriptor pointer when normalizing properties.
Review URL: https://chromiumcodereview.appspot.com/10909029

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12421 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-31 17:10:44 +00:00
yangguo@chromium.org
2e652e6f91 Fix VS2005 build.
R=jkummerow@chromium.org
BUG=v8:2313

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12420 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-31 14:45:31 +00:00
verwaest@chromium.org
2b91f23b58 MIPS: Use a special EnumLength field to indicate number of valid enum cache values.
Port r12400 (03ae62de)

Original commit message:
This is preparatory work for sharing Enum Caches.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10914025
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12417 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-31 09:50:27 +00:00
yangguo@chromium.org
5dd51bafef Cache results in SearchRegExpMultiple.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12416 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-31 09:28:01 +00:00
rossberg@chromium.org
40f44b1d4f Activate fixed ES5 readonly semantics by default.
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12415 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-31 09:12:31 +00:00
verwaest@chromium.org
a4f7ebe5a0 Removed trailing whitespace.
Review URL: https://chromiumcodereview.appspot.com/10916020

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12414 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-30 18:10:09 +00:00
verwaest@chromium.org
90db487390 Elements load depends on the type of the receiver.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12413 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-30 17:31:32 +00:00
svenpanne@chromium.org
c3df19e692 Fixed comment and simplified the related code a bit.
TBR=erik.corry@gmail.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12411 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-30 06:45:45 +00:00
yangguo@chromium.org
5087f3ac48 Prepare push to trunk. Now working on version 3.13.6.
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12407 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-29 15:29:41 +00:00
yangguo@chromium.org
4e2027bbc2 Revert r12379 (Add checks to external string API).
R=ulan@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12406 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-29 15:23:48 +00:00
rossberg@chromium.org
3d35ecf3b8 Slightly simplify declaration of node types.
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12405 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-29 09:33:14 +00:00
rossberg@chromium.org
a6e45ce7b8 Introduce some predicates over variable modes.
These should be handy when we add more declaration forms for Harmony.

R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12404 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-29 09:19:53 +00:00
yangguo@chromium.org
5419ee7ba0 Release stack trace data after firing Error.stack accessor.
BUG=v8:2308

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12403 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-29 07:51:48 +00:00
svenpanne@chromium.org
de3c3c0198 Added IC support for native setters on the prototype chain.
Review URL: https://chromiumcodereview.appspot.com/10873057

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12402 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-29 06:12:46 +00:00
jkummerow@chromium.org
f9d4856289 Add a new API V8::SetJitCodeEventHandler to push code name and location to users such as profilers.
BUG=None
TEST=Included in CL.

Committed: https://code.google.com/p/v8/source/detail?r=12389

Review URL: https://chromiumcodereview.appspot.com/10795074
Patch from Sigurður Ásgeirsson <siggi@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12401 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-28 14:43:28 +00:00
verwaest@chromium.org
78037d0a4e Use a special EnumLength field to indicate number of valid enum cache values.
This is preparatory work for sharing Enum Caches.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12400 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-28 14:20:50 +00:00
rossberg@chromium.org
ccc827a6f8 Allocate block-scoped global bindings to global context.
- The global object has a reference to the current global scope chain.
  Running a script adds to the chain if it contains global lexical declarations.
- Scripts are executed relative to a global, not a native context.
- Harmony let and const bindings are allocated to the innermost global context;
  var and function still live on the global object.
  (Lexical bindings are not reflected on the global object at all,
  but that will probably change later using accessors, as for modules.)
- Compilation of scripts now needs a (global) context (previously only eval did).
- The global scope chain represents one logical scope, so collision tests take
  the chain into account.

R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12398 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-28 11:25:08 +00:00
rossberg@chromium.org
1dbf670713 Index script compilation cache over context, too,
in preparation for global lexical scope.

R=ulan@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12397 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-28 10:49:23 +00:00
yangguo@chromium.org
7cbca775ee Reland regexp global optimizations.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12396 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-28 09:37:41 +00:00
yangguo@chromium.org
ee6ec7e24e Prepare push to trunk. Now working on version 3.13.5.
R=ulan@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12393 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-28 09:03:07 +00:00
yangguo@chromium.org
d3dca2adb0 Disable array bounds checks elimination.
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12392 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-28 07:39:45 +00:00
svenpanne@chromium.org
f6f4798189 Print reason for disabling optimization. Kill --trace-bailout flag.
The reason for disabling optimization of a given function is carried around in
CompilationInfo. The new mechanism is general enough that --trace-opt now
subsumes everything --trace-bailout could print, so we nuked the latter flag.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12391 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-28 07:18:06 +00:00
verwaest@chromium.org
a713f82aa6 Revert "Add a new API V8::SetJitCodeEventHandler to push code name and location to users such as profilers."
This reverts commit r12389.

TBR=jkummerow@chromium.org, CC=siggi@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12390 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-27 19:47:02 +00:00
jkummerow@chromium.org
0a6493b5a8 Add a new API V8::SetJitCodeEventHandler to push code name and location to users such as profilers.
BUG=None
TEST=Included in CL.

Review URL: https://chromiumcodereview.appspot.com/10795074
Patch from Sigurður Ásgeirsson <siggi@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12389 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-27 18:03:38 +00:00
ulan@chromium.org
7b1d13affc Revert r12342 "Flush monomorphic ICs on context disposal instead of context exit." because of canary channel crashes.
BUG=144230
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12388 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-27 16:08:27 +00:00
ulan@chromium.org
b588b0949f Disallow updates to ic_with_type_info_count with negative values.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12386 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-27 15:17:14 +00:00
verwaest@chromium.org
efb53e1499 Make order of addition the primary order of descriptor arrays.
The order by name is maintained as secondary order by using unused bits in the property details.

This is preliminary work towards sharing descriptors arrays.

The change allows us
- to get rid of the LastAdded bits in the map, binding it to the number of valid descriptors for the given map
- to avoid resorting by enumeration index to create the cache
- (maybe in the future, depending on performance) to get rid of the enumeration cache altogether.

Although generally the number_of_descriptors equals the NumberOfOwnDescriptors in the current version, this is preliminary work towards sharing    descriptors, where maps may have more descriptors than are valid for the map.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12385 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-27 13:47:34 +00:00
rossberg@chromium.org
cd585f26ab Introduce global contexts to represent lexical global scope(s).
They are yet unused; actual allocation of global lexical bindings in these contexts is implemented in a separate follow-up CL.

R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12384 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-27 09:40:26 +00:00
svenpanne@chromium.org
27c9ef9f79 First steps towards named Litihium operands.
Accessing Lithium operands via position is fragile and makes it impossible to
statically find all uses of a given operand. This CL is a step towards cleaning
this up, more to come...

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12383 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-27 09:39:05 +00:00
svenpanne@chromium.org
a30eab48cf Unbreak MIPS build.
TBR=vegorov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12382 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-27 09:05:07 +00:00
yurys@chromium.org
f2c0e06e64 Remove unused method and add line breaks after each serialized edge
Review URL: https://chromiumcodereview.appspot.com/10874063

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12381 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-27 08:49:00 +00:00
ulan@chromium.org
2aad64d902 MIPS: Fix rounding in Uint8ClampedArray setter.
Port r12364 (31e40def)

Original commit message:
According to Web IDL spec, we should round to
the nearest integer, choosing the even integer
if it lies halfway between two.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10870049
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12380 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-27 07:29:36 +00:00
yangguo@chromium.org
89cd0677dc Add check to external string resource.
Extensions are a source of external strings where we don't perform check yet.

R=ulan@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12379 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-24 13:01:52 +00:00
verwaest@chromium.org
5b2282c691 MIPS: Check that index and length are Smi in bounds check.
Port r12362 (cd39337c)

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10876053
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12376 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-24 09:06:23 +00:00
danno@chromium.org
3544e2e875 Disable speculative LICM when it may lead to unnecessary deopts
BUG=v8:2250
R=vegorov@chromium.org
TEST=tests/mjsunit/regress/regress-2250.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12375 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-23 21:08:58 +00:00
vegorov@chromium.org
106a83252d Fix DoDeferredNumberTagU to keep the value in xmm1 instead of xmm0 on x64.
xmm0 is not saved across runtime call on x64 because MacroAssembler::EnterExitFrameEpilogue preserves only allocatable XMM registers unlike on ia32 where it preserves all registers.

Cleanup handling of shifts: SHR can deoptimize only when its a shift by 0, all other shift never deoptimize.

Fix type inference for i-to-t change instruction. On X64 this ensures that write-barrier is generated correctly.

R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12373 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-23 16:14:01 +00:00
erikcorry
c6094f5237 Fix semaphore on MacOS. This is a commit of https://chromiumcodereview.appspot.com/10867009/ for Fedor Indutny
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12371 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-23 11:15:06 +00:00
erik.corry@gmail.com
44c3b03a29 Make the performance of the VM more predictable by not letting the hash seed
affect the order in which the local variables are processed in the compiler.
Review URL: https://chromiumcodereview.appspot.com/10870033

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12370 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-23 08:15:38 +00:00
vegorov@chromium.org
96f55352fc When processing collected uint32 instructions skip those with non-Integer32 representation.
R=danno@chromium.org
BUG=test262 S15.4.4.8_A2_T3.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12369 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-22 19:00:02 +00:00
vegorov@chromium.org
8ae899584f Fix order of conversions in ObjectToInt32 and ObjectToUint32 helpers.
TBR=danno@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12368 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-22 15:58:16 +00:00
vegorov@chromium.org
f476d4d431 Allow uint32 value on optimized frames if they are consumed by safe operations.
Safe operations are those that either do not observe unsignedness or have special support for uint32 values:

- all binary bitwise operations: they perform ToInt32 on inputs;
- >> and << shifts: they perform ToInt32 on left hand side and ToUint32 on right hand side;
- >>> shift: it performs ToUint32 on both inputs;
- stores to integer external arrays (not pixel, float or double ones): these stores are "bitwise";
- HChange: special support added for conversions of uint32 values to double and tagged values;
- HSimulate: special support added for deoptimization with uint32 values in registers and stack slots;
- HPhi: phis that have only safe uses and only uint32 operands are uint32 themselves.

BUG=v8:2097
TEST=test/mjsunit/compiler/uint32.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12367 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-22 15:44:17 +00:00
verwaest@chromium.org
fcaab50e05 While finding the valueOf descriptor, only look at the key entries.
Review URL: https://chromiumcodereview.appspot.com/10870012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12366 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-22 15:08:48 +00:00
ulan@chromium.org
05e407b083 Fix Windows build after r12364.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12365 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-22 14:45:25 +00:00
ulan@chromium.org
efc26f9b2b Fix rounding in Uint8ClampedArray setter.
According to Web IDL spec, we should round to
the nearest integer, choosing the even integer
if it lies halfway between two.

R=yangguo@chromium.org,kbr@chromium.org
BUG=v8:2294

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12364 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-22 14:27:11 +00:00
verwaest@chromium.org
5df5eea066 Check that index and length are Smi in bounds check.
BUG=chromium:142218
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12362 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-21 16:46:25 +00:00
vegorov@chromium.org
1a6cd523c8 Introduce DISABLE_ASAN macro to disable AddressSanitizer instrumentation for given functions.
Disable AddressSanitizer instrumentation for StackTracer::Trace.

R=danno@chromium.org
BUG=chromium:134722

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12361 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-21 14:21:53 +00:00
danno@chromium.org
3209f3bf87 MIPS: Fix write barrier for StoreKeyedFastElements on ARM.
Port r12238 (300f3dac)

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10828216
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12358 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-21 11:33:49 +00:00
yangguo@chromium.org
cfa79bc0d7 Prepare push to trunk. Now working on version 3.13.4.
R=ulan@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12352 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-21 10:45:44 +00:00
yangguo@chromium.org
2b2f28cd2a Revert r12346 (Introduce InternalProperty type and expose internal properties for bound functions)
Original CL: https://chromiumcodereview.appspot.com/10834376

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12351 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-21 09:48:26 +00:00
yangguo@chromium.org
01d8e3d4f5 Revert r12258, r12300 and r12302 (global regexp).
R=ulan@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12350 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-21 09:46:23 +00:00
ulan@chromium.org
2f2fc538ac Fix mjsunit/debug-script.js failure that occurs when running with the --isolates flag.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12347 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-21 07:06:21 +00:00
peter.rybin@gmail.com
cfc4c37768 Introduce InternalProperty type and expose internal properties for bound functions
Review URL: https://chromiumcodereview.appspot.com/10834376

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12346 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-20 21:49:19 +00:00
verwaest@chromium.org
1fcddc4456 While allocating code objects, perform the incremental marking step before NULLing the new object. Otherwise the code cache cannot iterate the code space anymore, which is required to clear ICs.
Review URL: https://chromiumcodereview.appspot.com/10834408

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12345 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-20 14:44:26 +00:00
svenpanne@chromium.org
f7ed521fce Handle native callbacks without getters.
TEST=cctest/test-api/SetterOnly,cctest/test-api/NoAccessors

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12344 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-20 14:32:32 +00:00
ulan@chromium.org
bac8e56f8d Fix test failures introduced by r12342.
Add missing context disposed notifications in test-api.
Move send-idle-notification flag to d8 options so that it is available in d8
when v8 is build as a shared libarary.

R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12343 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-20 13:19:52 +00:00
ulan@chromium.org
27fb8c2cf6 Flush monomorphic ICs on context disposal instead of context exit.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12342 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-20 12:09:03 +00:00
rossberg@chromium.org
55e6227817 Rename JSGlobalProxy::context to native_context,
for clarity and consistency with GlobalObject::native_context.

R=svenpanne@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12341 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-20 11:35:50 +00:00
verwaest@chromium.org
95fa9485dc Prepare push to trunk. Now working on version 3.13.3.
R=danno@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12340 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-20 09:17:58 +00:00
yangguo@chromium.org
4f1be3aeac Fix typo in Add|RemoveGCPrologueCallback
BUG=

Review URL: https://chromiumcodereview.appspot.com/10836234
Patch from Yang Gu <yang.gu@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12339 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-20 07:32:30 +00:00
yangguo@chromium.org
3a1c290b2c Add input check to %DebugSetScriptSource.
R=verwaest@chromium.org
BUG=v8:2296

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12338 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-17 15:21:15 +00:00
rossberg@chromium.org
984d0b0925 Rename Context::global to Context::global_object,
in preparation for global lexical scope.

R=mstarzinger@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12335 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-17 12:59:00 +00:00
svenpanne@chromium.org
b10d5d7f08 Deoptimization support for accessors.
Highlights of this CL:

 * Introduced a new opcode in the deoptimizer for a setter stub frame.

 * Added a global setter stub for returning after deoptimizing a setter.

 * We do not need special deopt support for getters, although the getter stub creates an internal frame. The normal machinery works just right for this case, although we generate a stack that can never occur during normal fullcode execution. If this hurts us one day, we can parameterize and reuse the setter deopt machinery.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12328 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-17 10:43:32 +00:00
rossberg@chromium.org
42552808ab Rename "global context" to "native context",
in anticipation of the upcoming lexical global scope.

Mostly automatised as:

for FILE in `egrep -ril "global[ _]?context" src test/cctest`
do
  echo $FILE
  sed "s/Global context/Native context/g" <$FILE >$FILE.0
  sed "s/global context/native context/g" <$FILE.0 >$FILE.1
  sed "s/global_context/native_context/g" <$FILE.1 >$FILE.2
  sed "s/GLOBAL_CONTEXT/NATIVE_CONTEXT/g" <$FILE.2 >$FILE.3
  sed "s/GlobalContext/NativeContext/g" <$FILE.3 >$FILE
  rm $FILE.[0-9]
done

R=mstarzinger@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12325 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-17 09:03:08 +00:00
verwaest@chromium.org
1011ae225f Prepare push to trunk. Now working on version 3.13.2.
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12322 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-16 15:39:37 +00:00
verwaest@chromium.org
61d11f99c4 Show map -> transition array -> descriptor array to the heap profiler.
BUG=chromium:142625

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12321 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-16 14:25:55 +00:00
mstarzinger@chromium.org
5a3ec8532b Force eager compilation of some function literals.
In case a function literal is followed by parenthesis, we consider this
a hint that it will be called immediately. If we happen to have parsed
that function literal eagerly, we can also compile it eagerly.

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12320 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-16 11:54:48 +00:00
verwaest@chromium.org
aaf403e92c MIPS: Swapped transition array and descriptor array.
Port r12298 (7b39ef67)

Original commit message:
Now a map points to a transition array which contains the descriptor array. The descriptor array is now immutable. The next step is to share the descriptor array with all back-pointed maps as long as there is a single line of extension. Maps that require a descriptor array but don't need transitions will still need a pseudo-empty transition array to contain the descriptor array.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10827335
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12319 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-16 11:42:02 +00:00
svenpanne@chromium.org
018670f2e4 Change the maximum optimization count into a commandline flag.
This is needed for some unit tests, which otherwise do not test what people
think they do. ;-)

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12318 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-16 11:40:03 +00:00
svenpanne@chromium.org
f5f8ebd4ed Fix accessor lookup in crankshaft.
Seeing monomorphic type feedback plus an AccessorPair does not necessarily imply
that the corresponding getter/setter is really there, so we have to check for
this explictly.

TEST=mjsunit/object-define-property

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12317 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-16 10:35:39 +00:00
yangguo@chromium.org
8607093fab MIPS: Check for function in %_CallFunction.
Port r12299 (f6372257)

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10834317
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12316 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-16 09:46:04 +00:00
mstarzinger@chromium.org
27f5bf3f2b MIPS: Fix improved LoadICs for dictionaries with callbacks.
Port r12311 (f698ddd7)

Original commit message:
This fixes the positive lookup performed by these LoadICs, to use the
holder instead of the receiver to perfrom the lookup on. It also extends
this improvement to KeyedLoadICs. And it fixes a bug introduced for the
JavaScript getter case of a LoadIC.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10823326
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12314 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-16 09:10:10 +00:00
erik.corry@gmail.com
ee3a66b273 Fix bug in compare IC. BUG=2291
Review URL: https://chromiumcodereview.appspot.com/10830334

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12313 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-15 15:08:42 +00:00
mstarzinger@chromium.org
15589fe22a Fix improved LoadICs for dictionaries with callbacks.
This fixes the positive lookup performed by these LoadICs, to use the
holder instead of the receiver to perfrom the lookup on. It also extends
this improvement to KeyedLoadICs. And it fixes a bug introduced for the
JavaScript getter case of a LoadIC.

R=erik.corry@gmail.com
BUG=chromium:142088
TEST=cctest/test-api/Regress142088,cctest/test-api/Regress137002b

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12311 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-14 13:17:47 +00:00
yangguo@chromium.org
071f7fdfc1 Do checks when receiving external string resources through the API.
This is to find incorrect API usage.

R=ulan@chromium.org
BUG=140050

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12308 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-14 12:16:38 +00:00
yangguo@chromium.org
28c892938e Ensure capacity when adding parts in String.replace.
R=ulan@chromium.org
BUG=v8:2289
TEST=regress-2289.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12307 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-14 11:33:12 +00:00
yangguo@chromium.org
d3733ce1e3 Prevent segfault on undefined inline runtime call.
R=mstarzinger@chromium.org
BUG=v8:2286

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12306 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-14 10:06:34 +00:00
erik.corry@gmail.com
c3ef910b86 Disable array index dehoisting due to stability issues.
Review URL: https://chromiumcodereview.appspot.com/10834303

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12305 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-14 09:22:34 +00:00
yangguo@chromium.org
3605fcbe63 Fix indexing bug in regexp, part 2.
The previous fix initialized the start index incorrectly.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12302 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-13 15:53:40 +00:00
mstarzinger@chromium.org
e77f24f44e Remove prototype of global builtins object.
R=yangguo@chromium.org
BUG=v8:2284
TEST=mjsunit/regress/regress-2284

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12301 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-13 15:34:49 +00:00
yangguo@chromium.org
960b1af12f Fix wrong indexing in global regexp.
R=ulan@chromium.org
BUG=142087

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12300 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-13 15:26:46 +00:00
yangguo@chromium.org
f30099dacf Check for function in %_CallFunction.
R=mstarzinger@chromium.org
BUG=v8:2285

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12299 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-13 12:11:26 +00:00
verwaest@chromium.org
d53de0590a Swapped transition array and descriptor array.
Now a map points to a transition array which contains the descriptor array. The descriptor array is now immutable. The next step is to share the descriptor array with all back-pointed maps as long as there is a single line of extension. Maps that require a descriptor array but don't need transitions will still need a pseudo-empty transition array to contain the descriptor array.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12298 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-13 08:43:16 +00:00
mstarzinger@chromium.org
a055a4e193 Prepare push to trunk. Now working on version 3.13.1.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12294 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-10 14:41:52 +00:00
mstarzinger@chromium.org
8c51d61b7a Fix compile failure on Win64 introduced in r12291.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12293 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-10 14:21:46 +00:00
erik.corry@gmail.com
9b3068bedd Fix intermittent failure in ReleaseOverReservedPages on x64.
BUG=v8:2216
Review URL: https://chromiumcodereview.appspot.com/10828253

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12292 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-10 13:45:22 +00:00
mstarzinger@chromium.org
8fdd8cefc4 Add histograms for total allocated/live heap size, as well as allocated size and percentage of total for map and cell
BUG=none
TEST=none
R=mstarzinger@chromium.org

Review URL: https://chromiumcodereview.appspot.com/10854043
Patch from Jochen Eisinger <jochen@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12291 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-10 13:09:31 +00:00
erik.corry@gmail.com
3646df7d6d MIPS: Improve load IC so it can call a native accessor even if the holder is in dictionary mode. Add a flag to all maps to indicate whether they are used for dictionary (normalized) objects or fast mode objects. This is a commit of https://chromiumcodereview.appspot.com/10826213/ for palfia. This is a port of r12264, https://chromiumcodereview.appspot.com/10831153
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12290 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-10 12:28:12 +00:00
erik.corry@gmail.com
8d30a964d8 Revert inadvertent commit of testing change to flag-definitions.h
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12288 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-10 12:26:21 +00:00
erik.corry@gmail.com
a9f5f3d6f5 Fix the full compiler on ARM to always generate the same code
regardless of the detected CPU.  This is a requirement for the
debugger and the deoptimizer, which both expect that code from
the snapshot (compiled without VFP and ARM7) should have the
same layout as code compiled later.

This is another change to make snapshots more robust with
arbitrary code.
Review URL: https://chromiumcodereview.appspot.com/10824235

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12287 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-10 12:24:06 +00:00
svenpanne@chromium.org
f9aea9fcef Inline simple setter calls.
Currently only simple setter calls are handled (i.e. no calls in count
operations or compound assignments), and deoptimization in the setter is not
handled at all. Because of the latter, we temporarily hide this feature behind
the --inline-accessors flag, just like inlining getters.

We now use an enum everywhere we depend on the handling of a return value,
passing around several boolean would be more confusing.

Made VisitReturnStatement and the final parts of TryInline more similar, so
matching them visually is a bit easier now.

Simplified the signature of AddLeaveInlined, the target of the HGoto can simply
be retrieved from the function state.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12286 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-10 09:05:42 +00:00
mstarzinger@chromium.org
6cfc3f4c18 Remove obsolete SLOT_ADDR macro usages.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12285 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-09 12:25:03 +00:00
svenpanne@chromium.org
22e3c0ae04 Use the correct oracle in TestContext::BuildBranch.
When inlining is being done, it is crucial to use the correct type feedback
oracle with a given type feedback ID. To ensure this, TestContext now carries an
oracle which is associated with the context's condition, and these are both used
together in TestContext::BuildBranch.

Note that in VisitReturnStatement and TryInline we are currently lucky that the
oracles don't go out of sync in an observable way, but this will change when we
inline setters. Therefore, there is no separate test case...

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12284 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-09 11:44:56 +00:00
yangguo@chromium.org
fe63070186 MIPS: Improve constant element index access code generation
Port r12232 (588ccf83)

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10825263
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12283 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-09 08:41:56 +00:00
yangguo@chromium.org
93fe6abc6c MIPS: Refactor Math.min/max to be a single HInstruction.
Port r12265 (7501dd73)

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10854053
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12282 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-09 08:28:52 +00:00
ulan@chromium.org
92fd1eb347 Fix Win64 compile error caused by r12272.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12276 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-08 09:46:45 +00:00
yangguo@chromium.org
5d35b1851b Fix parseInt's octal parsing behavior (ECMA-262 Annex E 15.1.2.2).
R=svenpanne@chromium.org
BUG=v8:1645
TEST=test262, parse-int-float.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12273 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-08 07:44:17 +00:00
ulan@chromium.org
a270eeef2d Add heap space sizes and external memory counter to V8 statistics extension.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12272 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-08 07:37:07 +00:00
erik.corry@gmail.com
ac4b44297b Add checks for interceptors to negative lookup code in Crankshaft.
BUG=140473
Review URL: https://chromiumcodereview.appspot.com/10837141

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12271 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-07 14:48:19 +00:00
mstarzinger@chromium.org
fa2287fa96 Force eager compilation of parenthesized functions.
This makes the compiler use eager compilation for function literals that
are parenthesized. We consider this to be a hint that the function will
be called immediatly and hence try to avoid parsing it twice. The parser
already respects this heuristic.

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12270 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-07 14:47:36 +00:00
ulan@chromium.org
fb7345cdfd Add flag to trace the amount of external memory.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12269 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-07 14:17:35 +00:00
svenpanne@chromium.org
5deec59302 Unify handling of bailout IDs for property loads.
Renamed Property::ReturnId to Property::LoadId, which describes its use more
accurately. Compound assignments and CountOperations now consistently use
Property::LoadId() instead of their own CompoundLoadId/CountId.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12268 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-07 14:06:25 +00:00
ulan@chromium.org
b4fd9de1f0 Adjust GC tracing: add a flag to ignore scavenger traces and print total GC time in verbose mode.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12267 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-07 08:19:11 +00:00
jkummerow@chromium.org
23a270c6e7 Refactor Math.min/max to be a single HInstruction.
That allows us to dynamically compute representations and insert appropriate HChange instructions.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12265 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-06 14:28:27 +00:00
erik.corry@gmail.com
92f30d1df5 Improve load IC so it can call a native accessor even if the holder is
in dictionary mode.  Add a flag to all maps to indicate whether they are
used for dictionary (normalized) objects or fast mode objects.
Review URL: https://chromiumcodereview.appspot.com/10831153

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12264 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-06 14:25:19 +00:00
svenpanne@chromium.org
b5da7279b1 Introduced TypeFeedbackId and BailoutId types.
This is a refactoring-only CL which improves the typing of IDs associated with
AST nodes. The interesting parts are in utils.h and ast.h, the rest of the CL
basically follows mechanically.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12263 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-06 14:13:09 +00:00
ulan@chromium.org
b49b32599b Make AdjustAmountOfExternalAllocatedMemory() more robust.
Do not crash if called from a thread without V8 isolate, reset the external
memory counters in case of overflow, bump the external allocation limit.

This will allow us to track typed array allocation and deallocation in WebKit.

BUG=v8:2022,122097,42342
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12262 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-06 13:49:13 +00:00
mstarzinger@chromium.org
235d8b4f94 Fix integer division truncation error.
Review URL: https://chromiumcodereview.appspot.com/10831148
Patch from Nico Weber <thakis@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12261 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-06 13:23:52 +00:00
mstarzinger@chromium.org
81a43b5607 Make incremental marking clear ICs.
This extends the existing clearing of ICs during GC to incremental
marking in order to prevent cross-context retention that would last
until the next non-incremental GC.

R=erik.corry@gmail.com
TEST=cctest/test-heap/IncrementalMarkingClears[Mono,Poly]morhpicIC

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12259 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-06 10:35:48 +00:00
yangguo@chromium.org
e0954ca592 Take advantage of batched results when matching global regexp.
BUG=
TEST=regexp-global.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12258 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-06 09:06:27 +00:00
yangguo@chromium.org
4e82c3fb1a Allow SetHiddenValue to accept empty value.
R=mstarzinger@chromium.org
BUG=v8:2274

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12257 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-06 07:55:05 +00:00
yangguo@chromium.org
0a0b4f4f2f Fix crash bug when calling getV8Statistics().
BUG=v8:2270

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12255 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-03 14:03:30 +00:00
svenpanne@chromium.org
83fc4205f6 Fixed compound/count operations with getter-only accessor properties.
The underlying problem is that for compound/count operations we use the *load*
type feedback for storing, too. For normal properties this doesn't matter, but
for accessor properties we should better use the *store* type feedback, which
would be available, too. This consistent feedback usage could be guaranteed if
we removed the heavy copy-n-paste in the crankshaft code generation for
compound/count operations and assignments/property loads.

To be on the safe side, we postpone this refactoring and do a quick and easily
mergeable fix.

BUG=140083
TEST=mjsunit/regress/regress-crbug-140083.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12252 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-03 09:45:08 +00:00
svenpanne@chromium.org
930aaf4267 android: refine custom ucontext_t definitions.
This is a forward-compatible change to avoid type/naming
conflicts when the Android platform/NDK will update its
<signal.h> header to properly define 'struct sigcontext',
'mcontext_t' and 'ucontext_t'.

In particular:

  - Do not define 'struct sigcontext.h' to avoid
    conflicts with the C library definition (which
    is different, see below).

  - Only provide custom ucontext_t declarations if
    the Android <signal.h> doesn't provide it. This can
    be tested with a macro check (__BIONIC_HAVE_UCONTEXT_T)

+ Use 'gettid()' on Android since it is available (at all
  API levels).

See http://code.google.com/p/android/issues/detail?id=34784

Review URL: https://chromiumcodereview.appspot.com/10829122
Patch from David Turner <digit@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12250 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-02 10:03:21 +00:00
mstarzinger@chromium.org
ec11473354 When specifying a new create histogram callback, reset all histograms so they recreate themselves on next use.
We only do this for histograms, and not for counters, as counters might be used directly from generated code

BUG=none
TEST=none

Review URL: https://chromiumcodereview.appspot.com/10828113
Patch from Jochen Eisinger <jochen@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12248 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-01 12:51:24 +00:00
erik.corry@gmail.com
5c6db6d081 Fix the 137002 fix (Don't generate ICs for accessors on slow
case objects).  We should be testing the holder for dictionary
mode, not the receiver.
Review URL: https://chromiumcodereview.appspot.com/10827113

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12247 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-01 12:35:33 +00:00
mstarzinger@chromium.org
d4e6aa33fc Refactor marking to share embedded pointer visitor.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12246 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-01 11:29:48 +00:00
mstarzinger@chromium.org
7dd2e9777c Make incremental marking clear type feedback cells.
This extends the existing clearing of type feedback cells during GC to
incremental marking in order to prevent cross-context retention that
would last until the next non-incremental GC.

R=erik.corry@gmail.com
TEST=cctest/test-heap/IncrementalMarkingClearsTypeFeedbackCells

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12245 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-01 11:24:14 +00:00
jkummerow@chromium.org
2b786204ee Prepare push to trunk. Now working on version 3.13.0.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12242 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-01 11:10:32 +00:00
verwaest@chromium.org
bc86ec4d5f Don't leak inobject space when transforming to fast properties without descriptors.
Review URL: https://chromiumcodereview.appspot.com/10828112

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12241 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-01 10:50:26 +00:00
mstarzinger@chromium.org
3bb994c4e4 Make test-serialize resilient against --gc-interval.
R=erik.corry@gmail.com
TEST=cctest/test-serialize (--gc-interval=100)

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12240 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-01 09:43:05 +00:00
erik.corry@gmail.com
1d0f872ef9 Fix full code generator to not use --debug-code if it is in
mksnapshot or a VM that is booted from a snapshot.  --debug-code
can still have an effect on stub and optimized code and it still
works on the full code generator when running without snapshots.

The deoptimizer generates full-code-generator code and relies on it having
the same layout as last time.  This means that the code the full code
generator makes for the snapshot should be the same as the code it makes
later.  This change makes the full code generator create more consistent
code between mksnapshot time and run time.

This is a bug fix and a step towards making the snapshot code more robust.
Review URL: https://chromiumcodereview.appspot.com/10834085

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12239 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-31 14:59:32 +00:00
danno@chromium.org
cd95464dbc Fix write barrier for StoreKeyedFastElements on ARM
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12238 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-31 14:31:19 +00:00
verwaest@chromium.org
ec2b5ab57c Use architecture-specific alignment for hashing in Descriptor lookup cache.
Review URL: https://chromiumcodereview.appspot.com/10825099

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12236 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-31 12:33:28 +00:00
mstarzinger@chromium.org
bf0322a861 Fix build for disassembler=on and objectprint=off.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12235 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-31 09:53:39 +00:00
danno@chromium.org
d884792dea Fix bogus AbortIfNotZeroExtended on x64 for bounds checks
R=mmassi@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12234 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-31 09:47:43 +00:00
erik.corry@gmail.com
8d96a0190c Fix deserializer to understand direct pointers from code to cell payloads.
The deoptimizer generates full-code-generator code and relies on it having
the same layout as last time.  This means that the code the full code
generator makes for the snapshot should be the same as the code it makes
later.  This change makes the full code generator create more consistent
code between mksnapshot time and run time.

This is a bug fix and a step towards making the snapshot code more robust.
Review URL: https://chromiumcodereview.appspot.com/10824084

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12233 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-31 09:25:23 +00:00
danno@chromium.org
9641c25573 Improve constant element index access code generation
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12232 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-31 08:44:51 +00:00
yangguo@chromium.org
514fc74a47 Limit initial size of hidden properties and store identity hashes inline.
BUG=v8:2211
TEST=test-heap/Regress2211

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12230 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-30 13:09:09 +00:00
mstarzinger@chromium.org
249f29f22b Make AlwaysAllocateScope imply DisallowAllocationFailure.
R=erik.corry@gmail.com
TEST=cctest/test-api,cctest/test-heap (--gc-interval=100)

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12229 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-30 13:07:29 +00:00
yangguo@chromium.org
bfd51f29dc R=yangguo@chromium.org,svenpanne@chromium.org
x64 BinaryOpStub::GenerateSmiCode use wrong registers in one code path.

e.g. d8 --trace_ic
var dd = new Float64Array(2);
dd[1] = 1;
(function fn() {
  for (var i = 0; i < 1000; i++)
  dd[0] = 2 / dd[1];
})();
It keeps falling into runtime call and patching.

No regression test, because I don't how to test it.

Review URL: https://chromiumcodereview.appspot.com/10834064
Patch from Zheng Liu <shdwthr@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12226 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-30 13:04:10 +00:00
ulan@chromium.org
16f9ce7c2f Prepare push to trunk. Now working on version 3.12.19.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12225 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-30 13:00:52 +00:00
mstarzinger@chromium.org
76fe67b092 Implement verification of context separation.
This adds the --verify-global-context-separation flag which can be used
to verify that no code object embeds pointers to more than one global
context after a full GC. It uses an object visitor that just performs
shallow traversal of the object graph spanned by one code object, and
breaks at points where application objects are encountered. So it will
not trip on cross-context leaks introduced by the application itself.

R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12224 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-30 10:47:04 +00:00
svenpanne@chromium.org
cb4840c0e5 Inline simple getter calls.
Currently only simple getter calls are handled (i.e. no calls in count
operations or compound assignments), and deoptimization in the getter is not
handled at all. Because of the latter, we temporarily hide this feature behind a
new flag --inline-accessors, which is false by default.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12223 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-30 10:42:21 +00:00
mstarzinger@chromium.org
fdb22ea2ed Implement TracePathToObjectFrom helper for debugging.
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12222 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-30 10:32:54 +00:00
yangguo@chromium.org
d078747ac0 Actually fix build.
R=svenpanne@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12221 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-30 09:55:26 +00:00
yangguo@chromium.org
e622892fac Fix build.
R=jkummerow@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12220 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-30 09:36:03 +00:00
yangguo@chromium.org
21871da998 Force signed zero double.
R=svenpanne@chromium.org
BUG=v8:2239
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12219 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-30 09:28:20 +00:00
yangguo@chromium.org
0acc9e13af Make sure double to int conversion is correct.
R=svenpanne@chromium.org
BUG=v8:2260
TEST=test-utils/Utils1

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12216 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-30 08:34:26 +00:00
verwaest@chromium.org
a448d42428 Removed recording of Target Slot in transition arrays since they only contain maps.
Review URL: https://chromiumcodereview.appspot.com/10802048

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12215 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-27 17:03:12 +00:00
mstarzinger@chromium.org
cf6d80e154 Fix minor handle unsafety in exception throwing code.
R=yangguo@chromium.org
TEST=mjsunit/harmony/proxies (--gc-interval=100)

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12214 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-27 15:33:06 +00:00
svenpanne@chromium.org
7fd21aa7a1 Move some Pop/Drop calls directly to the places where they are needed.
This is a refactoring-only CL and the fourth one in a series for enabling
inlining of accessors. Later when we try to inline accessor calls, their
arguments must still be on the expression stack, so we must not remove them too
early.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12213 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-27 12:35:44 +00:00
mstarzinger@chromium.org
bff5cc9e94 Print type feedback info together with code objects.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12212 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-27 12:06:26 +00:00
yangguo@chromium.org
b58cfd485e Avoid GC when printing shared function info.
R=mstarzinger@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12210 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-27 09:54:56 +00:00
svenpanne@chromium.org
0923caccee Move BuildCallGetter/BuildCallSetter up in the call chain.
This is a refactoring-only CL and the third one in a series for enabling
inlining of accessors. The goal of this CL is to move the builders for accessors
to the places where we might be able to inline them later, i.e. the VisitFoo and
HandleBar member functions of HGraphBuilder.

Extracted duplicate code into LookupAccessorPair.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12209 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-27 09:43:06 +00:00
verwaest@chromium.org
ce23fe9721 Prepare push to trunk. Now working on version 3.12.18.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12206 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-27 07:57:43 +00:00
svenpanne@chromium.org
eddf5edb62 Cleaned up BuildLoadNamed/BuildStoreNamed.
This is a refactoring-only CL and the second one in a series for enabling
inlining of accessors. It makes BuildLoadNamed and BuildStoreNamed a bit more
uniform and makes it clear that they both handle monomorphic accesses only.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12205 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-27 06:27:47 +00:00
verwaest@chromium.org
bcc175ad43 Extending map verification to also verify LastAdded/DescriptorArray consistency.
Removed ASSERT now subsumed by extended map verification.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12204 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-26 14:55:22 +00:00
mmassi@chromium.org
3eb1df6580 Re-enable array index dehoisting.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12203 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-26 14:21:40 +00:00
verwaest@chromium.org
1c7aa4d172 Set LastAdded to kNoneAdded in RawCopy.
This ensures it is properly initialized if no descriptors are later set.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12202 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-26 13:48:34 +00:00
jkummerow@chromium.org
80c35c6522 Always set the callee's context when calling a function from optimized code.
This is necessary even for recursive calls because we're sharing optimized code among closures, which could call each other and have distinct contexts.

BUG=138887
TEST=mjsunit/regress/regress-crbug-138887

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12201 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-26 12:49:08 +00:00
yangguo@chromium.org
4d1d1eb53e Fix building with GCC 3.x
R=yangguo@chromium.org
BUG=v8:2016, v8:2017
TEST=

Review URL: https://chromiumcodereview.appspot.com/10823034
Patch from James Pike <g00gle@chilon.net>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12199 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-26 09:18:09 +00:00
svenpanne@chromium.org
0f800eef8e Cleaned up Hydrogen function signatures related to property access.
This is a refactoring-only CL and the first one in a series for enabling
inlining of accessors. The naming and argument order has been unified a bit, and
some tests have been pushed to the caller in order to get a simpler
signature. Note that the latter temporarily introduces some code redundancy, but
this will be cleaned up in one of the next CLs.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12198 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-26 08:55:22 +00:00
yangguo@chromium.org
d37695e30e Fix cctests when VFP is disabled.
R=svenpanne@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12197 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-26 08:42:42 +00:00
verwaest@chromium.org
175440898e Limited the size of transition arrays so they never end up in the large object space.
Also renamed SizeOf on DescriptorArray to LengthOf for consistency.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12196 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-26 08:27:20 +00:00
mstarzinger@chromium.org
6d907fb531 Improve API calls that return empty handles.
R=jkummerow@chromium.org
BUG=v8:2245

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12195 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-25 16:33:32 +00:00
yangguo@chromium.org
59f212e7eb Relax requirement from VFP3 to VFP2 where possible.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12194 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-25 15:26:16 +00:00
mstarzinger@chromium.org
abede994d9 Refactor incremental marking to use static visitor.
This is a refactoring only change that switches incremental marking to
use a static object visitor. It also shares the common code between the
non-incremental and the incremental marker. Sharing that would require
semantical changes will be done later.

R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12193 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-25 15:23:07 +00:00
danno@chromium.org
c1b91ad60d Prepare push to trunk. Now working on version 3.12.17.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12190 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-25 14:58:20 +00:00
danno@chromium.org
5c07b5837b MIPS: Optimize Smi keys for KeyedLoads
Port r12156 (e2874cdf)

Original commit message:
Allows KeyeLoad/KeyedStore operations where the key is a Smi to fold the untagging of the key into the element offset calculation.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10790143
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12189 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-25 14:38:32 +00:00
danno@chromium.org
8161285786 MIPS: Implements a new API to set a function entry hook for profiling.
Port r12107 (59ee5c88)

Original commit message:
Exposes a new API; V8::SetFunctionEntryHook.
If a non-NULL function entry hook is set, the code generator(s) will invoke on the entry hook at the very start of each generated function.

Committed: https://code.google.com/p/v8/source/detail?r=12069

Committed: https://code.google.com/p/v8/source/detail?r=12083

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10795021
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12188 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-25 14:36:38 +00:00
yangguo@chromium.org
d525ddbed1 Fix static initializer check.
R=jkummerow@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12187 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-25 14:27:14 +00:00
yangguo@chromium.org
2c9c94bd32 Classify small functions platform-dependently.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12186 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-25 13:51:29 +00:00
verwaest@chromium.org
52a7149efb In-place trimming of descriptor array when appending callbacks.
Review URL: https://chromiumcodereview.appspot.com/10830005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12184 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-25 11:12:29 +00:00
yangguo@chromium.org
821ddeccd8 MIPS: Optimize functions on a second thread.
Port r12148 (a553c67d)

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10802079
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12182 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-24 14:13:02 +00:00
yangguo@chromium.org
0cd21b4345 Prepare push to trunk. Now working on version 3.12.16.
R=jkummerow@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12179 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-24 07:55:08 +00:00
mstarzinger@chromium.org
806fb8be96 Fix bootstrapping without snapshot and low GC interval.
R=yangguo@chromium.org
BUG=v8:2249
TEST=mjsunit/regress/regress-2249 (snapshot=off)

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12177 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-23 16:18:25 +00:00
danno@chromium.org
f793c77058 Reactivate packed array optimizations by default
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12176 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-23 15:01:25 +00:00
verwaest@chromium.org
fe67f8a9ad Replace symbol containing "prototype" with heap->prototype_symbol.
Review URL: https://chromiumcodereview.appspot.com/10817008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12175 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-23 14:55:12 +00:00
yangguo@chromium.org
6b489d9753 Improve String::WriteAscii and add PRESERVE_ASCII_NULL option.
The PRESERVE_ASCII_NULL option prevents WriteAscii from converting
\0 to white space.

R=verwaest@chromium.org
BUG=v8:2252
TEST=test-api/StringWrite

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12174 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-23 14:22:46 +00:00
danno@chromium.org
3667f92cbb Add dependency to HLoadKeyed* instructions to prevent invalid hoisting
BUG=chromium:137768
TEST=test/mjsunit/regress/regress-137768.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12173 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-23 13:59:24 +00:00
yangguo@chromium.org
0c23596d7d Interpret negative hexadecimal literals as NaN.
R=rossberg@chromium.org
BUG=v8:2240
TEST=str-to-num.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12169 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-23 10:33:41 +00:00
yangguo@chromium.org
50bf19a975 Fix corner case when transforming dictionary to fast elements.
R=verwaest@chromium.org
BUG=v8:2249
TEST=regress-2249.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12167 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-23 08:41:53 +00:00
yangguo@chromium.org
a1f0c5b16e Add assertions to limit register count for VSTM and VLDM.
R=svenpanne@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12166 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-23 08:38:53 +00:00
danno@chromium.org
0fb5189a32 Refine object stats for FixedArrays.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12165 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-20 14:06:24 +00:00
danno@chromium.org
8c89cc4cab Optimize Smi keys for KeyedLoads
Allows KeyeLoad/KeyedStore operations where the key is a Smi to fold the untagging of the key into the element offset calculation.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12156 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-20 11:00:33 +00:00
svenpanne@chromium.org
59cd98cf07 Cleaned up AST nodes a bit.
* Made AST IDs constant. Making this explicit helps understanding the code.

* Removed a few dead functions.

* Be honest by making node_type() pure virtual.

All these changes have been checked to be performance-neutral.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12153 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-20 09:39:27 +00:00
sanjoy@chromium.org
1d7c4d9189 Track how much time the compiler thread spends doing useful work.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12152 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-20 08:56:20 +00:00
verwaest@chromium.org
26afeb6ea5 Don't record elements transition slots since it will contain a map.
Additionally removed unused code.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12150 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-20 07:24:50 +00:00
svenpanne@chromium.org
b9b206e2f1 Removed dead variable to make GCC 4.6 happy again.
TBR=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12149 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-20 07:12:06 +00:00
sanjoy@chromium.org
693c7643d2 Optimize functions on a second thread.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12148 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-19 18:58:23 +00:00
verwaest@chromium.org
5b0d3a09eb Remove LastAdded from the EnumCacheBridge.
Review URL: https://chromiumcodereview.appspot.com/10806030

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12147 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-19 14:59:30 +00:00
verwaest@chromium.org
52bfb2a18e Moved lastadded from DescriptorArray to Map. Renamed kLastAdded to kEnumCache.
Review URL: https://chromiumcodereview.appspot.com/10802034

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12146 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-19 14:45:19 +00:00
verwaest@chromium.org
8b70a7bc54 Move all Copy* methods from descriptor array into the Copy* versions on the map.
Another step towards moving LastAdded from the DescriptorArray to the Map.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12145 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-19 14:05:27 +00:00
svenpanne@chromium.org
e81b194fcf Simplify TryInline's signature.
We don't actually need the arguments of the call, just their count. This change
is needed because in an accessor call there is no explicit argument list.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12144 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-19 10:46:03 +00:00
verwaest@chromium.org
b489d66649 Append to descriptors over map.
Review URL: https://chromiumcodereview.appspot.com/10800033

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12141 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-19 10:01:52 +00:00
svenpanne@chromium.org
e469cc44b8 Fix compilation for ARMv5TEJ
BUG=
TEST=Compiling for ARMv5TEJ

Review URL: https://chromiumcodereview.appspot.com/10784013
Patch from Remi Duraffort <remi.duraffort@st.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12140 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-19 09:49:12 +00:00
sanjoy@chromium.org
57a4229d4e Add missing operator delete.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12139 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-19 08:43:00 +00:00
sanjoy@chromium.org
dc3995a936 Fix Windows build spam.
BUG=v8:2242
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12138 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-19 08:32:30 +00:00
svenpanne@chromium.org
001cc2edac Don't use alloca.
It leads to compability hell, and the amount of memory we need is bounded,
anyway. Added a few more assertions on the way.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12137 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-19 07:32:58 +00:00
verwaest@chromium.org
f99dda8dab Let DescriptorArray::Append insert at proper position, avoiding need for resorting.
Using insertion-sort won't have too much of an overhead for the short arrays for bootstrapping (which are probably snapshot anyway).
CopyAppendCallbackDescriptors was extending and sorting the array in a loop. By using an append that inserts at the right position we do not need to resort in each iteration.

Additionally remove Sort and rename SortUnchecked to Sort. The IsSortedNoDuplicates check is moved into InitializeDescriptor.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12136 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-18 15:38:58 +00:00
yangguo@chromium.org
39a16ac071 Push rdi instead of rsi when probing for CPU features.
TBR=svenpanne@chromium.org
BUG=v8:2238
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12135 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-18 15:05:04 +00:00
sanjoy@chromium.org
71618ee6aa The deferred handes list belongs to the Isolate and not to the
HandleScopeImplementer (since it isn't something specific to a
particular thread executing on an Isolate). This patch ensures correct
traversal of the handles when when multiple compilations are queued
up.

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12134 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-18 14:15:02 +00:00
verwaest@chromium.org
cd98b0c839 Removed CopyAppendForeignDescriptor.
Use descriptor array preallocation + appending instead.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12133 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-18 14:00:58 +00:00
yangguo@chromium.org
25d4eeaf98 MIPS: Fix transcendental cache on ARM in optimized code.
Port r12086 (84066033)

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10782023
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12132 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-18 13:50:19 +00:00
yangguo@chromium.org
d340db9135 Insert missing write barrier in sliced string allocation.
BUG=v8:2237
TEST=test-heap/Regress2237

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12127 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-18 13:39:53 +00:00
yangguo@chromium.org
1726fcf010 Restore rsi on x64 when probing for CPU features.
BUG=v8:2238
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12126 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-18 13:02:27 +00:00
yangguo@chromium.org
ca2b0e366b Expose counters in javascript.
R=rossberg
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12124 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-18 12:27:29 +00:00
sanjoy@chromium.org
610b705e80 HConstant::PrintDataTo() uses wrong format string
Review URL: https://chromiumcodereview.appspot.com/10783031
Patch from Zheng Liu <zheng.z.liu@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12121 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-18 11:40:39 +00:00
mstarzinger@chromium.org
6d552f09d1 Add --trace-parse flag to parser.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12120 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-18 11:22:46 +00:00
verwaest@chromium.org
b149f9a302 Prepare push to trunk. Now working on version 3.12.15.
R=danno@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12117 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-18 11:21:12 +00:00
svenpanne@chromium.org
a344ee21a7 Deactivate optimization of packed arrays.
It breaks the San Angeles WebGL demo.

BUG=http://code.google.com/p/chromium/issues/detail?id=137768
TEST=https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/demos/google/san-angeles/index.html

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12116 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-18 10:41:03 +00:00
verwaest@chromium.org
90c7cb1397 When following an accessor transition for an already existing accessor, don't load the last added descriptor but the same descriptor as we already found previously.
BUG=137689
TEST=test/mjsunit/regress/regress-crbug-137689.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12115 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-18 09:20:57 +00:00
sanjoy@chromium.org
645f5265d9 Make CompilationInfo::~CompilationInfo() virtual so that CompilationInfoWithZone destructs correctly.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12114 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-17 16:53:34 +00:00
sanjoy@chromium.org
bbef3a0975 Fix Win64 build by adding a static_cast.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12113 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-17 16:51:19 +00:00
sanjoy@chromium.org
3ec32fd311 Introduce an OptimizingCompiler class, responsible for maintaining the state needed to run Crankshaft.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12112 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-17 16:24:40 +00:00
verwaest@chromium.org
6696496553 Prepare push to trunk. Now working on version 3.12.14.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12109 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-17 16:13:24 +00:00
danno@chromium.org
43d0ed048d Implements a new API to set a function entry hook for profiling.
Exposes a new API; V8::SetFunctionEntryHook.
If a non-NULL function entry hook is set, the code generator(s) will invoke on the entry hook at the very start of each generated function.

Committed: https://code.google.com/p/v8/source/detail?r=12069

Committed: https://code.google.com/p/v8/source/detail?r=12083

Review URL: https://chromiumcodereview.appspot.com/10706002
Patch from Sigurður Ásgeirsson <siggi@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12107 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-17 15:18:15 +00:00
danno@chromium.org
56cff630af Fix Win64 build
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12106 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-17 14:04:41 +00:00
verwaest@chromium.org
d8c7a03a3a Grouping all map creation code.
- Now tunnel all descriptor changes through methods on the map
- Renamed CopyDropTransitions to regular Copy since we always "drop transitions" on copy anyway.
- Merged and moved elements transition map creation.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12105 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-17 13:50:19 +00:00
danno@chromium.org
1ab272ab36 Track counts/sizes of CODE sub types with --track-gc-object-stats
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12104 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-17 11:58:49 +00:00
mstarzinger@chromium.org
6744e6e9a6 Remove obsolete ParserApi::PartialPreParse method.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12103 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-17 11:31:05 +00:00
verwaest@chromium.org
af623613a8 Always fix up the enumeration indices when turning to fast mode.
Review URL: https://chromiumcodereview.appspot.com/10782026

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12102 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-17 10:27:18 +00:00
verwaest@chromium.org
7cb94437cb Remove LookupTransitionOrDescriptor altogether.
Review URL: https://chromiumcodereview.appspot.com/10778011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12100 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-16 15:26:10 +00:00
mstarzinger@chromium.org
77ccfe895c Add histogram for total heap fragmentation, don't report fragmentation for new space, and report fragmentation, not usage
BUG=none
TEST=none

Review URL: https://chromiumcodereview.appspot.com/10778009
Patch from Jochen Eisinger <jochen@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12099 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-16 15:17:00 +00:00
verwaest@chromium.org
3b5a6ef2e7 Removing LookupTransition from LookupRealNamedProperty and related utility functions.
Callsites now have to manually lookup transitions if required. This
avoids unnecessary overhead of looking up transitions when we don't need
them. This also allows us to use IsFound() in many places where
IsProperty() was required previously.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12098 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-16 14:47:28 +00:00
verwaest@chromium.org
11e5c9e281 Removed transitions from the accessor pair descriptors.
AccessorPair related transitions are now also stored as single map links, simplifying the code that handles transitions. AccessorPairs can now be shared between descriptor arrays, since they can only be mutated after another transition anyway; during which the pair is copied before writing.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12097 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-16 14:02:50 +00:00
mstarzinger@chromium.org
bb9f4470c6 Fix missing tagging of stack value in finally block.
R=yangguo@chromium.org
BUG=chromium:137496
TEST=cctest/test-api/Regress137496

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12096 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-16 13:38:17 +00:00
sanjoy@chromium.org
9f04c321d7 Fix off-by-one-pointer error in an ASSERT inside DeferredHandles::Iterate.
This will crash v8 in debug mode if the compilation prologue allocates
an exact multiple of kHandleBlockSize handles.

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12095 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-16 13:00:57 +00:00
svenpanne@chromium.org
8547d08ab6 Fix compilation for ARM/uClibc
BUG=
TEST=Compile for ARM using uClibc

Review URL: https://chromiumcodereview.appspot.com/10784012
Patch from Remi Duraffort <remi.duraffort@st.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12094 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-16 12:34:34 +00:00
svenpanne@chromium.org
b24f8912bc Maintain the invariant that all HGraphBuilder::VisitFoo methods return void.
Additionally, this enables the use of a CHECK_ALIVE macro instead of
copy-n-paste code at one place.

This CL is part of a series of several yak-shaving CLs to prepare the inlining
of JavaScript accessors.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12093 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-16 12:22:46 +00:00
jkummerow@chromium.org
fac814149c Prepare push to trunk. Now working on version 3.12.13.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12090 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-16 11:24:55 +00:00
mstarzinger@chromium.org
f71de19a4b Fix ICs for slow objects with native accessor.
This prevents creation of LoadICs or StoreICs for native callbacks on
objects in dictionary mode. Those ICs fail if the accessor is installed
on the receiver itself and also lead to bogus type feedback.

R=danno@chromium.org
BUG=chromium:137002
TEST=test/test-api/Regress137002[a,b]

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12088 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-16 09:53:32 +00:00
svenpanne@chromium.org
f17ce0cc6a Make it clear that HInstruction's position is a write-once variable.
Review URL: https://chromiumcodereview.appspot.com/10782010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12087 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-16 09:49:00 +00:00
yangguo@chromium.org
022ba0588a Fix transcendental cache on ARM in optimized code.
R=jkummerow@chromium.org
BUG=v8:2234
TEST=regress-2234.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12086 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-16 09:44:59 +00:00
mstarzinger@chromium.org
7337068605 Fix Win64 build breakage in r12082.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12085 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-16 09:39:52 +00:00
danno@chromium.org
b1530257ab Revert 12083: Implements a new API to set a function entry hook for profiling.
TBR=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12084 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-13 16:33:27 +00:00
danno@chromium.org
5c8c4bec46 Implements a new API to set a function entry hook for profiling.
Exposes a new API; V8::SetFunctionEntryHook.
If a non-NULL function entry hook is set, the code generator(s) will invoke on the entry hook at the very start of each generated function.

Committed: https://code.google.com/p/v8/source/detail?r=12069

Review URL: https://chromiumcodereview.appspot.com/10706002
Patch from Sigurður Ásgeirsson <siggi@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12083 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-13 16:18:37 +00:00
danno@chromium.org
aae81e125b Add counters that automatically track object sizes and counts.
Review URL: https://chromiumcodereview.appspot.com/10702168

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12082 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-13 12:22:09 +00:00
mstarzinger@chromium.org
add296dd43 Factor out a Histogram class from HistogramTimer, and use it to measure external fragmentation
BUG=none
TEST=none

Review URL: https://chromiumcodereview.appspot.com/10695056
Patch from Jochen Eisinger <jochen@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12081 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-13 12:12:09 +00:00
sanjoy@chromium.org
acc4edead2 MIPS: Defer creating Handles for HConstants to the code generation phase.
Port r12048 (b4b20305)

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10692193
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12080 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-13 12:05:29 +00:00
svenpanne@chromium.org
65e7a14973 Handle setters on the prototype chain efficiently by default.
Note that changes on the prototype chain should already be handled by
StubCompiler::CheckPrototypes, if not, it is a bug there and not in
LookupForWrite. Furthermore, neither test262 nor WebKit layout tests hint at a
compability issue, so it should be safe to remove a redundant check.

The good point about this CL: It improves Box2D's performance by 22%.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12079 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-13 09:37:03 +00:00
rossberg@chromium.org
ec042177d7 Incorporate constness into inferred interfaces
(in preparation for handling imports).

R=svenpanne@chromium.org
BUG=v8:1569
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12078 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-13 09:29:43 +00:00
peter.rybin@gmail.com
58c4e6ceb4 Fix Mac build warning (very rightful)
Review URL: https://chromiumcodereview.appspot.com/10702201

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12077 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-13 09:23:46 +00:00
verwaest@chromium.org
d51b6826dc MIPS: Ensure that all descriptors have a valid enumeration index, and replace NextEnumIndex with LastAdded.
Port r12042 (ce65764e)

Original commit message:
The LastAdded points to the descriptor that was last added to the array. From the descriptor we can deduce the NextEnumerationIndex. This allows us to quickly find the property that we are transitioning to, which is necessary for transition-intensive code, eg JSON parsing.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10690178
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12076 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-13 09:14:43 +00:00
verwaest@chromium.org
e875306037 MIPS: Swap bitfield3 and backpointer.
Port r12034 (f17b84c0)

Original commit message:
Bitfield3 now has its own field, while the backpointer shares the field with the descriptor array; which will become the transition array.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10692192
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12075 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-13 09:13:10 +00:00
peter.rybin@gmail.com
ed371d4881 Don't miss error message in 'restart frame' debug action
Review URL: https://chromiumcodereview.appspot.com/10693095

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12074 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-13 09:02:03 +00:00
yangguo@chromium.org
45d86e4846 MIPS: Fixed mistake in condition for Nan fixups from snapshot.
The commit r11871 caused quiet NaN related errors to
appear on Loongson and Sigma platforms when snapshot
is used. This commit fixes those issues.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10735080
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12073 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-13 07:22:11 +00:00
svenpanne@chromium.org
43e87a65e1 Added Crankshaft support for setters.
Refactored ComputeLoadStoreField a bit on the way to clarify a bit what it
actually does.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12072 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-13 07:14:28 +00:00
verwaest@chromium.org
70a618307a Renamed ConvertDescriptorToFieldAndMapTransition to ConvertTransitionToMapTransition, and let it replace the transition in-place rather than copy the transition array.
Review URL: https://chromiumcodereview.appspot.com/10694155

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12071 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-12 16:36:10 +00:00
danno@chromium.org
30569cba9b Revert 12069: Implements a new API to set a function entry hook for profiling
Reverted due to waterfall failures

TBR=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12070 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-12 15:59:50 +00:00
danno@chromium.org
d6edbdd436 Implements a new API to set a function entry hook for profiling.
Exposes a new API; V8::SetFunctionEntryHook.
If a non-NULL function entry hook is set, the code generator(s) will invoke on the entry hook at the very start of each generated function.

Review URL: https://chromiumcodereview.appspot.com/10706002
Patch from Sigurður Ásgeirsson <siggi@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12069 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-12 15:42:39 +00:00
sanjoy@chromium.org
2b0f88cc67 Install guards for new invariants required for parallel compilation.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12068 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-12 15:40:05 +00:00
sanjoy@chromium.org
31027880b0 Rename LChunkBase to LChunk, LChunk to LPlatformChunk and remove some unneeded explicit constructor attributes.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12067 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-12 15:29:14 +00:00
verwaest@chromium.org
812bc1db26 Couple the enumeration index of a property to the size of the descriptor array where it first appeared.
Review URL: https://chromiumcodereview.appspot.com/10692185

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12066 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-12 15:14:54 +00:00
verwaest@chromium.org
1068916b9c When we find an accessor pair as TRANSITION, we are sure it doesn't contain an accessor yet.
Review URL: https://chromiumcodereview.appspot.com/10704185

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12065 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-12 15:10:55 +00:00
sanjoy@chromium.org
c1ee1b457f Break Crankshaft into phases.
Crankshaft now runs by calling CreateGraph on the HGraphBuilder, then
calling Optimize and Codegen on the HGraph.

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12064 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-12 15:10:34 +00:00
verwaest@chromium.org
1132b27e25 Always return failure when we didn't manage to add transitions.
Review URL: https://chromiumcodereview.appspot.com/10704183

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12063 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-12 15:01:39 +00:00
verwaest@chromium.org
0a41b8c2ed Splitting DescriptorArray::CopyInsert into CopyInsert, CopyAdd and CopyReplace.
Review URL: https://chromiumcodereview.appspot.com/10743003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12060 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-12 13:34:02 +00:00
yangguo@chromium.org
8ce1ebb5cf Do not enter the debugger when debugger is not active.
R=mstarzinger@chromium.org
BUG=
TEST=test-debug/DebuggerCreatesContextIffActive

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12059 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-12 11:31:52 +00:00
rossberg@chromium.org
b6a6ef9a95 Prepare push to trunk. Now working on version 3.12.12.
R=svenpanne@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12056 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-12 11:03:18 +00:00
svenpanne@chromium.org
b8a7abd1fc Perform HasFastProperties check on prototypes when computing call targets in Crankshaft, part 2.
The previous fix was for "real" calls, this one is for getters. It is a bit
unfortunate that this has to be fixed twice: We should really break up
Call::ComputeTarget into a predicate and 1 or 2 getters, so code can be reused.

The regression test has been modified a bit to make things more uniform.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12053 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-12 09:32:26 +00:00
sanjoy@chromium.org
e26128ac63 Fix bug in CompilationHandlescope constructor.
This will never be triggered in the state v8 is currently in, but will crash v8 when multiple DeferredHandles are queued up during parallel compilation.

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12050 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-12 07:59:41 +00:00
sanjoy@chromium.org
caef7f1031 Unbreak MSVC build by respecting explicit FmtElm constructor. This is
a real bug caught by MSVC but not g++.

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12049 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-11 20:11:04 +00:00
sanjoy@chromium.org
5765fa2546 Defer creating Handles for HConstants to the code generation phase.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12048 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-11 16:17:02 +00:00
sanjoy@chromium.org
951b64d55f Remove duplicated LChunk code.
Divide the LChunk class into an arch-independent LChunkBase and an
arch-dependent LChunk which inherits from LChunkBase.

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12045 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-11 14:42:17 +00:00
verwaest@chromium.org
ef701cb7ba Refactor copying of maps and descriptor arrays.
Mainly ensure we don't copy descriptor arrays we'll throw away immediately afterwards.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12044 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-11 14:29:16 +00:00
jkummerow@chromium.org
432576b7c8 Perform HasFastProperties check on prototypes when computing call targets in Crankshaft.
BUG=125148
TEST=mjsunit/regress/regress-crbug-125148

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12043 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-11 14:27:53 +00:00
verwaest@chromium.org
b008d99b11 Ensure that all descriptors have a valid enumeration index, and replace NextEnumIndex with LastAdded.
The LastAdded points to the descriptor that was last added to the array. From the descriptor we can deduce the NextEnumerationIndex. This allows us to quickly find the property that we are transitioning to, which is necessary for transition-intensive code, eg JSON parsing.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12042 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-11 14:26:42 +00:00
rossberg@chromium.org
dcf83a2114 Turn off es5_readonly again: still causes ~370 WebKit regressions.
R=mstarzinger@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12041 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-11 14:09:42 +00:00
yangguo@chromium.org
2a819667c1 Do not use user-defined __lookupGetter__ when generating stack trace.
BUG=v8:1591
TEST=regress-1591.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12040 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-11 11:35:19 +00:00
danno@chromium.org
5b2a27aad4 Fix compile errors in Visual C++ 2008.
R=danno@chromium.org
BUG=None
TEST=ARM compiles on VC 2008.

Review URL: https://chromiumcodereview.appspot.com/10690111
Patch from Sigurður Ásgeirsson <siggi@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12039 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-11 10:08:56 +00:00
rossberg@chromium.org
2ce9624d89 Turn on es5[2] features by default.
R=mstarzinger@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12038 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-11 09:39:44 +00:00
svenpanne@chromium.org
b3422df4ca Re-land "Removed one copy-n-paste clone of HGraphBuilder::BuildStoreNamed."
The previous CL used the wrong map in some cases, leading to a wrong decision
regarding monomorphic usage and therefore some performance regressions.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12037 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-11 07:59:58 +00:00
yangguo@chromium.org
b2f1c41218 Sync preparser and parser wrt syntax error in switch..case.
R=jkummerow@chromium.org
BUG=v8:2210
TEST=test-parsing/ParserSync

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12036 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-11 07:47:29 +00:00
danno@chromium.org
299a0ab1d5 Port r11344 (Try aligning unboxed double array backing store in allocation or
scavenge promotion.) to ARM.

BUG=none
TEST=none

Review URL: https://chromiumcodereview.appspot.com/10696097
Patch from Rodolph Perfetta <rodolph.perfetta@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12035 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-10 13:33:19 +00:00
verwaest@chromium.org
45419ee145 Swap bitfield3 and backpointer.
Bitfield3 now has its own field, while the backpointer shares the field with the descriptor array; which will become the transition array.

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12034 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-10 13:31:36 +00:00
mstarzinger@chromium.org
97cbaec08a Add OS::GetCurrentProcessId and prepend output from trace-gc with the current pid
BUG=none
TEST=manual

Review URL: https://chromiumcodereview.appspot.com/9817002
Patch from Jochen Eisinger <jochen@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12032 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-10 12:52:36 +00:00
yangguo@chromium.org
5aacb93168 Correctly report octal literals in strict mode when preparsing.
SingletonLogger::LogMessage did not work as advertised and
overwrote existing message.

R=mstarzinger@chromium.org
BUG=v8:2220
TEST=test-parsing/PreparserStrictOctal

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12031 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-10 12:24:17 +00:00
mstarzinger@chromium.org
09bfdabd2a Fix inline constructors for Harmony Proxy prototypes.
R=rossberg@chromium.org
BUG=v8:2225
TEST=mjsunit/regress/regress-2225

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12028 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-10 11:28:33 +00:00
danno@chromium.org
e9b5119903 Prepare push to trunk. Now working on version 3.12.11.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12027 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-10 11:23:46 +00:00
mstarzinger@chromium.org
9ecff25a79 Output the correct line number in the error message for compilation failures during bootstrapping
BUG=none
TEST=none

Review URL: https://chromiumcodereview.appspot.com/10735024
Patch from Jochen Eisinger <jochen@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12026 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-10 11:04:38 +00:00
mmassi@chromium.org
c74871f37b Fixed array bounds check elimination (Chromium issue 132114).
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12025 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-10 11:01:29 +00:00
verwaest@chromium.org
1007696cdb After transitioning to constant function, return the constant function as result of the assignment.
BUG=v8:2226
TEST=test/mjsunit/regress/regress-2226.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12024 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-10 09:31:30 +00:00
svenpanne@chromium.org
5b69228e56 Revert "Removed one copy-n-paste clone of HGraphBuilder::BuildStoreNamed."
It inadvertently introduced some performance regressions, e.g. for the
'richards' benchmark.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12023 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-10 09:15:03 +00:00
verwaest@chromium.org
75407ae2b7 Moving prototype transitions into the header of the transition array.
Review URL: https://chromiumcodereview.appspot.com/10692026

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12022 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-10 07:53:00 +00:00
rossberg@chromium.org
090830e411 Fix types.
R=mstarzinger@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12021 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-09 16:31:49 +00:00
rossberg@chromium.org
b7d1659661 Silence more warnings.
R=mstarzinger@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12020 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-09 16:22:53 +00:00
yangguo@chromium.org
b4cb3e28ca Fix Debug::Break crash.
BUG=131642
TEST=test-debug/Regress131642

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12019 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-09 15:18:08 +00:00
svenpanne@chromium.org
9bcc823064 Removed one copy-n-paste clone of HGraphBuilder::BuildStoreNamed.
Review URL: https://chromiumcodereview.appspot.com/10689129

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12018 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-09 13:59:28 +00:00
rossberg@chromium.org
e7a3a5bc9c Silence warnings.
R=jkummerow@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12017 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-09 13:54:29 +00:00
mmassi@chromium.org
f1fec84711 Disable array bounds check removal.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12016 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-09 13:25:29 +00:00
mmassi@chromium.org
41370d2b70 Restored removed flag.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12015 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-09 12:06:07 +00:00
mmassi@chromium.org
5f9e5980ee Re-enable array bounds check elimination.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12014 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-09 12:05:58 +00:00
svenpanne@chromium.org
9068d56f7f Added Crankshaft support for JavaScript getters.
Instead of calling the getter via a stub, we now call it more directly via a
(guarded) CallConstantFunction instruction.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12013 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-09 11:33:53 +00:00
svenpanne@chromium.org
b6ebc22de8 Improved printing of CheckPrototypeMaps instruction.
Review URL: https://chromiumcodereview.appspot.com/10696139

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12012 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-09 10:46:17 +00:00
svenpanne@chromium.org
36513befa1 Fixed CompareIC::GetStateName.
Review URL: https://chromiumcodereview.appspot.com/10692126

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12011 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-09 10:28:56 +00:00
rossberg@chromium.org
98db1a369d Implement proper module linking.
Specifically:

- In parser, check that all exports are defined.
- Move JSModule allocation from parser to scope resolution.
- Move JSModule linking from full codegen to scope resolution.
- Implement module accessors for exported value members.
- Allocate module contexts statically along with JSModules
  (to allow static linking), but chain them when module literal is evaluated.
- Make module contexts' extension slot refer to resp. JSModule
  (makes modules' ScopeInfo accessible from context).
- Some other tweaks to context handling in general.
- Make any code containing module literals (and thus embedding
  static references to JSModules) non-cacheable.

This enables accessing module instance objects as expected.
Import declarations are a separate feature and do not work yet.

R=mstarzinger@chromium.org
BUG=v8:1569
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12010 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-09 08:59:03 +00:00
danno@chromium.org
a0a1d06b35 Make room in Code flags to support compiled stubs.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12008 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-06 22:08:27 +00:00
yangguo@chromium.org
21d92e453a Prepare push to trunk. Now working on version 3.12.10.
R=jkummerow@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12005 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-06 16:20:57 +00:00
mstarzinger@chromium.org
16fa5ceb7b Fix missing handle scope in recent r12001.
R=yangguo@chromium.org
BUG=v8:2219
TEST=webkit:fast/dom/inline-event-attributes-release.html

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12004 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-06 16:03:18 +00:00
sanjoy@chromium.org
1e96d4e101 Fix bug in compilation-handlescope.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12003 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-06 14:09:11 +00:00
yangguo@chromium.org
3e3160b08c Correctly advance the scanner when scanning unicode regexp flag.
R=rossberg@chromium.org
BUG=136084
TEST=regress-136084.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12002 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-06 14:04:15 +00:00
mstarzinger@chromium.org
026f179b34 Fix unhandlified code calling Harmony Proxy traps.
R=rossberg@chromium.org
BUG=v8:2219
TEST=mjsunit/regress/regress-2219

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12001 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-06 11:34:22 +00:00
verwaest@chromium.org
6139bafd28 Also in ClearNonLiveTransitions we have to check if there still is a transition array before we access it.
This should never happen in the long run, but will happen when maps still have a back-pointer while the forward pointer (the transition) was overwritten.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12000 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-06 10:02:15 +00:00
yangguo@chromium.org
a2cfa9d3df Put additional information onto the stack when crashing in Debug::Break.
R=jkummerow@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11999 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-06 09:34:59 +00:00
sanjoy@chromium.org
4a46de19e4 Add a second kind of HandleScope that ties the lifetime of Handles created in its scope to the lifetime of a given CompilationInfo.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11998 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-06 09:31:31 +00:00
svenpanne@chromium.org
dc92b21c06 Slightly generalize AddCheckConstantFunction.
This is needed for crankshafted accessors, which are syntactically not a Call.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11997 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-06 08:34:48 +00:00
svenpanne@chromium.org
482a0e3196 Added LookupResult::GetValueFromMap.
This is needed later for crankshafted accessors and reduces copy-n-paste a bit.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11996 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-06 08:11:10 +00:00
yangguo@chromium.org
791632cf06 Fix compilation when disabling debugger support.
Based on a patch by Remi Duraffort <remi.duraffort@st.com>: http://codereview.chromium.org/10702093/

R=mstarzinger@chromium.org
BUG=
TEST=build with debuggersupport=off

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11995 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-05 16:23:14 +00:00
verwaest@chromium.org
d7a5b7d5e2 Separating transitions from descriptors.
In this design maps contain descriptor arrays, which in turn can contain transition arrays. If transitions are needed when no descriptor array is present, a descriptor array without real descriptors is inserted just so it can point at the transition array.

The transition array does not contain details about the field it transitions to. In order to weed out transitions to FIELDs from CONSTANT_FUNCTION (what used to be MAP_TRANSITION vs CONSTANT_TRANSITION), the transition needs to be followed and the details need to be looked up in the target map. CALLBACKS transitions are still easy to recognize since the transition targets are stored as an AccessorPair containing the maps, rather than the maps directly.

Currently AccessorPairs containing a transition and an accessor are shared between the descriptor array and the transition array. This simplifies lookup since we only have to look in one of both arrays. This will change in subsequent revisions, when descriptor arrays will become shared between multiple maps, since transitions cannot be shared.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11994 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-05 13:54:20 +00:00
svenpanne@chromium.org
f0e042e5e5 Removed superfluous cast.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11992 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-05 13:13:33 +00:00
sanjoy@chromium.org
8c6679577e Remove some duplicated logic from compiler.cc.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11991 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-05 13:11:57 +00:00
svenpanne@chromium.org
e909a3d55d Prepare push to trunk. Now working on version 3.12.9.
R=jkummerow@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11987 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-05 08:21:28 +00:00
yangguo@chromium.org
dee15487f0 Larger stack trace string in the minidump when catching Debug::Break crash.
R=jkummerow@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11986 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-05 08:07:01 +00:00
svenpanne@chromium.org
ebff0eb7b3 Handle accessors on the prototype chain in StoreICs.
Made stub compiler function signatures a bit more consistent on the way.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11984 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-04 11:40:51 +00:00
rossberg@chromium.org
cc5a88812d Implement typedarray.set and arraybuffer.slice for d8.
R=yangguo@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11983 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-03 13:44:36 +00:00
jkummerow@chromium.org
00eb355247 Move quadratic behavior of Context's optimized function list verification behind --enable-slow-asserts flag
BUG=webkit:90003
TEST=the following takes only about 1 second in debug mode: var a=[1,2,3,4,5]; eval("for (var i=0;i<50000;i++) a.sort(function(){return 1;});");

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11982 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-03 13:01:31 +00:00
sanjoy@chromium.org
10441e954b Don't actually create Handles for the constant hole, the true value and the false value. This is required to have some parts of Crankshaft run without creating Handles.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11980 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-03 10:42:03 +00:00
mstarzinger@chromium.org
b4b10c012f Prepare push to trunk. Now working on version 3.12.8.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11977 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-03 09:59:55 +00:00
mstarzinger@chromium.org
7da6d2b023 Fix lazy compilation for strict eval scopes.
This prevents lazy compilation of functions that have an outer context
containing a strict eval scope. Such a scope potentially contains
context allocated variables in an artificial function scope that is not
deserialized correctly.

R=ulan@chromium.org
BUG=chromium:135066
TEST=mjsunit/regress/regress-crbug-135066

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11976 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-03 08:41:13 +00:00
yurys@chromium.org
771ba7ae99 Report "hidden properties" in heap profiler for properties case
BUG=v8:2212
TEST=cctest/test-heap-profiler/HiddenPropertiesFastCase
Review URL: https://chromiumcodereview.appspot.com/10692058

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11966 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-02 12:46:31 +00:00
yangguo@chromium.org
3f1ea190fc Plug memory leak in Isolate.
R=jkummerow@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11965 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-02 12:15:23 +00:00
danno@chromium.org
d030121458 Activate optimization of packed arrays by default
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11961 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-02 09:50:53 +00:00
peter.rybin@gmail.com
dffb5082ba Properly fix liveedit heap traversal bug with write barrier
Review URL: https://chromiumcodereview.appspot.com/10682013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11960 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-01 22:25:48 +00:00
danno@chromium.org
ec65e4fe78 Consolidate similar KeyedLoads to worst case instead of transitioning elements
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11959 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-29 22:27:25 +00:00
mstarzinger@chromium.org
fc3c94535d Disallow inlining of functions containing array literals.
This is disabled due to regressions in 3d-cube, but leaves the actual
code to allow inlining in place so it can easily be enabled again.

R=jkummerow@chromium.org
BUG=v8:1322

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11958 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-29 16:39:40 +00:00
yangguo@chromium.org
98b89329f1 Prepare push to trunk. Now working on version 3.12.7.
R=jkummerow@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11955 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-29 15:15:20 +00:00
yangguo@chromium.org
7a201f599b Put even more debug information on stack when aborting.
R=jkummerow@chromium.org
BUG=131642
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11954 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-29 15:11:16 +00:00
yangguo@chromium.org
947cf3930f Fix isolate build.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11952 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-29 09:15:52 +00:00
yangguo@chromium.org
8128c6e7f6 Cleanup hardfp ABI detection. This work was triggered by issue 2140.
BUG=none
TEST=none

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11951 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-29 08:04:24 +00:00
rossberg@chromium.org
32e01d224d ARRAY_SIZE is not available on Linux-shared.
R=mstarzinger@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11950 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-28 16:40:16 +00:00
rossberg@chromium.org
680797234c Further extend TypedArray support in d8:
- Add copy constructors.
- Add subarray methods.
- Make instanceof and constructor property work.
- Rename PixelArray to Uint8ClampedArray.

Also fix broken definition of assertInstanceof in MJSUnit test harness.

R=mstarzinger@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11949 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-28 16:29:53 +00:00
yangguo@chromium.org
72f83f744b Prepare push to trunk. Now working on version 3.12.6.
R=jkummerow@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11946 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-28 15:03:51 +00:00
mstarzinger@chromium.org
a691c693fb Fix lazy parsing heuristics to respect outer scope.
This makes sure that a function literal is only parsed lazily when the
outer scope actually allows lazy compilation. Otherwise compilation will
crash due to a missing function body.

R=ulan@chromium.org
BUG=chromium:135008
TEST=mjsunit/regress/regress-crbug-135008

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11945 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-28 14:56:28 +00:00
sanjoy@chromium.org
d9d76b7a5c Revert 11939 'Add a CompilationHandleScope' since it breaks array-sort.js in Win32 Release.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11943 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-28 12:34:51 +00:00
mstarzinger@chromium.org
a90c023d5e Allow inlining of functions containing array literals.
R=yangguo@chromium.org
BUG=v8:1322
TEST=mjsunit/compiler/inline-literals

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11942 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-27 14:46:01 +00:00
jkummerow@chromium.org
58b89416b9 Enable the CHECK for near-jump displacement range in Release mode too.
If we're generating bad code anyway, we might as well crash immediately and at least get a proper backtrace.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11941 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-27 12:33:39 +00:00
mstarzinger@chromium.org
df35732ab2 Allow inlining of functions containing RegExp literals.
R=yangguo@chromium.org
BUG=v8:1322
TEST=mjsunit/compiler/inline-literals

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11940 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-27 11:49:37 +00:00
sanjoy@chromium.org
64e7c6b13e Add a second kind of HandleScope that ties the lifetime of Handles created in its scope to the lifetime of a given CompilationInfo.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11939 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-27 11:47:47 +00:00
jkummerow@chromium.org
86231b8512 Prepare push to trunk. Now working on version 3.12.5.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11936 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-27 11:09:17 +00:00
yangguo@chromium.org
8a61d3f2fd Port r11517 (not deopt Math.floor on negative input) to x64, sse2.
BUG=v8:873
TEST=math-floor-negative.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11935 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-27 07:27:28 +00:00
yangguo@chromium.org
20ebd21b09 Port r7868 (constant masking) to x64.
BUG=v8:1374
TEST=test-compiler/SplitConstantsInFullCompiler

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11932 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-26 13:56:48 +00:00
mstarzinger@chromium.org
6902028445 Expose more detailed memory statistics
Expose allocated and used byte counters for the different spaces. The goal is
to monitor those values both on page cycles and via UMA

BUG=v8:2201
TEST=none

Review URL: https://chromiumcodereview.appspot.com/10657022
Patch from Jochen Eisinger <jochen@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11931 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-26 11:46:16 +00:00
mstarzinger@chromium.org
3fd25c6cbc Fix missing slot recording in transition compaction.
R=verwaest@chromium.org
TEST=cctest/test-api/Threading2

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11930 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-26 11:25:28 +00:00
peter.rybin@gmail.com
c4c96f9e70 Revert 11927 "Fix liveedit heap traversal bug with write barrier"
A test was broken by r11927

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11928 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-25 22:20:52 +00:00
peter.rybin@gmail.com
5a065cf8de Fix liveedit heap traversal bug with write barrier
Review URL: https://chromiumcodereview.appspot.com/10639006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11927 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-25 21:43:50 +00:00
mstarzinger@chromium.org
362381c68d Fix Harmony Maps and WeakMaps for undefined values.
R=rossberg@chromium.org
BUG=chromium:132744
TEST=mjsunit/harmony/collections

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11924 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-25 13:33:48 +00:00
yangguo@chromium.org
99a58e36ad Correctly throw reference error in strict mode with ICs disabled.
R=jkummerow@chromium.org
BUG=v8:2119
TEST=regress/regress-2119.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11923 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-25 13:28:11 +00:00
verwaest@chromium.org
68c944c265 In-place shrinking of descriptor arrays with non-live transitions.
Instead of overwriting non-live transitions with NULL_DESCRIPTORs, we remove them from the array by compacting the array (shifting live values to the left) and in-place trimming the array. If the final descriptor array contains no live values (only contained transitions which are now all cleared), we move bit_field3 back from the descriptor array to the map. The descriptor array itself will be collected in the next GC.

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-25 13:10:54 +00:00
ulan@chromium.org
390580e49f Use correct size of objects in PrintShortHeapStatistics.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11921 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-25 12:51:03 +00:00
verwaest@chromium.org
41560e9f5f Separate stub types from property types.
Review URL: https://chromiumcodereview.appspot.com/10656018

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11920 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-25 11:35:23 +00:00
ulan@chromium.org
3c58dab2b2 Prepare push to trunk. Now working on version 3.12.4.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11917 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-25 09:45:51 +00:00
ulan@chromium.org
781484365b Revert r11835 'Unify promotion and allocation limit computation' due to V8 Splay performance regression on Mac.
R=mstarzinger@chromium.org
BUG=134183

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11916 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-25 09:14:47 +00:00
peter.rybin@gmail.com
83973a0a2e Correctly support several consecutive stack modifications.
Review URL: https://chromiumcodereview.appspot.com/10637003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11914 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-22 20:50:03 +00:00
mstarzinger@chromium.org
84b866b2d9 Fix sharing of literal boilerplates for optimized code.
This makes sure the literal boilerplates array is correctly shared
together with optimized code when caching of optimized code is enabled.
It also enabled said caching by default again.

R=ulan@chromium.org
BUG=v8:2193
TEST=mjsunit/regress/regress-2193

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11911 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-22 13:55:15 +00:00
yangguo@chromium.org
e3888b2e57 Prepare push to trunk. Now working on version 3.12.3.
R=jkummerow@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11908 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-22 13:44:02 +00:00
jkummerow@chromium.org
9ce4133017 Make near-jump check more strict in LoadNamedFieldPolymorphic on ia32/x64
BUG=134055

TEST=mjsunit/regress/regress-crbug-134055

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11907 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-22 13:38:39 +00:00
yangguo@chromium.org
a28c919c7b Disable --cache-optimized-code by default.
R=mstarzinger@chromium.org
BUG=v8:2193
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11905 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-22 12:21:18 +00:00
mstarzinger@chromium.org
776493ab42 Fix lazy sweeping heuristics to prevent old-space expansion.
This is a temporary fix to prevent excessive expansion of old-space
caused by inaccuracies in lazy sweeper advancing. We actually don't
intend to sweep any pages eagerly, but that requires further changes
to lazy sweeping.

R=ulan@chromium.org,erik.corry@gmail.com
BUG=v8:2194

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11904 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-22 11:47:30 +00:00
yangguo@chromium.org
47be3e8231 Fix lint.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11903 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-22 10:11:19 +00:00
yangguo@chromium.org
16c775ea81 Actually put debug information on stack when aborting.
R=ulan@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11902 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-22 09:36:39 +00:00
mstarzinger@chromium.org
6cf640ab6c Adapt fragmentation heuristics for over reserved pages.
This adapts the heuristics that detect fragmented pages to reduce memory
footprint for spaces with over reserved memory. This minimizes external
fragmentation caused by pages that cannot be released to the OS because
of just a few live objects on them.

R=erik.corry@gmail.com
TEST=cctest/test-heap/ReleaseOverReservedPages

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11901 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-22 09:29:49 +00:00
ulan@chromium.org
3372b08cb0 Adjust idle notification handler to do full GC at the end of idle round in order to compact code space.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11900 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-22 08:33:43 +00:00
verwaest@chromium.org
1cff0c498e Cleaning up usage of lookup results.
- Ensure that IsFound() is only used when not in combination with other
  checks. To do so, the default type is NONEXISTENT rather than NORMAL;
  and NotFound() also resets the type to NONEXISTENT.
- Use test methods rather than .type() == A_PROPERTY_TYPE.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11899 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-21 15:32:52 +00:00
mstarzinger@chromium.org
3e0e042e4a Add unit test for r11818.
R=rossberg@chromium.org
TEST=cctest/test-decls/ExistsInHiddenPrototype

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11896 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-21 11:31:30 +00:00
yangguo@chromium.org
030ac76b9d Prepare push to trunk. Now working on version 3.12.2.
R=jkummerow@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11893 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-21 11:15:57 +00:00
mstarzinger@chromium.org
d3d59e71e9 Revert r11834 because of broken Chromium unit test.
R=yangguo@chromium.org
BUG=v8:2166

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11892 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-21 11:10:53 +00:00
yangguo@chromium.org
41113d7301 Fix Windows build.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11888 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-20 14:22:32 +00:00
yangguo@chromium.org
e4f4aad2d1 x86/x64 port of Math.floor(x/y) to use integer division for specific divisor.
Only handles when x is int32 and y is int32 constant.

BUG=v8:2038

Currently implemented by imul (not fpmul).
x86 and x64 algorithm differs a bit.
x86 implementation is kind of cumbersome, but I couldn't think of better ways.

Review URL: https://chromiumcodereview.appspot.com/10382033
Patch from Zheng Liu <zheng.z.liu@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11887 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-20 14:08:03 +00:00
erik.corry@gmail.com
d31ed98428 Fix GC bug with missing handle. Bug=133618
Review URL: https://chromiumcodereview.appspot.com/10559083

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11886 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-20 13:40:10 +00:00
sanjoy@chromium.org
dce8dccd88 Remove unused variable.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11885 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-20 13:32:18 +00:00
yangguo@chromium.org
dfbd734b5a Prepare push to trunk. Now working on version 3.12.1.
R=jkummerow@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11881 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-20 11:25:08 +00:00
sanjoy@chromium.org
6fef6e451c Unbreak bleeding_edge by getting the Parser to work with a CompilationInfo instead of a Handle<Script> and a Zone. This should have been fixed in the initial patch itself but escaped my attention.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11878 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-20 10:56:53 +00:00
sanjoy@chromium.org
9e4fbb45c1 One Zone per CompilationInfo.
The CompilationInfo record now saves a Zone, and the compiler pipeline
allocates memory from the Zone in the CompilationInfo.  Before
compiling a function, we create a Zone on the stack and save a pointer
to that Zone to the CompilationInfo; which then gets picked up and
allocated from.

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11877 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-20 08:58:41 +00:00
erik.corry@gmail.com
000519013f Remove unused variable in mksnapshot.cc.
Review URL: https://chromiumcodereview.appspot.com/10559078

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11874 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-20 08:14:31 +00:00
erikcorry
f4f9e2c1e0 Quicksort: Choose pivot with recursive sort of pivot candidates on large arrays to avoid patholgical cases.
Review URL: http://codereview.chromium.org/10532193

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11873 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-20 07:52:47 +00:00
erikcorry
f96f439150 Add missing cast to make MSVC happier.
Review URL: http://codereview.chromium.org/10592003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11872 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-19 19:37:33 +00:00
erikcorry
458e87fd05 Snapshots: Add --extra-code flag to mksnapshot which lets you specify a file
with more JS code that is loaded into the VM before writing the snapshot.  Get
rid of the hard coded limit on the partial snapshot cache size.  This change
disables most of the serializer tests for the snapshot build of the VM: It's
getting too complicated to support both booting from a snapshot and then
creating a new snapshot from the same VM or loading more code with another
snapshot in the same VM.
Review URL: http://codereview.chromium.org/10574013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11871 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-19 18:38:03 +00:00
mstarzinger@chromium.org
edc231e2a9 Fix return values for Harmony map and set operations.
R=rossberg@chromium.org
BUG=chromium:132741,chromium:132742
TEST=mjsunit/harmony/collections

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11869 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-19 15:23:03 +00:00
mstarzinger@chromium.org
a760b82cab Enable lazy compilation for non-trivial outer contexts.
This changes the compiler to be more aggressive about lazy compilation
of closures with non-trivial outer context. Compilation can only be
triggered with a valid outer context now. One exception is the debugger,
which can request compilation of arbitrary shared code, but it ensures
to trigger compilation only at points where no context is needed.

This relands r11782, r11783, r11790 and a minor fix.

R=ulan@chromium.org
TEST=mjsunit/debug-script-breakpoints-nested

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11866 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-19 14:29:48 +00:00
jkummerow@chromium.org
b7700fb3cc Fix a bunch of implicit casts detected by the Win64 compiler
Review URL: https://chromiumcodereview.appspot.com/10536202

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11862 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-19 13:45:30 +00:00
rossberg@chromium.org
3e6b01df18 Fix crash bug in Hydrogen occurring with empty prototype chain.
(Thanks for diagnosing this.)

R=vegorov@chromium.org
BUG=115100
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11861 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-19 13:44:07 +00:00
verwaest@chromium.org
30b335157f Fixing ClearNonLiveTransition bug in combination with AccessorPairs.
BUG=133211
TEST=test/mjsunit/regress/regress-133211b.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11860 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-19 13:16:39 +00:00
yangguo@chromium.org
0a60da717b Correctly resolve local var shadowing a context-allocated var in debugger.
R=ulan@chromium.org
BUG=131994
TEST=regress/regress-131994.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11855 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-19 11:25:49 +00:00
verwaest@chromium.org
8b7b7f466f Make sure we don't leak map transitions from AccessorPairs to the Javascript world.
BUG=133211
TEST=test/mjsunit/regress/regress-133211.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11854 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-19 10:58:15 +00:00
mstarzinger@chromium.org
928a1bff32 Fix handling of numbers in SameValue method.
R=vegorov@chromium.org
BUG=v8:2186
TEST=mjsunit/regress/regress-2186

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11853 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-18 14:21:29 +00:00
yangguo@chromium.org
fa48ccde25 Print correct line number for Error thrown inside eval.
R=rossberg@chromium.org
BUG=v8:1914
TEST=eval-stack-trace.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11851 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-18 13:39:24 +00:00
mstarzinger@chromium.org
b1fe586e6b Fix optimized code caching in FastNewClosureStub.
This fixes a corner-case on ARM and MIPS where optimized code was not
shared immediately across closures when a function was used in several
global contexts at once.

R=ulan@chromium.org
TEST=cctest/test-compiler/OptimizedCodeSharing

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11850 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-18 13:26:43 +00:00
mmassi@chromium.org
f6b5dc6628 Remove default from switch.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11849 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-18 12:56:49 +00:00
mstarzinger@chromium.org
b2f9dc54ed MIPS: Share optimized code for closures.
Port r11817 (616dfcf0)

Original commit message:
Each SharedFunctionInfo gets an optimized code map to store
one optimized code object per context. When allocating a new
closure we consult this map and check if there is optimized code
that can be shared.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10557002
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11848 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-18 12:54:10 +00:00
sanjoy@chromium.org
663a6bb594 Fix MSVC warnings about missing operator delete.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11847 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-18 12:48:21 +00:00
verwaest@chromium.org
6568d73d97 Removing superfluous IsSmi check from DescriptorArray::IsEmpty.
DescriptorArray::IsEmpty is never called with a Smi.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11846 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-18 12:42:46 +00:00
mmassi@chromium.org
8367ca9980 Reimplemented HGraph::Postorder and HGraph::PostorderLoopBlocks iteratively to avoid stack overflows.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11843 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-18 11:59:02 +00:00
verwaest@chromium.org
8aca22b1ef Implementing weak referencing elements transition maps.
Review URL: https://chromiumcodereview.appspot.com/10559032

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11842 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-18 11:43:09 +00:00
verwaest@chromium.org
49ad5bdf5d Fixing bugs in promotion of elements transitions (r1175).
- Fixed invalid memory access when reading enum-cache from descriptor array with elements transitions but 0 real descriptors.
- Fixed infinite recursion in the intrusive map iterator when visiting elements transitions.
- Properly cached non-fastmode elements transitions.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11841 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-18 11:16:02 +00:00
danno@chromium.org
cbcf674db1 MIPS: Fix packed-element.js test on ARM with no snap
Port r11826 (5be3568a)

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10559002
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11840 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-18 10:51:23 +00:00
erikcorry
45c4cd26be Avoid arbitrarily deep recursion in Array.sort.
BUG=v8:2185
Review URL: http://codereview.chromium.org/10561017

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11839 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-18 09:23:05 +00:00
jkummerow@chromium.org
635382e16e Remove unused-but-set variable from objects.cc.
This fixes compilation with newer GCCs.

R=erik.corry@gmail.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11838 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-18 08:28:32 +00:00
peter.rybin@gmail.com
a2e9f7c46b Fix for Issue 915
Review URL: https://chromiumcodereview.appspot.com/10332101

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11837 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-16 21:40:35 +00:00
peter.rybin@gmail.com
bdfc48a3fd Support 'restart call frame' debug command
Review URL: https://chromiumcodereview.appspot.com/10544151

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11836 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-15 16:52:03 +00:00
ulan@chromium.org
b072e6156b Unify promotion and allocation limit computation.
BUG=129628
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11835 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-15 13:48:54 +00:00
mstarzinger@chromium.org
dd21ee801b Fix external exceptions in external try-catch handlers.
This tries to propagate exceptions which are externally thrown into
external try-catch handlers before scheduling them. This also allows
embedders to nest external try-catch handlers.

R=rossberg@chromium.org
BUG=v8:2166
TEST=cctest/test-api/TryCatchNested

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11834 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-15 13:34:39 +00:00
erik.corry@gmail.com
045b2fbf20 Revert part of 11727 as it sometimes tanked V8 benchmark (raytrace) performance
for reasons that are not obvious.  Now we make objects into fast-case objects
when they are made prototypes for other objects, but we do not mark objects
that are already fast case with a bit that helps keep them in fast case.
Review URL: https://chromiumcodereview.appspot.com/10556004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11831 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-15 11:53:09 +00:00
mstarzinger@chromium.org
3a739a1cb6 Fix list traversal of optimized functions in deoptimizer.
R=fschneider@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11829 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-15 10:36:45 +00:00
danno@chromium.org
d03c2374bd Fix packed-element.js test on ARM with no snap
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11826 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-15 09:15:57 +00:00
yangguo@chromium.org
a075583479 Unbreak interpreted regexp.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11825 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-14 17:06:16 +00:00
danno@chromium.org
dee723df12 Reset the path tracer completely, and check whether an object has source code before trying to print
BUG=none
TEST=none

Review URL: https://chromiumcodereview.appspot.com/9749008
Patch from Jochen Eisigner <jochen@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11822 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-14 15:33:15 +00:00
yangguo@chromium.org
c0d2fe256b Check for valid PC when stepping in the ARM sim debugger.
BUG=v8:2134
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11821 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-14 15:04:27 +00:00
rossberg@chromium.org
8da87d2308 ES5.2 var semantics: take hidden prototypes into account.
R=mstarzinger@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11818 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-14 14:37:10 +00:00
fschneider@chromium.org
bb0a2ea766 Share optimized code for closures.
Each SharedFunctionInfo gets an optimized code map to store
one optimized code object per context. When allocating a new
closure we consult this map and check if there is optimized code
that can be shared.

This patch is based on an original patch
by Anton Muhin (http://codereview.chromium.org/6793013/).

BUG=v8:2087, v8:2094
TEST=test/mjsunit/compiler/optimized-closures.js
Review URL: https://chromiumcodereview.appspot.com/10103035

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11817 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-14 14:06:22 +00:00
yangguo@chromium.org
675d9b8a04 Add missing string length check in regexp engine.
R=erik.corry@gmail.com
BUG=v8:2172
TEST=regress-2172.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11816 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-14 13:59:48 +00:00
mstarzinger@chromium.org
90c2448be6 Fix assertion for map code cache of shared maps.
R=danno@chromium.org
TEST=mjsunit/compare-known-objects-slow

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11815 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-14 13:54:23 +00:00
loislo@chromium.org
1a86ed8c30 Workaround for: Chrome dev tools crashes when taking a heap snapshot of Docs offline shared worker.
BUG=132727
TEST=none

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11813 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-14 12:21:05 +00:00
yangguo@chromium.org
fb81da2e5f ARM: Fix literal pool handling for breakpoints in debugger.
BUG=2177
TEST=none

Review URL: https://chromiumcodereview.appspot.com/10449047
Patch from Martyn Capewell <m.m.capewell@googlemail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11812 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-14 11:16:47 +00:00
danno@chromium.org
a3b9d6f39b Fix Kraken regression due to optimistic monomorphic element transitions
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11807 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-14 08:57:34 +00:00
yangguo@chromium.org
9978fae61d Ensure removing processed command line arguments.
BUG="d8 --crankshaft --expose-debug-as" crashes
TEST=test-flags/FlagsRemoveIncomplete

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11803 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-13 15:02:05 +00:00
yangguo@chromium.org
ce6aa5c251 Remove faster ticks for debug mode.
This solves the problem that code runs very slow when the debugger is enabled.

BUG=v8:2179
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11802 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-13 14:07:50 +00:00
mstarzinger@chromium.org
74ab92e0ac Fix performance regression caused by r11202.
R=erik.corry@gmail.com
BUG=v8:2156,v8:2034
TEST=mjsunit/regress/regress-2156,mjsunit/regress/regress-2034

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11800 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-13 11:58:18 +00:00
mmassi@chromium.org
4c4726dda3 Prepare push to trunk. Now working on version 3.12.0.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11797 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-13 11:49:26 +00:00
mstarzinger@chromium.org
9edaa1536b Revert r11782, r11783 and r11790 due to Webkit failures.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11796 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-13 11:26:34 +00:00
alexeif@chromium.org
55595839f6 Fix failing STATIC_CHECK on Windows.
Review URL: https://chromiumcodereview.appspot.com/10543135

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11795 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-13 11:23:16 +00:00
erik.corry@gmail.com
89176e88d8 MIPS: Add negative lookups to polymorphic loads in Crankshaft.
This is a commit of https://chromiumcodereview.appspot.com/10536130/ for Akos Palfi.


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11794 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-13 11:09:28 +00:00
alexeif@chromium.org
c1944660f5 Implement heap profiler memory usage reporting.
Review URL: https://chromiumcodereview.appspot.com/10535096

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11793 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-13 11:02:24 +00:00
erikcorry
5eb4baed65 Fix r11780 to avoid bugs where near branches are used to labels that are out of range.
Review URL: http://codereview.chromium.org/10542137

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11792 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-13 09:54:34 +00:00
ulan@chromium.org
f8b4574250 Return an error when parsing invalid dates where a number immediately follows a word.
BUG=53209,126448
TEST=mjsunit/date-parse.js
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11791 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-13 09:10:37 +00:00
mstarzinger@chromium.org
d946c31060 Adapt pre-parser heuristics for lazy compilation.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11790 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-13 09:10:16 +00:00
danno@chromium.org
4a385fa269 MIPS: Eliminate redundant smi checks
Port r11774 (28c45b9b)

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10536128
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11789 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-13 07:55:53 +00:00
svenpanne@chromium.org
9786db794a MIPS: Small fix for r11771 (1b74d45b).
TEST=mjsunit/object-define-property.js

BUG=

Review URL: https://chromiumcodereview.appspot.com/10535138
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11787 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-13 06:42:30 +00:00
erik.corry@gmail.com
539084c242 Revert r11778 "Activate packed array optimizations by default" due to mjsunit test failures on ARM.
TBR=danno
Review URL: https://chromiumcodereview.appspot.com/10550002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11786 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-12 22:34:13 +00:00
svenpanne@chromium.org
1ea5db0ed3 Martyn Capewell <m.m.capewell@googlemail.com>
Review URL: https://chromiumcodereview.appspot.com/10451037

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11784 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-12 17:26:28 +00:00
mstarzinger@chromium.org
f78c124812 Fix failing assertion in r11782.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11783 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-12 16:53:15 +00:00
mstarzinger@chromium.org
19ece2bec8 Enable lazy compilation for non-trivial outer contexts.
This changes the compiler to be more aggressive about lazy compilation
of closures with non-trivial outer context. Compilation can only be
triggered with a valid outer context now. One exception is the debugger,
which can request compilation of arbitrary shared code, but it ensures
to trigger compilation only at points where no context is needed.

R=ulan@chromium.org
TEST=mjsunit/debug-script-breakpoints-nested

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11782 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-12 15:57:50 +00:00
erik.corry@gmail.com
fa072704af Force inlining of some hot functions (problem reported by Bert Belder).
Review URL: https://chromiumcodereview.appspot.com/10546122

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11781 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-12 15:45:08 +00:00
erikcorry
0418b67142 Add negative lookups to polymorphic loads in Crankshaft.
Review URL: http://codereview.chromium.org/10539110

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11780 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-12 15:44:12 +00:00
danno@chromium.org
d20af8417b Activate packed array optimizations by default
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11778 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-12 15:38:57 +00:00
danno@chromium.org
92716a157f Optimization of some packed array cases.
R=jkummerow@chromium.org
TEST=slight improvement in 3d-morph

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11777 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-12 15:30:16 +00:00
yangguo@chromium.org
8d07c7ff0d Disable array bounds checks elimination by default.
BUG=132114
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11775 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-12 15:22:21 +00:00
danno@chromium.org
43a1f5e25d Eliminate redundant smi checks
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11774 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-12 12:16:19 +00:00
vegorov@chromium.org
06723da272 Fix arm build.
TBR=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11773 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-12 10:30:51 +00:00
vegorov@chromium.org
75ca3e3395 Reimplement dynamic frame alignment for frames that are compiled via OSR or have more than 2 double spill slots.
The first spill slot is now reserved on all optimized frames to distinguish frames that were aligned.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11772 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-12 10:22:33 +00:00
svenpanne@chromium.org
e6f2eab7f6 Implemented StoreIC for setters.
Review URL: https://chromiumcodereview.appspot.com/10534091

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11771 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-12 09:32:17 +00:00
svenpanne@chromium.org
075cd7ac5a Presubmit fix.
TBR=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11770 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-12 06:47:29 +00:00
svenpanne@chromium.org
1212a122b7 MIPS: Remove TLS access for current Zone.
Port r11761 (769624bf)

Original commit message:
By passing around a Zone object explicitly we no longer need to do a
TLS access at the sites that allocate memory from the current Zone.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10537108
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11769 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-12 06:43:13 +00:00
yangguo@chromium.org
4b50adaf9a MIPS: Reland r11753: Fix try..finally.
Port r11762 (4fdbdd7a)

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11768 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-12 06:15:59 +00:00
yangguo@chromium.org
aed1f49552 Port r11704 to MIPS.
BUG=2174
TEST=regexp-global.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11767 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-12 06:13:14 +00:00
ulan@chromium.org
75a1fa91ef Reland r11425 "Re-enable optimization for hot functions that have optimization disabled due to many deopts."
Fix performance regressions introduced in r11425 by
- counting number of function deoptimizations instead of function optimizations,
- packing several counters into one field of shared function info.

BUG=v8:2040,121196
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11766 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-11 16:57:27 +00:00
sanjoy@chromium.org
d67e1d4fe9 AssemblerBase does not need remember a Zone. Fix this.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11765 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-11 16:47:08 +00:00
yangguo@chromium.org
09179b314a Reland r11753: Fix try..finally.
R=ulan@chromium.org
BUG=129171
TEST=test-api/TryFinallyMessage, mjsunit/try-finally-continue.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11762 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-11 13:18:05 +00:00
sanjoy@chromium.org
6125718f37 Remove TLS access for current Zone.
By passing around a Zone object explicitly we no longer need to do a
TLS access at the sites that allocate memory from the current Zone.

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11761 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-11 12:42:31 +00:00
erikcorry
e957b2d51b Fix lint.
Review URL: http://codereview.chromium.org/10542100

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11758 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-11 12:32:14 +00:00
mmassi@chromium.org
d9f393d1c9 Add guard against self assignment.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11756 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-11 11:25:10 +00:00
yangguo@chromium.org
e98fb1028b Revert r11753.
R=mstarzinger@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11755 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-11 11:21:21 +00:00
erikcorry
afc9b8e9a9 Fix optimization of Unicode regexp with ASCII subject to respect repeat counts.
bug=131923
Review URL: http://codereview.chromium.org/10544093

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11754 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-11 11:18:04 +00:00
yangguo@chromium.org
1b25fb8fa9 Preserve error message during finally block in try..finally.
R=ulan@chromium.org
BUG=129171
TEST=test-api/TryFinallyMessage

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11753 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-11 10:51:09 +00:00
danno@chromium.org
a1d9aca22f Fix EnsureCanContainElements to properly handle double values.
R=jkummerow@chromium.org
BUG=v8:2170
TEST=test/mjsunit/regress/regress-2170.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11751 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-11 08:41:48 +00:00
verwaest@chromium.org
2b574ef580 Promoting elements transitions to their own field.
This is a first step towards separating all transitions from the property descriptions. If we link the property descriptions from the transition object, this will in allow the descriptor array (property descriptions) to become immutable.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11750 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-11 06:59:56 +00:00
ulan@chromium.org
8eb03561ae Adjust Android heap sizes.
This improves performance on heavy pages by increasing
max_executable_size_ and max_old_generation_size_.

There is now no need for an Android specific LUMP_OF_MEMORY.

Review URL: https://chromiumcodereview.appspot.com/10541053
Patch from Ben Murdoch <benm@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11740 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-08 13:21:40 +00:00
danno@chromium.org
4e525b85fc Optimistically assume that elements IC only transition once.
Thanks to Zheng Liu for identifying this issue.

R=jkummerow@chromium.org
BUG=v8:2141
TEST=test/mjsunit/elements-kind.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11739 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-08 13:06:24 +00:00
svenpanne@chromium.org
552cf12522 Make clang/GCMole happy.
TBR=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11738 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-08 12:53:20 +00:00
vegorov@chromium.org
d04ba1b2fb Improve representation inference
- Extend HValue interface to allow splitting observed input representation (comming from type feedback) from required input representation (dictated by instruction itself). Currently all instructions except for bitwise binary operations have this representations match. For bitwise binary operations hydrogen builder unconditionaly forces Integer32 representation for those operations that have Double type feedback. Thus causing representation inference to incorrectly count such uses as Integer32 instead of Double. This change also prepares for more fine grained type feedback for inputs of binary operations.

- For phies that are not convertable to Integer32 discard direct and indirect use count of Integer32 type to avoid propagation of these uses to connected phies.

R=jkummerow@chromium.org
BUG=v8:2096

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11737 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-08 09:21:23 +00:00
svenpanne@chromium.org
128f426e06 Tentative fix for overly clever Mac compiler.
TBR=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11736 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-08 09:15:32 +00:00
svenpanne@chromium.org
40dbd13e2e Added LoadIC stub for getters.
Removed some dead constants on the way.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11735 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-08 08:48:05 +00:00
mstarzinger@chromium.org
81e8aa0016 Implement implicit instance checks for API accessors.
This allows to specify a constructor against which an implicit instance
check is performed for API accessors. If the receiver is incompatible,
an implicit TypeError is thrown and no callback is invoked.

R=svenpanne@chromium.org
BUG=v8:2075
TEST=cctest/test-api/InstanceCheckOn[*]

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11734 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-08 07:45:11 +00:00
erik.corry@gmail.com
657422c29a Use the syntax of a property addition as a hint for controlling the fast-mode vs. dictionary mode heursitics on objects.
Review URL: https://chromiumcodereview.appspot.com/10537050

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11732 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-07 12:08:07 +00:00
mstarzinger@chromium.org
5e8cc58b9f Fix CompileFullCodeForDebugging to compile closure.
This compiles against a given closure instead of the shared function
info, which is a prerequisite for enabling lazy compilation of inner
functions within a closure with non-trivial context.

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11731 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-06 15:21:13 +00:00
svenpanne@chromium.org
089cb3ae50 Unbreak MIPS build after recent zone-related changes
Review URL: https://chromiumcodereview.appspot.com/10533022

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11730 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-06 11:44:54 +00:00
danno@chromium.org
16e4c29513 Optimize write barrier of map-only elements transitions
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11729 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-06 11:05:28 +00:00
alexeif@chromium.org
31a0d0257c Serialize edge counts instead of indexes in heap snapshot.
The serialized node structure currently holds an index
of its first containment edge in the edges array.
The index can be quite big (up to 7 digits for large snapshots).
The patch changes the serialization format to pass
node containment edge count instead. For most nodes the count
is just a single digit number.
This reduces serialized snapshot size and therefore its transfer time.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11728 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-06 10:57:20 +00:00
erik.corry@gmail.com
911d447b96 Keep track of which maps are associated with prototype objects so we can tune the fast-case vs. hash map heuristics accordingly.
This is a reland of r11681 https://chromiumcodereview.appspot.com/10448011 , which was reverted because of layout test failures that were actually caused by the long-standing issue fixed in https://chromiumcodereview.appspot.com/10515006 (r11706).
Review URL: https://chromiumcodereview.appspot.com/10532021

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11727 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-06 10:17:26 +00:00
mstarzinger@chromium.org
99e0908cfd Cleanup Runtime_SetCode and drop EnsureCompiled.
This change triggers compilation for a given closure instead of the
shared function info. It will allow for even more cases to be compiled
lazily.

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11726 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-06 09:54:46 +00:00
rossberg@chromium.org
e16a23da9f Prepare push to trunk. Now working on version 3.11.10.
R=danno@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11723 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-06 09:26:22 +00:00
yangguo@chromium.org
8728847c2f Fix assertion in the debug agent.
Patch by Chris Taylor <chris@gameclosure.com>.

R=yangguo@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11722 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-06 08:37:34 +00:00
erik.corry@gmail.com
c3e6fab818 Remove CheckNotRegistersEqual regexp-masm function from all architectures. This is a commit of http://codereview.chromium.org/10066009/ for Daniel Kalmar
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11721 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-06 07:50:22 +00:00
yangguo@chromium.org
76f4f9efa8 Correctly check length when allocating string.
R=jkummerow@chromium.org
BUG=
TEST=regress-regexp-overflow.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11720 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-05 17:41:59 +00:00
rossberg@chromium.org
4ea1fc0d27 Remove one more case behind --es5_readonly flag.
Plus add a couple of assertions.

R=mstarzinger@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11719 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-05 16:56:53 +00:00
ulan@chromium.org
eba324f9b1 Revert one line from r11715 because of a test failure on Windows.
TEST=mjsunit/harmony/proxies
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11718 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-05 14:41:01 +00:00
rossberg@chromium.org
9de4261527 MIPS: Implement correct checking for inherited readonliness on assignment.
Port r11694 (29aa05e9)

Original commit message:
Implement correct checking for inherited readonliness on assignment.

Removes 6 out of 8 of our remaining unintentional failures on test262.

Also fixes treatment of inherited setters added after the fact.

Specifically:

- In the runtime, when looking for setter callbacks in the prototype chain,
also look for read-only properties. If one is found, reject (exception in
strict mode). If a proxy is found, invoke proper trap.
Note: this folds in the CanPut function from the spec and avoids an extra
lookup over the prototype chain.

- In generated code for stores, insert a test for the maps from the prototype
chain, but only up to the object where the property already exists (which
may be the object itself).
In Hydrogen, if the found property is read-only or not cacheable (e.g. a
proxy), bail out; in a stub, generate an unconditional miss (to get an
exception in strict mode).

- Add test cases and adapt existing test expectations.

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11717 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-05 13:47:56 +00:00
ulan@chromium.org
1a80bc33a2 Replace SharedFunctionInfo::EnsureCompiled with JSFunction::CompileLazy where possible.
After we get rid of all SharedFunctionInfo::EnsureCompiled calls, it will be possible to remove the HasTrivialOuterContext() condition in Scope::AllowsLazyCompilation.

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11715 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-05 13:15:35 +00:00
rossberg@chromium.org
c13dd2ece6 Put inherited readonliness behind a flag,
since it currently breaks WebKit bindings massively.

R=mstarzinger@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11714 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-05 12:39:07 +00:00
verwaest@chromium.org
a85f4e4226 ClearNonLiveTransitions has to hold on to non-map values.
This ensures that we don't accidentally throw away getters and/or setters that are still needed. To make sure the bug gets triggered, we have to construct a situation where the map is on the live side of a live->non-live transition. This ensures that the map is passed to ClearNonLiveTransitions.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11713 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-05 11:36:57 +00:00
mmassi@chromium.org
bf3a25b337 Transform HGlobalValueNumberer::AnalyzeBlock from recursive into an iteraive loop keeping the traversal state in the zone instead of on the stack.
Fixed issue 129536.

BUG=129536
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11712 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-05 08:59:39 +00:00
sanjoy@chromium.org
98db16d94f Progress towards making Zones independent of Isolates and Threads.
This CL changes some parts of the code to explicitly pass around a
Zone.  Not passing in a zone is okay too (in fact most of v8 still
doesn't), but that may incur a TLS lookup.

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11709 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-04 14:42:58 +00:00
danno@chromium.org
0686fc2531 MIPS: Fix several bugs that cause crashes in soft-float mode.
TEST=cctest/RobustSubStringStub,cctest/test-api/Threading,cctest/test-api/ExternalFloatArray,cctest/test-api/ExternalDoubleArray,mjsunit/external-array,mjsunit/unicodelctest

BUG=

Review URL: https://chromiumcodereview.appspot.com/10446003
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11708 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-04 13:56:10 +00:00
erik.corry@gmail.com
0a856e0bd7 Fix bug in __proto__ assignment transition cache where we forget the next enumeration index resulting in wrong iteration order.
Review URL: https://chromiumcodereview.appspot.com/10515006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11706 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-04 12:07:46 +00:00
yangguo@chromium.org
1245aaf3bc Fix deadlock when terminating debugger session.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11705 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-04 09:01:37 +00:00
yangguo@chromium.org
85e3fba8a3 Remove unnecessary code for non-zero-length global regexps.
Also fixing a bug in the arm implementation.

BUG=
TEST=regexp-global.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11704 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-04 08:49:17 +00:00
verwaest@chromium.org
98c37e1f4c Merging ContentArray into DescriptorArray
Review URL: https://chromiumcodereview.appspot.com/10412030

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11703 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-04 07:20:11 +00:00
loislo@chromium.org
463a6ffdd4 Expose last seen heap object id via v8 public api.
BUG=none
TEST=none

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11702 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-01 16:10:52 +00:00
rossberg@chromium.org
e4b410f88f STATIC_ASSERT is not available in shared build.
R=svenpanne@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11700 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-01 12:28:15 +00:00
rossberg@chromium.org
4b583674da Silence Windows warning.
R=mstarzinger@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11699 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-01 12:10:19 +00:00
rossberg@chromium.org
f6017d36f2 Clean up d8 ArrayBuffer implementation and fix bug in readbuffer:
- Separate CreateExternalArrayBuffer function.
- Properly create buffers for arrays constructed with size argument only.
- Finalization of data array is tied to buffer object exclusively.
- Get rid of hidden buffer reference in array objects and size header in data.
- Use 'new' instead of 'malloc' in readbuffer.
- Test cases for additional array and buffer properties.

R=mstarzinger@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11698 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-01 11:46:05 +00:00
erik.corry@gmail.com
ae4fcd9702 Limit work done analyzing regexps with very large fanout.
BUG=128821
Review URL: https://chromiumcodereview.appspot.com/10448117

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11696 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-01 11:28:52 +00:00
rossberg@chromium.org
d87249945f Fix merge issue.
R=mstarzinger@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11695 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-01 11:09:09 +00:00
rossberg@chromium.org
e4c472a7af Implement correct checking for inherited readonliness on assignment.
Removes 6 out of 8 of our remaining unintentional failures on test262.

Also fixes treatment of inherited setters added after the fact.

Specifically:

- In the runtime, when looking for setter callbacks in the prototype chain,
  also look for read-only properties. If one is found, reject (exception in
  strict mode). If a proxy is found, invoke proper trap.
  Note: this folds in the CanPut function from the spec and avoids an extra
  lookup over the prototype chain.

- In generated code for stores, insert a test for the maps from the prototype
  chain, but only up to the object where the property already exists (which
  may be the object itself).
  In Hydrogen, if the found property is read-only or not cacheable (e.g. a
  proxy), bail out; in a stub, generate an unconditional miss (to get an
  exception in strict mode).

- Add test cases and adapt existing test expectations.

R=mstarzinger@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11694 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-01 10:51:36 +00:00
verwaest@chromium.org
dd54b0acf7 ClearNonLiveTransitions indepedent of ContentArray
Review URL: https://chromiumcodereview.appspot.com/10387231

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11693 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-01 09:12:01 +00:00
verwaest@chromium.org
c8a99c221b Prepare push to trunk. Now working on version 3.11.9.
R=jkummerow@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11688 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-31 13:22:56 +00:00
erikcorry
634ffc9600 Report syntax errors in natives when building with mksnapshot.
Review URL: http://codereview.chromium.org/10443085

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11687 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-31 12:26:36 +00:00
erik.corry@gmail.com
047a7cfee0 Avoid overdeep recursion in regexp where a guarded expression with a
minimum repetition count is inside another quantifier.
Bug=129926
Review URL: https://chromiumcodereview.appspot.com/10451092

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11686 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-31 11:59:04 +00:00
erik.corry@gmail.com
b7b43e9af9 Revert r11681 https://chromiumcodereview.appspot.com/10448011
(Keep track of which maps are associated with prototype objects so we can tune the fast-case vs. hash map heuristics accordingly.).
Reverting because the dict-mode to fast case transformation loses the iteration order information.
Review URL: https://chromiumcodereview.appspot.com/10448097

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11685 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-31 09:27:39 +00:00
verwaest@chromium.org
75f35d3fe1 Decoupling MarkDescriptorArray as much as possible from the ContentArray.
Review URL: https://chromiumcodereview.appspot.com/10417030

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11683 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-30 15:15:17 +00:00
verwaest@chromium.org
3a2d4c88f4 TraversableMap only dependent on DescriptorArray
This is the first step towards merging the ContentArray into the DescriptorArray, (hence reclaiming 3 words per descriptor array).

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11682 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-30 14:54:00 +00:00
erik.corry@gmail.com
8cf2af4392 Keep track of which maps are associated with prototype objects
so we can tune the fast-case vs. hash map heuristics accordingly.
Review URL: https://chromiumcodereview.appspot.com/10448011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11681 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-30 14:40:57 +00:00
rossberg@chromium.org
40cc4062d2 Fix broken change to d8 typed arrays.
R=mstarzinger@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11680 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-30 14:26:34 +00:00
rossberg@chromium.org
716eac2801 Some clean-up of typed array support in d8.
R=yangguo@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11679 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-30 13:35:29 +00:00
mstarzinger@chromium.org
ebe9a0e0b2 Fix missing write barrier in store field stub.
R=vegorov@chromium.org
BUG=v8:2143,v8:1465,chromium:129355
TEST=cctest/test-heap/Regress2143

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11678 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-29 16:39:26 +00:00
rossberg@chromium.org
50fdcca1da Proxies: Fix receiver for setters inherited from proxies.
R=mstarzinger@chromium.org
BUG=v8:1543
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11677 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-29 14:00:56 +00:00
rossberg@chromium.org
7a7ea0b547 Proxies: Fix ToStringArray function so that it does not reject some keys.
R=mstarzinger@chromium.org
BUG=v8:1543
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11676 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-29 13:57:55 +00:00
svenpanne@chromium.org
e0d4c33e3a Prepare push to trunk. Now working on version 3.11.8.
R=jkummerow@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11673 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-29 13:19:43 +00:00
svenpanne@chromium.org
39f88f1b26 Fixed JSObject::SetPropertyForResult (issue 2153)
AccessorPairs containing only holes are maps were handled incorrectly.

BUG=v8:2153
TEST=mjsunit/regress/regress-2153.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11672 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-29 12:42:22 +00:00
mstarzinger@chromium.org
f9b8a8fc91 Revert r11665, r11666 and r11667 due to slowness.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11668 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-25 15:26:52 +00:00
verwaest@chromium.org
502123f912 Fixing debug build, missing parentheses
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11667 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-25 13:39:07 +00:00
verwaest@chromium.org
1c332bfd2e Fixing unused Map* in release build
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11666 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-25 13:21:20 +00:00
verwaest@chromium.org
fd579e3dc8 TraversableMap only dependent on DescriptorArray
This is the first step towards merging the ContentArray into the DescriptorArray, (hence reclaiming 3 words per descriptor array).

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11665 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-25 13:03:34 +00:00
svenpanne@chromium.org
0fa7de11b5 Enable map transitions for accessor properties.
To avoid a performance regression for context creation with snapshots, we avoid
creating a useless long map chain for regular expressions, keeping the snapshot
size almost the same as before.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11664 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-25 12:32:02 +00:00
yangguo@chromium.org
24a1503d28 Fix creating substring in string.replace(<global regexp>, <function>).
BUG=
TEST=regexp-global.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11661 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-25 10:52:38 +00:00
danno@chromium.org
407e070fe0 Add missing FastElements check.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11660 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-25 09:58:40 +00:00
yurys@chromium.org
60da267ab6 Clear pending functions list in FuncNameInferrer when it closes
BUG=v8:2146
Review URL: https://chromiumcodereview.appspot.com/10414075

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11653 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-24 12:41:55 +00:00
yangguo@chromium.org
86c2a15691 messages.js: Get better function names in stack traces.
CallSite.getFunctionName() is able to retrieve names for functions better than
getFunction().name.  Use it in CallSite.toString().

Code by marja@chromium.org.

BUG=NONE
TEST=stack-traces.js: Added testClassNames.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11652 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-24 11:00:05 +00:00
svenpanne@chromium.org
ff216c9cea Re-land: Use map transitions when defining accessor properties.
This is basically r11496, with the following changes:

 * Set back pointers in maps (cherry-picked from r11528)

 * Fixed size calculation in CopyInsert, as proposed by mstarzinger/rossberg

 * DefineFastAccessor uses GetCallbackObject instead of GetValue (for __proto__)

 * Put the code under a new flag, which is disabled by default

 * Cut down the corresponding regression test

 * Adapted bootup memory test, we actually only need a bit more memory on 64bit without snapshots, which can easily explained by more live maps lying around. Note that the snapshot variants are back to their previous limits.

Next steps: Investigate any performance degradationswith the flag enabled, and finally remove the flag when things are OK. Furthermore, GetCallbackObject should be merged into GetValue, the distinction is confusing and error-prone.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11651 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-24 10:40:24 +00:00
mmassi@chromium.org
9daf62dfce Broke line longer than 80 chars.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11650 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-24 09:59:21 +00:00
jkummerow@chromium.org
64459021ef Prepare push to trunk. Now working on version 3.11.7.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11645 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-24 09:26:03 +00:00
mmassi@chromium.org
0260303568 MIPS: Array index computation dehoisting.
Port r11596 (0cee9fca)

Original commit message:
Array index computation dehoisting.

When an array index (in an array access) is a simple "expression + constant", just embed the constant in the array access operation so that the full index expression is (potentially) no longer used and its live range can be much shorter.
This is effective in conjunction with array bounds check removal (otherwise the index is anyway used in the check).

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10442003
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11644 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-24 09:22:29 +00:00
yangguo@chromium.org
3c074eb120 Fix lint check.
R=mstarzinger@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11640 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-24 08:09:21 +00:00
yangguo@chromium.org
ef7524bd29 MIPS: Implement loop for global regexps in regexp assembler.
Port r11623 (f153116d)

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11639 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-24 07:29:49 +00:00
danno@chromium.org
17ec52b6cd Fix build and test failures from packed array optimizations.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11638 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-23 21:15:14 +00:00
mstarzinger@chromium.org
7e613579be Fix RegExp.prototype.toString for incompatible receivers.
BUG=v8:1981
TEST=mjsunit/regexp

Review URL: https://chromiumcodereview.appspot.com/10426005
Patch from Ioseb Dzmanashvili <ioseb.dzmanashvili@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11637 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-23 20:48:08 +00:00
danno@chromium.org
9910edbb9a Implement tracking and optimizations of packed arrays
R=jkummerow@chromium.org
TEST=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11636 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-23 14:24:29 +00:00
mstarzinger@chromium.org
c80dc925f2 Prepare push to trunk. Now working on version 3.11.6.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11633 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-23 11:58:18 +00:00
mstarzinger@chromium.org
f17833b6ec Fix presubmit error in r11630.
TBR=erik.corry@gmail.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11632 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-23 11:40:38 +00:00
yangguo@chromium.org
30e7c23afd Fix argument passing to generated regexp code in Win64.
R=erik.corry@gmail.com
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11631 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-23 11:36:54 +00:00
mstarzinger@chromium.org
7412d9adbe Change sentinel value for zapping of old-to-new pointers.
R=erik.corry@gmail.com
BUG=v8:2143

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11630 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-23 11:17:22 +00:00
svenpanne@chromium.org
cae003513b Fix two call to masm->CallStub on x64: should pass ASTId.
Review URL: https://chromiumcodereview.appspot.com/10383278

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11628 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-23 07:41:58 +00:00
yangguo@chromium.org
d70fb0dddc Fix Win64 build.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11627 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-23 07:13:10 +00:00
loislo@chromium.org
610ef68f06 Eliminate dominator and retained_size fields. They are calculating on front-end side. See meta-bug https://bugs.webkit.org/show_bug.cgi?id=87089
BUG=none
TEST=none

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11626 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-23 05:27:08 +00:00
yangguo@chromium.org
7ab5dcf4df Fix stack push order when reserving space for regexp registers on Windows.
TBR=erik.corry@gmail.com
BUG=
TEST=test-regexp/MacroAssemblerNativeLotsOfRegisters

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11625 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-22 15:30:08 +00:00
yangguo@chromium.org
578fc3cc2d Implement loop for global regexps in regexp assembler.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11623 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-22 14:05:44 +00:00
yangguo@chromium.org
50063d30c4 Ensure integrity of ASCII strings.
BUG=v8:2128
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11622 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-22 12:49:20 +00:00
ulan@chromium.org
367757b794 Prepare push to trunk. Now working on version 3.11.5.
R=jkummerow@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11618 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-22 09:13:13 +00:00
mmassi@chromium.org
3fad332049 Disable array index dehoisting because of performance regressions on Kraken imaging-desaturate.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11616 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-21 16:22:54 +00:00
yangguo@chromium.org
db509d17e6 Handle EINTR in socket functions and continue incomplete sends.
Based on a patch by Ben Noordhuis <info@bnoordhuis.nl>.

BUG=v8:2098
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11609 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-21 12:58:48 +00:00