DetachGlobal detaches original context of a global proxy object.
Before this patch, the constructor JSFunction still carried a reference to the old context after |Bootstrapper::DetachGlobal| call.
This patch removes the reference by setting the constructor null.
TEST=http/tests/security/isolatedWorld w/ --enable-leak-detection
LOG=N
BUG=364377
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/397953009
Patch from Kouhei Ueno <kouhei@chromium.org>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22460 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
port r22448
original commit message:
StubCallInterfaceDescriptor and CallInterfaceDescriptor are unified under a base class InterfaceDescriptor.
Handling of the context register had to be massaged to effect the unification. This will make it easier
to call hydrogen code stubs directly from crankshaft.
BUG=
R=weiliang.lin@intel.com
Review URL: https://codereview.chromium.org/399313005
Patch from Chunyang Dai <chunyang.dai@intel.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22459 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Three fixes which are required to pass all the tests when out-of-line constant
pools are enabled for Arm:
- Invalidate embedded objects in optimized code when it is deoptimized such
that the weak pointers in the constant pool array are cleared. This prevents
a CHECK(heap_->mark_compact_collector()->IsMarked(object)) error when a
verifying weak pointers in a deoptimized code object's constant pool.
- Modify LargeObjectSpace::Verify to allow constant pool arrays in the
large object space.
- Increase the 32bit stack size limit, since the constant pool pointer
is now on every stack frame, causing the size of each stack frame to
increase by one word, and causing deep-recursion-test to fail.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/385163005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22445 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
The current gyp config tries to test whether the compiler is an arm / mips
compiler and whether it supports -m32 / -m64 based on a test within gyp.
Unfortunately CXX / CXX_target / CXX_host are no no longer set early enough
in gyp for this to work, and so all of these tests were actually being done
using "$(which g++)" rather than the appropriate CXX_target / CXX_host compiler.
This change removes these dynamic tests and instead bases the decisions on
knowledge of the host / target / v8_target architecture combination. The
the -m32/-m64 flags are set based on host_cxx_is_biarch / target_cxx_is_biarch,
which are set to reasonable defaults of only ia32/x64 or clang compilers
being build for biarch support. The host_cxx_is_biarch / target_cxx_is_biarch
variables can be overriden if required.
Original Review URL: https://codereview.chromium.org/382343003TBR=jkummerow@chromium.org
BUG=384474
LOG=NO
Review URL: https://codereview.chromium.org/400573002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22444 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
- Split GCTracer::~GCTracer into printing functions and update of variables
tracked on Heap.
- Clean-up recording of time, object size and memory size at the beginning and
end of GC.
- Consistently use enum notation in ScopeId.
- Disallow copy and assign for Scope and GCTracer.
- Remove unused stats on GCTracer.
R=hpayer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/396893004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22439 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
(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
The current gyp config tries to test whether the compiler is an arm / mips
compiler and whether it supports -m32 / -m64 based on a test within gyp.
Unfortunately CXX / CXX_target / CXX_host are no no longer set early enough
in gyp for this to work, and so all of these tests were actually being done
using "$(which g++)" rather than the appropriate CXX_target / CXX_host compiler.
This change removes these dynamic tests and instead bases the decisions on
knowledge of the host / target / v8_target architecture combination. The
the -m32/-m64 flags are set based on host_cxx_is_biarch / target_cxx_is_biarch,
which are set to reasonable defaults of only ia32/x64 or clang compilers
being build for biarch support. The host_cxx_is_biarch / target_cxx_is_biarch
variables can be overriden if required.
BUG=384474
LOG=NO
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/382343003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22425 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Some benchmarks include their own runner which provides an
overall average and a standard deviation. This enables
extraction of that value similar to the other measurements.
These benchmarks should only be run once. If a benchmarks
specifies multiple runs and provides a standard deviation,
a warning will be issued that makes the build fail on the
buildbot side.
TEST=python -m unittest run_benchmarks_test
BUG=393947
LOG=n
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/395633012
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22424 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
The version.cc file will from now on be controlled on
bleeding edge and on trunk. The next version to use will
always be max(bleeding_edge_version, trunk_version) + 1.
The trunk and bleeding_edge versions are not semantically
tied together. The trunk branch can be used to make
independent point releases of bleeding_edge revisions.
The version on bleeding_edge will be increased if:
- the lkgr version is smaller than the version of the latest
revision,
- the lkgr version is not a version change itself,
- the tree is not closed for maintenance.
This will allow chromium to refer directly to bleeding_edge
revisions of v8. The v8 versions will not be unique, but
they will change as often as possible, dependent on the lkgr
cycle time and the frequency this script is called.
BUG=391261
LOG=n
TEST=tools/push-to-trunk/script_test.py
TEST=tools/push-to-trunk/bump_up_version.py --dry_run
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/389353003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22421 ce2b1a6d-e550-0410-aec6-3dcde31c8c00