Commit Graph

379 Commits

Author SHA1 Message Date
jochen
b584bab2f5 Remove support for malloc'd typed arrays
All typed arrays should be allocated through the array buffer allocator

BUG=none
R=dcarney@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#28105}
2015-04-28 11:24:55 +00:00
bmeurer
4486c47d9b [clang] Use -Wshorten-64-to-32 to enable warnings about 64bit to 32bit truncations.
Currently only the Win64 bots report this warnings, which adds quite
some overhead to the development process. With this flag we also get
compiler warnings about implicit 64bit to 32bit truncations when
building with clang on Linux/x64 and Mac/x64.

R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#28093}
2015-04-28 06:53:41 +00:00
dcarney
ccc8e4e4a2 prepare to deprecate non phantom weak callbacks
BUG=

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

Cr-Commit-Position: refs/heads/master@{#28046}
2015-04-24 12:34:58 +00:00
svenpanne
9bb8b58549 Add an --omit-quit flag to d8 for Emscripten's sake.
Review URL: https://codereview.chromium.org/1101683002

Cr-Commit-Position: refs/heads/master@{#28004}
2015-04-22 12:24:15 +00:00
Ross McIlroy
063fc25122 Replace OVERRIDE->override and FINAL->final since we now require C++11.
R=jochen@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27937}
2015-04-20 13:08:14 +00:00
jochen
47cca4684e Remove support for specifying the number of available threads
The embedder can control how many threads it wants to use via the
v8::Platform implementation. V8 internally doesn't spin up threads
anymore. If the embedder doesn't want to use any threads at all, it's
v8::Platform implementation must either run the background jobs on
the foreground thread, or the embedder should specify --predictable

BUG=none
R=yangguo@chromium.org
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#27833}
2015-04-15 07:15:43 +00:00
yangguo
019096f829 Serializer: move to a subfolder and clean up includes.
R=jochen@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27501}
2015-03-27 15:29:07 +00:00
jochen
d19d0be8a0 Remove calls to IdleNotification()
All users should use IdleNotificationDeadline() instead

BUG=none
R=hpayer@chromium.org
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#27386}
2015-03-24 08:30:02 +00:00
vegorov
0e024449b8 Make counter and histogram related callbacks part of the Isolate::CreateParams.
Some native counters (e.g. KeyedLoadGenericSlow) are referenced from stubs that are generated very early in the Isolate lifecycle before v8::Isolate::New returns. Thus counter lookup callback also needs to be installed early prior to v8::internal::Isolate::Init call. Otherwise assembler will just assume that the counter is not enabled and produce no code from IncrementCounter - because address of the counter is not yet available.

Histogram related callbacks are moved for consistency to make them able to collect samples which occur at isolate initialization time.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27262}
2015-03-18 10:15:04 +00:00
rossberg
5c847d1f09 [strong] make --use-strong flag work in d8
This broke with the TSAN fix.

R=marja@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26687}
2015-02-17 12:08:02 +00:00
rossberg
eecde44f82 Properly thread language mode to compilation cache
Fixes the TSAN issue.

R=mstarzinger@chromium.org
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26623}
2015-02-12 16:29:54 +00:00
rossberg
dff690ec07 [strong] no sloppy equality
R=marja@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26619}
2015-02-12 15:10:04 +00:00
Yang Guo
d59202c143 Fix shared library build.
TBR=vogelheim@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26581}
2015-02-11 14:32:28 +00:00
yangguo
505b6020a8 Catch graceful failures when deserializing in d8.
R=vogelheim@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26579}
2015-02-11 14:10:12 +00:00
adamk
a18b797fd9 Enable compiling mjsunit tests as ES6 modules
Adding the line "// MODULE" to an mjsunit file will now cause
run-tests.py to prefix the test case with "--module" in the
d8 commandline.

d8 has itself been updated to treat files preceded with "--module" as
modules (that is, it compiles them with ScriptCompiler::CompileModule,
and turns on --harmony-modules).

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

Cr-Commit-Position: refs/heads/master@{#26555}
2015-02-10 19:11:55 +00:00
vogelheim
2ea8df76ba Fix cctest + unittest to work with an external snapshot.
To do so, extract startup_data_util from d8 and use it those executables.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26547}
2015-02-10 15:38:09 +00:00
michael_dawson
f1ba8d8f86 Contribution of PowerPC port (continuation of 422063005) - AIX Common1
Contribution of PowerPC port (continuation of 422063005 and 817143002). This patch covers
the key changes needed to the common files needed to support AIX. Subsequent
patches will cover:
- changes to update the ppc directories so they are current with the changes
in the rest of the project.
- remaining AIX changes not resolved by 4.8 compiler
- individual optimizations for PPC

This is based off of the GitHub repository
https://github.com/andrewlow/v8ppc

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

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

Cr-Commit-Position: refs/heads/master@{#26343}
2015-01-30 08:02:08 +00:00
rmcilroy
76ce4a9c2f [d8] Fix V8 external snapshot for Windows.
Adds a cast to V8 external snapshot code for Windows.

BUG=421063, 439661
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26024}
2015-01-12 12:54:05 +00:00
jochen
7303db84f5 Allocate memory for external snapshot paths in d8
R=marja@chromium.org
BUG=chromium:442804
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#25860}
2014-12-17 10:30:52 +00:00
svenpanne
71bb00e261 Consistently use only one of virtual/OVERRIDE/FINAL.
FINAL implies OVERRIDE, which in turn implies virtual, so there's no need to use
more than one of these. The Google C++ style guide even requires this, see
http://google-styleguide.googlecode.com/svn/trunk/cppguide.html#Inheritance.

While we're here, port r24662 to x87.

The net result is that v8 compiles again with a current clang.

BUG=v8:3753
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#25792}
2014-12-12 10:44:25 +00:00
vogelheim
a0a49f523a Make d8 default to standard location for external snapshots.
This makes tests runnable with the external snapshot, and should be the
last step before enabling external snapshot on >=1 bots.

R=yangguo
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25753}
2014-12-10 16:36:35 +00:00
vogelheim
b27431d52f Cleanup: Remove NativesCollection<.>::*Raw* methods.
These methods for used for compressed libraries, where GetSource* functions
contained the compressed sources and [GS]etRawSource* the uncompressed
sources. This is dead code since the API no longer supports compression.

(If you need/want compressed sources, use the external startup data and
 compress/uncompress on the Embedder's side.)

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25666}
2014-12-04 18:51:22 +00:00
yangguo
1a2a18b66c Remove v8::StartupData::compressed_size.
R=jochen@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25487}
2014-11-24 16:14:34 +00:00
yangguo
9b8d40594a Rip out bzip compression for native sources.
R=vogelheim@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25464}
2014-11-21 12:45:20 +00:00
dcarney
0ed433ce30 dump compiler stats from d8 on direct exit from js
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25453}
2014-11-21 09:53:12 +00:00
Benedikt Meurer
21580e7b79 Revert "Forward declaration for Isolate / Platform in libplatform.h." and "Fixes d8 on windows following.".
This reverts commit 0f57ce8f1a.
and 3245b8cb83 for breaking Chromium
compile.

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25411}
2014-11-19 07:28:07 +00:00
bulach
3245b8cb83 Fixes d8 on windows following.
Broke by https://codereview.chromium.org/740493002/

BUG=
NOTRY=true
NOTREECHECKS=true

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

Cr-Commit-Position: refs/heads/master@{#25409}
2014-11-18 21:11:27 +00:00
André Baixo
eeb8782a7f Fix size_t to int conversion.
BUG=421063
LOG=N
R=vogelheim@chromium.org

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

Patch from André Baixo <baixo@google.com>.

Cr-Commit-Position: refs/heads/master@{#25340}
2014-11-13 17:28:36 +00:00
Michael Starzinger
f5ca5a81e9 Fix dumping of counters in d8.
R=hpayer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25334}
2014-11-13 15:39:18 +00:00
dcarney@chromium.org
b714772c07 pass isolate to Value::To* functions
BUG=
R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24893}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24893 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-27 09:03:16 +00:00
jochen@chromium.org
7a70d6a0eb Update intialization of vtune support.
In R23940 (https://code.google.com/p/v8/source/detail?r=23940) it introduces
 Isolate::CreateParams and mentions that V8::SetJitCodeEventHandler should either
 be passed to Isolate::New as well, or invoked via the Isolate.

 When Chrome as embedder of V8, we will set the Jit Code event handler for Vtune
 support during the initialization of renderer process and V8 has be initialized
 at that time. It's better that we invoke V8::SetJitCodeEventHander via the Isolate.
 So we change the vTune::InitializeVtuneForV8(v8::Isolate::CreateParams& params) to
 vTune::InitializeVtuneForV8(v8::Isolate* isolate).

 we will do corresponding changes in chromium code if this patch is landed and Chromium
 updates V8 to the
 new release branch.

 some part of this patch is provided by denis.pravdin@intel.com.

BUG=
R=danno@chromium.org, jochen@chromium.org

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24811 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 15:30:50 +00:00
yangguo@chromium.org
018e3979ee Fix leak in d8.
R=bmeurer@chromium.org
TBR=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24763 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 10:59:41 +00:00
yangguo@chromium.org
e17e2afb78 d8: create compile cache in a separate isolate.
R=vogelheim@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24752 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 06:40:15 +00:00
jarin@chromium.org
173b07faa9 [turbofan] Output schedule, instructions and register allocator in C1 visualizer format when --turbo-trace is specified.
BUG=
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24583 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 08:43:33 +00:00
dcarney@chromium.org
5d0e9a2496 [turbofan] basic block profiler
R=titzer@chromium.org, mstarzinger@chromium.org

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24263 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-29 07:29:14 +00:00
jochen@chromium.org
6a14d7d50f Reland 24052 - Require V8 to be explicitly initialized before an Isolate is created
> We also initialize the Isolate on creation.
>
> This should allow for getting rid of the last remaining default isolate
> traces. Also, it'll speed up several isolate related operations that no
> longer require locks.
>
> Embedders that relied on v8::Isolate to return an uninitialized Isolate
> (so they can set ResourceConstraints for example, or set flags that
> modify the way the isolate is created) should either do the setup before
> creating the isolate, or use the recently added CreateParams to pass e.g.
> ResourceConstraints.
>
> BUG=none
> LOG=y
> R=svenpanne@chromium.org
>
> Review URL: https://codereview.chromium.org/469783002

BUG=none
LOG=y
TBR=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24067 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-19 08:01:35 +00:00
jochen@chromium.org
525ed1130e Revert "Require V8 to be explicitly initialized before an Isolate is created"
LOG=n
TBR=svenpanne@chromium.org
BUG=none

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24055 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-18 21:57:10 +00:00
jochen@chromium.org
27f3cc1b9c Require V8 to be explicitly initialized before an Isolate is created
We also initialize the Isolate on creation.

This should allow for getting rid of the last remaining default isolate
traces. Also, it'll speed up several isolate related operations that no
longer require locks.

Embedders that relied on v8::Isolate to return an uninitialized Isolate
(so they can set ResourceConstraints for example, or set flags that
modify the way the isolate is created) should either do the setup before
creating the isolate, or use the recently added CreateParams to pass e.g.
ResourceConstraints.

BUG=none
LOG=y
R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24052 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-18 21:07:50 +00:00
sigurds@chromium.org
4ef5915741 This is a reland of issue 563813002:
https://codereview.chromium.org/575473002/

This time with additional include headers and MSVC specific guards. Previously, only V8 Win32 - nosnap - shared failed:

http://build.chromium.org/p/client.v8/builders/V8%20Win32%20-%20nosnap%20-%20shared/builds/2916

R=marja@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24006 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-17 14:20:20 +00:00
jochen@chromium.org
069a9c75ad Move configuration of ResourceConstraints to Isolate construction
We can only set resource constraints before the isolate is initialized.
Since in the future, we want to initialize isolates at construction
time, we need to set constraints there.

It's possible to later modify the stack limit, so introduce an
Isolate::SetStackLimit method for that.

The SetResourceConstraints method will be deprecated. Users should pass
ResourceConstraints to Isolate::New, and use Isolate::SetStackLimit to
later modify the stack limit.

BUG=none
R=svenpanne@chromium.org
LOG=y

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23964 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-16 09:15:02 +00:00
jochen@chromium.org
426ec84861 Revert r23962 "Configure d8 & cctest to suppress Windows error dialogs."
Breaks compilation on Windows

TBR=sigurds@chromium.org
BUG=none
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23963 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-16 09:14:11 +00:00
sigurds@chromium.org
d9838be973 Configure d8 & cctest to suppress Windows error dialogs.
R=machenbach@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23962 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-16 08:57:59 +00:00
jochen@chromium.org
65a1857824 Currently, a new isolate is created in an uninitialized state, and
several API methods will automatically initialize it. During this
uninitialized state, code event handlers and function entry handlers can
be attached to the isolate.

This CL deprecates SetFunctionEntryHook and moves the configuration of
those handlers to the Isolate factory method.

This will allow for initializing the Isolate at creation time in the
future.

Users of V8::SetFunctionEntryHook should pass the entry hook to
Isolate::New instead. V8::SetJitCodeEventHandler should either be passed
to Isolate::New as well, or (if startup events are not required) invoked
via the Isolate.

BUG=none
LOG=y
R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23940 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-15 11:17:00 +00:00
bmeurer@chromium.org
30f18f0f7d Use Chrome compatible naming for compiler specifics.
Less useless creativity is best creativity!

R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23579 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-02 07:07:52 +00:00
bmeurer@chromium.org
b8b9d10590 Sync our homegrown SysInfo replacement with the one in Chrome base.
Also fix several inconsistencies/bugs on the way.

TEST=base-unittests
R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23435 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-27 08:29:22 +00:00
mstarzinger@chromium.org
1d2a0759f2 Fix predictable mode to make time pass faster.
R=hpayer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23087 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-12 17:54:41 +00:00
bmeurer@chromium.org
d07a2eb806 Rename ASSERT* to DCHECK*.
This way we don't clash with the ASSERT* macros
defined by GoogleTest, and we are one step closer
to being able to replace our homegrown base/ with
base/ from Chrome.

R=jochen@chromium.org, svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22812 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-04 11:34:54 +00:00
jochen@chromium.org
cb8105e223 Move gc notifications from V8 to Isolate and make idle hint mandatory
Embedders should use e.g. isolate->IdleNotification(1000) instead
of v8::V8::IdleNotification()

BUG=397026
R=hpayer@chromium.org, ernstm@chromium.org
LOG=y

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22584 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 08:28:02 +00:00
vogelheim@chromium.org
a42612b4a7 Change ScriptCompiler::CompileOptions to allow for two 'cache' modes
(parser or code) and to be explicit about cache consumption or production
(rather than making presence of cached_data imply one or the other.)

Also add a --cache flag to d8, to allow testing the functionality.

-----------------------------
API change

Reason: Currently, V8 supports a 'parser cache' for repeatedly executing the same script. We'd like to add a 2nd mode that would cache code, and would like to let the embedder decide which mode they chose (if any).

Note: Previously, the 'use cached data' property was implied by the presence of the cached data itself. (That is, kNoCompileOptions and source->cached_data != NULL.) That is no longer sufficient, since the presence of data is no longer sufficient to determine /which kind/ of data is present.

Changes from old behaviour:

- If you previously didn't use caching, nothing changes.
Example:
  v8::CompileUnbound(isolate, source, kNoCompileOptions);

- If you previously used caching, it worked like this:

  - 1st run:
  v8::CompileUnbound(isolate, source, kProduceToCache);
  Then, source->cached_data would contain the
  data-to-be cached. This remains the same, except you
  need to tell V8 which type of data you want.
  v8::CompileUnbound(isolate, source, kProduceParserCache);

  - 2nd run:
  v8::CompileUnbound(isolate, source, kNoCompileOptions);
  with source->cached_data set to the data you received in
  the first run. This will now ignore the cached data, and
  you need to explicitly tell V8 to use it:
  v8::CompileUnbound(isolate, source, kConsumeParserCache);
-----------------------------

BUG=
R=marja@chromium.org, yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22431 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-16 12:18:33 +00:00
mstarzinger@chromium.org
d0667e9755 Only install JitCodeEventHandler for GDB JIT if requested.
TBR=dslomov@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22330 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 16:31:57 +00:00