Commit Graph

8443 Commits

Author SHA1 Message Date
pfeldman@chromium.org
100bc51eae Debugger: add ability to set script source from within OnBeforeCompile.
Review URL: https://chromiumcodereview.appspot.com/9677043

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11054 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-15 11:51:26 +00:00
danno@chromium.org
beb012be45 Don't use an explicit s0 in ClampDoubleToUint8.
R=fschneider@chromium.org
BUG=v8:2004
TEST=test/mjsunit/pixel-array-rounding.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11053 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-15 09:52:48 +00:00
svenpanne@chromium.org
e2cb7894fb Fixed breakage caused by r11051 on non-ia32 platforms.
TBR=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11052 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-15 09:28:49 +00:00
svenpanne@chromium.org
c644c4e811 Ensure that generated code for object literals will call Runtime_DefineOrRedefineAccessorProperty only once per accessor property.
To do this, we collect all accessor properties in a first pass and emit code for
defining those properties afterwards in a second pass.

As a finger exercise, the table used for collecting accessors has a (subset of
an) STL-like iterator interface, including STL-like names and operators.
Although C++ is quite verbose here (as usual, but partly this is caused by our
current slightly clumsy classes/templates), things work out quite nicely and it
cleans up some confusion, e.g. a table entry is not an iterator etc.
Everything compiles into very efficient code, e.g. the loop condition 'it !=
accessor_table.end()' compiles into a single 'testl' instruction on ia32.
+1 for using standard APIs!

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11051 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-15 07:13:46 +00:00
mstarzinger@chromium.org
2c7f0edd48 Fix wrapping of receiver for non-strict callbacks.
R=rossberg@chromium.org
BUG=v8:1973
TEST=mjsunit/regress/regress-1973

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11050 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-14 17:42:19 +00:00
rossberg@chromium.org
314b3559d4 Fix --use-strict flag in combination with --harmony[-scoping].
R=ulan@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11049 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-14 17:25:01 +00:00
yangguo@chromium.org
1c4edb8c44 Remove write barriers for raw smi accessors.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11048 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-14 16:16:46 +00:00
mstarzinger@chromium.org
1f8a901141 Fix passing of shard options in test wrapper.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11047 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-14 14:52:52 +00:00
mstarzinger@chromium.org
fe1440f339 Remove unused local variable after r11023.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11044 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-14 14:08:36 +00:00
rossberg@chromium.org
46001aa54c Function declarations shall not overwrite read-only global properties.
R=mstarzinger@chromium.org
BUG=115452
TEST=mjsunit/regress/regress-115452

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11043 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-14 13:51:00 +00:00
ulan@chromium.org
6308a09006 Increase executable size limit.
R=vegorov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11042 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-14 13:21:44 +00:00
vegorov@chromium.org
966ebf8f55 Don't take UnkownOSRValues into account when infering Phi's representation.
For DIV with uninitialized result assume double result representation.

R=fschneider@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11041 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-14 12:59:49 +00:00
mstarzinger@chromium.org
4663039353 Prepare push to trunk. Now working on version 3.9.20.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11038 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-14 11:08:06 +00:00
jkummerow@chromium.org
73df5e69d5 Avoid implicit bool->int cast in CollectAllGarbage call
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11037 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-14 10:19:37 +00:00
fschneider@chromium.org
35786621f2 Change --hydrogen-filter to allow specifying a negative filter for optimized functions.
When prepending a '-' to the function name, the function will not be optimized.

--hydrogen-filter=foo works as before.

--hydrogen-filter=-foo means don't optimize foo.
Review URL: https://chromiumcodereview.appspot.com/9691042

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11036 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-14 09:45:17 +00:00
jkummerow@chromium.org
2e7cb8aa7a Fix common.gypi after r11032
TBR=yangguo@chromium.org
TEST=Win Reliability Builder stops complaining

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11034 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-13 18:03:00 +00:00
yangguo@chromium.org
26659b13c8 Fix test.py for Python 2.7.
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9695053
Patch from Bert Belder <bertbelder@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11033 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-13 17:19:24 +00:00
yangguo@chromium.org
754dc79066 MIPS: Added support for Loongson architectures.
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9692048
Patch from Daniel Kalmar <kalmard@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11032 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-13 16:18:30 +00:00
jkummerow@chromium.org
a63d1211d3 Fix "already merging" safety check in merge-to-branch.sh
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11031 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-13 15:57:31 +00:00
yangguo@chromium.org
20c040dcd7 Split up String.split to deal with normal separator and regexp separator separately.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11030 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-13 15:44:19 +00:00
alexeif@chromium.org
cd81976065 Store entry id as 32-bit int.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11029 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-13 15:42:26 +00:00
vegorov@chromium.org
262c8bddd5 Always create HArgumentsObject on function entry.
We do not know if we are going to need it and creating it lazyly might cause us to insert it at the block that does not dominate all uses.

R=mstarzinger@chromium.org
TEST=mjsunit/compiler/inline-arguments.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11024 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-13 14:45:03 +00:00
mstarzinger@chromium.org
0ab3fb8b00 Implement non-generic stores for object literals.
This uses the type feedback already present for computed value stores
into object literals to generate optimized stores in Crankshaft, thus
avoiding unnecessary generic stores with side effects.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11023 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-13 12:11:46 +00:00
kmillikin@chromium.org
7d6fd56fd5 Ensure there is a smi check of the receiver for global load and call ICs.
There was a comment that, for such ICs specialized to the global object,
they were always contextual loads.  This is very brittle.  It is a
micro-optimization that relies too much on the way that things happen to
work today.

Instead, never omit the smi check because it's safer.

R=vegorov@chromium.org
BUG=117794
TEST=regress-117794.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11022 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-13 11:39:30 +00:00
yangguo@chromium.org
235e9e20a7 Experimental Profiler: tweak type info threshold.
Also included: simplify String.slice.

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11021 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-13 11:38:37 +00:00
jkummerow@chromium.org
ea175d6635 Fix DEPS file patching in push-to-trunk.sh
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11020 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-13 11:01:28 +00:00
ulan@chromium.org
4eaa7c16ff Add type feedback info type to instance type list macro.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11019 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-13 11:01:07 +00:00
yangguo@chromium.org
05c1d51766 Prepare push to trunk. Now working on version 3.9.19.
R=svenpanne@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11016 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-13 08:07:35 +00:00
yangguo@chromium.org
9a110acaa8 Remove static Mutex from math function intializers.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11015 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-12 17:15:13 +00:00
fschneider@chromium.org
56e9118f56 Use lazy instance initializer to remove static initializers in two places.
Review URL: https://chromiumcodereview.appspot.com/9664067

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11014 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-12 16:10:53 +00:00
erik.corry@gmail.com
758638a53f Fix compile warning on 64 bit Windows.
Review URL: https://chromiumcodereview.appspot.com/9690019

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11013 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-12 15:26:05 +00:00
yangguo@chromium.org
7659beafb1 Ensure consistency of Math.sqrt on Intel platforms.
BUG=
TEST=regress-sqrt.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11012 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-12 14:56:04 +00:00
fschneider@chromium.org
12c09fdfe4 Fix broken build on Win32 due to r11010.
Review URL: https://chromiumcodereview.appspot.com/9666055

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11011 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-12 14:41:59 +00:00
fschneider@chromium.org
1f7d42efc9 Landing for pliard@chromium.org: Remove static initializers in v8.
This change includes two CLs by pliard@chromium.org:

1. http://codereview.chromium.org/9447052/ (Add CallOnce() and simple LazyInstance implementation):

Note that this implementation of LazyInstance does not handle global destructors (i.e. the lazy instances are never deleted).

This CL was initially reviewed on codereview.appspot.com:
http://codereview.appspot.com/5687064/



2.  http://codereview.chromium.org/9455088/ (Remove static initializers in v8):
This CL depends on CL 9447052 (adding CallOnce and LazyInstance).
It is based on a patch sent by Digit.

With this patch applied, we have only one static initializer left (in atomicops_internals_x86_gcc.cc). This static initializer populates a structure used by x86 atomic operations. It seems that we can hardly remove it. If possible, it will be removed in a next CL. 

This CL also modifies the presubmit script to check the number of static initializers.


BUG=v8:1859
Review URL: https://chromiumcodereview.appspot.com/9666052

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11010 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-12 13:56:56 +00:00
erik.corry@gmail.com
05c3295272 Unbreak Windows build after UTF-16 change (sys/types.h does not define
int32_t on Windows).
Review URL: https://chromiumcodereview.appspot.com/9669051

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11009 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-12 13:18:30 +00:00
vegorov@chromium.org
da03f56b1f Inline functions that use arguments object in f.apply(o, arguments) pattern.
Support arguments materialization after deoptimization in all frames (not only in topmost one).

R=fschneider@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11008 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-12 12:49:41 +00:00
erik.corry@gmail.com
03cfc4363b Fix input and output to handle UTF16 surrogate pairs.
Review URL: https://chromiumcodereview.appspot.com/9600009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11007 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-12 12:35:28 +00:00
mstarzinger@chromium.org
cd91894d2f Fix missing initialization of mark-compact flags.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11006 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-12 12:17:46 +00:00
jkummerow@chromium.org
a737ff5cd2 Add explicit dependency on v8_base
This is necessary in order to link v8_shell (for host) with the Android
toolchain.

Without it, the line in the makefile is:
$(builddir)/v8_shell: LD_INPUTS := $(OBJS) $(obj).host/v8/tools/gyp/libv8_snapshot.a $(obj).host/v8/tools/gyp/libv8_base.a

Now it appears as:
$(builddir)/v8_shell: LD_INPUTS := $(OBJS) $(obj).host/v8/tools/gyp/libv8_base.a $(obj).host/v8/tools/gyp/libv8_snapshot.a

and it successfully links.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9668013
Patch from Yaron Friedman <yfriedman@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11005 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-12 10:35:50 +00:00
yangguo@chromium.org
258708dda9 Fix heuristic triggering incremental marking.
This changes the heuristic that starts incremental marking to be based
on a more accurate heap size estimation. Pages being swept lazily can be
accounted using the live bytes counter.

R=mstarzinger@chromium.org
BUG=v8:1682

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11004 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-12 09:39:12 +00:00
ulan@chromium.org
85611e37c0 MIPS: Port Date-related changes.
Port r10981 (5ea074), r10982 (5f0d413) and r10983 (663a897d5).

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9668045
Patch from Daniel Kalmar <kalmard@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11003 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-12 08:46:25 +00:00
yangguo@chromium.org
165e42c291 MIPS: Inline inequality compares of strings into CompareICStub
Port r10988 (c6c9ebb5).

Original commit message:

Inline inequality compares of strings into CompareICStub instead of jumping into the CompareStub that handles the generic case.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9669026
Patch from Daniel Kalmar <kalmard@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11002 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-12 08:24:10 +00:00
svenpanne@chromium.org
9de66b9f3a Prepare push to trunk. Now working on version 3.9.18.
R=jkummerow@chromium.org
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10999 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-12 08:15:43 +00:00
loislo@chromium.org
0b360fb519 V8 crashes when profile generator allocates a buffer for HeapEntry'es bigger than 2Gb.
BUG=none
TEST=profile-generator tests

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10998 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-11 15:04:50 +00:00
loislo@chromium.org
dd711075fa Style fix after reapplying the patch r10996.
BUG=none
TEST=none
TBR=mikhail.naganov@gmail.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10997 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-11 07:35:21 +00:00
loislo@chromium.org
f4f4bd0a46 We have a problem with really big apps. The snapshot for such pages doesn't fit into JS heap on DevTools front-end side. I'd like to move the snapshot's nodes data into Int32Array.
This will reduce the pressure. At this moment it is not possible because the snapshot uses uint64_t for ids.

BUG=none
TEST=profiler-generator tests

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10996 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-11 07:02:19 +00:00
loislo@chromium.org
ed0ceee589 Revert "We have a problem with really big apps. The snapshot for such pages doesn't fit into JS heap on DevTools front-end side. I'd like to move the snapshot's nodes data into Int32Array."
This reverts commit 8c08ecc2782d5a8c60eb0692ec8f13d6da3cdc58.

BUG=none
TEST=none

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10995 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-11 06:12:10 +00:00
loislo@chromium.org
7b4c4a527f We have a problem with really big apps. The snapshot for such pages doesn't fit into JS heap on DevTools front-end side. I'd like to move the snapshot's nodes data into Int32Array.
This will reduce the pressure. At this moment it is not possible because the snapshot uses uint64_t for ids.

BUG=none
TEST=profiler-generator tests

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10994 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-11 06:00:55 +00:00
yangguo@chromium.org
1d679f9c37 Fixed VFP detection through compiler defines.
BUG=http://code.google.com/p/v8/issues/detail?id=1996
TEST=none

Review URL: https://chromiumcodereview.appspot.com/9669003
Patch from Rodolph Perfetta <rodolph.perfetta@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10993 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-09 22:11:16 +00:00
jkummerow@chromium.org
efee39a075 Profiler experiments: update flag default values.
This doesn't enable the experimental profiler by default, it just tunes its behavior when it is enabled.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10992 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-09 17:55:54 +00:00