mvstanton@chromium.org [Fri, 1 Mar 2013 16:06:34 +0000 (16:06 +0000)]
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
mvstanton@chromium.org [Fri, 1 Mar 2013 15:50:57 +0000 (15:50 +0000)]
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
yangguo@chromium.org [Fri, 1 Mar 2013 14:50:14 +0000 (14:50 +0000)]
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
rossberg@chromium.org [Fri, 1 Mar 2013 14:31:01 +0000 (14:31 +0000)]
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
rossberg@chromium.org [Fri, 1 Mar 2013 13:28:55 +0000 (13:28 +0000)]
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
hpayer@chromium.org [Fri, 1 Mar 2013 12:46:20 +0000 (12:46 +0000)]
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
mstarzinger@chromium.org [Fri, 1 Mar 2013 12:23:24 +0000 (12:23 +0000)]
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
rossberg@chromium.org [Fri, 1 Mar 2013 10:34:31 +0000 (10:34 +0000)]
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
yangguo@chromium.org [Thu, 28 Feb 2013 17:40:24 +0000 (17:40 +0000)]
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
rossberg@chromium.org [Thu, 28 Feb 2013 17:03:34 +0000 (17:03 +0000)]
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
hpayer@chromium.org [Thu, 28 Feb 2013 15:53:29 +0000 (15:53 +0000)]
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
hpayer@chromium.org [Thu, 28 Feb 2013 15:18:15 +0000 (15:18 +0000)]
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
hpayer@chromium.org [Thu, 28 Feb 2013 15:07:28 +0000 (15:07 +0000)]
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
rossberg@chromium.org [Thu, 28 Feb 2013 14:43:57 +0000 (14:43 +0000)]
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
mstarzinger@chromium.org [Thu, 28 Feb 2013 11:24:18 +0000 (11:24 +0000)]
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
yangguo@chromium.org [Thu, 28 Feb 2013 10:39:34 +0000 (10:39 +0000)]
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
yangguo@chromium.org [Wed, 27 Feb 2013 15:36:02 +0000 (15:36 +0000)]
Fix wrong test in r13766 (Insert conversion to string in string.replace).
R=ulan@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
12315130
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13770
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Wed, 27 Feb 2013 15:33:37 +0000 (15:33 +0000)]
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
verwaest@chromium.org [Wed, 27 Feb 2013 15:28:53 +0000 (15:28 +0000)]
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
mstarzinger@chromium.org [Wed, 27 Feb 2013 15:17:27 +0000 (15:17 +0000)]
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
yangguo@chromium.org [Wed, 27 Feb 2013 15:12:30 +0000 (15:12 +0000)]
Insert conversion to string in string.replace.
(missing since r13761)
R=ulan@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
12316158
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13766
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Wed, 27 Feb 2013 14:45:59 +0000 (14:45 +0000)]
Miscellaneous profile-driven Isolate plumbing.
While doing this, it became clear that quite a few functions should not be
static and should better live in various classes as instance methods, but I'll
leave this for a later CL.
BUG=v8:2487
Review URL: https://codereview.chromium.org/
12314152
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13765
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 27 Feb 2013 14:44:57 +0000 (14:44 +0000)]
Handle negative input in inlined Math.round on Intel CPUs.
R=jkummerow@chromium.org
BUG=v8:2451
Review URL: https://chromiumcodereview.appspot.com/
12342037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13764
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 27 Feb 2013 14:37:51 +0000 (14:37 +0000)]
Fix materialization of arguments objects with unknown values.
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.
R=svenpanne@chromium.org
BUG=chromium:163530
TEST=mjsunit/regress/regress-crbug-163530
Review URL: https://codereview.chromium.org/
12335132
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13763
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 27 Feb 2013 14:35:39 +0000 (14:35 +0000)]
Make message listener API backwards compatible.
R=ulan@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
12217066
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13762
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 27 Feb 2013 14:14:45 +0000 (14:14 +0000)]
Refactor implementation for String.prototype.replace.
R=ulan@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
12177015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13761
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Wed, 27 Feb 2013 13:38:29 +0000 (13:38 +0000)]
Increase acceptable boot up memory size in tests for parallel sweeper threads.
BUG=
Review URL: https://codereview.chromium.org/
12310168
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13760
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Wed, 27 Feb 2013 13:22:29 +0000 (13:22 +0000)]
Avoid TLS accesses in Object::Lookup and Object::GetPrototype.
Both methods were among the top causes for TLS accesses.
BUG=v8:2487
Review URL: https://codereview.chromium.org/
12319144
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13759
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Wed, 27 Feb 2013 12:59:52 +0000 (12:59 +0000)]
Shrinking of PagedSpace is done only by sweeper.
BUG=
Review URL: https://codereview.chromium.org/
12313131
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13758
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Wed, 27 Feb 2013 12:55:55 +0000 (12:55 +0000)]
Added system thread manager class.
BUG=
Review URL: https://codereview.chromium.org/
12207207
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13757
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Wed, 27 Feb 2013 12:33:24 +0000 (12:33 +0000)]
Added Isolate parameter to CodeStub::GetCode().
According to gprof, this was the #1 cause for TLS access during an Octane run.
BUG=v8:2487
Review URL: https://codereview.chromium.org/
12317141
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13756
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Wed, 27 Feb 2013 12:30:23 +0000 (12:30 +0000)]
Avoid HEAP macro in spaces.cc
This was another top cause for TLS access.
BUG=v8:2487
Review URL: https://codereview.chromium.org/
12340101
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13755
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Wed, 27 Feb 2013 12:17:50 +0000 (12:17 +0000)]
Normalized map copies should not share code caches
Review URL: https://codereview.chromium.org/
12328136
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13754
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Wed, 27 Feb 2013 12:14:21 +0000 (12:14 +0000)]
Disable regress-crbug-160010 for Android because it triggers OOM.
R=yangguo@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
12314150
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13753
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Wed, 27 Feb 2013 11:52:45 +0000 (11:52 +0000)]
ARM: Fix disassembly of some VFP instructions with condition codes
Previously, we would disassemble some VFP instructions like this:
vmla.f64eq d16, d17, d18
This patch moves the condition to the right place:
vmlaeq.f64 d16, d17, d18
Spotted by Rodolph Perfetta!
BUG=none
Review URL: https://chromiumcodereview.appspot.com/
12335129
Patch from Hans Wennborg <hans@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13752
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Wed, 27 Feb 2013 11:40:25 +0000 (11:40 +0000)]
Integer HConstants don't need to kDependsOnOsrEntries
Review URL: https://codereview.chromium.org/
12299009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13751
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Wed, 27 Feb 2013 10:50:37 +0000 (10:50 +0000)]
Clean up mjsunit/array-bounds-check-removal
Review URL: https://codereview.chromium.org/
12317142
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13750
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Wed, 27 Feb 2013 10:35:34 +0000 (10:35 +0000)]
Set default number of sweeper threads to two.
BUG=
Review URL: https://codereview.chromium.org/
12301020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13749
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Wed, 27 Feb 2013 10:24:40 +0000 (10:24 +0000)]
Emit VMLS for multiply-subtract on ARM.
BUG=none
Review URL: https://chromiumcodereview.appspot.com/
12319113
Patch from Hans Wennborg <hans@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13748
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 27 Feb 2013 09:28:05 +0000 (09:28 +0000)]
Prepare push to trunk. Now working on version 3.17.6.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
12342033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13741
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 26 Feb 2013 18:12:27 +0000 (18:12 +0000)]
Fix SSE2 scope being too broad in DoCmpIDAndBranch.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
12321141
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13740
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Tue, 26 Feb 2013 17:48:14 +0000 (17:48 +0000)]
MIPS: Combine %_SubString and %_StringCharAt.
Port r13700 (
587dc7c1)
BUG=
Review URL: https://codereview.chromium.org/
12310087
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13739
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
adamk@chromium.org [Tue, 26 Feb 2013 17:20:21 +0000 (17:20 +0000)]
Remove duplication and unnecessary HandleScope from HasElement helper functions
Review URL: https://codereview.chromium.org/
12328064
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13736
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Tue, 26 Feb 2013 16:15:32 +0000 (16:15 +0000)]
Send SIGPROF signals on the profiler event processor thread
The patch is based on the previous one that was rolled out: https://code.google.com/p/v8/source/detail?r=12985
On Linux sampling for CPU profiler is initiated on the profiler event processor thread, other platforms to follow.
CPU profiler continues to use SamplingCircularQueue, we will replave it with a single sample buffer when Mac and Win ports support profiling on the event processing thread.
When --prof option is specified profiling is initiated either on the profiler event processor thread if CPU profiler is on or on the SignalSender thread as it used to if no CPU profiles are being collected.
ProfilerEventsProcessor::ProcessEventsAndDoSample now waits in a tight loop, processing collected samples until sampling interval expires. To save CPU resources I'm planning to change that to use nanosleep as only one sample is expected in the queue at any point.
BUG=v8:2364
Review URL: https://codereview.chromium.org/
12321046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13735
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Tue, 26 Feb 2013 15:41:04 +0000 (15:41 +0000)]
[Android] Fix v8_shell compilation for Android component build.
r12883 was in complete because the library was included for host and
target. Restrict to just target.
BUG=chromium:158821
Review URL: https://chromiumcodereview.appspot.com/
12314118
Patch from Yaron Friedman <yfriedman@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13734
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Tue, 26 Feb 2013 14:24:16 +0000 (14:24 +0000)]
Visit stored context when iterating stack for optimized stub.
BUG=v8:2509
TEST=mjsunit/regress/regress-1125,NavierStokes fails on Nexus 10.
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
12314124
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13733
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 26 Feb 2013 13:08:08 +0000 (13:08 +0000)]
Compile FastCloneShallowObjectStub using Crankshaft.
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.
R=danno@chromium.org
Review URL: https://codereview.chromium.org/
12220074
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13732
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Tue, 26 Feb 2013 12:27:55 +0000 (12:27 +0000)]
Use boolean instead of Atomic32 for is_profiling_ flag
The field is only accessed on the JS thread so it can be converted into bool.
BUG=None
Review URL: https://codereview.chromium.org/
12340052
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13731
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dcarney@chromium.org [Tue, 26 Feb 2013 11:02:39 +0000 (11:02 +0000)]
Fix overflow in WriteQuoteJsonString and SlowQuoteJsonString
R=yangguo@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
12326120
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13730
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 26 Feb 2013 10:49:59 +0000 (10:49 +0000)]
Fix bogus regexp test.
The reason this test fails on ARM hardware but not on Intel hardware
(including the ARM simulator) is this:
'\xa0' is interpreted as a negative signed byte number. Casting it to
uc16 sign-extends it. The resulting string does not fit into a one-byte
string, thus a two-byte string is allocated.
For some reason the code compiled for ARM does not sign-extend, and 0xa0
fits into a one-byte string. Thus a one-byte string is allocated. Trying
to cast it to two-byte causes assertion failure.
BUG=
Review URL: https://chromiumcodereview.appspot.com/
12319111
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13729
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 26 Feb 2013 10:46:00 +0000 (10:46 +0000)]
Make __proto__ a foreign callback on Object.prototype.
This moves the __proto__ property to Object.prototype and turns it into
a callback property actually present in the descriptor array as opposed
to a hack in the properties lookup. For now it still is a "magic" data
property using foreign callbacks and not an accessor property visible to
JavaScript.
The second effect of this change is that JSON.parse() no longer treats
the __proto__ property specially, it will be defined as any other data
property. Note that object literals still have their special handling.
R=rossberg@chromium.org
BUG=v8:621,v8:1949,v8:2441
TEST=mjsunit,cctest,test262
Review URL: https://codereview.chromium.org/
12212011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13728
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 26 Feb 2013 09:53:07 +0000 (09:53 +0000)]
Refactor RegExpStub to check lazily.
R=ulan@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
12210143
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13727
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
adamk@chromium.org [Mon, 25 Feb 2013 19:44:21 +0000 (19:44 +0000)]
Move extensibility check to the top of Object.isFrozen/Object.isSealed
This speeds up isFrozen/isSealed checks on "normal" objects without
slowing down checks on frozen/sealed objects.
Though this ordering is not what ES5 specifies, the difference is not
observable (especially since the code bails out if the passed-in object
is a proxy).
Review URL: https://codereview.chromium.org/
12340008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13726
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
adamk@chromium.org [Mon, 25 Feb 2013 18:58:47 +0000 (18:58 +0000)]
Speed up non-interceptor case of Object.getOwnPropertyNames
When there are interceptors on an object, it's possible to
end up with duplicate property names. But when all the names
are provided by v8, a collision is not possible, so we can
fast-path that case by not de-duping.
Also added better test coverage for interceptor API.
Review URL: https://codereview.chromium.org/
12314081
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13725
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Mon, 25 Feb 2013 16:46:54 +0000 (16:46 +0000)]
Debugger: ScopeMirror has N^2 algorithm when building closure mirrors. (take 2).
Review URL: https://chromiumcodereview.appspot.com/
12326103
Patch from Pavel Feldman <pfeldman@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13724
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Mon, 25 Feb 2013 16:39:03 +0000 (16:39 +0000)]
MIPS: Add android build support for mips in gyp.
Added mipsel target in gyp and makefiles used for android build.
BUG=
Review URL: https://codereview.chromium.org/
12248014
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13723
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Mon, 25 Feb 2013 16:15:37 +0000 (16:15 +0000)]
ARM: Make DoStoreKeyedFixedDoubleArray faster; don't allow conditional Vmov
This patch makes us generate faster code for DoStoreKeyedFixedDoubleArray,
by using a branch rather than a conditional Vmov instruction.
Conditional VFP instructions are not a great idea in general, and it was
especially bad in this case because Vmov expands to a bunch of instructions.
For this reason, the patch also removes the 'cond' parameter from Vmov.
Thanks to Rodolph for pointing me to this!
BUG=none
Review URL: https://chromiumcodereview.appspot.com/
12316096
Patch from Hans Wennborg <hans@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13722
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
loislo@chromium.org [Mon, 25 Feb 2013 16:09:57 +0000 (16:09 +0000)]
Fix for HeapSnapshotAddressReuse test case.
BUG=V8:2189
TEST=HeapSnapshotAddressReuse
Review URL: https://chromiumcodereview.appspot.com/
12320039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13721
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Mon, 25 Feb 2013 15:47:52 +0000 (15:47 +0000)]
Prepare push to trunk. Now working on version 3.17.5.
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
12315080
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13718
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Mon, 25 Feb 2013 14:46:09 +0000 (14:46 +0000)]
Made Isolate a mandatory parameter for everything Handle-related.
Unified parameter order of CreateHandle with the rest of v8 on the way. A few
Isolate::Current()s had to be introduced, which is not nice, and not every place
will win a beauty contest, but we can clean this up later easily in smaller steps.
Review URL: https://codereview.chromium.org/
12300018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13717
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Mon, 25 Feb 2013 14:03:09 +0000 (14:03 +0000)]
Fix bugs in generating and printing of Crankshaft stubs
Review URL: https://codereview.chromium.org/
12317044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13716
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Mon, 25 Feb 2013 12:27:28 +0000 (12:27 +0000)]
Zap holes in dependent code array after deoptimizing a code group.
BUG=crash on GC stress builder
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
12315077
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13715
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Mon, 25 Feb 2013 11:56:37 +0000 (11:56 +0000)]
Revert r13699 "Debugger: ScopeMirror has N^2 algorithm when building closure mirrors." because of WebKit crashes.
BUG=v8:2554
R=verwaest@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
12321108
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13714
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Thu, 21 Feb 2013 14:04:19 +0000 (14:04 +0000)]
Prepare push to trunk. Now working on version 3.17.4.
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
12338003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13711
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Thu, 21 Feb 2013 14:02:52 +0000 (14:02 +0000)]
Forced inlining of some GC-related methods.
The selection of methods were driven by GCC's -Winline plus some benchmarking.
On ia32, the additional amount of code is roughly 63kB (= 0.07% of Chrome ;-).
BUG=v8:1607
Review URL: https://codereview.chromium.org/
12338002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13710
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
loislo@chromium.org [Thu, 21 Feb 2013 13:16:17 +0000 (13:16 +0000)]
Heap snapshot doesn't detect the fact that an old object was overriden by new one.
It is a test only patch. I have no solution yet.
BUG=V8:2189
TEST=
Review URL: https://chromiumcodereview.appspot.com/
12321042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13709
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Thu, 21 Feb 2013 13:12:12 +0000 (13:12 +0000)]
Release evacuation candidates after parallel sweeper threads completed.
BUG=
Review URL: https://codereview.chromium.org/
12082101
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13708
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Thu, 21 Feb 2013 12:17:48 +0000 (12:17 +0000)]
Fix windows build warnings.
R=jkummerow@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
12321047
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13707
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
loislo@chromium.org [Thu, 21 Feb 2013 12:10:40 +0000 (12:10 +0000)]
Split profile-generator
CPU profile code and Heap Snapshot code are completely unrelated to each other.
So we can extract heap snapshot part into separate file.
No functional changes.
BUG=none
TEST=none
Review URL: https://chromiumcodereview.appspot.com/
12314027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13706
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Thu, 21 Feb 2013 11:40:37 +0000 (11:40 +0000)]
Constant fold math and string operations.
R=jkummerow@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
12315005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13705
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Thu, 21 Feb 2013 11:29:51 +0000 (11:29 +0000)]
Avoid creating unnecessary branches in Hydrogen
Review URL: https://codereview.chromium.org/
12281019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13704
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmassi@chromium.org [Thu, 21 Feb 2013 10:22:31 +0000 (10:22 +0000)]
Fixed numeric relations on HPhi instances.
Review URL: https://codereview.chromium.org/
12301027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13703
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Thu, 21 Feb 2013 09:49:23 +0000 (09:49 +0000)]
Handlify escape and unescape.
R=mvstanton@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
12326015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13702
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmassi@chromium.org [Thu, 21 Feb 2013 09:09:01 +0000 (09:09 +0000)]
Also check if the length ia a smi in a HBoundsCheck.
Review URL: https://codereview.chromium.org/
12301026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13701
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 20 Feb 2013 14:29:40 +0000 (14:29 +0000)]
Combine %_SubString and %_StringCharAt.
R=ulan@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
12217071
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13700
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 20 Feb 2013 14:12:31 +0000 (14:12 +0000)]
Debugger: ScopeMirror has N^2 algorithm when building closure mirrors.
R=yangguo@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
12326009
Patch from Pavel Feldman <pfeldman@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13699
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 20 Feb 2013 13:12:26 +0000 (13:12 +0000)]
Ensure deopt entries have no relocation information.
R=ulan@chromium.org
BUG=chromium:176943
Review URL: https://codereview.chromium.org/
12314012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13698
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Wed, 20 Feb 2013 11:49:54 +0000 (11:49 +0000)]
Remove prototype checks for leaf maps in optimized code.
Review URL: https://chromiumcodereview.appspot.com/
12225099
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13697
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmassi@chromium.org [Tue, 19 Feb 2013 16:32:02 +0000 (16:32 +0000)]
Remove purely informative definitions from the graph.
Review URL: https://codereview.chromium.org/
12282033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13696
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Tue, 19 Feb 2013 15:22:12 +0000 (15:22 +0000)]
MIPS: Fix mips gyp build for chromium.
Our planned CL for the Chromium build system passes the toolchain
vars though the Makefiles, so that we do not depend on $CXX, etc.,
in the environment.
That causes a problem with deriving the 'm32flag' in v8 gyp.
This patch lets us build with or without the toolchain vars in
the environment.
BUG=
Review URL: https://codereview.chromium.org/
12218113
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13695
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmassi@chromium.org [Tue, 19 Feb 2013 14:24:25 +0000 (14:24 +0000)]
Fix HCheckSmiOrInt32 fake observed representation.
Review URL: https://codereview.chromium.org/
12259008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13694
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 19 Feb 2013 13:54:30 +0000 (13:54 +0000)]
Prepare push to trunk. Now working on version 3.17.3.
R=jkummerow@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
12302025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13691
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Tue, 19 Feb 2013 12:37:19 +0000 (12:37 +0000)]
Remove bogus check for TOP register in deoptimizer.
R=danno@chromium.org
BUG=176943
Review URL: https://chromiumcodereview.appspot.com/
12300020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13690
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Tue, 19 Feb 2013 11:59:48 +0000 (11:59 +0000)]
Precise GC time measurements.
BUG=
Review URL: https://codereview.chromium.org/
12209090
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13689
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 19 Feb 2013 09:42:00 +0000 (09:42 +0000)]
Cleanup code-stub interface descriptor initialization.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
12302017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13688
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 19 Feb 2013 09:01:25 +0000 (09:01 +0000)]
Update grokdump to reflect current heap layout.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
12303009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13687
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Mon, 18 Feb 2013 18:06:12 +0000 (18:06 +0000)]
Improve the JitCodeEventHandler API to add support for line position information.
This includes:
* adding the CODE_ADD_LINE_POS_INFO, CODE_START_LINE_INFO_RECORDING, CODE_END_LINE_INFO_RECORDING event and the corresponding functionality.
* adding the JITCodeLineInfo struct to record the code line info. I added this definition because Danno mentioned that "we'd like to cleanup and decouple the external debugging functionality"
* some other small changes.
Review URL: https://chromiumcodereview.appspot.com/
12223027
Patch from Chunyang Dai <chunyang.dai@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13686
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Mon, 18 Feb 2013 17:08:19 +0000 (17:08 +0000)]
MIPS: Split AccessorInfo into DeclaredAccessorInfo and ExecutableAccessorInfo
Port r13649 (
0a9e0bf0)
BUG=
Review URL: https://codereview.chromium.org/
12253005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13685
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 18 Feb 2013 13:01:00 +0000 (13:01 +0000)]
Fix bogus assertion.
R=dcarney@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
12296008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13684
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 18 Feb 2013 12:22:04 +0000 (12:22 +0000)]
Fix bogus assertion.
R=dcarney@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
12303006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13683
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 18 Feb 2013 10:27:46 +0000 (10:27 +0000)]
Enable Latin-1
R=yangguo@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
12039038
Patch from Dan Carney <dcarney@google.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13682
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 18 Feb 2013 10:25:21 +0000 (10:25 +0000)]
Revert part of r13678 (InternalPackedArray).
R=mstarzinger@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
12304004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13681
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Mon, 18 Feb 2013 10:20:58 +0000 (10:20 +0000)]
Change and disable global handle zapping.
R=yangguo@chromium.org
BUG=chromium:176056
TEST=webkit:storage/indexeddb/create-and-remove-object-store.html
Review URL: https://codereview.chromium.org/
12300009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13680
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 15 Feb 2013 16:21:03 +0000 (16:21 +0000)]
Remove wrong uses of InternalPackedArray.
R=jkummerow@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
12284002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13679
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 15 Feb 2013 15:20:05 +0000 (15:20 +0000)]
Introduce InternalPackedArray.
R=jkummerow@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
12255049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13678
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Fri, 15 Feb 2013 13:01:28 +0000 (13:01 +0000)]
ARM: Remove unused flag in lithium-codegen.
This flag was added by commit r13585.
BUG=
Review URL: https://codereview.chromium.org/
12258013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13677
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Fri, 15 Feb 2013 12:38:59 +0000 (12:38 +0000)]
Determine number of available cores on all platforms.
BUG=
Review URL: https://codereview.chromium.org/
12089107
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13676
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Fri, 15 Feb 2013 12:18:24 +0000 (12:18 +0000)]
Add zapping of disposed persistent handles.
R=svenpanne@chromium.org
BUG=chromium:176056
Review URL: https://codereview.chromium.org/
12260060
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13675
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Fri, 15 Feb 2013 09:27:10 +0000 (09:27 +0000)]
Make the Isolate parameter mandatory for internal HandleScopes.
Improved Frames and their iterators on the way, too.
BUG=v8:2487
Review URL: https://codereview.chromium.org/
12254007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13674
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Thu, 14 Feb 2013 15:12:49 +0000 (15:12 +0000)]
Fix f.apply() optimization when declared arguments are mutated.
R=verwaest@chromium.org
BUG=v8:2539
TEST=mjsunit/regress/regress-2539
Review URL: https://codereview.chromium.org/
12255033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13673
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00