alph@chromium.org [Tue, 16 Jul 2013 12:48:34 +0000 (12:48 +0000)]
Make TransitionArray internal references originate from TA in heap snapshot.
TransitionArray references were added to the TA's map object instead
of TA itself.
R=verwaest@chromium.org, yurys@chromium.org
Review URL: https://codereview.chromium.org/
19265002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15692
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Tue, 16 Jul 2013 12:14:16 +0000 (12:14 +0000)]
Added mark bit cell iterator.
BUG=
R=mstarzinger@chromium.org, titzer@chromium.org
Review URL: https://codereview.chromium.org/
19182002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15691
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Tue, 16 Jul 2013 11:21:48 +0000 (11:21 +0000)]
Extend expectations for slow test cases on the V8/blink trunk builder.
The second test has an existing expectation that is extended.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
19299004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15690
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Tue, 16 Jul 2013 09:34:09 +0000 (09:34 +0000)]
Fix cctest/test-cpu-profiler/FunctionApplySample fakiness on ARM simulator
For STM and LDM instuctions with writeback update base register only after all registers have been saved/loaded. This guarantees that invariant sp <= fp is always true when iterating stack in the Sampler.
BUG=v8:2782
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
19243002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15687
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Tue, 16 Jul 2013 08:54:41 +0000 (08:54 +0000)]
Added tracing information to the case when allocation folding cannot be performed.
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
19290008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15686
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 16 Jul 2013 08:37:49 +0000 (08:37 +0000)]
Minor cleanup of GVN state pushing.
R=hpayer@chromium.org, hpayer@google.com
Review URL: https://codereview.chromium.org/
19235010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15685
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Tue, 16 Jul 2013 08:11:30 +0000 (08:11 +0000)]
Throw if first argument to TypedArray.set is a number.
Further refinement to semantics that I have missed in previous change.
Both Blink and Firefox are permissive with arguments to .set method.
However, when first argument to "set" is a number, all implementations
throw, so that users know that
a.set(0,27)
does not assign 27 to 0th element of a, not 0 to 27th element of a.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
19210002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15684
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Tue, 16 Jul 2013 07:07:04 +0000 (07:07 +0000)]
Use BitVector instead of handcrafted SparseSet.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
19272011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15683
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
adamk@chromium.org [Mon, 15 Jul 2013 22:16:30 +0000 (22:16 +0000)]
[Object.observe] Lazily allocate callbackInfo structure
This patch allows callbacks to lazily allocate the InternalArray which is used to store pendingChangeRecords. This moves some of the expense of observation to the case where changes actually occurred.
When there are no pendingChangeRecords, the callbackInfo structure is a number which is the callbacks priority. Whenever a changeRecord is enqueued to the callback, it "normalizes" to be an InternalArray with a priority property. Immediately before its changeRecords are delivered, it returns to its optimized state.
---
Note: Naming confusion resolved:
This patch corrects some naming confusion in object-observe.js. Previously, we used the terms "callback" and "observer" to mean roughly the same thing, and overloaded the term "observer" to be both the callback itself and the *registration* on a object to observe (which now includes an accept map).
This patch resolves this confusion:
"object" (objectInfo, objectInfoMap): This refers to the observed object and its structures
"callback" (callbackInfo, callbackInfoMap): This refers to the callback to whom change records may be delivered
"observer" (objectInfo.changeObservers): This refers to a registration to observe a given object by a given callback with the specified accept list.
---
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/
19132002
Patch from Rafael Weinstein <rafaelw@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15682
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Mon, 15 Jul 2013 18:47:40 +0000 (18:47 +0000)]
Make deopt testing compatible with runtime optimization status queries.
When deopt testing is activated, a new status code will be returned by optimization status queries (status=maybe deopted).
This will make those tests work that test for 'not status=no', when performing deopt testing.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
19184002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15681
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Mon, 15 Jul 2013 16:58:20 +0000 (16:58 +0000)]
Revert r15649 and fix for loop dominator propagation in GVN.
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
19233002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15680
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Mon, 15 Jul 2013 16:56:32 +0000 (16:56 +0000)]
Disable compiled_transitions by default.
This was accidently re-enabled with r15674.
TBR=danno@chromium.org
Review URL: https://codereview.chromium.org/
19229003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15679
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Mon, 15 Jul 2013 16:33:06 +0000 (16:33 +0000)]
Make optimizations for debug configurable with compile flag.
To turn on optimizations for debug when building standalone, a compiler flag can be used:
make optdebug=on
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
19164003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15678
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jochen@chromium.org [Mon, 15 Jul 2013 15:41:21 +0000 (15:41 +0000)]
Fix gyp_v8 to work with use_system_icu=1
If you want to use the system icu library, you'll need to use gyp_v8 (as
opposed to the standalone Makefiles)
BUG=v8:2475
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
19195003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15677
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Mon, 15 Jul 2013 15:23:52 +0000 (15:23 +0000)]
Revert 15635: Turn ElementsTransitionAndStore stub into a HydrogenCodeStub
Causes breakage in crypto-(sha1|md5) SunSpider
TBR=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
19214002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15674
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Mon, 15 Jul 2013 15:12:16 +0000 (15:12 +0000)]
Reland deprecation of HAllocateObject in favor of HAllocate.
This essentially relands r14930 and r14935 with adaptions to the current
code base. It models the instantiation of an implicit receiver for
CallNew nodes in hydrogen using HAllocate together with generic stores
instead of one specialized HAllocateObject instruction, hence creating a
single choking point for inlined allocation in optimized code.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/
19207002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15673
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Mon, 15 Jul 2013 14:12:20 +0000 (14:12 +0000)]
Fix sloppy-mode 'const' under Harmony flag.
R=yangguo@chromium.org
BUG=173361
Review URL: https://codereview.chromium.org/
19199002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15670
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Mon, 15 Jul 2013 13:36:36 +0000 (13:36 +0000)]
Fix --deopt-every-n-times flag
(was broken since r15640)
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/
19188002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15669
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Mon, 15 Jul 2013 12:24:13 +0000 (12:24 +0000)]
Android lacks support for cxxabi.h.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
19153004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15666
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Mon, 15 Jul 2013 11:41:41 +0000 (11:41 +0000)]
Use internal array as API function cache.
R=yangguo@chromium.org
BUG=chromium:260106
TEST=cctest/test-api/Regress260106
Review URL: https://codereview.chromium.org/
19159003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15665
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
loislo@chromium.org [Mon, 15 Jul 2013 11:35:39 +0000 (11:35 +0000)]
Current logger code is messy. It mixes together
four or even five different logging destinations.
I think we can extract the code related to a destination
into a separate class, do the same for the all destinations
and have four classes with more or less simple common logging
API
BUG=none
Meta-bug= https://code.google.com/p/chromium/issues/detail?id=260203
R=yangguo@chromium.org, yurys@chromium.org
Review URL: https://codereview.chromium.org/
18259024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15664
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Mon, 15 Jul 2013 09:53:46 +0000 (09:53 +0000)]
Fix possible stack overflow in range analysis.
Avoid the implicit recursion for range analysis, using a loop with
an explicit stack instead.
BUG=chromium:259452
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/
19145002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15661
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Mon, 15 Jul 2013 09:53:00 +0000 (09:53 +0000)]
Turn propagate deoptimizing mark into a proper HPhase.
Also turn the recursion on the domination chain into a loop with
an explicit stack, to avoid possible stack overflow here.
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/
19150002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15660
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Mon, 15 Jul 2013 09:32:15 +0000 (09:32 +0000)]
Use corerct conversions for DataView accessors.
We now use DoubleTo(U)Int32 that follows ES specification.
R=titzer@chromium.org,rossberg@chromium.org
Review URL: https://codereview.chromium.org/
18703007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15659
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Mon, 15 Jul 2013 08:00:10 +0000 (08:00 +0000)]
Prepare push to trunk. Now working on version 3.20.6.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
19154003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15656
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Mon, 15 Jul 2013 07:43:46 +0000 (07:43 +0000)]
This does not match ES6 spec but is the behavior in both Firefox and WebKit/Blink.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
19086003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15655
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Mon, 15 Jul 2013 07:41:18 +0000 (07:41 +0000)]
Cleanup leftover definitions in HGraph.
R=danno@chromium.org
Review URL: https://codereview.chromium.org/
19154002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15654
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Sun, 14 Jul 2013 22:03:46 +0000 (22:03 +0000)]
Don't use StoreIC_ArrayLength on frozen arrays
The code previously assumed that an array with fast properties must have
a writable length property. But Object.freeze() now exposes a way to make
length read-only without moving the object into slow mode. This patch
simply adds a !is_frozen check to the IC code. Any future optimizations
to attribute-setting on JSArrays will need to make similar accomodations.
R=danno
BUG=v8:2711,259548
Review URL: https://chromiumcodereview.appspot.com/
19115002
Patch from Adam Klein <adamk@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15651
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
adamk@chromium.org [Sat, 13 Jul 2013 00:20:40 +0000 (00:20 +0000)]
Add map transition for observed objects
This patch enables objects to undergo a single transition when they become observed, avoiding the need to create a new map for every observed objects.
Observed objects which become unobserved does not cause another map transition and unobserved does not clear the observed bit on the map. The unobserved object.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
18221006
Patch from Rafael Weinstein <rafaelw@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15650
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Fri, 12 Jul 2013 15:06:50 +0000 (15:06 +0000)]
Collect side effects on paths to dominated block including the dominator.
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/
18254008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15649
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Fri, 12 Jul 2013 13:45:41 +0000 (13:45 +0000)]
Fix windows build breakage due to 15645
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
18915009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15648
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
olivf@chromium.org [Fri, 12 Jul 2013 13:05:39 +0000 (13:05 +0000)]
Fix number tag for no-sse2.
FCmp() pops 2 arguments from the stack...
BUG=
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/
18254007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15647
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Fri, 12 Jul 2013 12:34:11 +0000 (12:34 +0000)]
Fix LGapResolver::EmitMove for X64 when the dst is a double register and src is a constant
R=danno@chromium.org
Review URL: https://codereview.chromium.org/
18301015
Patch from Haitao Feng <haitao.feng@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15646
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Fri, 12 Jul 2013 12:28:32 +0000 (12:28 +0000)]
Implement truncated d-to-i as a stub on x86
- Added a general DoubleToIStub so that it's possible to extend to other platforms and non-truncating case.
- This version handles all cases of truncation (previous code deopted in some cases) and all source/destination register combinations without clobbering any temps.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
18612005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15645
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Fri, 12 Jul 2013 12:02:26 +0000 (12:02 +0000)]
Add a common templatized implementation of OS::DumpBacktrace() and OS::StackWalk() to platform-posix.h and use it for Linux, Mac OS X and FreeBSD.
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/
18431004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15644
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 12 Jul 2013 11:42:07 +0000 (11:42 +0000)]
Check for scheduled exceptions after a failed-access-check callback.
R=verwaest@chromium.org
BUG=v8:2524
Review URL: https://codereview.chromium.org/
18298012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15643
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 12 Jul 2013 10:11:18 +0000 (10:11 +0000)]
Test case for missing access checks in object observe.
BUG=v8:2778
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
18794003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15642
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 12 Jul 2013 10:04:35 +0000 (10:04 +0000)]
Fall back to generic on access checks in JSON.stringify.
BUG=259366
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
18225006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15641
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
titzer@chromium.org [Fri, 12 Jul 2013 07:26:00 +0000 (07:26 +0000)]
Remove special-casing of EAGER and SOFT deoptimization calling conventions, allowing calling address to always be available to deoptimization entries.
BUG=
Review URL: https://codereview.chromium.org/
18356008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15640
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
olivf@chromium.org [Thu, 11 Jul 2013 17:20:57 +0000 (17:20 +0000)]
Encapsulate compare nil ic_state.
BUG=
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/
18602003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15639
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
titzer@chromium.org [Thu, 11 Jul 2013 16:45:58 +0000 (16:45 +0000)]
Refactor JavaScriptFrame::function() to return a JSFunction* and remove associated casts.
BUG=
Review URL: https://codereview.chromium.org/
18404009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15638
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Thu, 11 Jul 2013 16:25:58 +0000 (16:25 +0000)]
Fix build breakage after 15630
Use EXTRA_CALL_FRAME rather than NO_EXTRA_FRAME in
ElementsTransitionAndStoreIC_Miss.
TBR=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
18812005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15637
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Thu, 11 Jul 2013 15:29:02 +0000 (15:29 +0000)]
Use filler maps for folded allocations when verify heap is turned on.
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
18863011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15636
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Thu, 11 Jul 2013 14:29:00 +0000 (14:29 +0000)]
Turn ElementsTransitionAndStore stub into a HydrogenCodeStub.
R=danno@chromium.org, mvstanton@chromium.org
Review URL: https://codereview.chromium.org/
18881004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15635
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Thu, 11 Jul 2013 14:26:01 +0000 (14:26 +0000)]
Bogus assert needs to be removed on non-ia32 platforms
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
18384007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15634
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 11 Jul 2013 14:21:14 +0000 (14:21 +0000)]
Support grow-stub by >1 if the target is holey.
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
18484006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15633
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
titzer@chromium.org [Thu, 11 Jul 2013 14:17:56 +0000 (14:17 +0000)]
Added %NeverOptimize runtime call that can disable optimizations for a method for tests.
BUG=
Review URL: https://codereview.chromium.org/
18214005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15632
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Thu, 11 Jul 2013 13:53:54 +0000 (13:53 +0000)]
Remove filler map when folding allocations and turn on allocation folding.
BUG=
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/
18384004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15631
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Thu, 11 Jul 2013 13:53:06 +0000 (13:53 +0000)]
Enable compiled transitions by default.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/
19005005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15630
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Thu, 11 Jul 2013 13:08:36 +0000 (13:08 +0000)]
AllocationSites: when updating allocation site transition information,
be careful to merge feedback appropriately. For example, one array may
have gone holey, and then another allocated at the same place instead
went DOUBLE but remained packed. In this case the ElementsKind
ultimately stored in the AllocationSite should be HOLEY_DOUBLE.
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
18531007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15629
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
olivf@chromium.org [Thu, 11 Jul 2013 13:07:04 +0000 (13:07 +0000)]
Implement X87 stack tracking and x87 multiplication
BUG=
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/
18041003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15628
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Thu, 11 Jul 2013 12:03:43 +0000 (12:03 +0000)]
Turn array index dehoisting into a proper HPhase.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/
18562009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15627
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 11 Jul 2013 11:54:43 +0000 (11:54 +0000)]
Keep IC monomorphic on transition, even if previously not STANDARD_STORE.
BUG=
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
18034023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15626
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Thu, 11 Jul 2013 11:47:05 +0000 (11:47 +0000)]
Introduce type Bounds record
Refactoring in anticipation of handling variable bounds.
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
18415005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15625
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Thu, 11 Jul 2013 11:41:33 +0000 (11:41 +0000)]
Allocation folding integrated into the GVN phase.
BUG=
R=mstarzinger@chromium.org, titzer@chromium.org
Review URL: https://codereview.chromium.org/
18596005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15624
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Thu, 11 Jul 2013 11:37:08 +0000 (11:37 +0000)]
Cleanup common POSIX functionality.
The Mutex implementation is the same for all 6 POSIX platformats, just
like of them use the sched_yield() to implement Thread::YieldCPU().
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/
18335008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15623
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jochen@chromium.org [Thu, 11 Jul 2013 11:34:46 +0000 (11:34 +0000)]
Roll ICU to 210659
See http://crrev.com/210659 for the actual change.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
18507003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15622
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Thu, 11 Jul 2013 11:24:38 +0000 (11:24 +0000)]
Perform new space evacuation based on marking bits.
BUG=
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/
18531004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15621
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Thu, 11 Jul 2013 11:20:54 +0000 (11:20 +0000)]
This adds the following array iterator methods:
Array.prototype.values
Array.prototype.keys
Array.prototype.entries
These all return an Array Iterator object which has a next
method.
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-15.4.5
BUG=v8:2722
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/
16848004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15620
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jochen@chromium.org [Thu, 11 Jul 2013 11:01:00 +0000 (11:01 +0000)]
Only depend on icudata on windows.
On windows, this triggers the dll to be copied to the correct
locations. On other platforms, icudata is compiled in, and depending on
it results in an invalid linker archive ordering.
BUG=v8:2745
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
18734003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15619
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jochen@chromium.org [Thu, 11 Jul 2013 09:58:54 +0000 (09:58 +0000)]
Move InitializeICU() to the V8 API and use it.
I can't get rid of the enable_i18n flag yet, as we need to be able to
turn off all extensions for creating the snapshot.
BUG=v8:2745
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
18860007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15618
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Thu, 11 Jul 2013 09:39:22 +0000 (09:39 +0000)]
A bug in AllocationSite::GetMode(from, to) meant that we didn't update
boilerplates for SMI to SMI_HOLEY transitions.
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
18917003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15617
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Thu, 11 Jul 2013 09:17:03 +0000 (09:17 +0000)]
Implemented lazy sweeping of new space.
BUG=
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/
18998004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15616
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Thu, 11 Jul 2013 08:21:50 +0000 (08:21 +0000)]
Turn canonicalization into a proper HPhase.
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/
18758003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15613
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 11 Jul 2013 07:52:57 +0000 (07:52 +0000)]
Fix StoreIsUninitialized, and add Soft Deopt if keyed store is uninitialized.
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
18526005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15612
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Thu, 11 Jul 2013 07:39:38 +0000 (07:39 +0000)]
Set mime-type of test log file to text/plain.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15611
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
adamk@chromium.org [Wed, 10 Jul 2013 19:03:58 +0000 (19:03 +0000)]
HasRealIndexedProperty doesn't work on JSGlobalProxy
HasRealIndexedProperty didn't unwrap the JSGlobalProxy and therefore always
returned false.
BUG=257748
R=adamk@chromium.org, rossberg@chromium.org
Review URL: https://codereview.chromium.org/
18402007
Patch from Adam Barth <abarth@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15610
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Wed, 10 Jul 2013 16:34:28 +0000 (16:34 +0000)]
Turn merge removable simulates into a proper HPhase.
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/
18258004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15609
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Wed, 10 Jul 2013 16:21:17 +0000 (16:21 +0000)]
Suppress array bounds check for nacl build.
The NaCl and the ARM builder started failing to compile at revision 15593 with spurious array bounds warnings.
The ARM builder will be fixed by updating the cross-compiler version. Since the nacl compiler comes with the nacl toolchain, the warning will be suppressed for that builder.
See also: http://gcc.gnu.org/bugzilla/buglist.cgi?quicksearch=array%20subscript%20is%20above%20array%20bounds
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
19009003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15608
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Wed, 10 Jul 2013 16:18:59 +0000 (16:18 +0000)]
Change DataView accessors behavior for insufficient args.
ES6 spec for DataView is not fully finished, but Blink, WebKit and
Firefox agree in that for DataView use of getters/setters with no
arguments should result in exceptions, while undefined offset argument
is the same as zero.
R=bmeurer@chromium.org, rossberg@chromium.org
Review URL: https://codereview.chromium.org/
18313007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15607
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Wed, 10 Jul 2013 16:06:30 +0000 (16:06 +0000)]
Flag rewriting an IC while writing to a global constant property as a failure caused by the constant property turning mutable.
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
19006002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15606
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
olivf@chromium.org [Wed, 10 Jul 2013 16:03:00 +0000 (16:03 +0000)]
Fix unary op type feedback.
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/
18526003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15605
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Wed, 10 Jul 2013 16:00:48 +0000 (16:00 +0000)]
Revert "Allow NORMAL ICs to go polymorphic."
BUG=
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
18881006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15604
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
olivf@chromium.org [Wed, 10 Jul 2013 16:00:08 +0000 (16:00 +0000)]
Use static_cast instead of reinterpret_cast
BUG=
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/
18899003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15603
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rodolph.perfetta@gmail.com [Wed, 10 Jul 2013 15:32:39 +0000 (15:32 +0000)]
ARM: Implement memcpy using NEON.
Add support for a few NEON and ARM SIMD instructions and use them for various
memcpy operations.
BUG=none
TEST=none
Review URL: https://chromiumcodereview.appspot.com/
17858002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15602
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Wed, 10 Jul 2013 15:26:38 +0000 (15:26 +0000)]
MIPS: Replace custom builtin invocation instructions by a generic version.
Port r15582 (585c121)
BUG=
Review URL: https://codereview.chromium.org/
18881005
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15601
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Wed, 10 Jul 2013 15:24:15 +0000 (15:24 +0000)]
Allow NORMAL ICs to go polymorphic.
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
19005002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15600
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Wed, 10 Jul 2013 15:21:43 +0000 (15:21 +0000)]
Enable debug builds with some optimizations turned on.
A new gyp variable 'v8_full_debug' can be set to 0 in order to turn on optimization level 1 for debug builds. With the default (=1), it builds in debug mode like before.
The intention is to run some bots on the waterfall with this configuration. Tests have a x5 speed-up like that.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
18516012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15599
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Wed, 10 Jul 2013 14:49:05 +0000 (14:49 +0000)]
Prepare push to trunk. Now working on version 3.20.5.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
18978006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15596
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Wed, 10 Jul 2013 14:08:19 +0000 (14:08 +0000)]
Refactor compute minus zero checks into a proper HPhase.
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/
18666006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15595
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Wed, 10 Jul 2013 13:24:51 +0000 (13:24 +0000)]
Insert HTrapAllocationMemento only when required for TransitionElementsKindStub.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/
18292018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15594
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Wed, 10 Jul 2013 13:05:41 +0000 (13:05 +0000)]
Turn polymorphic calls using the same prototype monomorphic.
R=mvstanton@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
18918002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15593
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
loislo@chromium.org [Wed, 10 Jul 2013 12:56:58 +0000 (12:56 +0000)]
Improve test-cpu-profiler.cc tests stability
The tests sometimes fail on bots as they don't have time to collect enough samples. This change makes them use counter of samples taken when v8 is either in JS or EXTERNAL state and repeat sampling until desired threshold is reached.
BUG=v8:2628
R=loislo@chromium.org, yangguo@chromium.org
Review URL: https://codereview.chromium.org/
18418004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15592
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
loislo@chromium.org [Wed, 10 Jul 2013 12:40:42 +0000 (12:40 +0000)]
HeapProfiler: check that heap snapshot has no unretained entries except root.
TEST=AllocationSitesAreVisible
BUG=
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/
18996004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15591
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Wed, 10 Jul 2013 12:19:37 +0000 (12:19 +0000)]
Revert "Calls to HCheckFunction can be eliminated if the value is an HConstant"
This reverts commit
3f96122cc572f7a0b638c30f65328c3cb3666795.
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/
18998003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15590
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Wed, 10 Jul 2013 12:19:02 +0000 (12:19 +0000)]
Use BuildGrowElementsCapacity for the TransitionElementsKind stub.
R=danno@chromium.org, dslomov@chromium.org
Review URL: https://codereview.chromium.org/
18876004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15589
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Wed, 10 Jul 2013 12:02:18 +0000 (12:02 +0000)]
Unify Count Operation assignment with other assignments
This relands 15578, disables 1 test in harmony observe re bug v8:2774
R=dslomov@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
18452013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15588
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
olivf@chromium.org [Wed, 10 Jul 2013 12:01:29 +0000 (12:01 +0000)]
Fix missing spaces
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/
18991004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15587
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
olivf@chromium.org [Wed, 10 Jul 2013 11:20:00 +0000 (11:20 +0000)]
Type::GetName(...) for inspecting Types in the debugger
BUG=
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/
18587007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15586
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jochen@chromium.org [Wed, 10 Jul 2013 11:15:16 +0000 (11:15 +0000)]
Factor out toolset definitions in a separate gypi file
That way, third-party libraries use the correct toolset settings.
BUG=v8:2745
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
18846002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15585
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jochen@chromium.org [Wed, 10 Jul 2013 10:49:04 +0000 (10:49 +0000)]
Import intl test suite from v8-i18n project
BUG=v8:2745
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
18687003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15584
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Wed, 10 Jul 2013 10:01:30 +0000 (10:01 +0000)]
MIPS: Adjust default Heap sizes.
This change decreases the default Heap sizes on MIPS (sets the
same sizes as on Android).
Most MIPS hw has smaller RAM size than 700MB, which can lead
to test failures, if a test does not set the Heap sizes explicitly
(like cctest/test-mark-compact/MarkCompactCollector).
BUG=
Review URL: https://codereview.chromium.org/
18447003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15583
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
olivf@chromium.org [Wed, 10 Jul 2013 09:02:23 +0000 (09:02 +0000)]
Replace custom builtin invocation instructions by a generic version
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
18154004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15582
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 10 Jul 2013 07:53:27 +0000 (07:53 +0000)]
Fix plot script.
The script for the time line plot has been broken since r15484, which
changed the format of tick entries in v8.log.
To prevent this from happening in the future, I added a test case.
R=hpayer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
18826008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15581
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Wed, 10 Jul 2013 07:53:16 +0000 (07:53 +0000)]
Revert "Unify the Count Operation assignment with other assignments."
This reverts commit r15578.
This change made mjsunit/harmony/object-observe.js flaky.
TBR=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
18537006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15580
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dslomov@chromium.org [Tue, 9 Jul 2013 19:34:21 +0000 (19:34 +0000)]
Allow parameterless typed array constructors.
ES6 spec tacitly allows them, and they are allowed in Firefox and in
WebKit/Blink.
R=bmeurer@chromium.org,rossberg@chromium.org
Review URL: https://codereview.chromium.org/
18769005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15579
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Tue, 9 Jul 2013 17:08:47 +0000 (17:08 +0000)]
Unify the Count Operation assignment with other assignments.
This does not enable inlining of setters (yet).
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
17432004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15578
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Tue, 9 Jul 2013 15:58:31 +0000 (15:58 +0000)]
MIPS: Do not omit the write-barrier if the input value is a smi.
Port r15573 (3954d53)
Original commit message:
ARM: Do not omit the write-barrier if the input value is a smi.
The input value isn't what is written into the field if the representation is double. A heap-number is written to the field instead; which requires a write-barrier.
BUG=chromium:254570
Review URL: https://codereview.chromium.org/
18118010
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15577
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Tue, 9 Jul 2013 15:54:43 +0000 (15:54 +0000)]
MIPS: Implement Polymorphic Store ICs.
Port r15566 (a76585e)
Original commit message:
- Makes a common superclass for Load and Store stub compiler.
- Splits all non-normal Store ICs into handler and IC.
- Ensures monomorphic store ICs go polymorphic.
- Feeds polymorphic type feedback into count operation.
BUG=
Review URL: https://codereview.chromium.org/
18595006
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15576
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Tue, 9 Jul 2013 14:16:59 +0000 (14:16 +0000)]
Bugfix: AllocationSite objects need to be walkable by the heap snapshot
generator.
BUG=
R=machenbach@chromium.org
Review URL: https://codereview.chromium.org/
18584007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15575
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00