yangguo@chromium.org
6cbe01edae
Revert "Flush parallel recompilation queues on context dispose notification."
...
This reverts r15833.
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/19647018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15841 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 07:45:54 +00:00
hpayer@chromium.org
c3c0be7160
Simplified large object allocation strategy.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/19934006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15840 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 20:01:38 +00:00
hpayer@chromium.org
6c83b7d6c1
Support double allocations when folding allocation.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/19956002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15839 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 19:27:00 +00:00
yangguo@chromium.org
f70cc6e114
Flush parallel recompilation queues on context dispose notification.
...
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/19956004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15833 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 15:15:00 +00:00
yurys@chromium.org
97f8f91bb5
Fix call stack sampling for the case when native callback invokes JS function
...
The SafeStackFrameIterator used by CPU profiler checked if Isolate::c_entry_fp is null and if it is not it would think that the control flow currently is in some native code. This assumption is wrong because the native code could have called a JS function but JSEntryStub would not reset c_entry_fp to NULL in that case. This CL adds a check in SafeStackFrameIterator::IsValidTop for the case when there is a JAVA_SCRIPT frame on top of EXIT frame.
Also this CL changes ExternalCallbackScope behavior to provide access to the whole stack of the scope objects instead of only top one. This allowed to provide exact callback names for those EXIT frames where external callbacks are called. Without this change it was possible only for the top most native call.
BUG=None
R=loislo@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/19775017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15832 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 15:01:38 +00:00
yurys@chromium.org
682a0d65c6
Deprecate v8::V8::Pause/ResumeProfiler
...
The methods were added to the public API in r1185 when Chrome DevTools were using the same output as produced for tick processor when --prof option is specified.
I don't see any existing clients of these methods and since they add a noticeable complexity to the profiler code I'd like to remove them.
BUG=None
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/19591006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15828 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 13:44:15 +00:00
verwaest@chromium.org
7e08f81e6d
Also eliminate map checks with transitions.
...
R=ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/19888006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15821 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 10:01:06 +00:00
verwaest@chromium.org
babce318d1
Eliminate map checks of constant values.
...
R=ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/19954005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15819 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 09:18:42 +00:00
mstarzinger@chromium.org
232c55854f
Add test case for issue 2793 about experimental natives.
...
R=yangguo@chromium.org
BUG=v8:2793
Review URL: https://codereview.chromium.org/19948002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15810 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 18:18:55 +00:00
ulan@chromium.org
b2dd5c67f7
ARM: Ensure space for lazy deoptimization before calling IC.
...
If IC triggers deoptimization, then subsequent patching might get invalid
target address that was overwritten.
R=verwaest@chromium.org
BUG=247688
TEST=mjsunit/regress/regress-247688.js
Review URL: https://chromiumcodereview.appspot.com/19972002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15808 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 17:21:41 +00:00
yangguo@chromium.org
cd41cb9b6d
Turn on parallel recompilation for tests that assert optimization status.
...
R=mvstanton@chromium.org
BUG=
Review URL: https://codereview.chromium.org/19807002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15793 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 09:16:33 +00:00
mstarzinger@chromium.org
ce81b0d3a8
ES6: Implement WeakSet
...
WeakSets work similar to ordinary Sets but the value (which must be an
object) is held weakly.
This is available under --harmony-collections
BUG=v8:2785
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/19678023
Patch from Erik Arvidsson <arv@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15792 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 08:32:24 +00:00
rossberg@chromium.org
ac2b8c04f3
Proxies: Make 'with' work, plus minor other fixes
...
Also fixes internal exception handling in several places of the runtime.
R=yangguo@chromium.org
BUG=v8:1543
Review URL: https://codereview.chromium.org/19384004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15781 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 14:07:23 +00:00
ulan@chromium.org
88a4b0d6ca
Fix deopt in store with effect context.
...
R=verwaest@chromium.org
Review URL: https://chromiumcodereview.appspot.com/19693004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15780 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 13:45:26 +00:00
mvstanton@chromium.org
ec8c6f4692
Rename AllocationSiteInfo to AllocationMemento
...
This is just a rename change with the exception of a bug found along the way in
CodeStubGraphBuilder<FastCloneShallowArrayStub>::BuildCodeStub(). There, the
intent is to get the boilerplate object from an AllocationSite. But the wrong
HObjectAccess was used. It only succeeds because it happened to be the same
offset :).
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/19595004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15778 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 13:30:49 +00:00
rossberg@chromium.org
83d9e6e7ee
Add support for explicit octal and binary integer literals
...
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-7.8.3
ES6 extends the numeric literals to support explicit support
for binary and octal literals using the following syntax:
0b10101
0o777
This is currently behind the flag, --harmony-numeric-literals
BUG=2783
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/19300002
Patch from Erik Arvidsson <arv@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15772 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 09:57:35 +00:00
svenpanne@chromium.org
00ed79fb8b
Move FindCodeObject from Heap to Isolate.
...
This removes the isolate=>heap=>isolate nonsense and has the additional bonus
that it re-enables printing of code objects in GDB. NOT: To make the latter
work, one has to adapt GDB any macros using FindCodeObject! Keeping things as it
is and outlining Isolate::heap() was not really an option...
Side note: Currently we are lucky that we still have Isolate::Current()
available in GDB, although it is marked as INLINE. :-}
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/19785004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15770 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 09:39:01 +00:00
yurys@chromium.org
260af16ede
Deprecate some debugger methods
...
These methods have been superceeded by equivalents accepting object arguments exposing more details.
This is exactly the same change as r15708 which was reverted in r15710 due to pending Blink changes. Now that Blink is rolled to 154493 it should be safe to land this (required Blink change is 154386).
BUG=None
TBR=yangguo@chromium.org
Review URL: https://codereview.chromium.org/19541005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15769 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 09:38:18 +00:00
verwaest@chromium.org
be472d82fd
Fix wrong bailout id in polymorphic stores.
...
BUG=chromium:259787
R=titzer@chromium.org , ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/19528005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15763 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 08:45:47 +00:00
mstarzinger@chromium.org
3eded2c06c
Fix %NeverOptimizeFunction runtime call.
...
The current usage of this runtime function is broken as it does not
prevent inlining of the affected function but rather bails out from the
whole unit of compilation after trying to inline affected functions.
This simplifies said runtime function to avoid accidental misuse.
R=titzer@chromium.org
TEST=mjsunit/never-optimize
Review URL: https://codereview.chromium.org/19776006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15762 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 08:25:44 +00:00
danno@chromium.org
76cbaf407f
x64 support for d-to-i (truncated)
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/18333012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15761 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 08:21:41 +00:00
loislo@chromium.org
ea97288e64
Logger: remove dependency between Logger and LogMessageBuilder.
...
LogMessageBuilder is a helper class for Log.
So I made it a nested class and removed the dependency from Logger.
BUG=none
TEST=no changes in the logic
R=yangguo@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/19768003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15760 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-18 17:19:31 +00:00
yurys@chromium.org
97681be4e5
Fix data race in SamplingCircularQueue
...
This change fixes data race described in the bug by adding Acquire_Load to SamplingCircularQueue::StartDequeue and Acquire_Store to SamplingCircularQueue::Enqueue.
Also the queue implementation imposed a constraint on the records it stored: the first AtomicWord in each record was a marker. For that purpose TickSampleEventRecord had filter field of type int. This approach is error prone, e.g. on x64 sizeof(AtomicWord) is 8 while sizeof(int) is 4. Moreover the queue needs such marker only at the beginning of chunk. I changed the queue so that it stores the marker explicitly as the first Cell in chunk and removed the filter field.
BUG=251218
R=loislo@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/19642002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15750 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-18 13:42:04 +00:00
machenbach@chromium.org
0288214530
Disable some tests for nacl runs.
...
These tests fail with the nacl/v8 builders.
Patch from bradchen@chromium.org .
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/19769002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15745 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-18 12:21:46 +00:00
svenpanne@chromium.org
b951f03cee
Fixed type feedback in presence of negative lookups.
...
To fix the issue at hand regarding constant function calls and perhaps
other hidden issues regarding negative lookups, we basically add a
"marker instruction", just for harvesting purposes. Our type feedback
oracle is really, really fragile, we should better switch to some more
explicit and robust scheme soon.
BUG=chromium:252797
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/19588002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15741 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-18 09:12:44 +00:00
yurys@chromium.org
a7d1cb3f2a
Revert "Deprecate some debugger methods"
...
This reverts commit 69957c36edaebe0b9b614099eb1b067fb0208671. Blink roll this patch depends on was reverted for some reason.
BUG=None
TBR=yangguo@chromium.org
Review URL: https://codereview.chromium.org/19483003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15735 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-18 07:34:19 +00:00
yurys@chromium.org
9f65cf6bff
Deprecate some debugger methods
...
These methods have been superceeded by equivalents accepting object arguments exposing more details.
This is exactly the same change as r15708 which was reverted in r15710 due to pending Blink changes.
BUG=None
TBR=yangguo@chromium.org
Review URL: https://codereview.chromium.org/19542003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15734 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-18 06:51:03 +00:00
alph@chromium.org
86bfd87fa6
Do not report unessential weak references in heap snapshot.
...
R=verwaest@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/19267023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15731 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 18:23:16 +00:00
mstarzinger@chromium.org
dfc945d594
Handlify JSReceiver/JSObject::DeleteProperty method.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/18774002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15730 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 16:38:49 +00:00
yangguo@chromium.org
9d6445cf32
Do not materialize context-allocated values for debug-evaluate.
...
BUG=259300
R=ulan@chromium.org , verwaest@chromium.org
Review URL: https://codereview.chromium.org/19569003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15727 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 15:29:00 +00:00
hpayer@chromium.org
f980ce0352
Fix gc stress builder.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/19507004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15726 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 15:21:22 +00:00
jkummerow@chromium.org
22f2fd8397
Synchronize Compare-Literal behavior in FullCodegen and Hydrogen
...
BUG=chromium:260345
R=danno@chromium.org
Review URL: https://codereview.chromium.org/19582002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15723 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 13:13:38 +00:00
alph@chromium.org
eafc8c971a
Provide named links to code objects in heap snapshot.
...
R=loislo@chromium.org , verwaest@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/19397002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15722 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 13:12:48 +00:00
yurys@chromium.org
2e218fe862
Remove V8_DISABLE_DEPRECATIONS=1 from test-cpu-profiler.cc
...
BUG=None
R=loislo@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/19554002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15716 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 12:16:16 +00:00
mvstanton@chromium.org
7632a311aa
Some tests involving AllocationSites are failing in GcStress test mode.
...
The reason is that an AllocationMemento associated with an array only
lives for one gc (it is unrooted). So an excess of garbage collections
in these tests cause the Memento to be lost, and expected behavior
can't be guaranteed.
BUG=
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/19544002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15714 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 11:42:32 +00:00
bmeurer@chromium.org
410b4b2db4
Reland "Turn ElementsTransitionAndStore stub into a HydrogenCodeStub".
...
Fix the invalid array length check, replacing it with a check of
the elements pointer similar to TransitionElementsKindStub.
Refactor common code from ElementsTransitionAndStoreStub and TransitionElementsKindStub into BuildTransitionElementsKind() helper method.
Add test case for the MD5 computation that used to crash before,
and a small test case for the specific issue.
R=danno@chromium.org
Review URL: https://codereview.chromium.org/19367003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15713 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 11:37:20 +00:00
dslomov@chromium.org
517cbe4dd3
Add BYTES_PER_ELEMENT property to constructors of typed arrays.
...
ES6 does not prescribe it, but both Blink and Firefox have it.
Also does a small rename of parameter in test.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/19562002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15712 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 11:16:07 +00:00
yurys@chromium.org
9a51aa2197
Revert "Deprecate some debugger methods"
...
This reverts commit r15708 to make WebKit bots happy while Blink change https://src.chromium.org/viewvc/blink?view=rev&revision=154386 is not rolled into Chromium.
BUG=None
TBR=yangguo@chromium.org
Review URL: https://codereview.chromium.org/19557002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15710 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 10:03:49 +00:00
yurys@chromium.org
16bb1dc210
Deprecate some debugger methods
...
These methods have been superceeded by equivalents accepting object arguments exposing more details.
BUG=None
R=loislo@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/19549002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15708 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 09:20:16 +00:00
bmeurer@chromium.org
a72b5d6c4d
Fix invalid array length check in TransitionElementsKindStub.
...
The stub used to check the length of the JS array to see if
there's a need to duplicate the elements backing store. This
way it will not duplicate the elements array when going from
double to object even if the elements array is not the empty
fixed array. Later on it will then store pointers into a
FixedDoubleArray.
The native code stub used to check whether elements points to
the empty_fixed_array singleton instead of testing the length.
The Hydrogen stub does that as well now.
R=danno@chromium.org
Review URL: https://codereview.chromium.org/19289009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15701 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 08:32:28 +00:00
alph@chromium.org
09131296ac
Add missing links from GlobalPropertyCell to dependent_code
...
It produced orphan DependentCode nodes because links were not created explicitly in ExtractPropertyCellReferences and IndexedReferencesExtractor was disabled for ProperyCells.
R=danno@chromium.org , loislo@chromium.org
Review URL: https://codereview.chromium.org/19368002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15694 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-16 17:47:35 +00:00
dslomov@chromium.org
11a38ed875
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
2013-07-16 08:11:30 +00:00
adamk@chromium.org
fab9f4e126
[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
2013-07-15 22:16:30 +00:00
mstarzinger@chromium.org
35052bc2ea
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
2013-07-15 15:12:16 +00:00
rossberg@chromium.org
db76aa2717
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
2013-07-15 14:12:20 +00:00
mstarzinger@chromium.org
0599225187
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
2013-07-15 11:41:41 +00:00
dslomov@chromium.org
1c2d005b3c
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
2013-07-15 09:32:15 +00:00
dslomov@chromium.org
a6419e3e47
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
2013-07-15 07:43:46 +00:00
danno@chromium.org
c65f4f7f7b
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
2013-07-14 22:03:46 +00:00
hpayer@chromium.org
f5ab1b2a4a
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
2013-07-12 15:06:50 +00:00
danno@chromium.org
4095600a00
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
2013-07-12 13:45:41 +00:00
danno@chromium.org
48b65f8cd5
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
2013-07-12 12:28:32 +00:00
yangguo@chromium.org
bd04a838a7
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
2013-07-12 11:42:07 +00:00
yangguo@chromium.org
c28cefce91
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
2013-07-12 10:11:18 +00:00
yangguo@chromium.org
e002207321
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
2013-07-12 10:04:35 +00:00
olivf@chromium.org
bdf4fc96b0
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
2013-07-11 17:20:57 +00:00
titzer@chromium.org
9e7819fac4
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
2013-07-11 14:17:56 +00:00
mvstanton@chromium.org
10615aef7b
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
2013-07-11 13:08:36 +00:00
rossberg@chromium.org
3d9586c431
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
2013-07-11 11:20:54 +00:00
mvstanton@chromium.org
b61dfd4a82
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
2013-07-11 09:39:22 +00:00
adamk@chromium.org
25ca62b6ad
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
2013-07-10 19:03:58 +00:00
dslomov@chromium.org
5eb63e483d
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
2013-07-10 16:18:59 +00:00
rodolph.perfetta@gmail.com
762157d697
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
2013-07-10 15:32:39 +00:00
loislo@chromium.org
487a61934f
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
2013-07-10 12:56:58 +00:00
loislo@chromium.org
daacd5830e
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
2013-07-10 12:40:42 +00:00
verwaest@chromium.org
22d7a85519
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
2013-07-10 12:02:18 +00:00
jochen@chromium.org
865ce5806f
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
2013-07-10 11:15:16 +00:00
jochen@chromium.org
c61c74d24f
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
2013-07-10 10:49:04 +00:00
yangguo@chromium.org
5b70a58ad2
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
2013-07-10 07:53:27 +00:00
dslomov@chromium.org
cfa91762ac
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
2013-07-09 19:34:21 +00:00
mvstanton@chromium.org
3f1fc1d3ab
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
2013-07-09 14:16:59 +00:00
yangguo@chromium.org
b99ca1ab12
Do not implicitly convert receivers for builtin functions when inspecting frames.
...
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/18900004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15574 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-09 13:58:11 +00:00
mvstanton@chromium.org
c1e19bfc35
Bugfix: The general array constructor stub did not handle the case
...
properly when it is called with a function pointer in the type cell,
instead assuming that an AllocationSite object should be present. The
case where this can happen is if the cell is uninitialized, then the
first constructor call made is to the Array function of a different
context. In that case, we'll store the function pointer in the cell,
and then go ahead and call the array constructor stub too. The bug is
fixed by checking for the AllocationSite object map. If not found, the
constructor stub goes forward with a default ElementsKind, just as in
several other cases.
A test in allocation-site-info.js was beefed up to make sure the state
chain described above is traversed.
BUG=
R=hpayer@chromium.org , hpayer@google.com
Review URL: https://codereview.chromium.org/18277006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15555 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 14:41:54 +00:00
jkummerow@chromium.org
ed6d2d5c44
Add a test case for Phi representations
...
BUG=chromium:167394
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/18838002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15553 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 13:43:43 +00:00
jochen@chromium.org
8544d67b44
Collect garbage at the beginning of cctest/test-cpu-profiler/FunctionCallSample
...
That way, we don't end up collecting all samples in the garbage
collector when the i18n extension is loaded.
BUG=v8:2745
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18714006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15547 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 11:26:15 +00:00
jkummerow@chromium.org
f0811f4e6f
Fix and cleanup can_be_minus_zero computation
...
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/18434004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15546 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 11:15:24 +00:00
mvstanton@chromium.org
faaa90d13c
Allocation-site-info test, removed TODOs.
...
Some code was commented out earlier as a todo. Now the code can be reenabled,
because allocation site feedback is working there again.
BUG=
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/18753005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15543 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 09:11:56 +00:00
mstarzinger@chromium.org
61ac770449
Make test-heap/TestInternalWeakLists pass with the i18n extension loaded
...
R=mstarzinger@chromium.org
BUG=v8:2745
Review URL: https://codereview.chromium.org/18654006
Patch from Jochen Eisinger <jochen@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15542 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 09:07:57 +00:00
loislo@chromium.org
5571dc4273
CPUProfiler: Improve line numbers support in profiler.
...
1) report line number even if a script has no resource_name (evals);
a) do that for already compiled functions in log.cc;
b) do that for fresh evals in compiler.cc;
2) Implement the test for LineNumbers and make it fast and stable, otherwise we have to wait for tick samples;
a) move processor_->Join() call into new Processor::StopSynchronously method;
b) Process all the CodeEvents even if we are stopping Processor thread;
c) make getters for generator and processor;
3) Fix the test for Jit that didn't expect line numbers;
4) Minor refactoring:
a) in ProcessTicks;
b) rename enqueue_order_ to last_code_event_id_ for better readability;
c) rename dequeue_order_ to last_processed_code_event_id_ and make it a member for better readability;
BUG=
TEST=test-profile-generator/LineNumber
R=jkummerow@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/18058008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15530 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-07 11:42:30 +00:00
yurys@chromium.org
696090196d
Delete deprecated CPU profiler code that supports filtering by security token
...
The methods that allow to filter CPU profile by security token were introduced to support console.profiles in WebKit. Now that console.profiles is removed and corresponding V8 API methods have been deprecated in 3.19 branch(https://code.google.com/p/v8/source/browse/branches/3.19/include/v8-profiler.h ) it is safe to remove all that code.
BUG=None
R=jkummerow@chromium.org , loislo@chromium.org
Review URL: https://codereview.chromium.org/18709003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15528 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-06 09:12:09 +00:00
yangguo@chromium.org
ba8119f9b5
Make cctest/test-debug pass with extensions installed
...
Compiling extensions during context creation triggers debug events.
Work around this by installing the event listener after creating
the context
BUG=v8:2745
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/18441005
Patch from Jochen Eisinger <jochen@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15523 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 13:33:20 +00:00
danno@chromium.org
ddab7fa5ec
Update limits in test-mark-compact
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/18210004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15520 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 12:24:30 +00:00
danno@chromium.org
bd50e6d38f
Refactoring and cleanup of control instructions
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/18331004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15513 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 10:40:14 +00:00
danno@chromium.org
345cc98a25
Generate StoreGlobal stubs with Hydrogen
...
- Constants globals are inlined into Hydrogen code using code dependencies that invalidate the Crankshafted code when global PropertyCells or the global object change.
- The more general case generates code that is just as good as the hand-written assembly stubs on all platforms.
R=rossberg@chromium.org , ulan@chromium.org
Committed: http://code.google.com/p/v8/source/detail?r=15419
Review URL: https://codereview.chromium.org/16925008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15512 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 10:34:02 +00:00
dslomov@chromium.org
7e0ee5301e
Add internal fields to JSArrayBufferViews (JSTypedArray and JSDataView)
...
In Blink, JSTypedArray and JSDataView objects act as "wrappers" for C++
objects. Wrapping protocol in Blink requires all wrapper JavaScript objects
to have a certain amount of internal fields that Blink uses for
book-keeping (essentially a pointer to C++ object and some type
information). This change adds those internal fields to JSTypedArray and
JSDataView, in a similiar way to how it is done for JSArrayBuffer.
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/18695004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15511 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 10:12:36 +00:00
yangguo@chromium.org
02674ee414
Keep two empty lines between declarations for cpp files
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/18509003
Patch from Haitao Feng <haitao.feng@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15510 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 09:52:11 +00:00
rossberg@chromium.org
929e193fc2
Tweak error message
...
R=yangguo@chromium.org
BUG=v8:2758
Review URL: https://codereview.chromium.org/18759002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15503 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 08:34:31 +00:00
jkummerow@chromium.org
7456e290f3
Fix stack alignment corruption for MinGW32 build
...
Contributed by Peter Varga <pvarga@inf.u-szeged.hu>
BUG=
TEST=cctest/test-assembler-ia32/StackAlignmentForSSE2,cctest/test-assembler-x64/StackAlignmentForSSE2,cctest/test-platform/StackAlignment
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18300003
Patch from Peter Varga <pvarga@inf.u-szeged.hu>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15502 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 08:34:17 +00:00
palfia@homejinni.com
9d989841fb
MIPS: Skip cctest/test-serialize tests.
...
BUG=
TEST=test-serialize/Deserialize,
test-serialize/DeserializeFromSecondSerializationAndRunScript2,
test-serialize/DeserializeAndRunScript2,
test-serialize/DeserializeFromSecondSerialization
Review URL: https://codereview.chromium.org/18702002
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15495 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-04 18:47:13 +00:00
palfia@homejinni.com
d22f62e718
Set 5M memory for OutOfMemory and OutOfMemoryNested test cases.
...
BUG=
TEST=cctest/test-api/OutOfMemory
cctest/test-api/OutOfMemoryNested
Review URL: https://codereview.chromium.org/18688002
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15494 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-04 18:45:03 +00:00
alph@chromium.org
cc97192cb1
Change the type of system root nodes in heap snapshot to kSynthetic
...
R=mstarzinger@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/18420019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15492 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-04 16:32:18 +00:00
dslomov@chromium.org
6d0394ac18
Plug some memory leaks in parser tests.
...
BUG=v8:2763
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/18694004
Patch from Sergey Matveev <earthdok@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15490 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-04 15:57:43 +00:00
yurys@chromium.org
9ef762b683
Do not store fp and sp values in TickSample
...
Their values are not used neither by the tick processor nor by CpuProfiler so it is just a waste of space.
TickSample used to be a transport for grabbed register values to TickSample::Trace, now they are passed in a special structure RegisterState which is allocated on the stack for the sampling period.
Some common pieces were moved from platform-dependent code into Sampler::SampleStack and TickSample::Init.
BUG=None
R=jkummerow@chromium.org , loislo@chromium.org
Review URL: https://codereview.chromium.org/18620002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15484 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 16:20:59 +00:00
jkummerow@chromium.org
91be57a469
Revert "Fix stack alignment corruption for MinGW32 build"
...
due to compile failures.
This reverts r15480.
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/18649002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15483 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 15:45:57 +00:00
yurys@chromium.org
678c9dc940
Remove #include "cpu-profiler-inl.h" from v8.h
...
This significantly reduces amount of files to be recompiled after changes in cpu-profiler.h and its dependencies.
BUG=None
R=loislo@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/18522004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15482 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 15:39:18 +00:00
jkummerow@chromium.org
45681dbd76
Fix stack alignment corruption for MinGW32 build
...
Contributed by Peter Varga <pvarga@inf.u-szeged.hu>
BUG=
TEST=cctest/test-assembler-ia32/StackAlignmentForSSE2,cctest/test-assembler-x64/StackAlignmentForSSE2,cctest/test-platform/StackAlignment
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18300003
Patch from Peter Varga <pvarga@inf.u-szeged.hu>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15480 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 15:34:50 +00:00
jkummerow@chromium.org
dd37adc4f1
Change mjsunit tests to work with and without the i18n extension
...
BUG=v8:2745
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18187006
Patch from Jochen Eisinger <jochen@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15479 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 15:33:11 +00:00
yangguo@chromium.org
1963ec4b8a
Add 4K more memory for HugeConsStringOutOfMemory test case
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/18068007
Patch from Haitao Feng <haitao.feng@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15472 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 14:56:18 +00:00
yurys@chromium.org
44dfaa2a1e
Fix test-cpu-profiler/FunctionCallSample flakiness under GC stress testing
...
The test flakes on "V8 GC Stress" bots and the sample looks like this:
[Top down]:
90 0 (root) [-1] #0 1
1 1 (program) [-1] #0 2
89 89 (garbage collector) [-1] #0 3
which means that almost all samples are inside GC and we have no |start| node in the collected profile.
Running the test with different combinations of --gc-interval=500 and --stress-compaction flags gives the results quoted below. They don't give a ground to require |start| node presense in the profile when doing GC stress testing. So this change makes the |start| node optional in the collected profile if GC stress testing is on.
$ ./out/ia32.debug/cctest --gc-interval=500 --stress-compaction --trace-gc test-cpu-profiler/FunctionCallSample
[10291] 76 ms: Mark-sweep 0.5 (17.8) -> 0.4 (17.8) MB, 49.5 ms (+ 0.2 ms in 1 steps since start of marking, biggest step 0.2 ms) [StackGuard GC request] [GC in old space requested].
[10291] 110 ms: Mark-sweep 0.5 (17.8) -> 0.4 (17.8) MB, 25.3 ms [Logger::LogCompiledFunctions] [GC in old space requested].
[10291] 135 ms: Mark-sweep 0.4 (17.8) -> 0.4 (17.8) MB, 22.8 ms [Logger::LogAccessorCallbacks] [GC in old space requested].
[10291] 179 ms: Mark-sweep 0.5 (17.8) -> 0.4 (17.8) MB, 39.9 ms (+ 0.1 ms in 1 steps since start of marking, biggest step 0.1 ms) [Runtime::PerformGC] [GC in old space forced by flags].
[10291] 209 ms: Mark-sweep 0.5 (17.8) -> 0.4 (17.8) MB, 29.1 ms (+ 0.1 ms in 1 steps since start of marking, biggest step 0.1 ms) [Runtime::PerformGC] [GC in old space forced by flags].
[10291] 240 ms: Mark-sweep 0.5 (17.8) -> 0.4 (17.8) MB, 29.1 ms (+ 0.1 ms in 1 steps since start of marking, biggest step 0.1 ms) [Runtime::PerformGC] [GC in old space forced by flags].
[Top down]:
99 0 (root) [-1] #0 1
4 4 start [-1] #16 3
93 93 (garbage collector) [-1] #0 4
2 2 (program) [-1] #0 2
$ ./out/ia32.debug/cctest --gc-interval=500 --trace-gc test-cpu-profiler/FunctionCallSample
[10328] 46 ms: Mark-sweep 0.5 (17.8) -> 0.4 (17.8) MB, 14.9 ms [Logger::LogCompiledFunctions] [GC in old space requested].
[10328] 61 ms: Mark-sweep 0.4 (17.8) -> 0.4 (17.8) MB, 12.9 ms [Logger::LogAccessorCallbacks] [GC in old space requested].
[10328] 65 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.3 ms [Runtime::PerformGC].
[10328] 67 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.3 ms [Runtime::PerformGC].
[10328] 69 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 70 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 72 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 73 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 75 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 77 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 78 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 80 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 81 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 83 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 85 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 86 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 88 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 89 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 91 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 93 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 94 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.3 ms [Runtime::PerformGC].
[10328] 96 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 97 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 99 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 101 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 102 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 104 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 105 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 107 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 109 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 110 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 112 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 113 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.3 ms [Runtime::PerformGC].
[10328] 115 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 117 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 118 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 120 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 121 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 123 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 125 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 126 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 128 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 129 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 131 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 133 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 134 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 136 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 137 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 139 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 141 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 142 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 144 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.3 ms [Runtime::PerformGC].
[10328] 145 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 147 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 149 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 150 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 152 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 153 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.3 ms [Runtime::PerformGC].
[10328] 155 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 157 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 158 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 160 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 162 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[10328] 163 ms: Scavenge 0.5 (17.8) -> 0.4 (17.8) MB, 1.2 ms [Runtime::PerformGC].
[Top down]:
95 0 (root) [-1] #0 1
12 11 start [-1] #16 3
1 1 bar [-1] #16 4
81 81 (garbage collector) [-1] #0 5
2 2 (program) [-1] #0 2
$ ./out/ia32.debug/cctest --stress-compaction --trace-gc test-cpu-profiler/FunctionCallSample
[10355] 76 ms: Mark-sweep 0.5 (17.8) -> 0.4 (17.8) MB, 49.9 ms (+ 0.1 ms in 1 steps since start of marking, biggest step 0.1 ms) [StackGuard GC request] [GC in old space requested].
[10355] 110 ms: Mark-sweep 0.5 (17.8) -> 0.4 (17.8) MB, 25.5 ms [Logger::LogCompiledFunctions] [GC in old space requested].
[10355] 135 ms: Mark-sweep 0.4 (17.8) -> 0.4 (17.8) MB, 22.9 ms [Logger::LogAccessorCallbacks] [GC in old space requested].
[10355] 189 ms: Mark-sweep 0.5 (17.8) -> 0.4 (17.8) MB, 49.8 ms (+ 0.2 ms in 1 steps since start of marking, biggest step 0.2 ms) [StackGuard GC request] [GC in old space requested].
[10355] 234 ms: Mark-sweep 0.5 (17.8) -> 0.4 (17.8) MB, 42.5 ms (+ 0.1 ms in 1 steps since start of marking, biggest step 0.1 ms) [StackGuard GC request] [GC in old space requested].
[10355] 278 ms: Mark-sweep 0.5 (17.8) -> 0.4 (17.8) MB, 42.5 ms (+ 0.1 ms in 1 steps since start of marking, biggest step 0.1 ms) [StackGuard GC request] [GC in old space requested].
[Top down]:
135 0 (root) [-1] #0 1
6 6 start [-1] #16 3
127 127 (garbage collector) [-1] #0 4
2 2 (program) [-1] #0 2
BUG=None
R=jkummerow@chromium.org , loislo@chromium.org
Review URL: https://codereview.chromium.org/18068012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15471 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 14:26:38 +00:00
yurys@chromium.org
41c9adffc6
Relax test expectations for test-cpu-profiler/FunctionApplySample
...
The profile may look a bit different on the bots (see below). We expected this only under GC stress testing, the change makes regular expectations the same.
[Top down]:
68 0 (root) [-1] #0 1
1 1 (program) [-1] #0 2
67 65 start [-1] #16 3
2 0 (unresolved function) [-1] #0 4
2 2 apply [-1] #0 5
BUG=None
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18331012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15470 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 14:23:34 +00:00
yurys@chromium.org
559e1d4540
Correctly report stack trace when current function is FunctionApply builtin
...
When pc is inside FunctionApply builtin function the top frame may be either
2) Internal stack frame created by FunctionApply itself.
In this case we know its caller's pc and can correctly resolve calling function.
1) Frame of the calling JavaScript function that invoked .apply(). In this case we have no practical reliable way to find out the caller's pc so we mark the caller's frame as 'unresolved'.
All this logic is implemented in ProfileGenerator. SafeStackFrameIterator is extended to provide type of the current top stack frame (iteration actually starts from the caller's frame as we know top function from pc).
BUG=252097
R=jkummerow@chromium.org , loislo@chromium.org
Review URL: https://codereview.chromium.org/18269003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15468 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 14:04:37 +00:00
mstarzinger@chromium.org
6bde251534
Handlify JSObject::SetPrototype method.
...
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/18089024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15455 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 15:32:46 +00:00
ulan@chromium.org
74d147a25d
Enable weak embedded maps in optimized code.
...
If the top optimized code in call stack is at the point that does not support
deoptimization, then treat the maps in the code as strong pointers.
Note that other optimized code in call stack must support deoptimization
because of the call instruction with side-effects.
BUG=217858,v8:2073
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/16955008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15452 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 15:15:58 +00:00
yurys@chromium.org
f940a1c29b
Increase profiling interval for test-cpu-profiler/FunctionCallSample
...
The test falkes on Windows bots as number of samples is not enough. This change increases sampling interval for the test on Windows.
BUG=2628
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18532003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15446 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 14:06:39 +00:00
yangguo@chromium.org
5a6fe4fc8f
Relax test constraints from r15439 (Join threads after stopping).
...
R=hpayer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/18509002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15440 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 09:59:08 +00:00
yangguo@chromium.org
92523a4553
Join threads after stopping.
...
R=hpayer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/18287003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15439 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 09:04:45 +00:00
yurys@chromium.org
4c5508b42f
Correctly report callstack when current function is FunctionCall builtin
...
When current function is FunctionCall builtin we have no reliable way to determine its caller function (in many cases the top of the sampled stack contains address of the caller but sometimes it does not). Instead of dropping the sample or its two top frames we simply mark the caller frame as '(unresolved function)'. It seems like a better approach that dropping whole sample as knowing the top function and the rest of the stack the user should be able to figure out what the caller was.
This change adds builtin id to CodeEntry objects. It will be used later to add similar top frame analysis for FunctionApply and probably other builtins.
BUG=None
TBR=loislo@chromium.org
Review URL: https://codereview.chromium.org/18422003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15436 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 07:51:09 +00:00
yurys@chromium.org
c4b6e08ac3
Revert "Correctly report callstack when current function is FunctionCall builtin"
...
This reverts commit r15426. The new test fails in Debug mode.
BUG=None
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18478002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15434 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 06:26:07 +00:00
loislo@chromium.org
a0140093ba
CPUProfiler: propagate scriptId to the front-end
...
Each CpuProfileNode has resource_name string property.
It cost us N * strlen(resource_name) where N is number of functions in the collected profile.
We could transfer script_id instead of resource_name so it would reduce transfer
size and help us to solve the problem with evals and sourceURL.
BUG=none
TEST=test-cpu-profiler/CollectCpuProfile
R=jkummerow@chromium.org , yurys@chromium.org
Committed: https://code.google.com/p/v8/source/detail?r=15429
Review URL: https://codereview.chromium.org/17642009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15433 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 06:14:01 +00:00
loislo@chromium.org
f470bbbb4f
Revert "CPUProfiler: propagate scriptId to the front-end"
...
This reverts commit d575f6bc8b262dac08f02913ae6e7c504c9dd900.
Check is failing on debug bots.
TBR= yurys@chromium.org
Review URL: https://chromiumcodereview.appspot.com/18332010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15431 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 19:22:45 +00:00
loislo@chromium.org
bc9f6c607f
CPUProfiler: propagate scriptId to the front-end
...
Each CpuProfileNode has resource_name string property.
It cost us N * strlen(resource_name) where N is number of functions in the collected profile.
We could transfer script_id instead of resource_name so it would reduce transfer
size and help us to solve the problem with evals and sourceURL.
BUG=none
TEST=test-cpu-profiler/CollectCpuProfile
R=jkummerow@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/17642009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15429 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 15:15:57 +00:00
danno@chromium.org
77c20c30a3
Revert r15419: "Generate StoreGlobal stubs with Hydrogen"
...
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/18357004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15427 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 15:12:21 +00:00
yurys@chromium.org
91dc6dd632
Correctly report callstack when current function is FunctionCall builtin
...
When current function is FunctionCall builtin we have no reliable way to determine its caller function (in many cases the top of the sampled stack contains address of the caller but sometimes it does not). Instead of dropping the sample or its two top frames we simply mark the caller frame as '(unresolved function)'. It seems like a better approach that dropping whole sample as knowing the top function and the rest of the stack the user should be able to figure out what the caller was.
This change adds builtin id to CodeEntry objects. It will be used later to add similar top frame analysis for FunctionApply and probably other builtins.
BUG=None
R=jkummerow@chromium.org , loislo@chromium.org
Review URL: https://codereview.chromium.org/18316004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15426 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 14:57:58 +00:00
mstarzinger@chromium.org
493d1f1c21
Implement WeakMap.prototype.clear function.
...
R=rossberg@chromium.org
BUG=v8:2753
TEST=mjsunit/harmony/collections
Review URL: https://codereview.chromium.org/18352002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15421 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 13:56:48 +00:00
prybin@chromium.org
488da00542
Debug: support breakpoints set in the middle of statement (try #2 after rollback)
...
Review URL: https://codereview.chromium.org/18349004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15420 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 13:44:10 +00:00
danno@chromium.org
a3bce19868
Generate StoreGlobal stubs with Hydrogen
...
- Constants globals are inlined into Hydrogen code using code dependencies that invalidate the Crankshafted code when global PropertyCells or the global object change.
- The more general case generates code that is just as good as the hand-written assembly stubs on all platforms.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/16925008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15419 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 13:22:13 +00:00
prybin@chromium.org
fe22b45965
Revert "Debug: support breakpoints set in the middle of statement"
...
Review URL: https://codereview.chromium.org/18326007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15418 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 13:05:21 +00:00
prybin@chromium.org
f997bacb16
Debug: support breakpoints set in the middle of statement
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/16093040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15416 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 12:54:13 +00:00
yurys@chromium.org
0ac0edb707
Test that profiler is stopped when isolate is being disposed
...
The only way to get v8::CpuProfiler instance in the V8 public API is to call v8::Iolate::GetCpuProfiler(). The method will return NULL if the isolate has not been initialized yet or has been torn down already. It is the client's reponsibility to make sure that CPU profiling has been stopped before disposing of the isolate.
This CL adds a test for this and several ASSRTS enforcing that assumptions. This allowed to be sure that heap is always setup when CPU profiling is being started. Based on that the number of places where already compiled functions are reported to the profiler event processor boils down to the single place (CpuProfiler::StartProcessorIfNotStarted). I'm going to rely on this assumption in further changes.
BUG=None
R=loislo@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/18336002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15415 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 12:32:52 +00:00
bmeurer@chromium.org
d7618796f6
No need to pass profiles to ProfilerEventsProcessor.
...
Following up on https://codereview.chromium.org/18353002 , there's
no need to pass the profiles to ProfilerEventsProcessor's constructor.
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/18332004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15413 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 12:24:26 +00:00
yangguo@chromium.org
cc2f01d31f
Restore message when rethrowing in TryCatch.
...
Based on a patch contributed by Andrew Paprocki <andrew@ishiboo.com>.
R=jkummerow@chromium.org
BUG=
TEST=cctest/test-api/TryCatchNestedSyntax
Review URL: https://codereview.chromium.org/17694002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15408 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 10:54:39 +00:00
loislo@chromium.org
ca90f4b058
CpuProfiler: eliminate 2 layers of 4 for CodeCreateEvent calls.
...
The bodies of methods in ProfilerEventProcessor were moved into CpuProfiler.
Multiple NewCodeEntry methods in CpuProfilesCollection were replaced with one which
simply passes arguments to the CodeEntry constructor.
And CpuProfiler just calls this method when it needs a CodeEntry object.
This NewCodeEntry method is required because CpuProfilesCollection keeps ownership of CodeEntry objects.
BUG=255392
TEST=existing tests
R=yangguo@chromium.org , yurys@chromium.org
Committed: https://code.google.com/p/v8/source/detail?r=15405
Review URL: https://codereview.chromium.org/18053004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15407 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 10:12:03 +00:00
loislo@chromium.org
baa3a7e47b
Revert "CpuProfiler: eliminate 2 layers of 4 for CodeCreateEvent calls."
...
This reverts commit 76adf84b83ec3c0b261cbc29369ce4ac83f9d002.
windows compilation failed
BUG=none
TBR=yurys@chromium.org
Review URL: https://codereview.chromium.org/18344002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15406 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 09:51:44 +00:00
loislo@chromium.org
eb14637367
CpuProfiler: eliminate 2 layers of 4 for CodeCreateEvent calls.
...
The bodies of methods in ProfilerEventProcessor were moved into CpuProfiler.
Multiple NewCodeEntry methods in CpuProfilesCollection were replaced with one which
simply passes arguments to the CodeEntry constructor.
And CpuProfiler just calls this method when it needs a CodeEntry object.
This NewCodeEntry method is required because CpuProfilesCollection keeps ownership of CodeEntry objects.
BUG=255392
TEST=existing tests
R=yangguo@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/18053004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15405 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 09:39:15 +00:00
mvstanton@chromium.org
4aed3b8e84
Test fix - array-feedback.js has a test that only make sense when
...
running crankshaft. Allow the test to tolerate --nocrankshaft.
BUG=
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/18328002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15403 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 09:00:14 +00:00
machenbach@chromium.org
ba9d54a19c
Remove irrelevant parser test that has SVN issues.
...
The file tests different CR and LF combinations that cannot be stored correctly in SVN.
Since we do not need coverage here, we rather remove the test completely.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18333002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15401 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 08:11:30 +00:00
jkummerow@chromium.org
05b94f13c8
Add %_DebugBreakInOptimizedCode() pseudo function call to insert int3/stop instructions into optimized code
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/17870002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15392 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 15:48:38 +00:00
jkummerow@chromium.org
c7a9bffbcf
Clean up the usage of V8_TARGET_ARCH_${arch} and V8_HOST_ARCH_${arch}
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18037002
Patch from Haitao Feng <haitao.feng@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15391 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 15:34:48 +00:00
jkummerow@chromium.org
2fb7ab5530
Introduce a notion of "v8_code" in gyp config files.
...
This allows for compiling third-party code (such as ICU) with less
strict flags.
BUG=v8:2745
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18181006
Patch from Jochen Eisinger <jochen@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15389 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 15:22:46 +00:00
danno@chromium.org
1642f32d1c
Improved function entry hook coverage
...
Adds more coverage for function entry hook, sufficient to capture profiles that are contiguous from C++, through JS and back out to C++.
R=danno@chromium.org
Committed: http://code.google.com/p/v8/source/detail?r=15361
Review URL: https://codereview.chromium.org/16578008
Patch from Sigurður Ásgeirsson <siggi@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15384 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 13:40:41 +00:00
mvstanton@chromium.org
83519ec87a
Hydrogen array constructor cleanup and improvements
...
* Cleanup of LCallNewArray::PrintDataTo() method
* Created HCallNewArray::PrintDataTo()
* Created many more tests in array-constructor-feedback.js
* Removed redundant instructions in
GenerateRecordCallTarget
* Bugfix in CreateArrayDispatchOneArgument: on a call to
new Array(0), we'd like to set the type feedback cell to
a packed elements kind, but we shouldn't do it if the
cell contains the megamorphic sentinel.
* When used from crankshaft, ArrayConstructorStubs can
avoid verifying that the function being called is the
array function from the current native context, relying
instead on the fact that crankshaft issues an
HCheckFunction to protect the constructor call. (this
new minor key is used in LCodeGen::DoCallNewArray(), and
influences code generation in
CodeStubGraphBuilderBase::BuildArrayConstructor()).
* Optimization: the array constructor specialized for
FAST_SMI_ELEMENTS can save some instructions by looking
up the correct map on the passed in constructor, rather
than indexing into the array of cached maps per element
kind.
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/17091002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15383 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 13:16:14 +00:00
machenbach@chromium.org
99702a81ec
Repair test file with newline problems.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18051011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15382 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 13:10:58 +00:00
alph@chromium.org
7b57b624d1
Heap snapshot: Update user roots definition.
...
Do not define an object as a user root if its context is not
present in Global handles.
R=mstarzinger@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/17881005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15381 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 12:53:52 +00:00
yangguo@chromium.org
85d7a36ee0
Abort optimization when debugger is turned on.
...
BUG=v8:2751
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18198003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15378 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 11:34:51 +00:00
machenbach@chromium.org
f3b458b472
Delete test file with newline problems.
...
The file contains the combinations CRLF LFCR CR and LF, and it looks like git automatically changed them to LF in the last dcommit.
See also http://www.dont-panic.cc/capi/2009/02/16/how-to-force-git-to-consider-a-file-as-binary/
The file is going to be added again in a different issue with an additional .gitattributes file to treat it as binary.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18080013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15377 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 11:25:26 +00:00
machenbach@chromium.org
de8102d0dc
Skip webkit tests in debug that are very slow.
...
Duration for each is between 14 s and 160 s.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18034017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15374 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 10:32:43 +00:00
machenbach@chromium.org
69590a370f
Migrated several tests from blink to V8 repository.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18068003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15370 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-27 20:02:04 +00:00
machenbach@chromium.org
a643f86719
Make webkit test output comparison compatible to stress testing.
...
In stress testing, the output is repeated several times. In this case, it is now compared several times to the actual output.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18062002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15369 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-27 19:45:45 +00:00
ulan@chromium.org
475131b2b9
Revert r15361 "Improved function entry hook coverage" because of ARM build error.
...
R=siggi@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/18062006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15365 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-27 15:31:06 +00:00
hpayer@chromium.org
a32277c4ba
Turn off stress compaction for break point tests.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/17880005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15364 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-27 15:19:04 +00:00
danno@chromium.org
8494f3bf25
Improved function entry hook coverage
...
Adds more coverage for function entry hook, sufficient to capture profiles that are contiguous from C++, through JS and back out to C++.
R=danno@chromium.org
Review URL: https://codereview.chromium.org/16578008
Patch from Sigurður Ásgeirsson <siggi@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15361 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-27 14:39:37 +00:00
yurys@chromium.org
4aeccdb23e
Do not iterate stack handlers in SafeStackFrameIterator
...
CPU profiler doesn't use stack handlers so there is no need to iterate through them while traversing stack. This change SafeStackFrameIterator always iterate only frames and removes checks corresponding to the handlers iteration.
The problem described in the bug occurred because of a false assumption in SafeStackFrameIterator that if Isolate::c_entry_fp is not NULL then the top frame on the stack is always a C++ frame. It is false because we may have entered JS code again, in which case JS_ENTRY code stub generated by JSEntryStub::GenerateBody() will save current c_entry_fp value but not reset it to NULL and after that it will create ENTRY stack frame and JS_ENTRY handler on the stack and put the latter into Isolate::handler(top). This means that if we start iterating from c_entry_fp frame and try to compare the frame's sp with Isolate::handler()->address() it will turn out that frame->sp() > handler->address() and the condition in SafeStackFrameIterator::CanIterateHandles is not held.
BUG=252097
R=loislo@chromium.org , svenpanne@chromium.org
Review URL: https://codereview.chromium.org/17589022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15348 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-27 09:28:11 +00:00
titzer@chromium.org
98f3dab73b
Fix elements-kind test to disable optimization of important functions under test; add simpler versions of elements kind test.
...
Review URL: https://codereview.chromium.org/17872002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15347 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-27 08:46:46 +00:00
dslomov@chromium.org
ef189ecd82
Do not allow invocation of ArrayBuffer and array buffer views' constructors as functions.
...
ES6 bug 695 (https://bugs.ecmascript.org/show_bug.cgi?id=695 ).
This never worked in WebKit, so no compatibility issues.
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/17904007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15346 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-27 07:42:08 +00:00
loislo@chromium.org
3da5ba9ac3
CPUProfiler: Simplify CodeEntry constructor calls.
...
In almost all the places where we create CodeEntry we use default values.
Lets move them into arguments default values.
BUG=none
TEST=no logic changes.
R=yangguo@chromium.org , yurys@chromium.org
Committed: https://code.google.com/p/v8/source/detail?r=15333
Review URL: https://codereview.chromium.org/17836002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15340 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-26 16:04:25 +00:00
machenbach@chromium.org
f3f14fc7ed
Migrate blink tests that are not relevant to blink into a new V8 test suite called 'blink'.
...
This initial CL contains the new test suite code and two tests for demonstration.
Other tests will follow in a separate CL.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/17260002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15339 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-26 14:23:30 +00:00
bmeurer@chromium.org
9e0f0a73dc
Get rid of ZoneScope completely.
...
There's no need to differentiate between an actual Zone and its
scope. Instead we bind the lifetime of the Zone memory to the
lifetime of the Zone itself, which is way easier to understand
than having to dig through the code looking for zone scopes.
Depends on https://codereview.chromium.org/17826004/
R=danno@chromium.org
BUG=
Review URL: https://codereview.chromium.org/17827005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15337 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-26 13:36:16 +00:00
bmeurer@chromium.org
8e9b934e7e
Get rid of the ZoneScopeMode.
...
No one is using the DONT_DELETE_ON_EXIT mode for ZoneScopes anymore, so
we can safely assume that all ZoneScopes are DELETE_ON_EXIT now.
R=danno@chromium.org
BUG=
Review URL: https://codereview.chromium.org/17826004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15336 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-26 12:54:12 +00:00
loislo@chromium.org
06200a3113
Revert "CPUProfiler: Simplify CodeEntry constructor calls."
...
This reverts commit a6cc1e3b563c0d0689da35dbf8163545c8146ddd.
One test starts failing on Windows.
BUG=none
TBR= yurys@chromium.org
Review URL: https://codereview.chromium.org/17875002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15335 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-26 12:38:10 +00:00
loislo@chromium.org
4292ac5932
CPUProfiler: Simplify CodeEntry constructor calls.
...
In almost all the places where we create CodeEntry we use default values.
Lets move them into arguments default values.
BUG=none
TEST=no logic changes.
R=yangguo@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/17836002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15333 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-26 09:55:33 +00:00
rossberg@chromium.org
e60acec321
Introduce Unsigned32 and RegExp types
...
Also, renamed Integer31 back to Smi, and Integer32 to Signed32.
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/17589013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15332 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-26 09:51:57 +00:00
titzer@chromium.org
bfa9fe95dc
Change PC for OSR entries to point to something more sensible (i.e. the first UnknownOsrValue), removing the need to record spilled OSR values and the need for duplicate deopt entries.
...
Review URL: https://codereview.chromium.org/16381006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15331 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-26 08:43:27 +00:00
svenpanne@chromium.org
a92d237948
Allow users of the V8 API to distinguish between unset and undefined HiddenValues
...
BUG=v8:2746
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/17781002
Patch from Adam Klein <adamk@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15329 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-26 08:00:05 +00:00
mvstanton@chromium.org
081134ecd1
Removed flag optimize-constructed-arrays.
...
This eliminates a large amount of hand-written assembly in the platforms.
BUG=
R=danno@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/16453002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15328 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-25 16:31:07 +00:00
peter.rybin@gmail.com
42a10a9dfe
Allow debugger evaluate expressions to mute local variables
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/17636007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15323 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-25 13:48:43 +00:00
alph@chromium.org
bd5fafd58a
Handle AccessorPair struct in heap snapshot.
...
R=svenpanne@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/17616002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15320 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-25 11:55:33 +00:00
hpayer@chromium.org
256c136b4f
Fixed more gc stress builder tests.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/17590016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15318 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-25 11:16:13 +00:00
mstarzinger@chromium.org
6d92511162
Reland "Remove IsInitialized checks from inlined API functions."
...
The initialization sequence in Blink has been adapted to use explicit
isolate initialization instead of through calling v8::Null() as the
first API call.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/17642011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15311 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-25 08:11:50 +00:00
hpayer@chromium.org
7ba980f2b1
Added pretenuring support for fast literal allocation in old data space.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/17580011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15306 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-25 07:47:53 +00:00
dslomov@chromium.org
e6e0ee0708
Update typed arrays behavior to match ES6 rev 15. Remove TO_POSITIVE_INTEGER and throw on negative length arguments.
...
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/17572009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15298 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-24 13:58:52 +00:00
loislo@chromium.org
e04a874edd
CPUProfiler: fix for test.
...
TBR= yangguo@chromium.org
Review URL: https://codereview.chromium.org/17589010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15288 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-24 13:03:19 +00:00
dslomov@chromium.org
4308fb462d
API for DataView.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/17155014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15282 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-24 11:23:50 +00:00
mstarzinger@chromium.org
48c16454b1
Revert "Remove IsInitialized checks from inlined API functions."
...
This reverts r15277 due to failures in layout tests. Apparently Blink
still initializes the Isolate by calling v8::Null() as the first API
function on some paths.
TBR=svenpanne@chromium.org
TEST=webkit:crypto/worker-random-values-concurrent.html
Review URL: https://codereview.chromium.org/17577008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15281 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-24 11:10:40 +00:00
mstarzinger@chromium.org
9ef18efff6
Remove IsInitialized checks from inlined API functions.
...
R=marja@chromium.org , svenpanne@chromium.org
TEST=cctest/test-api
Review URL: https://codereview.chromium.org/17068006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15277 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-24 08:58:01 +00:00
dslomov@chromium.org
b05628f540
Update boot-up memory use limit after adding DataView.
...
R=danno@chromium.org
Review URL: https://codereview.chromium.org/17589005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15274 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-24 07:02:53 +00:00
dslomov@chromium.org
91eb5f8d25
DataView implementation.
...
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/17153011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15269 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-21 13:02:38 +00:00
yurys@chromium.org
7f1750580c
V8 API: Add a missing NULL check into Isolate::GetCurrentContext().
...
There is a missing NULL check for: "internal_isolate->context() != NULL".
Right now before calling this method one should call v8::Context::InContext()
first to perform this check, otherwise we may crash. But this static method
will do this check on the current isolate, which may not be the same as a given one.
BUG=249655
R=yurys@chromium.org ,mvstanton@chromium.org
Review URL: https://codereview.chromium.org/16943006
Patch from Andrey Adaykin <aandrey@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15266 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-21 12:34:47 +00:00
yangguo@chromium.org
b7b92bd9ac
Short-circuit embedded cons strings.
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/17418003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15263 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-21 09:24:30 +00:00
yurys@chromium.org
6f09cb471b
Delete deprecated methods from v8-profiler.h
...
All these methods were already marked as V8_DEPRECATED in V8 Version 3.18.0 (see https://code.google.com/p/v8/source/browse/trunk/include/v8-profiler.h?r=14304 ) so it is time to delete them.
BUG=None
R=loislo@chromium.org , svenpanne@chromium.org
Review URL: https://codereview.chromium.org/17524007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15260 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-21 07:56:22 +00:00
yurys@chromium.org
c7b3ef0e05
Make sure ExternalCallbackScope is always created when VM state changes to EXTERNAL
...
ExternalCallbackScope is used to let CPU profiler know which API callback is being executed. Whenever such callback is called we should create VMState<ETERNAL> and ExternalCallbackScope. This patch fixes several places where VMState<ETERNAL> went without ExternalCallbackScope.
BUG=244580
R=dcarney@chromium.org , svenpanne@chromium.org
Review URL: https://codereview.chromium.org/17059005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15249 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 14:47:35 +00:00
dcarney@chromium.org
a74f511e61
remove all old style callbacks - patch 3
...
TBR=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/17336003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15237 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 12:28:27 +00:00
hpayer@chromium.org
77f5c6c122
Don't let the GC clear the cache between cache invocations to pass test.
...
BUG=
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/17218005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15233 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 11:23:34 +00:00
yangguo@chromium.org
928cbcdc8d
Skip parallel recompilation tests if parallel recompilation is disabled.
...
Parallel recompilation is usually disabled on single-core systems.
R=jkummerow@chromium.org
BUG=v8:2733
Review URL: https://codereview.chromium.org/17261021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15231 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 11:01:33 +00:00
wingo@igalia.com
f7ba3a7bb1
Fix stack frame reconstruction for generators with formal arguments
...
The formal parameter count was always being treated as an untagged
integer, but it is actually a Smi on ia32 and arm.
R=mstarzinger@chromium.org
BUG=v8:2355
TEST=mjsunit/harmony/generators-iteration
Review URL: https://codereview.chromium.org/17485002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15230 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 10:48:34 +00:00
mstarzinger@chromium.org
ea87d08557
Revert r14930 and r14935 temporarily.
...
This is a temporary revert to track down a potential perf regression
introduced in r14930. The following two changes were reverted:
- "Deprecate HAllocateObject in favor of HAllocate."
- "Added pretenuring support for call new."
R=danno@chromium.org
BUG=chromium:247504
Review URL: https://codereview.chromium.org/17491002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15229 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 10:48:14 +00:00
hpayer@chromium.org
1609402534
Abort incremental marking in stress gc tests whenever we expect a full collection after executing CollectAllGarbage.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/17482003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15227 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 10:04:53 +00:00
rossberg@chromium.org
eb099a1a8c
Introduce Type::Intersect function
...
Also, fix bugs in Type::Union and Type::Maybe.
(This subsumes the in-flight fix for Union in https://codereview.chromium.org/16925008/ , including test cases).
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/17335003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15224 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 09:10:10 +00:00
dcarney@chromium.org
640353d088
remove all old style callbacks - patch 1 of many
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/17064004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15222 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 08:12:59 +00:00
dcarney@chromium.org
89fb509c77
remove all old style callbacks - patch 2
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/17071004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15221 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 08:07:45 +00:00
yurys@chromium.org
2ab2e4843e
Introduce THREADED_PROFILED_TEST macro
...
A bunch of tests in test-api.cc need to be executed two times: with CPU profiler on and off to check different code paths. There are only two such tests at the moment but I'm going to add more and having this logic duplicated in all these tests look awkward. The tests are executed as part of Threading* tests and there is no much sense in running CPU profiler in that case. This change addresses both problems by introducing THREADED_PROFILED_TEST macro which mosly resembles THREADED_TEST except that when such test is executed as a standalone test (not part of a test-api/Threading*) it will first run the test normally and the start CPU profiler and run the test again.
BUG=244580
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/17072002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15220 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 06:46:56 +00:00
verwaest@chromium.org
2ca5c6cd03
Fix using monomorphic store instruction for polymorphic stores.
...
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/16875008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15214 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-19 18:07:35 +00:00
plind44@gmail.com
127af45629
MIPS: Fix test-cpu-profiler/SampleWhenFrameIsNotSetup flakiness on MIPS simulator.
...
BUG=v8:2628
TEST=cctest/test-cpu-profiler/SampleWhenFrameIsNotSetup
R=jkummerow@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/17265004
Patch from Dusan Milosavljevic <Dusan.Milosavljevic@rt-rk.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15213 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-19 17:20:25 +00:00
plind44@gmail.com
e6b83db740
MIPS: Fix cctest/test-assembler-mips on MIPS32R1 architecture.
...
TEST=cctest/test-assembler-mips/MIPS3
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/17099010
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15212 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-19 17:15:21 +00:00
jkummerow@chromium.org
aea73c155d
Remove unused counters
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/17157006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15208 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-19 16:50:38 +00:00
mvstanton@chromium.org
7f0f022792
Bugfix in hydrogen array literal code generation.
...
If an array literal contains some non-constant elements, is of type SMI, and
then the boilerplate transitions to double or fast sometime after we've
crankshafted the code, then we could incorrectly store smis in double arrays.
BUG=
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/17334004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15207 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-19 13:48:50 +00:00
svenpanne@chromium.org
010d9aba16
Avoid relying on monkey-patchable things in String.prototype.split.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/17391016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15206 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-19 12:25:40 +00:00
dslomov@chromium.org
51f3e2f055
Do not use weak handles for ArrayBuffers.
...
Instead of allocating weak handles to free ArrayBuffer backing store, dispose of memory while walking the weak list of ArrayBuffers on GC.
Also, free all array buffers on isolate tear-down.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/16950013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15205 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-19 11:53:30 +00:00
yangguo@chromium.org
1be45275c6
Fix test for bots that force --parallel-recompilation as shell flag.
...
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/16914006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15202 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-19 09:32:05 +00:00
mvstanton@chromium.org
c70b41684d
Use type feedback for Array (non-constructor) call sites.
...
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/17155010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15201 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-19 09:25:24 +00:00
hpayer@chromium.org
8f8461aff5
Disable stress_compaction flag in several GC tests to meet test
...
expectations.
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/17262002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15199 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-19 08:58:09 +00:00
yangguo@chromium.org
627872ec67
Do not modify FLAG_parallel_recompilation after start up.
...
R=jkummerow@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/17202006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15195 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-18 14:25:24 +00:00
mstarzinger@chromium.org
0524263a27
Remove obsolete elements kind check for array literals.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/17378005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15194 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-18 13:32:06 +00:00
svenpanne@chromium.org
fb7310b1fd
Fixed read-only attribute of Function.length in strict mode.
...
R=cira@chromium.org
Review URL: https://codereview.chromium.org/17006006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15189 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-18 07:51:50 +00:00
palfia@homejinni.com
f8fc5c443e
Allow running mjsunit/manual-parallel-recompile on single-core systems.
...
- Add an %IsParallelSupported() builtin function to make possible to check support of parallel processing from JavaScripts.
- Change the test script that if parallel recompilation is forced on a single core CPU, expect that it won't be recompiled in parallel.
- Change the JSFunction::MarkForParallelRecompilation() to fall back gracefully if parallel recompilation is not supported.
BUG=v8:2733
TEST=mjsunit/manual-parallel-recompile
Review URL: https://codereview.chromium.org/17277002
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15184 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-17 16:27:18 +00:00
palfia@homejinni.com
93609033e1
MIPS: Optimise Math.floor(x/y) to use integer division for MIPS.
...
Use div instruction if some divisors do not have magic number.
Based on commit r11427 (318a9598).
This commit also ports commit r15161 (554d45c1).
BUG=
Review URL: https://codereview.chromium.org/16951016
Patch from Dusan Milosavljevic <Dusan.Milosavljevic@rt-rk.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15181 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-17 15:06:41 +00:00
hpayer@chromium.org
2f731575f5
Fix Iteration on gc stress builder.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/17069004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15178 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-17 06:52:01 +00:00
hpayer@chromium.org
1adbc6134d
Fix Regress1465 on gc stress builder.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/17059006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15177 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-17 06:44:44 +00:00
hpayer@chromium.org
bbdf6dc6cf
Fix Regress2237 on gc stress builder.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/17081002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15176 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-17 06:36:46 +00:00
verwaest@chromium.org
328aeb14fb
Revert "Improved range analysis for bitwise operations."
...
This reverts commit r15170
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/17093005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15173 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-14 17:25:03 +00:00
verwaest@chromium.org
98167ed0a8
Improved range analysis for bitwise operations.
...
R=fschneider@chromium.org , verwaest@chromium.org
Review URL: https://chromiumcodereview.appspot.com/9156001
Patch from Stephen Adams <sra@google.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15170 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-14 16:55:34 +00:00