Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
143 commits
Select commit Hold shift + click to select a range
80ccae0
deps: update V8 to 7.7.299.4
targos Aug 21, 2019
fe46054
build: reset embedder string to "-node.0"
targos Aug 21, 2019
5df55c2
deps: V8: fix filename manipulation for Windows
refack Mar 31, 2019
c6f97bb
deps: V8: un-cherry-pick bd019bd
refack Mar 27, 2019
b54ee21
deps: V8: silence irrelevant warning
targos Mar 27, 2019
63093e9
deps: V8: update postmortem metadata generation script
cjihrig Mar 28, 2019
242f617
deps: V8: patch register-arm64.h
refack May 22, 2019
1ed3909
deps: V8: forward declaration of `Rtl*FunctionTable`
refack May 22, 2019
07ed874
deps: V8: use ATOMIC_VAR_INIT instead of std::atomic_init
refack May 23, 2019
8aaa0ab
deps: V8: add workaround for MSVC optimizer bug
refack May 17, 2019
19e38e0
deps: V8: fix BUILDING_V8_SHARED issues
refack May 26, 2019
d1bedbe
deps: V8: fix linking issue for MSVS
refack May 30, 2019
60efc5f
deps: V8: cherry-pick e3d7f8a
cclauss Aug 14, 2019
027dcff
tools: sync gypfiles with V8 7.7
targos May 31, 2019
91d99ce
lib,test: fix error message check after V8 update
targos Jun 17, 2019
f056d55
test: update postmortem metadata test for V8 7.7
cjihrig Aug 7, 2019
59b4640
src: update v8abbr.h for V8 7.7
cjihrig Aug 7, 2019
4eeb2a9
deps: patch V8 to be API/ABI compatible with 7.4 (from 7.5)
targos Jun 1, 2019
e95f866
deps: patch V8 to be API/ABI compatible with 7.4 (from 7.6)
targos Aug 4, 2019
90713c6
deps: patch V8 to be API/ABI compatible with 7.4 (from 7.7)
targos Aug 21, 2019
7957b39
deps: patch V8 to 7.7.299.8
targos Aug 27, 2019
ee18238
build: remove experimental Python 3 tests
cclauss Sep 3, 2019
75c559d
test: remove flaky status for test-statwatcher
Trott Sep 1, 2019
95431ea
policy: minor perf opts and cleanup
bmeck Aug 26, 2019
a20a8f4
gyp: make StringIO work in ninja.py
cclauss Sep 3, 2019
8023e43
doc: change the 'txt' to 'console' for a command
Sep 1, 2019
835d1ca
doc: start unorded lists at start of line
nschonni Sep 1, 2019
4374d28
doc: use consistent indenting for unordered list items
nschonni Sep 1, 2019
d6ba106
http2: do not start reading after write if new write is on wire
addaleax Sep 1, 2019
010d29d
src: fix ValidateDSAParameters when fips is enabled
danbev Sep 2, 2019
2f81d59
tools: fix GYP ninja generator for Python 3
targos Sep 3, 2019
50d7c39
n-api: mark version 5 N-APIs as stable
Aug 31, 2019
9de417a
tools: delete v8_external_snapshot.gypi
ryzokuken Aug 29, 2019
42fd139
build,win: fix Python detection on localized OS
joaocgreis Sep 3, 2019
844b45b
doc: change urls directly from 'http' to 'https'
Sep 4, 2019
b30c40b
perf_hooks: import http2 only once
fanatid Sep 3, 2019
735ef8b
doc: async_hooks.createHook promiseResolve option
bnoordhuis Sep 2, 2019
32bb58b
doc: fix unsafe writable stream code example
ckarande Sep 3, 2019
a7331da
doc: indent ordered list child content
nschonni Aug 31, 2019
d2b0568
worker: make transfer list behave like web MessagePort
addaleax Aug 25, 2019
5c3d484
src: check microtasks before running them
codebytere Sep 4, 2019
b9c082d
esm: make dynamic import work in the REPL
bfarias-godaddy Sep 4, 2019
c95e9ca
doc: update release guide with notes for major releases
jasnell Jan 14, 2019
fa949ca
http2: send out pending data earlier
addaleax Sep 1, 2019
a9d16b5
doc: simplify wording in n-api doc
mhdawson Sep 4, 2019
9b4a49c
perf_hooks: remove GC callbacks on zero observers count
fanatid Sep 4, 2019
c146fff
perf_hooks: ignore duplicated entries in observer
fanatid Sep 4, 2019
7dd897f
doc: prepare markdown files for more stringent blank-line linting
Trott Sep 5, 2019
67aa5ef
src: make ELDHistogram a HandleWrap
addaleax Aug 25, 2019
6a7d24b
http2: do not crash on stream listener removal w/ destroyed session
addaleax Sep 5, 2019
561d504
test: permit test-signalwrap to work without test runner
Trott Jun 19, 2019
6f50c3f
build: update minimum AIX OS level
mhdawson Sep 6, 2019
b1509e8
doc: remove wrong escapes
XhmikosR Sep 5, 2019
8474b82
n-api: delete callback bundle via reference
Sep 6, 2019
9e63f91
doc: exitedAfterDisconnect value can be false
nimit95 Sep 2, 2019
909c669
test: disable core dumps before running crash test
bnoordhuis Sep 6, 2019
53f2371
worker: prevent event loop starvation through MessagePorts
addaleax Jun 2, 2019
79a277e
test: improve test-worker-message-port-message-before-close
addaleax Sep 7, 2019
fa77dc5
worker: make terminate() resolve for unref’ed Workers
addaleax Sep 7, 2019
c1695c6
build: add comment to .travis.yml on how to test Py3
cclauss Sep 6, 2019
2a53401
doc: space around lists
nschonni Sep 6, 2019
a262e2f
doc: indent child list items for remark-lint
nschonni Sep 8, 2019
f622771
build: improve `make coverage`
addaleax Sep 7, 2019
97d8b33
worker: mark as stable
addaleax Sep 9, 2019
78af92d
src,lib: expose memory file mapping flag
joaocgreis Aug 21, 2019
87fd55c
test: unmark test-worker-prof as flaky
addaleax Sep 9, 2019
f5f238d
deps: upgrade to libuv 1.32.0
cjihrig Sep 9, 2019
3aea277
doc: add documentation for stream readableFlowing
ckarande Sep 9, 2019
2dc52ad
stream: simplify isUint8Array helper
addaleax Sep 9, 2019
bc7cc34
tools: python3 compat for inspector code generator
bnoordhuis Aug 27, 2019
c304594
build: re-run configure on node_version.h change
addaleax Sep 9, 2019
4a5ba60
src: modified RealEnvStore methods to use libuv functions
devasci Apr 19, 2019
9abee07
doc: mention unit for process.hrtime.bigint()
addaleax Sep 7, 2019
0db7ebe
tools: fix iculslocs to support ICU 65.1
srl295 Sep 10, 2019
aa541bb
doc: add Tobias to the TSC
mhdawson Sep 13, 2019
ca8e87a
doc: add Bethany to TSC
mhdawson Sep 13, 2019
54f327b
crypto: add oaepLabel option
tniessen Sep 8, 2019
dd5d944
crypto: fix OpenSSL return code handling
tniessen Sep 8, 2019
772a5e0
util: add encodeInto to TextEncoder
addaleax Sep 10, 2019
6b30802
perf_hooks: remove non-existent entries from inspect
fanatid Sep 11, 2019
03a3468
process: use public readableFlowing property
ckarande Sep 8, 2019
70a0c17
repl: add missing variable declaration
lholmquist Sep 12, 2019
f90740d
build: allow clang 10+ in configure.py
krytarowski Sep 13, 2019
51a1dfa
src: print exceptions from PromiseRejectCallback
addaleax Sep 9, 2019
7bc2f06
tools: update ESLint to 6.4.0
Sep 14, 2019
596dd9f
repl: add autocomplete support for fs.promises
antsmartian Sep 9, 2019
31b0b52
http: refactor responseKeepAlive()
ronag Jul 15, 2019
bbf209b
tty: add color support for mosh
aditya1906 May 23, 2019
a268658
inspector: new API - Session.connectToMainThread
eugeneo Jul 26, 2019
bf08c08
doc: use consistent unordered list style
nschonni Sep 13, 2019
f2217cd
doc: update experimental loader hooks example code
zaverden Aug 30, 2019
78ee065
test: fix flaky test-inspector-connect-main-thread
addaleax Sep 17, 2019
7fd3261
doc: explain esm options for package authors
GeoffreyBooth Sep 3, 2019
55631f4
doc: add leap second behavior notes for napi methods
levhita Sep 15, 2019
144aeea
lib: remove the use of util.isFunction
himself65 Sep 15, 2019
fa7de9b
deps: update npm to 6.11.3
claudiahdz Sep 3, 2019
ce45aae
module: reintroduce package exports dot main
guybedford Sep 8, 2019
7eae707
repl: fix bug in fs module autocompletion
Sep 16, 2019
38028ef
doc: add missing complete property to http2 docs
javleds Sep 16, 2019
0074c8a
doc: update list style in misc README docs
Trott Sep 17, 2019
4954792
doc: correct trivial misspelling in AUTHORS
gcr Sep 18, 2019
c052967
bootstrap: provide usable error on missing internal module
Fishrock123 Sep 17, 2019
50b5ad1
doc: fix nits in net.md
vsemozhetbyt Sep 16, 2019
3a6bc90
src: re-delete Atomics.wake
devsnek Sep 16, 2019
b9c7c90
benchmark: improve process.env benchmarks
addaleax Aug 17, 2019
6284b49
src: use libuv to get env vars
addaleax Aug 17, 2019
bc3c0b2
deps: V8: cherry-pick 35c6d4d
sam-github Sep 16, 2019
a5bd7e3
repl: convert var to let and const
lholmquist Sep 16, 2019
13fa966
module: error for CJS .js load within type: module
guybedford Sep 8, 2019
e4a51ad
deps: patch V8 to 7.7.299.10
Hakerh400 Sep 6, 2019
c718c60
deps: V8: cherry-pick deac757
Sep 20, 2019
f84f1db
src: fix closing weak `HandleWrap`s on GC
addaleax Sep 21, 2019
6ba39d4
process: initial SourceMap support via NODE_V8_COVERAGE
Sep 20, 2019
f61c509
console: skip/strip %c formatting
devsnek Sep 18, 2019
78cbdf3
stream: optimize creation
ronag Aug 15, 2019
39b1770
doc: make minor improvements to stream.md
ronag Aug 5, 2019
84b353c
doc: fix require call for spawn() in code example
marian-r Sep 19, 2019
3ba6464
doc: explain stream.finished cleanup
ronag Aug 2, 2019
99c2cd8
crypto: use BoringSSL-compatible flag getter
codebytere Sep 18, 2019
13d173f
doc: remove the suffix number of the anchor link
Sep 6, 2019
322bc6f
stream: do not call _read() after destroy()
ronag Sep 8, 2019
b43d2dd
timers: set _destroyed even if there are no destroy-hooks
Fishrock123 Sep 17, 2019
67f5de9
fs: remove unnecessary argument check
ronag Aug 8, 2019
5c24bc6
build: do not indent assignments in Makefile
joyeecheung Sep 20, 2019
edaa2ee
doc: fix some signatures of .end() methods
vsemozhetbyt Sep 19, 2019
6f8ef2c
src: discard remaining foreground tasks on platform shutdown
addaleax Sep 17, 2019
9150c4d
events: add support for EventTarget in once
jeniabrook Aug 18, 2019
123437b
stream: apply special logic in removeListener for readable.off()
ronag Sep 7, 2019
2707beb
doc: add code example to process.throwDeprecation property
juanarbol Sep 8, 2019
e71bdad
stream: make _write() optional when _writev() is implemented
ronag Sep 20, 2019
3878e1e
src: perform check before running in runMicrotasks()
nornagon Sep 16, 2019
6b89512
bootstrap: add exception handling for profiler bootstrap
Sep 14, 2019
5d60adf
deps: patch V8 to 7.7.299.11
targos Sep 20, 2019
b7488c2
tools: cleanup getnodeversion.py for readability
cclauss Sep 21, 2019
b100897
stream: cleanup use of internal ended state
ckarande Sep 21, 2019
f016823
stream: add test for multiple .push(null)
ckarande Sep 21, 2019
6272f82
tls: add option to override signature algorithms
OYTIS Sep 18, 2019
68630c5
console,util: fix missing recursion end while inspecting prototypes
BridgeAR Sep 21, 2019
0a47d06
events: improve performance of EventEmitter.emit
mcollina Sep 20, 2019
325de43
doc: update N-API version matrix
Sep 5, 2019
5605119
test: fix race condition in test-worker-process-cwd.js
BridgeAR Jul 9, 2019
ced89ad
util: include reference anchor for circular structures
BridgeAR May 14, 2019
b50c01c
2019-09-24, Version 12.11.0 (Current)
BridgeAR Sep 24, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
deps: patch V8 to be API/ABI compatible with 7.4 (from 7.6)
Reverts v8/v8@4214933.
Reverts v8/v8@c76f377.
Reverts v8/v8@e0d7f81.

Co-authored-by: Anna Henningsen <anna@addaleax.net>
Backport-PR-URL: #29241
PR-URL: #28955
  • Loading branch information
targos and addaleax committed Sep 19, 2019
commit e95f86695631208a16775ebd4629dfd982d302a9
2 changes: 2 additions & 0 deletions deps/v8/include/v8-internal.h
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,8 @@ class Internals {
static const int kNodeStateMask = 0x7;
static const int kNodeStateIsWeakValue = 2;
static const int kNodeStateIsPendingValue = 3;
static const int kNodeIsIndependentShift = 3;
static const int kNodeIsActiveShift = 4;

static const int kFirstNonstringType = 0x40;
static const int kOddballType = 0x43;
Expand Down
9 changes: 6 additions & 3 deletions deps/v8/include/v8-profiler.h
Original file line number Diff line number Diff line change
Expand Up @@ -356,8 +356,9 @@ class V8_EXPORT CpuProfiler {
* initialized. The profiler object must be disposed after use by calling
* |Dispose| method.
*/
static CpuProfiler* New(Isolate* isolate);
static CpuProfiler* New(Isolate* isolate,
CpuProfilingNamingMode = kDebugNaming);
CpuProfilingNamingMode mode);

/**
* Synchronously collect current stack sample in all profilers attached to
Expand Down Expand Up @@ -406,8 +407,10 @@ class V8_EXPORT CpuProfiler {
* discarded.
*/
void StartProfiling(
Local<String> title, CpuProfilingMode mode, bool record_samples = false,
unsigned max_samples = CpuProfilingOptions::kNoSampleLimit);
Local<String> title, CpuProfilingMode mode, bool record_samples = false);
void StartProfiling(
Local<String> title, CpuProfilingMode mode, bool record_samples,
unsigned max_samples);
/**
* The same as StartProfiling above, but the CpuProfilingMode defaults to
* kLeafNodeLineNumbers mode, which was the previous default behavior of the
Expand Down
18 changes: 18 additions & 0 deletions deps/v8/include/v8-util.h
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,14 @@ class PersistentValueMapBase {
return SetReturnValueFromVal(&returnValue, Traits::Get(&impl_, key));
}

/**
* Call V8::RegisterExternallyReferencedObject with the map value for given
* key.
*/
V8_DEPRECATED(
"Used TracedGlobal and EmbedderHeapTracer::RegisterEmbedderReference",
inline void RegisterExternallyReferencedObject(K& key));

/**
* Return value for key and remove it from the map.
*/
Expand Down Expand Up @@ -344,6 +352,16 @@ class PersistentValueMapBase {
const char* label_;
};

template <typename K, typename V, typename Traits>
inline void
PersistentValueMapBase<K, V, Traits>::RegisterExternallyReferencedObject(
K& key) {
assert(Contains(key));
V8::RegisterExternallyReferencedObject(
reinterpret_cast<internal::Address*>(FromVal(Traits::Get(&impl_, key))),
reinterpret_cast<internal::Isolate*>(GetIsolate()));
}

template <typename K, typename V, typename Traits>
class PersistentValueMap : public PersistentValueMapBase<K, V, Traits> {
public:
Expand Down
186 changes: 177 additions & 9 deletions deps/v8/include/v8.h
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@ class ExternalString;
class Isolate;
class LocalEmbedderHeapTracer;
class MicrotaskQueue;
class NeverReadOnlySpaceObject;
struct ScriptStreamingData;
template<typename T> class CustomArguments;
class PropertyCallbackArguments;
Expand Down Expand Up @@ -544,6 +545,38 @@ template <class T> class PersistentBase {
*/
V8_INLINE void AnnotateStrongRetainer(const char* label);

/**
* Allows the embedder to tell the v8 garbage collector that a certain object
* is alive. Only allowed when the embedder is asked to trace its heap by
* EmbedderHeapTracer.
*/
V8_DEPRECATED(
"Used TracedGlobal and EmbedderHeapTracer::RegisterEmbedderReference",
V8_INLINE void RegisterExternalReference(Isolate* isolate) const);

/**
* Marks the reference to this object independent. Garbage collector is free
* to ignore any object groups containing this object. Weak callback for an
* independent handle should not assume that it will be preceded by a global
* GC prologue callback or followed by a global GC epilogue callback.
*/
V8_DEPRECATED(
"Weak objects are always considered independent. "
"Use TracedGlobal when trying to use EmbedderHeapTracer. "
"Use a strong handle when trying to keep an object alive.",
V8_INLINE void MarkIndependent());

/**
* Marks the reference to this object as active. The scavenge garbage
* collection should not reclaim the objects marked as active, even if the
* object held by the handle is otherwise unreachable.
*
* This bit is cleared after the each garbage collection pass.
*/
V8_DEPRECATED("Use TracedGlobal.", V8_INLINE void MarkActive());

V8_DEPRECATED("See MarkIndependent.", V8_INLINE bool IsIndependent() const);

/** Returns true if the handle's reference is weak. */
V8_INLINE bool IsWeak() const;

Expand Down Expand Up @@ -2525,6 +2558,9 @@ class V8_EXPORT Value : public Data {

V8_WARN_UNUSED_RESULT MaybeLocal<BigInt> ToBigInt(
Local<Context> context) const;
V8_DEPRECATED("ToBoolean can never throw. Use Local version.",
V8_WARN_UNUSED_RESULT MaybeLocal<Boolean> ToBoolean(
Local<Context> context) const);
V8_WARN_UNUSED_RESULT MaybeLocal<Number> ToNumber(
Local<Context> context) const;
V8_WARN_UNUSED_RESULT MaybeLocal<String> ToString(
Expand All @@ -2540,6 +2576,16 @@ class V8_EXPORT Value : public Data {
V8_WARN_UNUSED_RESULT MaybeLocal<Int32> ToInt32(Local<Context> context) const;

Local<Boolean> ToBoolean(Isolate* isolate) const;
V8_DEPRECATED("Use maybe version",
Local<Number> ToNumber(Isolate* isolate) const);
V8_DEPRECATED("Use maybe version",
Local<String> ToString(Isolate* isolate) const);
V8_DEPRECATED("Use maybe version",
Local<Object> ToObject(Isolate* isolate) const);
V8_DEPRECATED("Use maybe version",
Local<Integer> ToInteger(Isolate* isolate) const);
V8_DEPRECATED("Use maybe version",
Local<Int32> ToInt32(Isolate* isolate) const);

/**
* Attempts to convert a string to an array index.
Expand All @@ -2550,6 +2596,9 @@ class V8_EXPORT Value : public Data {

bool BooleanValue(Isolate* isolate) const;

V8_DEPRECATED("BooleanValue can never throw. Use Isolate version.",
V8_WARN_UNUSED_RESULT Maybe<bool> BooleanValue(
Local<Context> context) const);
V8_WARN_UNUSED_RESULT Maybe<double> NumberValue(Local<Context> context) const;
V8_WARN_UNUSED_RESULT Maybe<int64_t> IntegerValue(
Local<Context> context) const;
Expand Down Expand Up @@ -2869,23 +2918,43 @@ class V8_EXPORT String : public Name {

V8_INLINE static String* Cast(v8::Value* obj);

// TODO(dcarney): remove with deprecation of New functions.
enum NewStringType {
kNormalString = static_cast<int>(v8::NewStringType::kNormal),
kInternalizedString = static_cast<int>(v8::NewStringType::kInternalized)
};

/** Allocates a new string from UTF-8 data.*/
static V8_DEPRECATED(
"Use maybe version",
Local<String> NewFromUtf8(Isolate* isolate, const char* data,
NewStringType type = kNormalString,
int length = -1));

/** Allocates a new string from UTF-8 data. Only returns an empty value when
* length > kMaxLength. **/
static V8_WARN_UNUSED_RESULT MaybeLocal<String> NewFromUtf8(
Isolate* isolate, const char* data,
NewStringType type = NewStringType::kNormal, int length = -1);
Isolate* isolate, const char* data, v8::NewStringType type,
int length = -1);

/** Allocates a new string from Latin-1 data. Only returns an empty value
* when length > kMaxLength. **/
static V8_WARN_UNUSED_RESULT MaybeLocal<String> NewFromOneByte(
Isolate* isolate, const uint8_t* data,
NewStringType type = NewStringType::kNormal, int length = -1);
Isolate* isolate, const uint8_t* data, v8::NewStringType type,
int length = -1);

/** Allocates a new string from UTF-16 data.*/
static V8_DEPRECATED(
"Use maybe version",
Local<String> NewFromTwoByte(Isolate* isolate, const uint16_t* data,
NewStringType type = kNormalString,
int length = -1));

/** Allocates a new string from UTF-16 data. Only returns an empty value when
* length > kMaxLength. **/
static V8_WARN_UNUSED_RESULT MaybeLocal<String> NewFromTwoByte(
Isolate* isolate, const uint16_t* data,
NewStringType type = NewStringType::kNormal, int length = -1);
Isolate* isolate, const uint16_t* data, v8::NewStringType type,
int length = -1);

/**
* Creates a new string by concatenating the left and the right strings
Expand Down Expand Up @@ -2924,6 +2993,10 @@ class V8_EXPORT String : public Name {
* should the underlying buffer be deallocated or modified except through the
* destructor of the external string resource.
*/
static V8_DEPRECATED(
"Use maybe version",
Local<String> NewExternal(Isolate* isolate,
ExternalOneByteStringResource* resource));
static V8_WARN_UNUSED_RESULT MaybeLocal<String> NewExternalOneByte(
Isolate* isolate, ExternalOneByteStringResource* resource);

Expand Down Expand Up @@ -3857,6 +3930,9 @@ class ReturnValue {
}
// Local setters
template <typename S>
V8_INLINE V8_DEPRECATED("Use Global<> instead",
void Set(const Persistent<S>& handle));
template <typename S>
V8_INLINE void Set(const Global<S>& handle);
template <typename S>
V8_INLINE void Set(const TracedGlobal<S>& handle);
Expand Down Expand Up @@ -5247,6 +5323,38 @@ class V8_EXPORT Date : public Object {

V8_INLINE static Date* Cast(Value* obj);

/**
* Time zone redetection indicator for
* DateTimeConfigurationChangeNotification.
*
* kSkip indicates V8 that the notification should not trigger redetecting
* host time zone. kRedetect indicates V8 that host time zone should be
* redetected, and used to set the default time zone.
*
* The host time zone detection may require file system access or similar
* operations unlikely to be available inside a sandbox. If v8 is run inside a
* sandbox, the host time zone has to be detected outside the sandbox before
* calling DateTimeConfigurationChangeNotification function.
*/
enum class TimeZoneDetection { kSkip, kRedetect };

/**
* Notification that the embedder has changed the time zone,
* daylight savings time, or other date / time configuration
* parameters. V8 keeps a cache of various values used for
* date / time computation. This notification will reset
* those cached values for the current context so that date /
* time configuration changes would be reflected in the Date
* object.
*
* This API should not be called more than needed as it will
* negatively impact the performance of date operations.
*/
V8_DEPRECATED("Use Isolate::DateTimeConfigurationChangeNotification",
static void DateTimeConfigurationChangeNotification(
Isolate* isolate, TimeZoneDetection time_zone_detection =
TimeZoneDetection::kSkip));

private:
static void CheckCast(Value* obj);
};
Expand Down Expand Up @@ -5934,6 +6042,21 @@ class V8_EXPORT FunctionTemplate : public Template {
*/
void SetAcceptAnyReceiver(bool value);

/**
* Determines whether the __proto__ accessor ignores instances of
* the function template. If instances of the function template are
* ignored, __proto__ skips all instances and instead returns the
* next object in the prototype chain.
*
* Call with a value of true to make the __proto__ accessor ignore
* instances of the function template. Call with a value of false
* to make the __proto__ accessor not ignore instances of the
* function template. By default, instances of a function template
* are not ignored.
*/
V8_DEPRECATED("This feature is incompatible with ES6+.",
void SetHiddenPrototype(bool value));

/**
* Sets the ReadOnly flag in the attributes of the 'prototype' property
* of functions created from this FunctionTemplate to true.
Expand Down Expand Up @@ -8690,9 +8813,7 @@ class V8_EXPORT V8 {
* Sets V8 flags from a string.
*/
static void SetFlagsFromString(const char* str);
static void SetFlagsFromString(const char* str, size_t length);
V8_DEPRECATED("use size_t version",
static void SetFlagsFromString(const char* str, int length));
static void SetFlagsFromString(const char* str, int length);

/**
* Sets V8 flags from the command line.
Expand Down Expand Up @@ -8863,6 +8984,9 @@ class V8_EXPORT V8 {
const char* label);
static Value* Eternalize(Isolate* isolate, Value* handle);

static void RegisterExternallyReferencedObject(internal::Address* location,
internal::Isolate* isolate);

template <class K, class V, class T>
friend class PersistentValueMapBase;

Expand Down Expand Up @@ -9818,6 +9942,14 @@ void Persistent<T, M>::Copy(const Persistent<S, M2>& that) {
M::Copy(that, this);
}

template <class T>
bool PersistentBase<T>::IsIndependent() const {
typedef internal::Internals I;
if (this->IsEmpty()) return false;
return I::GetNodeFlag(reinterpret_cast<internal::Address*>(this->val_),
I::kNodeIsIndependentShift);
}

template <class T>
bool PersistentBase<T>::IsWeak() const {
typedef internal::Internals I;
Expand Down Expand Up @@ -9884,6 +10016,31 @@ void PersistentBase<T>::AnnotateStrongRetainer(const char* label) {
label);
}

template <class T>
void PersistentBase<T>::RegisterExternalReference(Isolate* isolate) const {
if (IsEmpty()) return;
V8::RegisterExternallyReferencedObject(
reinterpret_cast<internal::Address*>(this->val_),
reinterpret_cast<internal::Isolate*>(isolate));
}

template <class T>
void PersistentBase<T>::MarkIndependent() {
typedef internal::Internals I;
if (this->IsEmpty()) return;
I::UpdateNodeFlag(reinterpret_cast<internal::Address*>(this->val_), true,
I::kNodeIsIndependentShift);
}

template <class T>
void PersistentBase<T>::MarkActive() {
typedef internal::Internals I;
if (this->IsEmpty()) return;
I::UpdateNodeFlag(reinterpret_cast<internal::Address*>(this->val_), true,
I::kNodeIsActiveShift);
}


template <class T>
void PersistentBase<T>::SetWrapperClassId(uint16_t class_id) {
typedef internal::Internals I;
Expand Down Expand Up @@ -10009,6 +10166,17 @@ void TracedGlobal<T>::SetFinalizationCallback(
template <typename T>
ReturnValue<T>::ReturnValue(internal::Address* slot) : value_(slot) {}

template<typename T>
template<typename S>
void ReturnValue<T>::Set(const Persistent<S>& handle) {
TYPE_CHECK(T, S);
if (V8_UNLIKELY(handle.IsEmpty())) {
*value_ = GetDefaultValue();
} else {
*value_ = *reinterpret_cast<internal::Address*>(*handle);
}
}

template <typename T>
template <typename S>
void ReturnValue<T>::Set(const Global<S>& handle) {
Expand Down
Loading