Commit Graph

9558 Commits

Author SHA1 Message Date
mstarzinger@chromium.org
0c823b8957 Fix build failure on Windows since r14116.
TBR=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14117 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-02 18:00:50 +00:00
mstarzinger@chromium.org
2816f19680 Add parser support for generators.
This patchset begins by adding support for "yield", which is unlike other tokens
in JS. In a generator, whether strict or classic, it is a syntactic keyword.
In classic mode it is an identifier. In strict mode it is reserved.

This patch adds YIELD as a token to the scanner, and adapts the preparser and
parser appropriately. It also parses "function*", indicating that a function is
actually a generator, for both eagerly and lazily parsed functions.

Currently "yield" just compiles as "return".

BUG=v8:2355
TEST=mjsunit/harmony/generators-parsing

Review URL: https://codereview.chromium.org/12646003
Patch from Andy Wingo <wingo@igalia.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14116 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-02 17:34:59 +00:00
dslomov@chromium.org
7e90cfb10d Fix Win64 build
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14115 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-02 15:03:04 +00:00
dslomov@chromium.org
a23868fb44 Fix CopyBytes to accept size_t for num_bytes
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14114 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-02 13:29:26 +00:00
ulan@chromium.org
de17fa5b4c Cleanup: Rename Simulator::watched_stops to match style guide.
BUG=none

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14113 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-02 12:36:16 +00:00
ulan@chromium.org
fed279a553 ARM: Log an error if /proc/cpuinfo cannot be opened
This will make it easier to see if the current CPU feature detection
starts breaking because of process sandboxing.

BUG=v8:2597

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14112 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-02 12:20:50 +00:00
mvstanton@chromium.org
2502668f50 Deoptimizer support for hydrogen stubs that accept a variable number of arguments.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14111 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-02 11:28:01 +00:00
yurys@chromium.org
359d4a2869 Isolatify CPU profiler public API
Relanding r14006 and r14009 that were reverted in r14031

TBR=danno
BUG=None

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14108 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-02 08:16:53 +00:00
yurys@chromium.org
04cb86899c Deprecate HeapSnapshot type
Re-landing r14005 that was reverted in r14031

TBR=danno
BUG=None

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14107 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-02 08:09:59 +00:00
yurys@chromium.org
047f6f97d9 Isolatify HeapProfiler
Re-landing r13997 that was reverted in r14031

TBR=danno
BUG=None

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14106 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-02 08:03:01 +00:00
yurys@chromium.org
9cbb34a0b5 Isolatify CPU profiler
Relanding r13987 that was reverted in r14031

TBR=danno
BUG=None

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14105 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-02 07:53:50 +00:00
yurys@chromium.org
c7532f0f0b Allow recording individual samples in addition to the aggregated CPU profiles
Re-landing r13980 that was reverted in r14031

TBR=danno
BUG=None

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14104 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-02 07:48:25 +00:00
plind44@gmail.com
d15321f2f8 MIPS: Fixed some soft-float bugs.
TEST=cctest/test-api/ExternalUnsignedIntArray

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14101 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-01 16:06:52 +00:00
plind44@gmail.com
e53986d203 MIPS: Make the mips port build cleanly with clang.
Port r13583 (b39b116b) and also fix a couple mips-specific warnings.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14100 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-30 15:54:12 +00:00
palfia@homejinni.com
797dd3053e MIPS: Fix register usage in softfloat code path.
BUG=none
TEST=mjsunit/math-floor-part2.js

Review URL: https://codereview.chromium.org/12413032
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14099 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-28 21:17:02 +00:00
yangguo@chromium.org
a3f0f942a3 Always allocate symbols in old space.
Keys are expected to be tenured. This now not only includes internalized
strings, but also symbols.

R=rossberg@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14095 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-28 13:52:31 +00:00
dslomov@chromium.org
47d8af7616 Canonicalize NaNs on store to Fast(Float|Double) arrays
Also treat holey NaN coming from external float/double arrays correctly

BUG=2596

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14094 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-28 13:30:16 +00:00
dslomov@chromium.org
e43ea68951 Win32 build fix
TBR=rossberg@chromium.org

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14093 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-28 13:24:02 +00:00
dslomov@chromium.org
cefc655522 Release buold fix
TBR=rossberg@chromium.org

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14092 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-28 13:07:41 +00:00
dslomov@chromium.org
944c577c7b First steps towards implementing ArrayBuffer &co in V8
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14091 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-28 12:50:18 +00:00
dslomov@chromium.org
e357ddc249 Replace ICStub for array.length with hydrogen stub
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14090 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-28 12:43:19 +00:00
rossberg@chromium.org
15ab3a0612 ES6 symbols: symbol properties should not cause going into slow mode.
R=yangguo@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14089 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-28 12:01:46 +00:00
yangguo@chromium.org
bdc903b086 Improve SeqString::Truncate for latest allocated strings.
R=hpayer@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14088 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-28 11:19:38 +00:00
yangguo@chromium.org
9155d20282 Stack trace API: poison stack frames below the first strict mode frame.
Function and receiver objects are not accessible for poisoned frames.

R=rossberg@chromium.org
BUG=v8:2564

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14085 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-28 10:40:07 +00:00
palfia@homejinni.com
15a39131d2 MIPS: Small refactoring of r14058.
BUG=

Review URL: https://codereview.chromium.org/12703030
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14084 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-27 22:48:49 +00:00
hpayer@chromium.org
754c32ec8d Make Isolate::GetHeapStatistics robust against half-initialized isolates.
The (deprecated) non-Isolate GetHeapStatistics contains the same check.

BUG=2591

Review URL: https://codereview.chromium.org/12965013
Patch from Marja Hölttä <marja@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14079 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-27 10:33:25 +00:00
yangguo@chromium.org
bb632dc49d Only copy with, block and catch scopes in DebugEvaluate.
R=ulan@chromium.org
BUG=171715

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14077 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-26 17:46:16 +00:00
ulan@chromium.org
81281dc5cf ARM: fix dictionary negative lookup.
Do not skip the last inlined probe.

BUG=171975

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14074 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-26 09:28:26 +00:00
plind44@gmail.com
e9ca60d265 MIPS: Generalizing remaining Allocate functions in the macro assemblers used in pretenuring.
Port r14065 (f09e7e38)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14073 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-25 19:01:36 +00:00
danno@chromium.org
02d75d734f Use code_range()->exists() to determine the size of the first code page when code range is used.
Review URL: https://codereview.chromium.org/12452012
Patch from Haitao Feng <haitao.feng@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14071 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-25 17:27:54 +00:00
palfia@homejinni.com
cb03ff32fd MIPS: Change LookupForWrite to always do a full lookup and check the result.
Port r14061 (df49702a)

Original commit message:
If we find a property in the prototype-chain that we can overwrite, and
we have a transition, keep the holder in the lookup-result as the actual
holder. We will need it for the consistency-check in GenerateStoreField.

By directly checking the entire chain we avoid having to lazily bail out
to a copy of the miss stub while generating the Field Store IC.

Currently this CL disallows a normal non-receiver holder, given that
that would require a positive lookup + details verification to ensure
the property did not become read-only. This fixes the regressions in the
attached tests.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14070 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-25 17:12:50 +00:00
verwaest@chromium.org
a79d622720 Create a new HandleScope for each JSON-parsed object to avoid excessive growth
Review URL: https://chromiumcodereview.appspot.com/12880019

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14069 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-25 17:10:33 +00:00
verwaest@chromium.org
2541f2507f Add AssertNoAllocation to ensure TransitionArray* transitions is safe.
Review URL: https://chromiumcodereview.appspot.com/12583013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14066 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-25 15:59:08 +00:00
hpayer@chromium.org
8792cac5cc Generalizing remaining Allocate functions in the macro assemblers used in pretenuring.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14065 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-25 15:54:15 +00:00
danno@chromium.org
dfd9ea8087 Fix store_mode bug involving polymorphism with external and JS arrays.
Review URL: https://codereview.chromium.org/12987014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14064 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-25 15:19:22 +00:00
jkummerow@chromium.org
2159b470d7 Fix crash involving zombie maps escaping from the JSON parser's underground lab
Zapping is required since transition arrays contain weak references to maps: At the end of a GC cycle, ClearNonLiveTransitions removes references to dead maps from transition arrays. If a marked transition array with weak (dead) references is replaced by another transition array before the end of the GC cycle, dead references are not removed from the replaced transition array. If the replaced transition array is kept alive by a handle, marking will crash when trying to mark the first reference to a dead map.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14063 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-25 15:18:52 +00:00
verwaest@chromium.org
a8b3215afa Change LookupForWrite to always do a full lookup and check the result.
If we find a property in the prototype-chain that we can overwrite, and
we have a transition, keep the holder in the lookup-result as the actual
holder. We will need it for the consistency-check in GenerateStoreField.

By directly checking the entire chain we avoid having to lazily bail out
to a copy of the miss stub while generating the Field Store IC.

Currently this CL disallows a normal non-receiver holder, given that
that would require a positive lookup + details verification to ensure
the property did not become read-only. This fixes the regressions in the
attached tests.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14061 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-25 12:55:27 +00:00
rossberg@chromium.org
c1e3648712 Remove GC hazard (temporary handle object)
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14060 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-25 11:40:14 +00:00
yangguo@chromium.org
b347a0dcae Correctly materialize arguments object in Runtime_DebugEvaluate.
The problem was that if the # arguments specified in the function
declaration and the # arguments passed to the function are not
the same, we use an arguments adapter frame to make it work. This
confuses the existing implementation to materialize the arguments
object.

R=peter.rybin@gmail.com
BUG=222893

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14059 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-25 10:01:53 +00:00
palfia@homejinni.com
3ac8bf41b4 MIPS: ES6 symbols: turn symbols into a proper primitive type
Port r14051 (e9140a92)

Original commit message:
(qua last week's TC39)

Specifically:
- Install Symbol constructor function on the global object.
- Adjust code generation for typeof.
- Remove IsSymbol built-in, IS_SYMBOL macro now defined using typeof.
- Remove hack that allowed symbols as constructor results, and some other special cases.
- Remove symbol_delegate and GetDelegate function.
- Extend ToBoolean stub to handle symbols.
- Extend ToNumber to return NaN on symbols.
- Poison symbol's toString function, and thereby ToString on symbols.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14058 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-23 02:39:31 +00:00
adamk@chromium.org
9bebd23d5c Fix %GetArrayKeys to not skip non-enumerable indices
This is one step in the direction of fixing a range of small bugs in the array methods when dealing with non-standard element attributes.

Added tests exercising this behavior for shift and unshift.

For Proxies and Interceptors, the behavior of %GetArrayKeys is now to just return an interval, rather than trying to list all their indexed properties. In the Proxy case, this seems like the only way to avoid an observable difference between smart and non-smart array methods. For Interceptors, the usual case (in WebKit, anyway) is for them to have all indices in [0, length), so enumerating them won't be any better than simply iterating over that range.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14057 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-22 18:04:32 +00:00
rossberg@chromium.org
52aec4722d ES6 symbols: prevent reflection, proxy, and observe APIs from leaking symbols
R=svenpanne@chromium.org
BUG=v8:2158

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14056 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-22 17:27:44 +00:00
rossberg@chromium.org
2657e432e4 ES6 symbols: implement name property
Adds string-valued name property to symbols, and uses it for pretty-printing.

Requires allocating symbols in pointer space, with a custom iterator to skip the unboxed hash.

R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14053 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-22 16:51:28 +00:00
yangguo@chromium.org
71c1f69b06 Fix global object check in %IsObserved and %SetIsObserved.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14052 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-22 16:37:11 +00:00
rossberg@chromium.org
83d4a41dec ES6 symbols: turn symbols into a proper primitive type
(qua last week's TC39)

Specifically:
- Install Symbol constructor function on the global object.
- Adjust code generation for typeof.
- Remove IsSymbol built-in, IS_SYMBOL macro now defined using typeof.
- Remove hack that allowed symbols as constructor results, and some other special cases.
- Remove symbol_delegate and GetDelegate function.
- Extend ToBoolean stub to handle symbols.
- Extend ToNumber to return NaN on symbols.
- Poison symbol's toString function, and thereby ToString on symbols.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14051 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-22 16:33:50 +00:00
mstarzinger@chromium.org
eb4215df68 Remove some obsolete handle operation wrappers.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14049 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-22 14:33:27 +00:00
mstarzinger@chromium.org
e9b71b6bdd Put zapping of local handles behind the extra checks flag.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14048 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-22 13:40:13 +00:00
danno@chromium.org
b8fd25277a Fix bugs in previous_ast_id tracking
R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14045 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-22 12:34:38 +00:00
yangguo@chromium.org
ba26666127 Port Latin-1 changes to the interpreted regexp.
R=dcarney@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14044 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-22 09:47:06 +00:00
yangguo@chromium.org
006b1a88a0 Fix JSON.stringifier's slow path wrt external strings.
R=verwaest@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14042 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-22 08:42:38 +00:00
peter.rybin@gmail.com
f4374c0989 Fix isolate getter in DebugAgent
Review URL: https://codereview.chromium.org/12678015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14036 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-21 16:12:50 +00:00
mstarzinger@chromium.org
6db90efa6e Fix compilation failure on Win64 since r14020.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14035 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-21 16:04:07 +00:00
danno@chromium.org
a9d034d38b Prepare push to trunk. Now working on version 3.17.16.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14032 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-21 15:25:15 +00:00
danno@chromium.org
ed3809c318 Maintain API compatibility with older versions of V8.
Revert "Allow recording individual samples in addition to the aggregated CPU profiles"
Revert "Isolatify CPU profiler"
Revert "Isolatify HeapProfiler"
Revert "Deprecate HeapSnapshot type"
Revert "Isolatify CPU profiler public API"
Revert "MSVS compilation fix after r14006"
Revert "Add methods to allow resuming execution after calling TerminateExecution()."

R=jkummerow@chromium.org,mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14031 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-21 14:42:17 +00:00
jkummerow@chromium.org
f5418265c4 Delete leftover debugging code from InitializeMathExpData()
Review URL: https://codereview.chromium.org/12858008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14030 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-21 14:36:07 +00:00
mstarzinger@chromium.org
bd5ca6e696 Use internal memcpy for PatchPlatformCodeAge as well.
R=jkummerow@chromium.org
BUG=chromium:196330

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14029 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-21 14:32:40 +00:00
mstarzinger@chromium.org
61d9399e8d Disable zapping of global handles in release mode.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14028 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-21 14:18:16 +00:00
verwaest@chromium.org
a473e9a887 Always mark the entire valid prefix of the descriptor array.
Previously we would only mark the slot that was added specifically for
this map, if there was a backpointer and the descriptor array was shared
via the backpointer. However, ConvertTransitionToMapTransition may break
this link after we marked the transitioned map, before we marked the
transitioning map. So the descriptor slots of the parent map won't get
recorded, and we potentially point to an old address of an already
relocated function.

BUG=chromium:196331

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14027 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-21 12:19:23 +00:00
mstarzinger@chromium.org
d4ac6d37f2 Lower limit for complex memcpy on non-ia32 architectures.
R=jkummerow@chromium.org
BUG=chromium:196330

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14025 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-21 12:05:50 +00:00
jkummerow@chromium.org
e45d08488e Enable extra API checks, add a check for zapped global handles
Review URL: https://codereview.chromium.org/12833015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14024 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-21 11:59:47 +00:00
yangguo@chromium.org
9e1a7e2e6f Unify code for fast and slow path of JSON.stringify.
R=verwaest@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14023 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-21 10:53:26 +00:00
yangguo@chromium.org
53adf3b19c Add methods to allow resuming execution after calling TerminateExecution().
Two new methods are added to allow embedders to determine that execution
should be resumed at a particular point in the stack without being forced
to unwind all JS frames.

* V8::CancelTerminateExecution() -- When execution is terminated via a call
  to V8::TerminateExecution(), this method can be called to clear the
  termination exception so that the engine can continue to be used.

* TryCatch::HasTerminated() -- When a TryCatch has caught a termination
  exception, HasTerminated() will return true to indicate it is valid to
  call V8::ResumeExecution() if desired.

A test case is added to cctest/test-thread-termination.cc.

BUG=v8:2361

Patch from Andrew Paprocki <andrew@ishiboo.com>.

Review URL: https://chromiumcodereview.appspot.com/11142013
Patch from Andrew Paprocki <andrew@ishiboo.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14022 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-21 10:47:34 +00:00
mstarzinger@chromium.org
788de160c5 Remove instrumentation for Code::CopyFrom crasher.
R=jkummerow@chromium.org
BUG=chromium:196330

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14021 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-21 10:36:57 +00:00
mstarzinger@chromium.org
222d8d3d1c Use internal memcpy for CopyWords and when copying code.
R=jkummerow@chromium.org
BUG=chromium:196330

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14020 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-21 10:28:03 +00:00
yangguo@chromium.org
5fcc52fcb9 Simplify debug evaluate.
R=peter.rybin@gmail.com
BUG=v8:2585, 173608

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14019 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-21 08:50:29 +00:00
palfia@homejinni.com
2820eeb61e MIPS: Implement many KeyedStoreStubs using Crankshaft
Port r14001 (28443693)

Original commit message:
- Addition of a compiled hydrogen stub for KeyedStores.
- Inlining of "grow" stubs into OPTIMIZED_FUNCTIONs
- Addition of new "ignore OOB" ic stub that silently swallows out-of-bounds stores to external typed arrays.
- Addition of new "copy-on-write" ic stub that inlines allocation and copying operations for cow array
- New stub are generated with Crankshaft, so they are automatically inlined into OPTIMIZED_FUNCTIONs

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14018 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-20 21:43:30 +00:00
danno@chromium.org
f8b4fbb3a9 Add Paul Lind to the MIPS OWNER file
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14017 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-20 19:13:01 +00:00
jkummerow@chromium.org
e4c4f9ccf7 Prepare push to trunk. Now working on version 3.17.15.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14014 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-20 18:04:45 +00:00
palfia@homejinni.com
d6ceb193fe MIPS: Critical fix for label binding in RegExp engine when trampoline is emitted.
TEST=mjsunit/regress/regress-crbug-178790

BUG=

Review URL: https://codereview.chromium.org/12939010
Patch from Dusan Milosavljevic <Dusan.Milosavljevic@rt-rk.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14013 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-20 17:29:04 +00:00
dslomov@chromium.org
fc856413fa Remove more boilerplate (missed after rebase)
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14012 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-20 17:20:48 +00:00
mstarzinger@chromium.org
5d5ca10d24 Use internal memcpy when initializing code objects.
R=jkummerow@chromium.org
BUG=chromium:196330

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14011 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-20 16:53:31 +00:00
ulan@chromium.org
ff3e79807e Disable weak embedded maps because of crashes.
R=mstarzinger@chromium.org
BUG=172489,217858

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14010 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-20 15:20:19 +00:00
yurys@chromium.org
a6adb64336 MSVS compilation fix after r14006
BUG=None

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14009 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-20 14:46:09 +00:00
verwaest@chromium.org
a23caf9f71 Explicitly pass the isolate to create handles in ic.cc
Review URL: https://chromiumcodereview.appspot.com/12704015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14007 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-20 13:12:33 +00:00
yurys@chromium.org
95bfca8828 Isolatify CPU profiler public API
BUG=None

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14006 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-20 13:07:48 +00:00
yurys@chromium.org
8204dfa186 Deprecate HeapSnapshot type
There is only one type of heap snapshot - kFull and we are not going to add any new types.

BUG=None

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14005 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-20 12:41:00 +00:00
dslomov@chromium.org
cdf4bb5ae2 Fixed whitespace
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14004 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-20 12:01:57 +00:00
dslomov@chromium.org
110003ca2a Remove boilerplate code from HydrogenCodeStubs
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14003 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-20 12:01:49 +00:00
mstarzinger@chromium.org
b07f94c26a Make GDBJIT interface compile again.
Review URL: https://codereview.chromium.org/12952002
Patch from Haitao Feng <haitao.feng@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14002 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-20 11:29:46 +00:00
danno@chromium.org
ffd0c712e8 Implement many KeyedStoreStubs using Crankshaft
- Addition of a compiled hydrogen stub for KeyedStores.
- Inlining of "grow" stubs into OPTIMIZED_FUNCTIONs
- Addition of new "ignore OOB" ic stub that silently swallows out-of-bounds stores to external typed arrays.
- Addition of new "copy-on-write" ic stub that inlines allocation and copying operations for cow array
- New stub are generated with Crankshaft, so they are automatically inlined into OPTIMIZED_FUNCTIONs

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14001 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-20 10:37:13 +00:00
mstarzinger@chromium.org
d269364fd6 Fix handling of context creation failure since r13978.
R=jkummerow@chromium.org
TEST=fast/js/concat-large-strings-crash.html

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13998 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-20 10:13:29 +00:00
yurys@chromium.org
d447716029 Isolatify HeapProfiler
Added instance method on v8::Isolate for retrieving instance of v8::HeapProfiler for that isolate. All static methods of v8::HeapProfiler are deprecated, corresponding instance methods are added to v8::HeapProfiler.

All static methods on v8::internal::HeapProfiler were converted into instance ones.

BUG=None

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13997 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-20 08:38:17 +00:00
jkummerow@chromium.org
902d3e3e7d Prepare push to trunk. Now working on version 3.17.14.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13992 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-19 17:50:03 +00:00
mstarzinger@chromium.org
c5c5d35967 Add more instrumentation for Code::CopyFrom crasher.
R=jkummerow@chromium.org
BUG=chromium:196330

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13991 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-19 16:48:45 +00:00
verwaest@chromium.org
002ba9c76d Turn Flags into a uint32_t typedef.
We cannot rely on C++ compilers inferring the int-type from the enum
value range. Whereas Linux/OSX find uint32_t as type for [0,MaxUInt32],
Windows insists it's int.

Update the test to execute its original intent on all platforms: 1 value
larger than max arguments, 1 smaller than max arguments (on all
platforms). This makes the test run a lot faster.

BUG=chromium:194749

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13988 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-19 13:11:49 +00:00
yurys@chromium.org
a8e9bebabd Isolatify CPU profiler
BUG=None

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13987 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-19 12:44:10 +00:00
dcarney@chromium.org
996f5aef8b Reduce storage size of weak callbacks
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13986 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-19 10:06:20 +00:00
mvstanton@chromium.org
6fa9a2976f MIPS: HInnerAllocatedObject instruction allows hydrogen code to carve up allocated regions into sub objects.
Port r13928 (ff66bd4bcdb580438d96c610bcbe8852bb127908)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13985 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-19 08:41:37 +00:00
yurys@chromium.org
a5be5da2e8 Allow recording individual samples in addition to the aggregated CPU profiles
CPU profiler API is extended with methods that allow to retrieve individual samples from profile. Each sample is presented as a pointer to a node in the top-down profile tree. The samples will let us tie JS performance to time.

BUG=None

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13980 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-19 08:11:56 +00:00
palfia@homejinni.com
87ab8ab1ea MIPS: Allow direct allocation in old pointer space.
Port r13940 (a39765e7)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13979 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-18 17:56:35 +00:00
mstarzinger@chromium.org
859a7154bc Move context global handle creation out of Genesis.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13978 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-18 17:36:47 +00:00
mmassi@chromium.org
2416d69183 Fix induction variable detection.
Review URL: https://codereview.chromium.org/12919005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13977 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-18 17:36:24 +00:00
mstarzinger@chromium.org
e5db8a93df Remove obsolete "previous" field from Genesis.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13976 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-18 16:27:58 +00:00
rossberg@chromium.org
93bba581da Fix misplaced #endif
R=verwaest@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13975 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-18 16:18:05 +00:00
rossberg@chromium.org
e36da6d219 Unbreak shared lib build.
R=verwaest@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13974 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-18 16:04:27 +00:00
palfia@homejinni.com
311ad5de54 MIPS: Load/Store stub compilation refactoring.
Port r13954 (2ee39c27)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13970 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-18 14:42:46 +00:00
svenpanne@chromium.org
458b8ddd0a Prepare push to trunk. Now working on version 3.17.13.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13969 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-18 14:41:55 +00:00
mstarzinger@chromium.org
291450547e Add instrumentation to track down Code::CopyFrom crasher.
R=jkummerow@chromium.org
BUG=chromium:196330

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13968 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-18 14:31:21 +00:00
verwaest@chromium.org
ab782e585f Since v8:13964, flags is uint32, so always use cmp on ARM.
Review URL: https://chromiumcodereview.appspot.com/12693020

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13967 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-18 14:31:08 +00:00
rossberg@chromium.org
295e74275e More useful result pretty printing for d8
For example:

d8> ["hi", 5, [2,3],Object.prototype.toString, {get a() { return a}, b: 9, set a(x) {this.b=x}}, null, undefined]
["hi", 5, [2, 3], function toString() { [native code] }, {get a() { return a}, set a(x) {this.b=x}, b: 9}, null, undefined]

Deactivated in test mode.

R=yangguo@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13966 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-18 14:03:15 +00:00
svenpanne@chromium.org
e4e4447305 Pass Isolates explicitly in Deoptimizer-related code.
Removed a few ancient useless ASSERTs on the way. Reduced the number of train wrecks.

BUG=v8:2487

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13965 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-18 13:57:49 +00:00
verwaest@chromium.org
37a2e32496 Unify kMaxArguments with number of bits used to encode it.
Increase the number of bits by 1 by making Flags unsigned.

BUG=chromium:211741

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13964 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-18 13:35:17 +00:00
jkummerow@chromium.org
e2cd7aa423 Fix detection of |handle_smi| case in HOptimizedGraphBuilder::HandlePolymorphicCallNamed
BUG=chromium:196583

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13963 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-18 12:41:52 +00:00
yangguo@chromium.org
ebcecd49af Parallel recompilation: fix off-by-one in deferred handle scope iteration.
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13962 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-18 11:26:09 +00:00
mmassi@chromium.org
73e83b0b0f Handling expression decomposition and array bounds check hoisting: working code with lots of debugging PrintFs, postdominance check still missing.
Review URL: https://codereview.chromium.org/12377072

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13961 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-18 08:06:00 +00:00
vegorov@chromium.org
ae064fca48 When spilling live range with not register uses inside the loop try to move spilling out of the loop.
This allows to minimize amount of memory moves on the back edge.

R=danno@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13960 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-15 13:25:54 +00:00
alph@chromium.org
9f7300043b Remove kContext node type introduced in r13936
It has been decided not to pollute node types with extra values.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13959 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-15 13:07:39 +00:00
yurys@chromium.org
b3ee84d361 Remove bottom-up CPU profile
Bottom-up view of CPU profile can be restored based on top-down profile data. So there is no need to spend resources on creating both of them inside V8.

BUG=None

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13958 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-15 12:46:45 +00:00
svenpanne@chromium.org
3daff287fc Prepare push to trunk. Now working on version 3.17.12.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13955 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-15 12:38:26 +00:00
verwaest@chromium.org
88b8715f95 Load/Store stub compilation refactoring.
Review URL: https://chromiumcodereview.appspot.com/12426008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13954 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-15 12:07:35 +00:00
svenpanne@chromium.org
53310ac152 Added a version of the v8::HandleScope constructor with an Isolate and use that consistently.
I tried to limit the use of v8::Isolate::GetCurrent() and v8::internal::Isolate::Current() as much as possible, but sometimes this would have involved restructuring tests quite a bit, which is better left for a separate CL.

BUG=v8:2487

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13953 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-15 12:06:53 +00:00
svenpanne@chromium.org
308e665982 Pass Isolate through CompilingCallsToThisStubIsGCSafe calls
BUG=v8:2487

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13950 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-15 11:52:58 +00:00
yangguo@chromium.org
44c059f1c1 Parallel recompilation: fix concurrency issues.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13949 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-14 16:35:32 +00:00
ulan@chromium.org
80f490085f ARM: Tweak ECMAToInt32VFP to address regression on Nexus 4
After r13912, we saw a small regression in Kraken crypto-aes and
crypto-ccm on Nexus 4. This patch, proposed by Rodolph Perfetta,
addresses that without regressing other platforms.

Instead of looking at the exponent of double_input and trying to figure
out if the conversion will overflow, eagerly do the VCVT and return
early unless it saturated.

BUG=none

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13948 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-14 15:28:15 +00:00
mstarzinger@chromium.org
6e86d34ba9 Allow inlining of functions containing array literals.
R=jkummerow@chromium.org
BUG=v8:1322
TEST=mjsunit/compiler/inline-literals

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13947 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-14 15:15:37 +00:00
svenpanne@chromium.org
aaf6340eb3 Fixed two register allocator bugs (off-by-one error/failure propagation).
Minor cleanups on the way, e.g. making sure that we never use something after an allocation failed. Style question: Should we switch to some kind of MUST_USE_RESULT-style to ensure that we handle failures consistently? Not sure...

BUG=v8:2576

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13946 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-14 14:42:00 +00:00
mstarzinger@chromium.org
9aa25ad1a0 Allow inlining of functions containing function literals.
R=yangguo@chromium.org
BUG=v8:1322
TEST=mjsunit/compiler/inline-literals

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13945 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-14 14:29:10 +00:00
palfia@homejinni.com
3d2dc89796 MIPS: Fix test262 regression.
This regression was introduced by r13705 (fd03c7d6)

BUG=test262/data/test/suite/ch11/11.13/11.13.2

Review URL: https://codereview.chromium.org/12844005
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13944 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-14 11:08:05 +00:00
palfia@homejinni.com
b71352b0a0 MIPS: Fix AssertName() in MacroAssembler.
This commit fixes several debug mode test failures.

BUG=mjsunit/keyed-call-generic,mjsunit/keyed-call-ic

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13943 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-14 10:59:58 +00:00
palfia@homejinni.com
04d8eb8244 MIPS: Refactoring Store ICs. A first step towards polymorphic store ICs.
Port r13934 (656ce093)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13942 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-14 10:58:21 +00:00
hpayer@chromium.org
5d159d50e2 Execute a memory barrier when adding a new page to a space to synchronize access with concurrent sweepers.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13941 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-14 09:15:39 +00:00
hpayer@chromium.org
05a71fc9e4 Allow direct allocation in old pointer space.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13940 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-14 08:32:52 +00:00
dcarney@chromium.org
fbe34d4ba5 remove latin-1 flag
R=yangguo@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13939 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-13 20:04:50 +00:00
dcarney@chromium.org
5e1d926053 Some Utf8Length microoptimizations
R=yangguo@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13938 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-13 19:43:45 +00:00
alph@chromium.org
1afc70a332 Fix huge heap snapshot when a heavily shared context has many variables
Prevously v8 put a link to each context variable into a function where
the variable is visible.
Because of that if there are N functions sharing a context having M variables
then N*M links were created for the snapshot.
The fix makes v8 to put the links into the context object.

BUG=145687
TEST=test-heap-snapshot/ManyLocalsInSharedContext

Review URL: https://codereview.appspot.com/7715044

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13936 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-13 17:38:04 +00:00
yangguo@chromium.org
a722726dc4 Parallel recompilation: fewer handle dereferences and tighter checks.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13935 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-13 16:13:05 +00:00
verwaest@chromium.org
569d9c59b9 Refactoring Store ICs. A first step towards polymorphic store ICs.
Review URL: https://chromiumcodereview.appspot.com/12781004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13934 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-13 14:11:05 +00:00
svenpanne@chromium.org
8db737a583 Made AdjustAmountOfExternalAllocatedMemory an instance method of Isolate
BUG=v8:2487

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13933 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-13 13:15:09 +00:00
dcarney@chromium.org
9b4650e903 remove maynamedaccess checks
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13932 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-13 13:14:25 +00:00
mvstanton@chromium.org
d9ca45b1ca In ArrayConstructor_StubFailure the transition elements kind was
ignored on allocation.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13931 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-13 13:03:59 +00:00
yangguo@chromium.org
74e7500afa Remove unused field.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13930 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-13 11:44:07 +00:00
danno@chromium.org
cfb957af15 Use IsRuntimeEntry for RUNTIME_ENTRY comparison
Review URL: https://codereview.chromium.org/12702005
Patch from Haitao Feng <haitao.feng@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13929 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-13 11:40:26 +00:00
mvstanton@chromium.org
30ca31f470 HInnerAllocatedObject instruction allows hydrogen code to carve up
allocated regions into sub objects.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13928 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-13 11:05:48 +00:00
ulan@chromium.org
9bfc8e21d9 Prepare push to trunk. Now working on version 3.17.11.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13920 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-13 09:30:31 +00:00
yangguo@chromium.org
f8d0013f78 DateField cache should check the ExternalOperand instead of ExternalReference on X64
Review URL: https://chromiumcodereview.appspot.com/12637025
Patch from Weiliang Lin <weiliang.lin2@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13919 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-13 09:28:08 +00:00
adamk@chromium.org
004452bff9 Use InternalArray in Object.getOwnPropertyNames() implementation
Review URL: https://codereview.chromium.org/12342003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13918 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-12 20:15:03 +00:00
yangguo@chromium.org
479e39a058 Parallel recompilation: remove interrupt for code generation.
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13917 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-12 18:03:18 +00:00
verwaest@chromium.org
4cb46f4d57 Polymorphism support for numbers and strings
Necessary to support fast polymorphic toString.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13914 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-12 17:01:03 +00:00
mvstanton@chromium.org
cf373b5690 Use an efficient graph constant in CodeStubGraphBuilderBase::BuildGraph().
Improve printing for HReturn.

R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13913 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-12 15:37:23 +00:00
rodolph.perfetta@gmail.com
1c6d5e4cf4 ARM: Optimsisation of ECMA ToInt32.
BUG=none
TEST=none

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13912 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-12 11:25:50 +00:00
svenpanne@chromium.org
1a2454d752 Consistently pass a Heap* to HashTable-related AsObject methods.
This is basically a follow-up CL to https://code.google.com/p/v8/source/detail?r=13908.

BUG=v8:2487

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13911 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-12 10:05:42 +00:00
mvstanton@chromium.org
f3b8a3c8a8 MIPS: To fully support hydrogen code stubs which accept a variable number of arguments, the HReturn/LReturn instruction needs to be able to determine argument count from a stack evaluation rather than as a constant from scope.
Port r13888 (33905114)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13910 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-12 09:06:23 +00:00
svenpanne@chromium.org
f2bcc90c8c Unbreak readline support.
Things are still far from being nice, the editor registration/handling in d8 is
still embarrassing. Nevertheless things work with readline support again. Fixed
a missing Locker on the way.

TBR=adamk@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13909 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-12 08:00:20 +00:00
svenpanne@chromium.org
e02315ef77 Added an Isolate parameter to some HashTable/Dictionary methods. TypeFeedbackOracle tweaks.
BUG=v8:2487

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13908 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-12 07:06:36 +00:00
verwaest@chromium.org
5615a1d606 Cleanup the copying of ICs to the Megamorphic Code Cache
Review URL: https://chromiumcodereview.appspot.com/12521007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13907 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-11 15:11:39 +00:00
palfia@homejinni.com
3e64d6905a MIPS: Fix white space matching in latin-1 strings wrt \u00a0.
Port r13898 (bcc5b57f)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13906 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-11 14:17:32 +00:00
danno@chromium.org
8dc25d2b29 Use direct jump and call instruction for X64 when the deoptimization entries are in the code range.
Review URL: https://codereview.chromium.org/11574027
Patch from Haitao Feng <haitao.feng@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13903 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-11 14:11:03 +00:00
danno@chromium.org
19badfdda5 Revert r13901 to reland with proper credit to external contributor.
TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13902 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-11 14:09:21 +00:00
danno@chromium.org
d616baed77 Use direct jump and call instruction for X64 when the deoptimization entries are in the code range.
Review URL: https://codereview.chromium.org/11574027

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13901 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-11 14:05:49 +00:00
palfia@homejinni.com
9be937e6ed MIPS: fix NaN handling of Isolate::StackOverflow()
The mjsunit/stack-traces-overflow.js test fails on MIPS target as Error.stackTraceLimit = NaN; should disable stack trace messages and Isolate::StackOverflow() assumes static_cast<int>(double NaN) < 0.

MIPS has a different NaN representation than other architectures so the NaN value casted to int is positive. This patch adds an isnan() check to make the handling of NaN uniform on all architectures.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13900 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-11 13:30:39 +00:00
mstarzinger@chromium.org
b09f9bfe68 Simplify PreParser::ParsePrimaryExpression
* src/preparser.cc (PreParser::ParsePrimaryExpression): No need to check
  keywords for validity as identifiers, as ParseIdentifier (called in
  the fallthrough) will take care of it.

Covered by existing tests.

BUG=

Review URL: https://codereview.chromium.org/12600004
Patch from Andy Wingo <wingo@igalia.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13899 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-11 12:44:38 +00:00
yangguo@chromium.org
b85237a0bc Fix white space matching in latin-1 strings wrt \u00a0.
R=dcarney@chromium.org
BUG=181422

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13898 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-11 11:52:11 +00:00
mstarzinger@chromium.org
bbc9f5362a Fix heap snapshot creation for Harmony collections.
R=yangguo@chromium.org
BUG=v8:2535
TEST=cctest/test-api/Regress2535

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13897 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-11 11:31:53 +00:00
ulan@chromium.org
3e6ffe7362 Fix assert in Page::Initialize.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13896 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-11 11:01:00 +00:00
mstarzinger@chromium.org
bbb30a788b Consistently unlink evacuation candidates before sweeping.
R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13894 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-11 10:11:57 +00:00
palfia@homejinni.com
2a57539417 MIPS: Unify deoptimizer for stub failure trampoline frames.
Port r13887 (6d146270)

Original commit message:
This unifies the translation of a compiled stub frame to a stub failure
trampoline frame. Only the frame's register allocation is different on
each architecture and can be factored out.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13893 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-11 09:58:45 +00:00
palfia@homejinni.com
6c17947f3c MIPS: Fix debug mode related porting mistakes.
This commit fixes bugs in commit r13874 and in r13876.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13892 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-11 09:56:51 +00:00
svenpanne@chromium.org
e44d3b7a87 Fixed register allocation corner case.
The predicate CanBeSpilled had a bug, prohibiting the necessary spilling and
correct splitting of live ranges. Removed a redundant assertion immediately done
by the callee anyway.

Thanks to Slava for help with that issue and the entertaining historical
background of the whole story... ;-)

BUG=177883

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13891 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-11 09:49:00 +00:00
jkummerow@chromium.org
00df65117d In the absence of type feedback, pessimistically force Tagged representation for UnaryAdd
BUG=v8:2527

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13890 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-11 08:42:07 +00:00
mvstanton@chromium.org
1691f43b8b To fully support hydrogen code stubs which accept a variable number of arguments,
the HReturn/LReturn instruction needs to be able to determine argument count
from a stack evaluation rather than as a constant from scope.

R=danno@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13888 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-08 21:07:55 +00:00
mstarzinger@chromium.org
0cfe1dce9e Unify deoptimizer for stub failure trampoline frames.
This unifies the translation of a compiled stub frame to a stub failure
trampoline frame. Only the frame's register allocation is different on
each architecture and can be factored out.

R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13887 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-08 16:18:50 +00:00
hpayer@chromium.org
fffadaf9ba Unlink evacuation candidates from list of pages before starting sweeper threads.
Removed FinalizeSweeping().

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13886 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-08 14:41:21 +00:00
mstarzinger@chromium.org
38cc926a7e Ensure runtime functions have a NoHandleAllocation scope.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13885 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-08 14:11:58 +00:00
svenpanne@chromium.org
09baca5ad6 Prepare push to trunk. Now working on version 3.17.10.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13881 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-08 13:12:50 +00:00
mstarzinger@chromium.org
d70523dce6 Restore Function()'s expected string representation.
R=rossberg@chromium.org
BUG=v8:2470
TEST=mjsunit/regress/regress-2470

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13880 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-08 11:47:20 +00:00
palfia@homejinni.com
fade1cc9bf MIPS: Unify grow mode and stub kind
Port r13850 (bb94d408)

Original commit message:
In the process, ensure that transition-causing element stores handle all cases of the transitioned receiver map.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13877 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-08 00:55:24 +00:00
palfia@homejinni.com
bb380cf971 MIPS: Cleaned up CpuFeature scope handling.
Port r13823 (cb37ab63)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13876 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-08 00:54:19 +00:00
palfia@homejinni.com
4c91b74232 MIPS: Make IC patching resilient to flushing of the original target() ic.
Port r13831 (52d6fd70)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13875 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-08 00:52:37 +00:00
palfia@homejinni.com
ffcc4de0d3 MIPS: ES6 symbols: Allow symbols as property names
Port r13811 (0e64f280)

Original commit message:
Since symbols and strings share a common representation, most of this change is about consistently replacing 'String' with 'Name' in all places where property names are expected. In particular, no new logic at all is necessary for maps, property dictionaries, or transitions. :) The only places where an actual case distinction is needed have to do with generated type checks, and with conversions of names to strings (especially in logger and profiler).

Left in some TODOs wrt to the API: interceptors and native getters don't accept symbols as property names yet, because that would require extending the external v8.h.

(Baseline CL: https://codereview.chromium.org/12296026/)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13874 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-08 00:49:28 +00:00
palfia@homejinni.com
8312b895f3 MIPS: Polymorphism support for load IC.
Port r13801 (6de52924)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13873 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-08 00:46:45 +00:00
palfia@homejinni.com
fc3ff54042 MIPS: Fixed ASSERT in commit r13807.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13872 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-08 00:44:52 +00:00
palfia@homejinni.com
f4abb7afc6 MIPS: ES6 symbols: Implement Symbol intrinsic and basic functionality
Port r13786 (b5e7a82a)

Original commit message:
- Add --harmony-symbols flag.
- Add Symbol constructor; allow symbols as (unreplaced) return value from constructors.
- Introduce %CreateSymbol and %_IsSymbol natives and respective instructions.
- Extend 'typeof' code generation to handle symbols.
- Extend CompareIC with a UNIQUE_NAMES state that (uniformly) handles internalized strings and symbols.
- Property lookup delegates to SymbolDelegate object for symbols, which only carries the toString method.
- Extend Object.prototype.toString to recognise symbols.

Per the current draft spec, symbols are actually pseudo objects that are frozen with a null prototype and only one property (toString). For simplicity, we do not treat them as proper objects for now, although typeof will return "object". Only property access works as if they were (frozen) objects (via the internal delegate object).

(Baseline CL: https://codereview.chromium.org/12223071/)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13871 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-08 00:42:59 +00:00
mstarzinger@chromium.org
25acd805f5 Reintroduce lost space in r13867.
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13870 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-07 16:59:18 +00:00
yangguo@chromium.org
5afa1a0d3a Avoid bool to Oddball conversions by being lazy.
R=svenpanne@chromium.org
BUG=v8:2491

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13869 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-07 16:22:19 +00:00
yangguo@chromium.org
91d9af5ed3 log: add %p option to --logfile, expands to pid
Review URL: https://chromiumcodereview.appspot.com/12093008
Patch from Ben Noordhuis <info@bnoordhuis.nl>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13868 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-07 16:19:51 +00:00
mstarzinger@chromium.org
4b0395cc23 Harden Function()'s parsing of function literals.
R=rossberg@chromium.org
BUG=v8:2470
TEST=mjsunit/regress/regress-2470

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13867 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-07 15:46:14 +00:00
ulan@chromium.org
c0d7aa16c2 Prepare push to trunk. Now working on version 3.17.9.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13863 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-07 15:13:03 +00:00
dcarney@chromium.org
da814adfeb fix uninitialized variable
R=ulan@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13861 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-07 14:01:42 +00:00
hpayer@chromium.org
b9989623a7 Added pretenuring of array literals test.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13860 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-07 14:00:53 +00:00
dcarney@chromium.org
25058ddd85 Runtime version of declarative native accessors.
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13856 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-07 11:42:58 +00:00
yangguo@chromium.org
3a497dfd51 Insert missing type cast in JSON.stringify.
R=dcarney@chromium.org
BUG=v8:2570

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13853 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-07 09:58:27 +00:00
hpayer@chromium.org
2c9789e17f Integrate concurrent sweeping with incremental marking.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13852 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-07 09:27:49 +00:00
yurys@chromium.org
250edbdc64 Revert "Send SIGPROF signals on the profiler event processor thread"
This reverts commit r13735 as CPU profiler data is inaccurate after that change.

BUG=v8:2571

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13851 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-07 09:12:48 +00:00
danno@chromium.org
bbc599f334 Unify grow mode and stub kind
In the process, ensure that transition-causing element stores handle all cases of the transitioned receiver map.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13850 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-06 21:51:07 +00:00
palfia@homejinni.com
935e7f7ba5 MIPS: Fixed faulty branch condition handling for doubles.
This commit also includes BranchF refactoring in macro-assembler.

TEST=mozilla/ecma/TypeConversion/9.2.js

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13849 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-06 18:55:50 +00:00
palfia@homejinni.com
922c22f0cf MIPS: Fix code size assertions for branch delay slots.
TEST=mozilla/ecma_3/Date/15.9.4.3.js

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13848 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-06 18:54:13 +00:00
yangguo@chromium.org
a62cfd1db0 Fix Array.length, String.length and Function.prototype LoadICs on x64.
R=jkummerow@chromium.org
BUG=v8:2568

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13847 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-06 18:19:35 +00:00
mvstanton@chromium.org
a2bd4706c2 Make sure that on x86 we don't generate SSE2 code in the snapshot.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13844 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-06 16:15:01 +00:00
mstarzinger@chromium.org
2b7891c303 Unify deoptimizer for construct stub frames.
This unifies the translation of artificial construct stub frames. The
frame layout is almost the same on all architectures and only differs
in the presence of a slot holding the constructor function.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13843 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-06 16:12:24 +00:00
dcarney@chromium.org
07e2494735 Added back some utf8 optimizations
R=yangguo@chromium.org
BUG=https://code.google.com/p/v8/issues/detail?id=2551

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13842 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-06 15:39:57 +00:00
mvstanton@chromium.org
940ed0dc92 Arm fix: incorrect register used in CompareObjectType
R=verwaest@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13841 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-06 15:11:27 +00:00
ulan@chromium.org
1944b9953a Print dependent code in MapPrint.
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13840 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-06 14:55:59 +00:00
mvstanton@chromium.org
3d1c89d4b1 Better hydrogen printing for the allocate instruction
R=danno@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13839 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-06 14:10:02 +00:00
rossberg@chromium.org
bdc65b3e1e ES6 symbols: filter symbols form for-in loops and Object.keys
R=verwaest@chromium.org
BUG=v8:2158

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13838 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-06 13:55:21 +00:00
mvstanton@chromium.org
9739fb0be1 MIPS: A debug code assert needed to be behind the new optimize_constructed_arrays flag.
Port r13791 (fe11ffe7)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13837 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-06 12:25:42 +00:00
mvstanton@chromium.org
de41a3b6d5 MIPS: Allocation Info Tracking, continued.
Port r13790 (0a70a3af)

Original commit message:
Addresses missing cases for array literals.
Adds support for "new Array()" call sites. This isn't complete yet, I have to run with --noinline_new.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13836 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-06 12:23:09 +00:00
svenpanne@chromium.org
61a2c53d09 Track Hydrogen statistics on a per-Isolate basis
This is basically the same fix as the one for --trace-hydrogen, but now for
--hydrogen-stats. Removed a few train wrecks on the way.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13835 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-06 10:49:34 +00:00
svenpanne@chromium.org
0e3ed17ea4 Separate output files for --trace-hydrogen.
The output filenames have now the form "hydrogen-<ProcessId>-<IsolateId>.cfg".
Minor cleanup on the way.

Note that we have a similar bug regarding statistics, but this will be handled
in a separate CL.

BUG=v8:2563

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13834 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-06 07:25:46 +00:00
rodolph.perfetta@gmail.com
50703c70a9 Split and replace the EmitVFPTruncate routine to only do what is needed. Floor
and Round have been rewritten to use the default rounding mode.

BUG=none
TEST=none

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13833 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-05 19:35:59 +00:00
hpayer@chromium.org
80382cdb9f Presweep one page before parallel/concurrent sweeping.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13832 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-05 17:51:49 +00:00
verwaest@chromium.org
34697f5b12 Make IC patching resilient to flushing of the original target() ic.
Review URL: https://chromiumcodereview.appspot.com/12451003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13831 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-05 17:38:35 +00:00
hpayer@chromium.org
80195113ab Wait for sweeper threads in EnsureSweeperProgress() only if the main thread finished its sweeping phase.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13830 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-05 17:32:02 +00:00
rossberg@chromium.org
29e6b4437f ES6 symbols: enable symbols as weak map keys
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13829 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-05 17:24:08 +00:00
adamk@chromium.org
7fe9bd5a09 Properly handle misses for StoreArrayLengthStub on ia32 and x64
Both failed to generate a miss if the key wasn't "length".
ARM and MIPS were already correct.

BUG=v8:2566

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13828 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-05 16:31:11 +00:00
yangguo@chromium.org
03375a68d7 Details wrt parallel recompilation.
This includes:
- actually release handles kept by compilation info when compilation completes.
- do not use parallel recompilation on single core CPUs.
- artificially delay parallel recompilation for debugging.
- fix outdated assertions wrt optimization status.
- add "parallel" option to %OptimizeFunctionOnNextCall.

R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13827 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-05 16:22:08 +00:00
mstarzinger@chromium.org
24abac9f02 Remove obsolete CodeFlusher debug code.
R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13826 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-05 16:08:11 +00:00
mstarzinger@chromium.org
df0e676d2f Print whether a HCheckPrototypeMaps is omitted.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13825 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-05 14:11:56 +00:00
svenpanne@chromium.org
0b9e5d93b0 fix x32 handling of Atomic64
The x32 logic for the size of Atomic64 handles NaCL, but misses
the Linux case.  Check the standard __ILP32__ to handle that too.

This has been fixed in the Chromium base tree already:
https://codereview.chromium.org/12186005/

BUG=chromium-os:36866
TEST=compiled the code for x86_64 (64bit) & x86_64 (x32)

Review URL: https://codereview.chromium.org/12374065
Patch from Mike Frysinger <vapier@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13824 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-05 13:54:03 +00:00
svenpanne@chromium.org
e4edbb0535 Cleaned up CpuFeature scope handling.
First of all, it has nothing to do with Isolates, it is related to the assembler
at hand. Furthermore, the saving/restoring is platform-independent. Cleaned up
some platform-specific stuff on the way.

Note that there are some things which still need some cleanup, like e.g. using
EnumSet instead of uint64_t, making Probe() more uniform across platforms etc.,
but the CL is already big enough.

BUG=v8:2487

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13823 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-05 10:48:16 +00:00
jkummerow@chromium.org
03060c7105 Fixed HCheckSmiOrInt <-> HBoundsCheck interaction wrt. representations
BUG=v8:2556

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13820 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-05 09:14:28 +00:00
ulan@chromium.org
be2b1a980f Improve integer division on ARM in favor of power of 2 constant divisor
BUG=none
TEST=none

Review URL: https://chromiumcodereview.appspot.com/12052032
Patch from Rajeev R Krithivasan <rkrithiv@codeaurora.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13819 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-05 08:47:59 +00:00
mstarzinger@chromium.org
d6fd3a0767 Enable zapping of disposed global handles in release mode.
R=hpayer@chromium.org
BUG=chromium:176056

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13818 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-04 18:24:37 +00:00
mstarzinger@chromium.org
2aabf6257d Add workaround for redefinition of __proto__ property.
This is a temporary workaround when the __proto__ property is being
redefined (e.g. by Object.freeze()) to not loose the foreign callback.
Once the __proto__ property is a real JavaScript accessor this hack is
no longer necessary. This change also makes __proto__ configurable.

R=rossberg@chromium.org
BUG=v8:2565
TEST=mjsunit/regress/regress-2565

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13817 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-04 17:53:40 +00:00
rossberg@chromium.org
867b23246a Also fix cast warnings on Win64
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13816 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-04 16:12:26 +00:00
mstarzinger@chromium.org
0ca02ee48d Make sure builtin functions don't rely on __proto__.
This makes sure that none of the builtin functions rely on the __proto__
accessor which can now be monkey-patched by applications. Instead use a
separate %SetPrototype() intrinsic or object literals to do the job.

R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13815 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-04 16:05:12 +00:00
hpayer@chromium.org
1630954005 Fix assert in PagedSpace::SizeOfObject for concurrent sweeping.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13814 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-04 15:47:59 +00:00
rossberg@chromium.org
c5de322c51 Fix one more cast warning on Win32
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13813 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-04 15:25:33 +00:00
rossberg@chromium.org
2ac5884b57 Fix cast warnings on Win32
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13812 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-04 15:15:37 +00:00
rossberg@chromium.org
5c93b18eb2 ES6 symbols: Allow symbols as property names
Since symbols and strings share a common representation, most of this change is about consistently replacing 'String' with 'Name' in all places where property names are expected. In particular, no new logic at all is necessary for maps, property dictionaries, or transitions. :) The only places where an actual case distinction is needed have to do with generated type checks, and with conversions of names to strings (especially in logger and profiler).

Left in some TODOs wrt to the API: interceptors and native getters don't accept symbols as property names yet, because that would require extending the external v8.h.

(Baseline CL: https://codereview.chromium.org/12296026/)

R=verwaest@chromium.org,mstarzinger@chromium.org
BUG=v8:2158

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13811 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-04 15:00:57 +00:00
hpayer@chromium.org
74a25d8e17 Wait for sweeper threads and finalize sweeping only if parallel/concurrent sweeping was in progress.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13810 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-04 14:56:20 +00:00
palfia@homejinni.com
4292356bc7 MIPS: Renamed "symbols" to "internalized strings" throughout the code base, in preparation of the introduction of ES6 'symbols' (aka private/unique names).
Port r13781 (59f39a06)

Original commit message:
The SymbolTable became the StringTable. I also made sure to adapt all comments. The only remaining use of the term "symbol" (other than unrelated uses in the parser and such) is now 'NewSymbol' in the API and the 'V8.KeyedLoadGenericSymbol' counter, changing which might break embedders.

The one functional change in this CL is that I removed the former 'empty_string' constant, since it is redundant given the 'empty_symbol' constant that we also had (and both were used inconsistently).

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13807 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-04 14:45:39 +00:00
yangguo@chromium.org
42a9a8681f Prepare push to trunk. Now working on version 3.17.8.
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13806 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-04 14:44:23 +00:00
palfia@homejinni.com
ce854aa0c5 MIPS: Minor cleanup of CompareIC state
Port r13775 (1fd19d83)

Original commit message:
Allow transitioning from KNOWN_OBJECT to KNONW_OBJECT or OBJECT.
Also, rename HEAP_NUMBER IC states to NUMBER, since they handle Smis, too.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13805 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-04 14:41:39 +00:00
palfia@homejinni.com
d351a7eba2 MIPS: Currently this mostly just moves code around.
Port r13768 (4996bcd0)

Original commit message:
- Later the different parts will become individual code objects that tailcall into one another.
- The mapcheck/symbol check still needs to be separated from the overall prototype-chain check so that the ICs can reuse the handlers.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13804 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-04 14:29:40 +00:00
palfia@homejinni.com
7ec9c5e9d2 MIPS: Fix materialization of arguments objects with unknown values.
Port r13763 (6b32e7d6)

Original commit message:
This fixes the deoptimizer to materialize arguments objects of correct
length even in cases where the actual argument values are unknown and
were optimized away by Crankshaft. This can happen if only the length
property or the identity of an arguments object is used.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13803 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-04 14:26:30 +00:00
palfia@homejinni.com
1c9542ebef MIPS: Compile FastCloneShallowObjectStub using Crankshaft.
Port r13732 (686b0a45)

Original commit message:
This changes FastCloneShallowObjectStub to be compiled independent of
the target architecture. It also adds tracing to the deoptimizer for
compiled stubs and contains some minor bugfixes.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13802 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-04 14:23:30 +00:00
verwaest@chromium.org
590a3f8811 Polymorphism support for load IC.
Review URL: https://chromiumcodereview.appspot.com/12340112

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13801 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-04 14:03:27 +00:00
palfia@homejinni.com
d6a64ceea5 MIPS: Refactor RegExpStub to check lazily.
Port r13727 (55a760ec)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13798 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-04 13:15:16 +00:00
mvstanton@chromium.org
575c2c5a54 Bugfix: allow handle dereference only when we have a valid hydrogen graph or lithium chunk.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13793 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-04 12:34:49 +00:00
yangguo@chromium.org
e8145cabe6 Tweak register allocation for Math.round and do not use roundsd.
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13792 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-04 08:44:42 +00:00
mvstanton@chromium.org
46af26a5db A debug code assert needed to be behind the new optimize_constructed_arrays flag.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13791 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-01 16:59:53 +00:00
mvstanton@chromium.org
c4caf766bf Allocation Info Tracking, continued.
Addresses missing cases for array literals.
Adds support for "new Array()" call sites. This isn't complete yet, I have to run with --noinline_new.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13790 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-01 16:06:34 +00:00
mvstanton@chromium.org
fce0a11f05 Handle dereferencing needs to be allowed for printing during optimization phase.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13789 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-01 15:50:57 +00:00
yangguo@chromium.org
358311e8ec Limit EatAtLeast recursion by a budget.
BUG=178790

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13788 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-01 14:50:14 +00:00
rossberg@chromium.org
d7539af89a Fix cast warning on Win32
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13787 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-01 14:31:01 +00:00
rossberg@chromium.org
090d09d685 ES6 symbols: Implement Symbol intrinsic and basic functionality
- Add --harmony-symbols flag.
- Add Symbol constructor; allow symbols as (unreplaced) return value from constructors.
- Introduce %CreateSymbol and %_IsSymbol natives and respective instructions.
- Extend 'typeof' code generation to handle symbols.
- Extend CompareIC with a UNIQUE_NAMES state that (uniformly) handles internalized strings and symbols.
- Property lookup delegates to SymbolDelegate object for symbols, which only carries the toString method.
- Extend Object.prototype.toString to recognise symbols.

Per the current draft spec, symbols are actually pseudo objects that are frozen with a null prototype and only one property (toString). For simplicity, we do not treat them as proper objects for now, although typeof will return "object". Only property access works as if they were (frozen) objects (via the internal delegate object).

(Baseline CL: https://codereview.chromium.org/12223071/)

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13786 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-01 13:28:55 +00:00
hpayer@chromium.org
74b6f0f321 Fix Win64 compilation problem.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13785 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-01 12:46:20 +00:00
mstarzinger@chromium.org
05f1be1bb3 Unify deoptimizer for accessor and arguments frames.
This unifies the translation of artificial accessor stub and arguments
adaptor frames. The frame layout is the same on all architectures and
the computation code can be shared.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13784 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-01 12:23:24 +00:00
rossberg@chromium.org
764e1a0fcf ES6 symbols: Introduce Symbol class, along with abstract Name class
The new instance type 'Symbol' represents ES6 symbols (a.k.a. private/unique names). Currently, symbols are simple data objects that only carry a hash code, random-generated upon allocation.

The new type 'Name' now serves as the common super class for strings and symbols, and is supposed to represent property names. We will eventually migrate APIs from String to Name for the standard key type.

Strings and symbols share the same hash field representation, via the Name class. This way, we should be able to use the same code paths for symbols and internalized strings in most cases. Also, Symbol's instance type code is allocated adjacent to internalized string codes in the enum, allowing a simple range check for the common case.

Baseline CL: https://codereview.chromium.org/12210083/

R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13783 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-01 10:34:31 +00:00
yangguo@chromium.org
922efe43ed Simplify line editor choice in d8.
R=rossberg@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13782 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-28 17:40:24 +00:00
rossberg@chromium.org
55f93b5532 Renamed "symbols" to "internalized strings" throughout the code base,
in preparation of the introduction of ES6 'symbols' (aka private/unique names).

The SymbolTable became the StringTable. I also made sure to adapt all comments. The only remaining use of the term "symbol" (other than unrelated uses in the parser and such) is now 'NewSymbol' in the API and the 'V8.KeyedLoadGenericSymbol' counter, changing which might break embedders.

The one functional change in this CL is that I removed the former 'empty_string' constant, since it is redundant given the 'empty_symbol' constant that we also had (and both were used inconsistently).

R=yangguo@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13781 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-28 17:03:34 +00:00
hpayer@chromium.org
3b7417a506 Prepare push to trunk. Now working on version 3.17.7.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13778 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-28 15:53:29 +00:00
hpayer@chromium.org
a2b216c47f Turn off parallel and concurrent sweeping on system with just one processor/core.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13777 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-28 15:18:15 +00:00
hpayer@chromium.org
a9374e2fea Set unswept free bytes for concurent sweeper.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13776 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-28 15:07:28 +00:00
rossberg@chromium.org
8924d03e16 Minor cleanup of CompareIC state
Allow transitioning from KNOWN_OBJECT to KNONW_OBJECT or OBJECT.
Also, rename HEAP_NUMBER IC states to NUMBER, since they handle Smis, too.

R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13775 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-28 14:43:57 +00:00
mstarzinger@chromium.org
b22c7eaed9 Revert "Reapply optimization of DeoptimizeIf for ia32." (r13767)
This optimization turns out to have a negative effect on i5 processors
throughout the board. This needs further investigation to figure out
the underlying reason but will be rolled out for now.

R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13772 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-28 11:24:18 +00:00
yangguo@chromium.org
0e8a5fe4d8 Fix math.round with SSE4.1.
R=verwaest@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13771 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-28 10:39:34 +00:00
verwaest@chromium.org
5a543d683a Order arguments of ComputeMonomorphicFlags to match ComputeFlags.
Review URL: https://chromiumcodereview.appspot.com/12226090

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13769 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 15:33:37 +00:00
verwaest@chromium.org
3ab255f55d Currently this mostly just moves code around.
- Later the different parts will become individual code objects that tailcall into one another.
- The mapcheck/symbol check still needs to be separated from the overall prototype-chain check so that the ICs can reuse the handlers.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13768 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 15:28:53 +00:00
mstarzinger@chromium.org
574dc38f96 Reapply optimization of DeoptimizeIf for ia32 broken in r13633.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13767 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 15:17:27 +00:00