Commit Graph

912 Commits

Author SHA1 Message Date
dcarney@chromium.org
2efd6aa179 add isolate parameter to ThrowException
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16955 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-26 07:37:59 +00:00
mstarzinger@chromium.org
45ab50673e Expose SameValue equality comparison algorithm
Since SameValue algorithm is defined formally in ECMA262 and V8 already
exported Equals and StrictEquals algorithms, SameValue should be exposed.
And in this issue, we fix the issue of Object::SameValue implementation,
SameValue(0.0, -0.0) returnes true.

BUG=v8:2909
TEST=cctest/test-api/Equality
R=mstarzinger@chromium.org

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

Patch from Yusuke Suzuki <yusukesuzuki@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16924 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-24 16:51:43 +00:00
dcarney@chromium.org
b077828732 HandleScopeImplementer::entered_contexts_ should not store handles
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16917 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-24 11:40:28 +00:00
dcarney@chromium.org
9c32a5da1f build fix for 16877
TBR=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16906 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-24 07:49:37 +00:00
machenbach@chromium.org
d59b8fe5d7 [Sheriff] Revert "Let SetEntropySource() fail if called after V8::Initialize()."
This reverts commit 16889 for breaking the webkit tests.

TBR=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16896 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-23 14:43:41 +00:00
dcarney@chromium.org
fc21795aca remove IsDeadCheck
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16893 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-23 14:15:21 +00:00
bmeurer@chromium.org
c5751ce72c Let SetEntropySource() fail if called after V8::Initialize().
BUG=v8:2905
R=dslomov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16889 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-23 14:11:32 +00:00
dcarney@chromium.org
86a2e4849a remove Isolate::GetCurrent from Context api functions
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16877 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-23 11:25:52 +00:00
dcarney@chromium.org
c96a606e77 Remove default isolate usage from almost all tests
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16809 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-19 07:33:45 +00:00
svenpanne@chromium.org
cc17926d6b Add flags to force or prevent setting of isolate.is_memory_constrained.
Enables MAYBE_BOOL flags for when you want to only do something if the flag
was explicitly set to true or false. Also cleans up JSArguments struct.

BUG=None
R=svenpanne@chromium.org

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

Patch from Ross McIlroy <rmcilroy@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16774 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-17 13:48:17 +00:00
dcarney@chromium.org
f34340033e new gc callbacks with isolate parameters
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16770 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-17 12:37:22 +00:00
mstarzinger@chromium.org
4c85efb597 Handlify JSReceiver::HasProperty and friends.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16762 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-17 11:34:20 +00:00
svenpanne@chromium.org
bf345f022e Revert "Add flags to force or prevent setting of isolate.is_memory_constrained."
It introduces static initializers for the new "MAYBE_BOOL" kind of
flags, which is a no-no for Chrome. This has to be done differently.

TBR=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16736 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-16 14:09:22 +00:00
svenpanne@chromium.org
f30a734346 Add flags to force or prevent setting of isolate.is_memory_constrained.
Also enable MAYBE_BOOL flags for when you want to only do something if the flag was explicitly set to true or false.

BUG=None
R=hpayer@chromium.org, svenpanne@chromium.org

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

Patch from Ross McIlroy <rmcilroy@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16733 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-16 13:02:53 +00:00
mstarzinger@chromium.org
50b0567640 Handlify JSObject::DeepCopy method.
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16708 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-13 09:51:11 +00:00
jochen@chromium.org
c5b3ce0671 Snapshot i18n Javascript code
The previous attempt used Boolean instead of $Boolean.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16687 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-12 13:50:38 +00:00
dslomov@chromium.org
488ba18a13 Clean-up v8::ArrayBuffer::Allocator interface
BUG=v8:2823
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16650 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-11 12:54:28 +00:00
bmeurer@chromium.org
eb381b9444 Introduce a RandonNumberGenerator class. Refactor the random/private_random uses in Isolate/Context.
The RandomNumberGenerator is a pseudorandom number generator
with 48-bit state. It is properly seeded using either

(1) the --random-seed if specified, or
(2) the entropy_source function if configured, or
(3) /dev/urandom if available, or
(4) falls back to Time and TimeTicks based seeding.

Each Isolate now contains a RandomNumberGenerator, which replaces
the previous private_random_seed.

Every native context still has its own random_seed. But this random
seed is now properly initialized during bootstrapping,
instead of on-demand initialization. This will allow us to cleanup
and speedup the HRandom implementation quite a lot (this is delayed
for a followup CL)!

Also stop messing with the system rand()/random(), which should
not be done from a library anyway! We probably re-seeded the
libc rand()/random() after the application (i.e. Chrome) already
seeded it (with better entropy than what we used).

Another followup CL will replace the use of the per-isolate
random number generator for the address randomization and
thereby get rid of the Isolate::UncheckedCurrent() usage in
the platform code.

TEST=cctest/test-random-number-generator,cctest/test-random
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16612 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-10 11:13:55 +00:00
svenpanne@chromium.org
4ef84b9240 Add a ResourceConstraint for the embedder to specify that V8 is running on a memory constrained device.
This enables us to specialize certain operations such that we limit memory
usage on low-memory devices, without reducing performance on devices which
are not memory constrained.

BUG=chromium:280984
R=svenpanne@chromium.org

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

Patch from Ross McIlroy <rmcilroy@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16608 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-10 10:57:00 +00:00
svenpanne@chromium.org
d571a91e4a Remove HandleScope default ctor.
BUG=chromium:236173
R=bmeurer@chromium.org, svenpanne@chromium.org

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

Patch from Marja Hölttä <marja@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16605 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-10 06:43:23 +00:00
dcarney@chromium.org
66c8b527e8 new persistent semantics
adds copying and autodispose as traits

R=marja@chromium.org, mstarzinger@chromium.org, svenpanne@chromium.org

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16588 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-09 09:25:23 +00:00
dcarney@chromium.org
c20f87a654 add uncached Function::New
TBR=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16586 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-09 07:52:52 +00:00
dcarney@chromium.org
5b0a281604 revert 16584 for breaking build
TBR=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16585 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-09 07:16:24 +00:00
dcarney@chromium.org
ddc5d437bb add uncached Function::New
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16584 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-09 07:08:34 +00:00
bmeurer@chromium.org
63c817cc55 Drop GetCurrentThreadId() and TerminateExecution(int) from the external API.
R=dcarney@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16570 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-06 11:29:13 +00:00
loislo@chromium.org
bbd26abedb Functions may not be optimized and we would like to know in cpu profiler what was the reason.
Current v8 implementation may disable optimization for a particular function or block it with help of dont_optimize flag.
The patch propagates the reason of that to the SharedFunctionInfo where cpu profiler can get it.

SharedFunctionInfo is a heap object so I extracted 8 bits from OptsCount for handling bailout reason code.

BUG=none
TEST=test-profile-generator/BailoutReason
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16555 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-05 13:20:51 +00:00
dcarney@chromium.org
88910423c2 add isolate parameter for Execution::Call
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16545 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-05 08:48:34 +00:00
mstarzinger@chromium.org
eab9665f34 Remove obsolete V8::IdleNotification dispatch.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16528 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-04 13:37:39 +00:00
yurys@chromium.org
c034bb48b5 Allow configuring CPU profiler sampling interval using public API
The only way to change it at the moment is using a command line flag. We are going to add a setting to Chrome DevTools which would allow chaning default interval and that requires proper v8 API.

BUG=v8:2814
R=bmeurer@chromium.org, loislo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16525 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-04 11:55:28 +00:00
dcarney@chromium.org
615c34869c Push SetAccessor to Template
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16515 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-04 07:45:36 +00:00
dcarney@chromium.org
3e76d8b870 remove Isolate::Current from most files starting with 'o' through 'r'
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16513 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-04 07:05:11 +00:00
mstarzinger@chromium.org
fdb5b9241c Make sure the fatal OOM handler never returns.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16497 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-03 09:45:55 +00:00
mstarzinger@chromium.org
cd44f0dac7 Move global V8::IsDead() into the Isolate.
R=yangguo@chromium.org
BUG=v8:2744

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16496 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-03 09:35:26 +00:00
dcarney@chromium.org
0157c9f9e1 remove Isolate::Current from most files starting with 'd' and 'e'
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16490 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-03 06:59:01 +00:00
bmeurer@chromium.org
fead0d0600 Cleanup Semaphore class.
Drop the previous Semaphore class from platform files.

Add new Semaphore class using the new TimeDelta class for
the WaitFor() operation. Consistently assert correct behaviour
for the different implementations.

Improve test coverage of the Semaphore class.

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16473 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-02 12:26:06 +00:00
dcarney@chromium.org
f4e16f24ec remove Isolate::Current from most files starting with 'a'
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16463 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-02 09:27:27 +00:00
yurys@chromium.org
1379f4efeb Add scriptId to StackTrace frames.
BUG=v8:2865
R=verwaest@chromium.org, yurys@chromium.org

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

Patch from Vsevolod Vlasov <vsevik@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16459 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-30 14:54:59 +00:00
mstarzinger@chromium.org
28fbc630d3 Handlify JSObject::SetAccessor method.
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16455 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-30 14:08:15 +00:00
mstarzinger@chromium.org
5d87a6c8e0 Handlify JSObject::DeleteHiddenProperty method.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16453 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-30 13:28:52 +00:00
mstarzinger@chromium.org
5e5ea8d494 Handlify JSObject::DeleteElement method.
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16438 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 18:01:45 +00:00
yurys@chromium.org
1083d1f817 Remove deprecated profiler API
This change removes --prof-lazy command line flag that was introduced for the old CPU profiler implementation in Chrome DevTools. DevTools now use profiler API defined in v8-profiler.h

This change also removes methods for pausing resuming --prof profiler. These methods were deprecated in v.3.20 (https://code.google.com/p/v8/source/browse/branches/3.20/include/v8.h#4629)

After this change the profiler will always start if --prof option is passed and can be stopped either in the tests or if write to log file fails.

BUG=None
R=bmeurer@chromium.org, loislo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16417 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 10:42:55 +00:00
bmeurer@chromium.org
b320dfcf58 Reland^2 "Add Chromium-style TimeDelta, Time and TimeTicks classes, and a new ElapsedTimer class."
These classes are meant to replace OS::Ticks() and OS::TimeCurrentMillis(),
which are broken in several ways. The ElapsedTimer class implements a
stopwatch using TimeTicks::HighResNow() for high resolution, monotonic
timing.

Also fix the CpuProfile::GetStartTime() and CpuProfile::GetEndTime()
methods to actually return the time relative to the unix epoch as stated
in the documentation (previously that was relative to some arbitrary
point in time, i.e. boot time).

The previous Windows issues have been resolved, and we now use GetTickCount64()
on Windows Vista and later, falling back to timeGetTime() with rollover
protection for earlier Windows versions.

BUG=v8:2853
R=machenbach@chromium.org, yurys@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16413 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-29 09:15:13 +00:00
bmeurer@chromium.org
adab11d0f9 Revert "Cross-compiling from Linux to Android requires -lrt for the host toolset.", "Fix Visual Studio debug build after r16398." and "Reland "Add Chromium-style TimeDelta, Time and TimeTicks classes, and a new ElapsedTimer class.""
This reverts commit r16398, r16399 and r16402 for breaking the Windows
WebKit tests. Will reland fix which doesn't use High Resolution Timer
for ElapsedTimer (we suspect QueryPerformanceCounter overhead is
responsible for test breakage).

TBR=machenbach@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16405 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-28 14:32:08 +00:00
bmeurer@chromium.org
e2b4525397 Reland "Add Chromium-style TimeDelta, Time and TimeTicks classes, and a new ElapsedTimer class."
These classes are meant to replace OS::Ticks() and OS::TimeCurrentMillis(),
which are broken in several ways. The ElapsedTimer class implements a
stopwatch using TimeTicks::HighResNow() for high resolution, monotonic
timing.

Also fix the CpuProfile::GetStartTime() and CpuProfile::GetEndTime()
methods to actually return the time relative to the unix epoch as stated
in the documentation (previously that was relative to some arbitrary
point in time, i.e. boot time).

BUG=v8:2853
R=machenbach@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16398 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-28 13:03:06 +00:00
bmeurer@chromium.org
1d3f6815e3 Revert "Add Chromium-style TimeDelta, Time and TimeTicks classes, and a new ElapsedTimer class."
This reverts commit r16390 for breaking the Windows build. Will
reland fixed version, which also uses the platform/ folder instead
of time/ folder as per offline discussion.

TBR=machenbach@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16391 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-28 11:38:20 +00:00
bmeurer@chromium.org
fa5216a145 Add Chromium-style TimeDelta, Time and TimeTicks classes, and a new ElapsedTimer class.
These classes are meant to replace OS::Ticks() and OS::TimeCurrentMillis(),
which are broken in several ways. The ElapsedTimer class implements a
stopwatch using TimeTicks::HighResNow() for high resolution, monotonic
timing.

Also fix the CpuProfile::GetStartTime() and CpuProfile::GetEndTime()
methods to actually return the time relative to the unix epoch as stated
in the documentation (previously that was relative to some arbitrary
point in time, i.e. boot time).

BUG=v8:2853
R=machenbach@chromium.org, yurys@chromium.org

Committed: https://code.google.com/p/v8/source/detail?r=16388

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16390 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-28 11:06:11 +00:00
bmeurer@chromium.org
cfb126c52a Revert "Add Chromium-style TimeDelta, Time and TimeTicks classes, and a new ElapsedTimer class."
This reverts commit r16388 for breaking build due to merge typo,
will reland with typo fixed.

TBR=machenbach@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16389 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-28 11:04:40 +00:00
bmeurer@chromium.org
8faf4d4291 Add Chromium-style TimeDelta, Time and TimeTicks classes, and a new ElapsedTimer class.
These classes are meant to replace OS::Ticks() and OS::TimeCurrentMillis(),
which are broken in several ways. The ElapsedTimer class implements a
stopwatch using TimeTicks::HighResNow() for high resolution, monotonic
timing.

Also fix the CpuProfile::GetStartTime() and CpuProfile::GetEndTime()
methods to actually return the time relative to the unix epoch as stated
in the documentation (previously that was relative to some arbitrary
point in time, i.e. boot time).

BUG=v8:2853
R=machenbach@chromium.org, yurys@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16388 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-28 10:59:07 +00:00
yurys@chromium.org
4f60ee6bd7 Remove deprecated methods from debugger API
Deleting SetDebugEventListener and SetMessageHandler from v8::Debug. this methods were deprecated in 3.20
https://code.google.com/p/v8/source/browse/branches/3.20/include/v8-debug.h but in fact they have been superseded by SetDebugEventListener2 and SetMessageHandler2 long ago.

BUG=None
R=bmeurer@chromium.org, loislo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16379 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-28 07:11:37 +00:00
yurys@chromium.org
dc670f4412 Remove implementation of CpuProfileNode methods deprecated in v8 3.20
GetTotalTime, GetSelfTime and GetTotalSamplesCount were deprecated in 3.20 (https://code.google.com/p/v8/source/browse/branches/3.20/include/v8-profiler.h) and can be safely removed.

BUG=None
R=bmeurer@chromium.org, loislo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16367 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-27 15:12:04 +00:00
dcarney@chromium.org
166b6d0747 remove old style callbacks
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16354 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-27 11:47:52 +00:00
mstarzinger@chromium.org
fc68cb74e5 Add RemovePrototype to FunctionTemplate
This allows functions created from a FunctionTemplate to not have a
prototype property, which is required by DOM methods.

R=mstarzinger@chromium.org
BUG=chromium:272440

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

Patch from Erik Arvidsson <arv@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16341 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-26 17:40:03 +00:00
jkummerow@chromium.org
caba24c813 Revert "Snapshot i18n Javascript code" and "Fix mjsunit/debug-script after r16298".
This reverts r16298 and r16303 due to ChromeOS browser_tests failures ("Uncaught ReferenceError: Boolean is not defined" in --gtest_filter="FileDisplay/FileManagerBrowserTest.Test/0" and others)

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16336 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-26 17:00:58 +00:00
dcarney@chromium.org
ad9cc8e716 js accessor creation on Template
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16321 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-26 11:59:14 +00:00
dcarney@chromium.org
b1bc71a510 abstract eternal into class
R=rossberg@chromium.org, svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16316 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-26 09:41:22 +00:00
jochen@chromium.org
064c91be57 Snapshot i18n Javascript code
BUG=v8:2745
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16298 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-23 13:24:48 +00:00
yurys@chromium.org
85d8178d87 Deprecate self and total time getters and total sample count getter on CpuProfileNode
All of these values are derived from the self samples count and there is no need to evaluate them in v8 when clients can do that when needed on their side.

Also added unsigned GetHitCount() which should be used instead of double GetSelfSamplesCount(). I'm going to deprecate the latter one once Blink has switched to GetHitCount.

BUG=267595
TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16119 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-09 07:38:26 +00:00
yurys@chromium.org
4f56107e2f Revert "Deprecate self and total time getters and total sample count getter on CpuProfileNode"
This reverts commit r16116 due to WebKit compilation breakage. Will reland it once Blink r155755 is rolled into Chromium.

TBR=svenpanne@chromium.org
BUG=None

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16117 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-08 14:43:44 +00:00
yurys@chromium.org
122327d1c6 Deprecate self and total time getters and total sample count getter on CpuProfileNode
All of these values are derived from the self samples count and there is no need to evaluate them in v8 when clients can do that when needed on their side.

Also added unsigned GetHitCount() which should be used instead of double GetSelfSamplesCount(). I'm going to deprecate the latter one once Blink has switched to GetHitCount.

BUG=267595
R=loislo@chromium.org, svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16116 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-08 13:39:57 +00:00
yurys@chromium.org
707fdd4c6a Support idle time in CPU profiler
This change provides an API for the embedder to tell CPU profiler if it is idle or busy with some task. This way we can discriminate between idle time and some native code execution.

BUG=268947
R=alph@chromium.org, yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16109 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 17:04:27 +00:00
yangguo@chromium.org
ef8d394f12 Re-reland "Flush parallel recompilation queues on context dispose notification"
BUG=
R=hpayer@chromium.org, mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16095 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 09:33:09 +00:00
yangguo@chromium.org
5818d831c5 Make JSON::Parse return Local<Value>
It should be able to return Smi, etc. Not only JSObject.

BUG=v8:2821
TEST=cctest/test-api/JSONParseNumber
R=yangguo@chromium.org

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

Patch from Takeshi Yoshino <tyoshino@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16092 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 09:11:39 +00:00
dcarney@chromium.org
cd74a09886 expose eternal handle api
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16089 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 08:26:23 +00:00
yurys@chromium.org
e06343431a Return start/end profiling time in microseconds instead of milliseconds
The start and end time are now measured in microseconds and the type is int64_t.
This way it seems more natural as we are going to support submilisecond sampling
rate soon. Also it fixes cctest/test-cpu-profiler/ProfileStartEndTime test
failure caused by comparison between long double and double.

TEST=cctest/test-cpu-profiler/ProfileStartEndTime
BUG=v8:2824
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16067 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 08:00:58 +00:00
bmeurer@chromium.org
274f254236 Revert "Return start/end profiling time in microseconds instead of milliseconds"
This reverts r16049 for breaking build on windows.

TBR=svenpanne@chromium.org,machenbach@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16050 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 12:27:12 +00:00
yurys@chromium.org
d38bbe354b Return start/end profiling time in microseconds instead of milliseconds
The start and end time are now measured in microseconds and the type is int64_t. This way it seems more natural as we are going to support submilisecond sampling rate soon. Also it fixes cctest/test-cpu-profiler/ProfileStartEndTime test failure caused by comparison between long double and double.

TEST=cctest/test-cpu-profiler/ProfileStartEndTime
BUG=v8:2824
R=alph@chromium.org, bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16049 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 11:48:24 +00:00
jochen@chromium.org
cb68e2cd9b Expose JSON parser through V8 API
BUG=v8:2821
TEST=cctest/test-api/JSONParse
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16048 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 11:14:46 +00:00
yurys@chromium.org
411d21b2b1 Add start and end profiling time to v8::CpuProfile
I'm going to change CPU profiler API and deprecate GetSelfTime, GetTotalTime and GetTotalSamplesCount on CpuProfileNode as all of those values are derived from self samples count and sampling rate. The sampling rate in turn is calculate based on the profiling duration so having start/end time and total sample count is enough for calculating smpling rate.

BUG=267595
R=alph@chromium.org, bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16039 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 07:17:08 +00:00
dslomov@chromium.org
5230c19d8b Add size_t length argument to v8::ArrayBuffer::Allocator::Free.
The previous implementation of Free is a deprecated overload now.

R=mstarzinger@chromium.org

Committed: https://code.google.com/p/v8/source/detail?r=16031

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16033 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 13:03:06 +00:00
dslomov@chromium.org
f8b80ca66d Revert "Add size_t length argument to v8::ArrayBuffer::Allocator::Free."
This reverts r16031 for breaking shared build.

TBR=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16032 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 12:56:53 +00:00
dslomov@chromium.org
1688f3c167 Add size_t length argument to v8::ArrayBuffer::Allocator::Free.
The previous implementation of Free is a deprecated overload now.

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16031 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 12:19:22 +00:00
jochen@chromium.org
71cad9edb6 Fix incorrect #ifdef statements for I18N support.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16014 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 19:21:16 +00:00
mstarzinger@chromium.org
96fc677d25 Pipe a script's CORS status through V8 during compilation.
In order to properly sanitize exception data during a 'window.onerror'
handler, we need to know whether a script was served with proper CORS
headers at the time it was loaded into V8. This patch adds a single bool
to ScriptOrigin, and pipes that through the compiler to land on the
Script object. We can then retrieve the parameter when calling the
embedder's exception callback.

BUG=crbug.com/159566
R=mstarzinger@chromium.org

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

Patch from Mike West <mkwst@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15963 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 17:05:50 +00:00
mstarzinger@chromium.org
3202e1d795 Re-revert "Flush parallel recompilation queues on context dispose notification" (r15883).
R=danno@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15947 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 08:35:48 +00:00
svenpanne@chromium.org
31e56df122 Prepare some ValueOf renamings.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15945 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 07:05:15 +00:00
yangguo@chromium.org
b62a6d0e2e Do not allow external strings in old pointer space.
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15906 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 12:32:06 +00:00
mstarzinger@chromium.org
aded201670 Revert "Check that ExternalString objects get aligned resources" (r15894).
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15898 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 10:40:00 +00:00
mstarzinger@chromium.org
40d5faea73 Check that ExternalString objects get aligned resources.
R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15894 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 09:02:34 +00:00
yangguo@chromium.org
14e205e9cf Reland "Flush parallel recompilation queues on context dispose notification."
BUG=
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15883 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 15:01:23 +00:00
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
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
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
jochen@chromium.org
97409c2363 Move InitializeICU() to the V8 API and use it.
I can't get rid of the enable_i18n flag yet, as we need to be able to
turn off all extensions for creating the snapshot.

BUG=v8:2745
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15618 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 09:58:54 +00:00
verwaest@chromium.org
b5f63ae659 Revert "Introduce a handle zapping setting, and enable it by default for release and debug" due to performance impact.
R=jochen@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15558 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 15:28:25 +00:00
jochen@chromium.org
ab5addd86d Introduce a handle zapping setting, and enable it by default for release and debug
The checks are split out from "extra checks" which are too expensive to
turn on by default.

R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15548 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 11:29:55 +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
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
yurys@chromium.org
44981e4f5e Remove deprecated heap profiler methods from V8 public API
v8::HeapProfiler::FindHeapSnapshot was already deprecated when 3.19 branch was created (https://code.google.com/p/v8/source/browse/branches/3.19/include/v8-profiler.h).

BUG=None
R=loislo@chromium.org, yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15493 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-04 16:34:07 +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
b89693572a Fix typo in api.cc
BUG=v8:2745
R=jkummerow@chromium.org

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

Patch from Jochen Eisinger <jochen@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15475 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 15:27:47 +00:00
jkummerow@chromium.org
56ab3e3404 Import the v8-i18n extension into v8
This adds the gyp flag v8_enable_i18n_support (off by default), and the
v8 flag FLAG_enable_i18n (on by default, but without effect if
v8_enable_i18n_support is off).

BUG=v8:2745
R=cira@chromium.org, danno@chromium.org, jkummerow@chromium.org

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

Patch from Jochen Eisinger <jochen@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15464 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 11:22:29 +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
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
mstarzinger@chromium.org
de07db147f Ensure CheckInitialized is present independent of define.
This makes sure that the same symbols are present, independent of which
defines have been used while building V8. Otherwise only embedders with
compatible defines would be able to link against that binary.

R=danno@chromium.org
BUG=chromium:255779

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15417 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 12:57:15 +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
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
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
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
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
loislo@chromium.org
53eb53f4af CPUProfiler: It is not clear why we are using Handle<Object> for scriptId. Lets flip it into Smi/int.
By the nature it is integer. So we can work with it as with Smi internaly and use int in the external API.

BUG=none
TEST=existing tests
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15327 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-25 14:57:47 +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
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
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
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
dcarney@chromium.org
8202410cca deprecate old style callbacks
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15239 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 12:53:19 +00:00
yurys@chromium.org
c4224f09a2 Notify CPU profiler when calling native getters
This change modifies code produced by BaseLoadStubCompiler::GenerateLoadCallback so that instead of calling AccessorGetter direcly it calls InvokeAccessorGetter which changes VM state and calls the actual callback. This way CPU profiler knows which external callback is being executed in this case. Indirect call happens only if CpuProfiler::is_profiling() is true.

This is exactly same change as r15116 with a build fix for test-api.cc

BUG=244580
TBR=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15135 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-13 19:16:35 +00:00
yurys@chromium.org
24ec017182 Revert "Notify CPU profiler when calling native getters"
This reverts commit f323d984a73bab345c4eab5c1907552ccfa7ccaa.

Broke compilation on the bots with an error that doesn't occur locally:

  CXX(target) /mnt/data/b/build/slave/v8-linux-debug/build/v8/out/Debug/obj.target/cctest/test/cctest/test-bignum-dtoa.o
../test/cctest/test-api.cc: In function ‘void FastReturnValueCallback(const v8::FunctionCallbackInfo<v8::Value>&) [with T = int]’:
../test/cctest/test-api.cc:1129: error: insufficient contextual information to determine type
../test/cctest/test-api.cc: In function ‘void FastReturnValueCallback(const v8::FunctionCallbackInfo<v8::Value>&) [with T = unsigned int]’:
../test/cctest/test-api.cc:1136: error: insufficient contextual information to determine type
../test/cctest/test-api.cc: In function ‘void FastReturnValueCallback(const v8::FunctionCallbackInfo<v8::Value>&) [with T = double]’:
../test/cctest/test-api.cc:1143: error: insufficient contextual information to determine type
../test/cctest/test-api.cc: In function ‘void FastReturnValueCallback(const v8::FunctionCallbackInfo<v8::Value>&) [with T = bool]’:
../test/cctest/test-api.cc:1150: error: insufficient contextual information to determine type
../test/cctest/test-api.cc: In function ‘void FastReturnValueCallback(const v8::FunctionCallbackInfo<v8::Value>&) [with T = void]’:
../test/cctest/test-api.cc:1157: error: insufficient contextual information to determine type
  CXX(target) /mnt/data/b/build/slave/v8-linux-debug/build/v8/out/Debug/obj.target/cctest/test/cctest/test-circular-queue.o

BUG=None
TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15117 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-13 14:05:19 +00:00
yurys@chromium.org
1a3c3cee9d Notify CPU profiler when calling native getters
This change modifies code produced by BaseLoadStubCompiler::GenerateLoadCallback so that instead of calling AccessorGetter direcly it calls InvokeAccessorGetter which changes VM state and calls the actual callback. This way CPU profiler knows which external callback is being executed in this case.

BUG=244580
R=dcarney@chromium.org, loislo@chromium.org, svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15116 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-13 13:46:33 +00:00
dcarney@chromium.org
8b2c26d736 remove most uses of raw handle constructors
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15107 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-13 09:27:09 +00:00
danno@chromium.org
1b89cbf817 Separate Cell and PropertyCell spaces
This makes it possible to store additional information on property cells, for example Type and optimized Code dependencies.

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15089 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-12 15:03:44 +00:00
dslomov@chromium.org
ecaf460548 Unify processing of weak lists in heap.cc
R=hpayer@chromium.org, mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15076 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-12 09:31:39 +00:00
dslomov@chromium.org
9278a4b7b1 Change ArrayBuffer API and implementation to use embedder-provided allocator.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15056 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-11 10:41:14 +00:00
dcarney@chromium.org
e13aac5fcc build fix for 15025
R=yangguo@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15026 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-10 08:19:03 +00:00
dcarney@chromium.org
7df1f40b0b build fix for 15023
R=yangguo@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15025 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-10 07:56:17 +00:00
dcarney@chromium.org
8c892ea2a8 do aligned reads in ContainsOnlyOneByte
R=yangguo@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15023 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-10 07:34:58 +00:00
dslomov@chromium.org
cbb11dbe6c Neutering API for v8::ArrayBuffer
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15006 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-07 15:02:20 +00:00
dslomov@chromium.org
b3282c290e Recording array buffer views.
R=hpayer@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15000 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-07 10:52:11 +00:00
dcarney@chromium.org
6f5d899248 add function to test whether string contents are definitely one byte
R=yangguo@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14976 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-06 13:16:52 +00:00
dcarney@chromium.org
33dabf08f9 Cutover v8 to use new style callbacks internally
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14952 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-05 12:36:33 +00:00
dcarney@chromium.org
2380eff265 Remove V8_USE_OLD_STYLE_PERSISTENT_HANDLE_VISITORS.
Blink has migrated to use the new style visitors.

BUG=
R=dcarney@chromium.org, svenpanne@chromium.org

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

Patch from Marja Hölttä <marja@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14936 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-04 13:36:18 +00:00
mstarzinger@chromium.org
f8db2414f2 Deprecate FACTORY helper macro.
This removes the FACTORY helper macro to avoid accidental TLS access
when using the factory. Most internal code has access to the Isolate by
now whereas tests which are not performance critical still heavily use
TLS access through explicit Isolate::Current() calls.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14931 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-04 10:30:05 +00:00
yangguo@chromium.org
7f8a3d803c Make assertion scopes thread safe.
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14919 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-03 15:32:22 +00:00
dcarney@chromium.org
7d55c16389 remove V8_ALLOW_ACCESS_TO_PERSISTENT_IMPLICIT and V8_ALLOW_ACCESS_TO_PERSISTENT_ARROW
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14914 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-03 10:02:02 +00:00
dcarney@chromium.org
595d0ea8b0 remove old MakeWeak
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14911 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-03 08:17:04 +00:00
mstarzinger@chromium.org
bc9bc0de1a Fix handle zapping interaction with NoHandleAllocation.
This makes sure that closed handle scopes are properly zapped even if an
enclosing NoHandleAllocation shrunk the limit. It also unifies the code
that performs scope closing for internal and external handle scopes.

R=svenpanne@chromium.org
TEST=cctest/test-api/NestedLockersNoTryCatch

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14876 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-29 11:09:01 +00:00
dcarney@chromium.org
f16ebc61c9 Delete old GC related APIs.
Blink doesn't use them any more, and they have no other known users either.

BUG=
R=dcarney@chromium.org, svenpanne@chromium.org

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

Patch from Marja Hölttä <marja@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14872 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-29 08:52:01 +00:00
dcarney@chromium.org
515aec2014 Transforming PersistentHandleVisitor to not need to copy Persistent handles.
This gets rid of more places where Persistent handles are copied
(see crbug.com/236290 ).

Transition plan: after this CL, Blink will be modified to work both with and
without the #define, then the #define will be removed from V8.

The corresponding Blink side changes are in https://codereview.chromium.org/15670010/ .

BUG=
R=dcarney@chromium.org, svenpanne@chromium.org

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

Patch from Marja Hölttä <marja@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14871 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-29 08:48:37 +00:00
dcarney@chromium.org
7b82ad9b98 de-isolate remaining persistent calls
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14868 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-29 08:32:45 +00:00
yurys@chromium.org
9974d932b2 Deprecate profiler methods that accept security origin
Now that the only known client console.profiles was removed from Blink:
https://src.chromium.org/viewvc/blink?revision=151136&view=revision
https://src.chromium.org/viewvc/blink?revision=151196&view=revision
this method can be deprecated and all the code that supports filtering
CPU profiles based on security origins can be later removed.

Drive-by fix: in line with CpuProfiler changes deprecated HeapProfiler::FindHeapSnapshot to reduce v8 API surface. FindHeapSnapshot may well be implemented based on existing GetSnapshotCount/GetSnapshot and it is only used in the tests.

BUG=None
R=jkummerow@chromium.org, loislo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14833 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-28 08:00:16 +00:00
dcarney@chromium.org
91efd1e7d7 callback handler map not correctly populated by direct use of SetCallHandler
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14789 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-24 07:59:33 +00:00
dslomov@chromium.org
fc73052dc2 Externalization API for ArrayBuffer
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14770 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-23 10:01:42 +00:00
dcarney@chromium.org
366948840a de-isolate Persistent::Dispose
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14764 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-23 08:19:27 +00:00
dcarney@chromium.org
1045d62733 implement fast ReturnValue setters
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14738 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-22 06:35:38 +00:00
dcarney@chromium.org
881476a7af new style of property/function callbacks
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14725 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-21 06:36:24 +00:00
dslomov@chromium.org
2ff3e2e0f4 Preallocate transitioned maps for TypedArrays.
R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14693 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-15 15:23:53 +00:00
dcarney@chromium.org
42a8ff87ba add weakcallback without persistent copying
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14566 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-07 10:44:30 +00:00
dcarney@chromium.org
0cf128390f deprecate WriteAscii and MayContainNonAscii
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14533 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-03 06:47:24 +00:00
dcarney@chromium.org
2e856d2c16 expose AssertNoAllocation to api
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14531 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-02 20:28:02 +00:00
dcarney@chromium.org
cf5ff5a14c first step to remove unsafe handles
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14530 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-02 20:18:42 +00:00
dslomov@chromium.org
6e86141916 Implementation of Uint8ClampedArray.
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14517 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-02 11:36:48 +00:00
dslomov@chromium.org
1469acaa7f Add Value::Is* methods for typed arrays and ArrayBuffer
R=rossberg
BUG=

Committed https://code.google.com/p/v8/source/detail?r=14506

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14508 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-30 18:53:27 +00:00
dslomov@chromium.org
3af1cc1072 Revert "Fix typo"
This reverts commit r14506 (that was commited with a wrong description).

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14507 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-30 18:49:20 +00:00
dslomov@chromium.org
b029ad4201 Fix typo
R=rossberg@chromium.org

BUG=

Committed: https://code.google.com/p/v8/source/detail?r=14505

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14506 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-30 18:02:22 +00:00
dslomov@chromium.org
3fd6bb51f0 First cut at API for native Typed Arrays.
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14476 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-29 11:09:03 +00:00
dcarney@chromium.org
c50304209a remove IsOneByteConvertible
R=ulan@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14461 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-26 14:08:18 +00:00
dcarney@chromium.org
0a32b57594 HasOnlyAsciiChars can return incorrect results. Fixup usages and rename.
R=ulan@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14453 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-26 11:34:44 +00:00
dslomov@chromium.org
44f2d534b1 First cut at API for ES6 ArrayBuffers
R=rossberg@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14438 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-25 12:02:23 +00:00
mstarzinger@chromium.org
e7c1f322a4 New GC APIs, try 2.
With these APIs, the embedder doesn't need to copy Persistent handles around.

BUG=

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

Patch from Marja Hölttä <marja@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14423 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-24 15:59:23 +00:00
yangguo@chromium.org
d1df0e631d Clean up VMState a little bit.
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14421 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-24 14:44:08 +00:00
yangguo@chromium.org
555c78c513 create uniform string api
R=yangguo@chromium.org
BUG=

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

Patch from Dan Carney <dcarney@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14379 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-22 15:20:28 +00:00
yangguo@chromium.org
4d1362720f Add methods to allow resuming execution after calling TerminateExecution().
R=mvstanton@chromium.org
BUG=v8:2361

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14378 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-22 15:01:45 +00:00
danno@chromium.org
bc04544f02 Replace math.h with cmath
This will make it easier to use other STL headers in the future

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

Patch from Jochen Eisinger <jochen@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14352 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-19 13:26:47 +00:00
yangguo@chromium.org
373bdbc951 Fix debug print and wrong handle dereference in es6 typed array.
R=dslomov@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14330 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-18 12:46:38 +00:00
mstarzinger@chromium.org
091f0b7f35 Revert the commits adding new GC-related APIs.
We need to solve efficiency problems first.

This reverts the following revisions: 14283 14286 14221 14215

BUG=

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

Patch from Marja Hölttä <marja@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14293 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-16 16:37:04 +00:00
mstarzinger@chromium.org
e8bc8d76ae New GC related APIs: Implicit references.
When using these APIs, the embedder doesn't need to copy Persistent handles around.

BUG=NONE

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

Patch from Marja Hölttä <marja@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14283 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-16 12:57:01 +00:00
jkummerow@chromium.org
586c4e74b6 Replace OS::MemCopy with OS::MemMove (just as fast but more flexible).
Review URL: https://codereview.chromium.org/13932006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14280 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-16 12:30:51 +00:00
danno@chromium.org
f5b660ac97 Intel VTune integration for V8/d8
In this patch, we added the JIT code event handler for Vtune. Most of the code is in the
folder src/third_party/vtune. Two APIs are added in include/v8.h to get the requirement info
from V8.

We add the v8_enable_vtunejit parameter for GYP to enable these Vtune code compilation.
vTune::InitilizeVtuneForV8() is invoked in the embedder of V8 to make sure it's invokded if
vtune support is enabled.

Review URL: https://codereview.chromium.org/11574031
Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14253 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-12 12:48:27 +00:00
mstarzinger@chromium.org
45125e6480 New GC related APIs.
When using these APIs, the embedder doesn't need to copy Persistent handles around.

BUG=NONE

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14215 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-10 14:53:03 +00:00
rossberg@chromium.org
dc72037e10 ES6 symbols: extend V8 API to support symbols
Specifically:
- Introduce Symbol and SymbolObject classes.
- Generalise Object::Has and Object::Delete to arbitrary Value-typed keys.
- Generalise some places in the API implementation from String to Name.

It is not possible to intercept symbol-named properties. That is consistent with the idea that symbols are private and should not leak.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14210 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-10 12:16:29 +00:00
mstarzinger@chromium.org
a22790bfed Change Context::New to not create persistent handles.
This moves the responsibility of putting a new context into a persistent
handle to the embedder. Also it removes one API function where the copy
constructor for persistent handles is needed.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14203 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-10 09:34:37 +00:00
svenpanne@chromium.org
d04de1fe1a Move context retrieval method around. Use delegation for implementation.
This is a refactoring of https://code.google.com/p/v8/source/detail?r=14146.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14171 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-09 07:34:32 +00:00
mstarzinger@chromium.org
d71678676f Refactor parser mode configuration for correctness
This patch refactors the parser and preparser interface to be more
readable and type-safe.  It has no behavior changes.

Previously, parsers and preparsers were configured via bitfield called
parser_flags in the Parser constructor, and flags in
PreParser::PreParseProgram, ParserApi::Parse, and ParserApi::PreParse.
This was error-prone in practice: six call sites passed incorrectly
typed values to this interface (a boolean FLAG value, a boolean false
and a boolean true value).  None of these errors were caught by the
compiler because it's just an "int".

The parser flags interface was also awkward because it encoded a
language mode, but the language mode was only used to turn on harmony
scoping or not -- it wasn't used to actually set the parser's language
mode.

Fundamentally these errors came in because of the desire for a
procedural parser interface, in ParserApi.  Because we need to be able
to configure the parser in various ways, the flags argument got added;
but no one understood how to use the flags properly.  Also they were
only used by constructors: callers packed bits, and the constructors
unpacked them into booleans on the parser or preparser.

The solution is to allow parser construction, configuration, and
invocation to be separated.  This patch does that.

It passes the existing tests.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14151 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-05 13:01:06 +00:00
haraken@chromium.org
c638555853 Pass an isolate to GetCurrent()
TEST=test-api.cc:GetCallingContextCallback

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14146 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-05 02:17:56 +00:00
adamk@chromium.org
759f4b37ce Remove code duplication in JSObject::HasRealElementProperty
Review URL: https://codereview.chromium.org/13540003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14144 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-04 19:12:59 +00:00
mstarzinger@chromium.org
7e0ae6da66 Fix bogus uses of preparser API
* src/api.cc (ScriptData::PreCompile): Fix bogus use of bogus value for
  preparsing flags by removing those arguments, which were always zero.

* src/parser.h
* src/parser.cc (ParserApi::PreParse): Remove extension and flags
  arguments, both of which were either always 0 or incorrectly used.

* test/cctest/test-parsing.cc (RegressChromium62639, Regress928): Fix
  more bogus uses of preparser api.

BUG=

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

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

TBR=danno
BUG=None

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

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

TBR=danno
BUG=None

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

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

TBR=danno
BUG=None

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

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

TBR=danno
BUG=None

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

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

TBR=danno
BUG=None

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

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

BUG=2591

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

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

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

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

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

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

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

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

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

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

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

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

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

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

BUG=v8:2361

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14022 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-21 10:47:34 +00:00
yurys@chromium.org
95bfca8828 Isolatify CPU profiler public API
BUG=None

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

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

BUG=None

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

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

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

BUG=None

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13997 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-20 08:38:17 +00:00
yurys@chromium.org
a8e9bebabd Isolatify CPU profiler
BUG=None

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

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

BUG=None

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

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

BUG=v8:2487

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

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

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

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

BUG=None

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

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

BUG=v8:2487

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13953 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-15 12:06:53 +00:00
dcarney@chromium.org
5e1d926053 Some Utf8Length microoptimizations
R=yangguo@chromium.org
BUG=

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

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

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

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

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

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

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

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

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

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

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

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

R=yangguo@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13781 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-28 17:03:34 +00:00
svenpanne@chromium.org
bfaf38d2fd Miscellaneous profile-driven Isolate plumbing.
While doing this, it became clear that quite a few functions should not be
static and should better live in various classes as instance methods, but I'll
leave this for a later CL.

BUG=v8:2487

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13765 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 14:45:59 +00:00
yangguo@chromium.org
7145671392 Make message listener API backwards compatible.
R=ulan@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13762 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 14:35:39 +00:00
svenpanne@chromium.org
c26d100b10 Avoid TLS accesses in Object::Lookup and Object::GetPrototype.
Both methods were among the top causes for TLS accesses.

BUG=v8:2487

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13759 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-27 13:22:29 +00:00
svenpanne@chromium.org
fb6776e84a Made Isolate a mandatory parameter for everything Handle-related.
Unified parameter order of CreateHandle with the rest of v8 on the way. A few
Isolate::Current()s had to be introduced, which is not nice, and not every place
will win a beauty contest, but we can clean this up later easily in smaller steps.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13717 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-25 14:46:09 +00:00
loislo@chromium.org
ea0817c7d4 Split profile-generator
CPU profile code and Heap Snapshot code are completely unrelated to each other.
So we can extract heap snapshot part into separate file.
No functional changes.

BUG=none
TEST=none

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13706 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-21 12:10:40 +00:00