libv8 4.5.95.5-x86-linux → 5.0.71.48.1beta2-x86-linux
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ext/libv8/arch.rb +5 -4
- data/ext/libv8/location.rb +7 -8
- data/lib/libv8/version.rb +1 -1
- data/vendor/v8/include/v8-debug.h +31 -23
- data/vendor/v8/include/v8-experimental.h +54 -0
- data/vendor/v8/include/v8-platform.h +90 -1
- data/vendor/v8/include/v8-profiler.h +148 -13
- data/vendor/v8/include/v8-testing.h +2 -2
- data/vendor/v8/include/v8-util.h +6 -3
- data/vendor/v8/include/v8-version.h +4 -4
- data/vendor/v8/include/v8.h +761 -534
- data/vendor/v8/include/v8config.h +17 -3
- data/vendor/v8/out/ia32.release/libv8_base.a +0 -0
- data/vendor/v8/out/ia32.release/libv8_libbase.a +0 -0
- data/vendor/v8/out/ia32.release/libv8_libplatform.a +0 -0
- data/vendor/v8/out/ia32.release/libv8_nosnapshot.a +0 -0
- data/vendor/v8/out/ia32.release/libv8_snapshot.a +0 -0
- data/vendor/v8/out/ia32.release/obj.target/tools/gyp/libv8_base.a +0 -0
- data/vendor/v8/out/ia32.release/obj.target/tools/gyp/libv8_libbase.a +0 -0
- data/vendor/v8/out/ia32.release/obj.target/tools/gyp/libv8_libplatform.a +0 -0
- data/vendor/v8/out/ia32.release/obj.target/tools/gyp/libv8_nosnapshot.a +0 -0
- data/vendor/v8/out/ia32.release/obj.target/tools/gyp/libv8_snapshot.a +0 -0
- metadata +44 -32
- checksums.yaml +0 -7
@@ -5,7 +5,7 @@
|
|
5
5
|
#ifndef V8_V8_TEST_H_
|
6
6
|
#define V8_V8_TEST_H_
|
7
7
|
|
8
|
-
#include "v8.h"
|
8
|
+
#include "v8.h" // NOLINT(build/include)
|
9
9
|
|
10
10
|
/**
|
11
11
|
* Testing support for the V8 JavaScript engine.
|
@@ -39,7 +39,7 @@ class V8_EXPORT Testing {
|
|
39
39
|
/**
|
40
40
|
* Force deoptimization of all functions.
|
41
41
|
*/
|
42
|
-
static void DeoptimizeAll();
|
42
|
+
static void DeoptimizeAll(Isolate* isolate);
|
43
43
|
};
|
44
44
|
|
45
45
|
|
data/vendor/v8/include/v8-util.h
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
#ifndef V8_UTIL_H_
|
6
6
|
#define V8_UTIL_H_
|
7
7
|
|
8
|
-
#include "v8.h"
|
8
|
+
#include "v8.h" // NOLINT(build/include)
|
9
9
|
#include <map>
|
10
10
|
#include <vector>
|
11
11
|
|
@@ -133,6 +133,8 @@ class DefaultGlobalMapTraits : public StdMapTraits<K, V> {
|
|
133
133
|
return K();
|
134
134
|
}
|
135
135
|
static void DisposeCallbackData(WeakCallbackDataType* data) {}
|
136
|
+
static void OnWeakCallback(
|
137
|
+
const WeakCallbackInfo<WeakCallbackDataType>& data) {}
|
136
138
|
static void Dispose(Isolate* isolate, Global<V> value, K key) {}
|
137
139
|
// This is a second pass callback, so SetSecondPassCallback cannot be called.
|
138
140
|
static void DisposeWeak(const WeakCallbackInfo<WeakCallbackDataType>& data) {}
|
@@ -452,7 +454,7 @@ class GlobalValueMap : public PersistentValueMapBase<K, V, Traits> {
|
|
452
454
|
: WeakCallbackType::kParameter;
|
453
455
|
Local<V> value(Local<V>::New(this->isolate(), *persistent));
|
454
456
|
persistent->template SetWeak<typename Traits::WeakCallbackDataType>(
|
455
|
-
Traits::WeakCallbackParameter(this, key, value),
|
457
|
+
Traits::WeakCallbackParameter(this, key, value), OnWeakCallback,
|
456
458
|
callback_type);
|
457
459
|
}
|
458
460
|
PersistentContainerValue old_value =
|
@@ -471,12 +473,13 @@ class GlobalValueMap : public PersistentValueMapBase<K, V, Traits> {
|
|
471
473
|
}
|
472
474
|
|
473
475
|
private:
|
474
|
-
static void
|
476
|
+
static void OnWeakCallback(
|
475
477
|
const WeakCallbackInfo<typename Traits::WeakCallbackDataType>& data) {
|
476
478
|
if (Traits::kCallbackType != kNotWeak) {
|
477
479
|
auto map = Traits::MapFromWeakCallbackInfo(data);
|
478
480
|
K key = Traits::KeyFromWeakCallbackInfo(data);
|
479
481
|
map->RemoveWeak(key);
|
482
|
+
Traits::OnWeakCallback(data);
|
480
483
|
data.SetSecondPassCallback(SecondWeakCallback);
|
481
484
|
}
|
482
485
|
}
|
@@ -8,10 +8,10 @@
|
|
8
8
|
// These macros define the version number for the current version.
|
9
9
|
// NOTE these macros are used by some of the tool scripts and the build
|
10
10
|
// system so their names cannot be changed without changing the scripts.
|
11
|
-
#define V8_MAJOR_VERSION
|
12
|
-
#define V8_MINOR_VERSION
|
13
|
-
#define V8_BUILD_NUMBER
|
14
|
-
#define V8_PATCH_LEVEL
|
11
|
+
#define V8_MAJOR_VERSION 5
|
12
|
+
#define V8_MINOR_VERSION 0
|
13
|
+
#define V8_BUILD_NUMBER 71
|
14
|
+
#define V8_PATCH_LEVEL 48
|
15
15
|
|
16
16
|
// Use 1 for candidates and 0 otherwise.
|
17
17
|
// (Boolean macro values are not supported by all preprocessors.)
|
data/vendor/v8/include/v8.h
CHANGED
@@ -12,15 +12,15 @@
|
|
12
12
|
* For other documentation see http://code.google.com/apis/v8/
|
13
13
|
*/
|
14
14
|
|
15
|
-
#ifndef
|
16
|
-
#define
|
15
|
+
#ifndef INCLUDE_V8_H_
|
16
|
+
#define INCLUDE_V8_H_
|
17
17
|
|
18
18
|
#include <stddef.h>
|
19
19
|
#include <stdint.h>
|
20
20
|
#include <stdio.h>
|
21
21
|
|
22
|
-
#include "v8-version.h"
|
23
|
-
#include "v8config.h"
|
22
|
+
#include "v8-version.h" // NOLINT(build/include)
|
23
|
+
#include "v8config.h" // NOLINT(build/include)
|
24
24
|
|
25
25
|
// We reserve the V8_* prefix for macros defined in V8 public API and
|
26
26
|
// assume there are no name conflicts with the embedder's code.
|
@@ -92,6 +92,7 @@ class ObjectTemplate;
|
|
92
92
|
class Platform;
|
93
93
|
class Primitive;
|
94
94
|
class Promise;
|
95
|
+
class Proxy;
|
95
96
|
class RawOperationDescriptor;
|
96
97
|
class Script;
|
97
98
|
class SharedArrayBuffer;
|
@@ -103,6 +104,7 @@ class String;
|
|
103
104
|
class StringObject;
|
104
105
|
class Symbol;
|
105
106
|
class SymbolObject;
|
107
|
+
class Private;
|
106
108
|
class Uint32;
|
107
109
|
class Utils;
|
108
110
|
class Value;
|
@@ -112,8 +114,8 @@ class MaybeLocal;
|
|
112
114
|
template <class T> class Eternal;
|
113
115
|
template<class T> class NonCopyablePersistentTraits;
|
114
116
|
template<class T> class PersistentBase;
|
115
|
-
template<class T,
|
116
|
-
|
117
|
+
template <class T, class M = NonCopyablePersistentTraits<T> >
|
118
|
+
class Persistent;
|
117
119
|
template <class T>
|
118
120
|
class Global;
|
119
121
|
template<class K, class V, class T> class PersistentValueMap;
|
@@ -135,6 +137,10 @@ class CallHandlerHelper;
|
|
135
137
|
class EscapableHandleScope;
|
136
138
|
template<typename T> class ReturnValue;
|
137
139
|
|
140
|
+
namespace experimental {
|
141
|
+
class FastAccessorBuilder;
|
142
|
+
} // namespace experimental
|
143
|
+
|
138
144
|
namespace internal {
|
139
145
|
class Arguments;
|
140
146
|
class Heap;
|
@@ -146,7 +152,7 @@ template<typename T> class CustomArguments;
|
|
146
152
|
class PropertyCallbackArguments;
|
147
153
|
class FunctionCallbackArguments;
|
148
154
|
class GlobalHandles;
|
149
|
-
}
|
155
|
+
} // namespace internal
|
150
156
|
|
151
157
|
|
152
158
|
/**
|
@@ -215,8 +221,8 @@ class Local {
|
|
215
221
|
: val_(reinterpret_cast<T*>(*that)) {
|
216
222
|
/**
|
217
223
|
* This check fails when trying to convert between incompatible
|
218
|
-
* handles. For example, converting from a
|
219
|
-
*
|
224
|
+
* handles. For example, converting from a Local<String> to a
|
225
|
+
* Local<Number>.
|
220
226
|
*/
|
221
227
|
TYPE_CHECK(T, S);
|
222
228
|
}
|
@@ -311,6 +317,7 @@ class Local {
|
|
311
317
|
friend class String;
|
312
318
|
friend class Object;
|
313
319
|
friend class Context;
|
320
|
+
friend class Private;
|
314
321
|
template<class F> friend class internal::CustomArguments;
|
315
322
|
friend Local<Primitive> Undefined(Isolate* isolate);
|
316
323
|
friend Local<Primitive> Null(Isolate* isolate);
|
@@ -322,17 +329,17 @@ class Local {
|
|
322
329
|
friend class PersistentValueMapBase;
|
323
330
|
template<class F1, class F2> friend class PersistentValueVector;
|
324
331
|
|
325
|
-
|
326
|
-
V8_INLINE Local(S* that)
|
327
|
-
: val_(that) {}
|
332
|
+
explicit V8_INLINE Local(T* that) : val_(that) {}
|
328
333
|
V8_INLINE static Local<T> New(Isolate* isolate, T* that);
|
329
334
|
T* val_;
|
330
335
|
};
|
331
336
|
|
332
337
|
|
333
|
-
|
338
|
+
#if !defined(V8_IMMINENT_DEPRECATION_WARNINGS)
|
339
|
+
// Local is an alias for Local for historical reasons.
|
334
340
|
template <class T>
|
335
341
|
using Handle = Local<T>;
|
342
|
+
#endif
|
336
343
|
|
337
344
|
|
338
345
|
/**
|
@@ -416,16 +423,19 @@ class WeakCallbackInfo {
|
|
416
423
|
V8_INLINE T* GetParameter() const { return parameter_; }
|
417
424
|
V8_INLINE void* GetInternalField(int index) const;
|
418
425
|
|
419
|
-
V8_INLINE
|
420
|
-
|
426
|
+
V8_INLINE V8_DEPRECATED("use indexed version",
|
427
|
+
void* GetInternalField1() const) {
|
421
428
|
return internal_fields_[0];
|
422
429
|
}
|
423
|
-
V8_INLINE
|
424
|
-
|
430
|
+
V8_INLINE V8_DEPRECATED("use indexed version",
|
431
|
+
void* GetInternalField2() const) {
|
425
432
|
return internal_fields_[1];
|
426
433
|
}
|
427
434
|
|
428
|
-
|
435
|
+
V8_DEPRECATED("Not realiable once SetSecondPassCallback() was used.",
|
436
|
+
bool IsFirstPass() const) {
|
437
|
+
return callback_ != nullptr;
|
438
|
+
}
|
429
439
|
|
430
440
|
// When first called, the embedder MUST Reset() the Global which triggered the
|
431
441
|
// callback. The Global itself is unusable for anything else. No v8 other api
|
@@ -495,7 +505,7 @@ template <class T> class PersistentBase {
|
|
495
505
|
* and create a new one with the contents of other if other is non empty
|
496
506
|
*/
|
497
507
|
template <class S>
|
498
|
-
V8_INLINE void Reset(Isolate* isolate, const
|
508
|
+
V8_INLINE void Reset(Isolate* isolate, const Local<S>& other);
|
499
509
|
|
500
510
|
/**
|
501
511
|
* If non-empty, destroy the underlying storage cell
|
@@ -507,6 +517,10 @@ template <class T> class PersistentBase {
|
|
507
517
|
V8_INLINE bool IsEmpty() const { return val_ == NULL; }
|
508
518
|
V8_INLINE void Empty() { val_ = 0; }
|
509
519
|
|
520
|
+
V8_INLINE Local<T> Get(Isolate* isolate) const {
|
521
|
+
return Local<T>::New(isolate, *this);
|
522
|
+
}
|
523
|
+
|
510
524
|
template <class S>
|
511
525
|
V8_INLINE bool operator==(const PersistentBase<S>& that) const {
|
512
526
|
internal::Object** a = reinterpret_cast<internal::Object**>(this->val_);
|
@@ -516,7 +530,8 @@ template <class T> class PersistentBase {
|
|
516
530
|
return *a == *b;
|
517
531
|
}
|
518
532
|
|
519
|
-
template <class S>
|
533
|
+
template <class S>
|
534
|
+
V8_INLINE bool operator==(const Local<S>& that) const {
|
520
535
|
internal::Object** a = reinterpret_cast<internal::Object**>(this->val_);
|
521
536
|
internal::Object** b = reinterpret_cast<internal::Object**>(that.val_);
|
522
537
|
if (a == NULL) return b == NULL;
|
@@ -529,7 +544,8 @@ template <class T> class PersistentBase {
|
|
529
544
|
return !operator==(that);
|
530
545
|
}
|
531
546
|
|
532
|
-
template <class S>
|
547
|
+
template <class S>
|
548
|
+
V8_INLINE bool operator!=(const Local<S>& that) const {
|
533
549
|
return !operator==(that);
|
534
550
|
}
|
535
551
|
|
@@ -541,13 +557,13 @@ template <class T> class PersistentBase {
|
|
541
557
|
* critical form of resource management!
|
542
558
|
*/
|
543
559
|
template <typename P>
|
544
|
-
V8_INLINE
|
560
|
+
V8_INLINE V8_DEPRECATED(
|
545
561
|
"use WeakCallbackInfo version",
|
546
562
|
void SetWeak(P* parameter,
|
547
563
|
typename WeakCallbackData<T, P>::Callback callback));
|
548
564
|
|
549
565
|
template <typename S, typename P>
|
550
|
-
V8_INLINE
|
566
|
+
V8_INLINE V8_DEPRECATED(
|
551
567
|
"use WeakCallbackInfo version",
|
552
568
|
void SetWeak(P* parameter,
|
553
569
|
typename WeakCallbackData<S, P>::Callback callback));
|
@@ -559,7 +575,7 @@ template <class T> class PersistentBase {
|
|
559
575
|
// specify a parameter for the callback or the location of two internal
|
560
576
|
// fields in the dying object.
|
561
577
|
template <typename P>
|
562
|
-
V8_INLINE
|
578
|
+
V8_INLINE V8_DEPRECATED(
|
563
579
|
"use SetWeak",
|
564
580
|
void SetPhantom(P* parameter,
|
565
581
|
typename WeakCallbackInfo<P>::Callback callback,
|
@@ -595,6 +611,13 @@ template <class T> class PersistentBase {
|
|
595
611
|
*/
|
596
612
|
V8_INLINE void MarkPartiallyDependent();
|
597
613
|
|
614
|
+
/**
|
615
|
+
* Marks the reference to this object as active. The scavenge garbage
|
616
|
+
* collection should not reclaim the objects marked as active.
|
617
|
+
* This bit is cleared after the each garbage collection pass.
|
618
|
+
*/
|
619
|
+
V8_INLINE void MarkActive();
|
620
|
+
|
598
621
|
V8_INLINE bool IsIndependent() const;
|
599
622
|
|
600
623
|
/** Checks if the handle holds the only reference to an object. */
|
@@ -630,8 +653,8 @@ template <class T> class PersistentBase {
|
|
630
653
|
friend class Object;
|
631
654
|
|
632
655
|
explicit V8_INLINE PersistentBase(T* val) : val_(val) {}
|
633
|
-
PersistentBase(PersistentBase& other) = delete; // NOLINT
|
634
|
-
void operator=(PersistentBase&) = delete;
|
656
|
+
PersistentBase(const PersistentBase& other) = delete; // NOLINT
|
657
|
+
void operator=(const PersistentBase&) = delete;
|
635
658
|
V8_INLINE static T* New(Isolate* isolate, T* that);
|
636
659
|
|
637
660
|
T* val_;
|
@@ -692,11 +715,12 @@ template <class T, class M> class Persistent : public PersistentBase<T> {
|
|
692
715
|
*/
|
693
716
|
V8_INLINE Persistent() : PersistentBase<T>(0) { }
|
694
717
|
/**
|
695
|
-
* Construct a Persistent from a
|
696
|
-
* When the
|
718
|
+
* Construct a Persistent from a Local.
|
719
|
+
* When the Local is non-empty, a new storage cell is created
|
697
720
|
* pointing to the same object, and no flags are set.
|
698
721
|
*/
|
699
|
-
template <class S>
|
722
|
+
template <class S>
|
723
|
+
V8_INLINE Persistent(Isolate* isolate, Local<S> that)
|
700
724
|
: PersistentBase<T>(PersistentBase<T>::New(isolate, *that)) {
|
701
725
|
TYPE_CHECK(T, S);
|
702
726
|
}
|
@@ -764,7 +788,7 @@ template <class T, class M> class Persistent : public PersistentBase<T> {
|
|
764
788
|
template<class F1, class F2> friend class Persistent;
|
765
789
|
template<class F> friend class ReturnValue;
|
766
790
|
|
767
|
-
|
791
|
+
explicit V8_INLINE Persistent(T* that) : PersistentBase<T>(that) {}
|
768
792
|
V8_INLINE T* operator*() const { return this->val_; }
|
769
793
|
template<class S, class M2>
|
770
794
|
V8_INLINE void Copy(const Persistent<S, M2>& that);
|
@@ -784,12 +808,12 @@ class Global : public PersistentBase<T> {
|
|
784
808
|
*/
|
785
809
|
V8_INLINE Global() : PersistentBase<T>(nullptr) {}
|
786
810
|
/**
|
787
|
-
* Construct a Global from a
|
788
|
-
* When the
|
811
|
+
* Construct a Global from a Local.
|
812
|
+
* When the Local is non-empty, a new storage cell is created
|
789
813
|
* pointing to the same object, and no flags are set.
|
790
814
|
*/
|
791
815
|
template <class S>
|
792
|
-
V8_INLINE Global(Isolate* isolate,
|
816
|
+
V8_INLINE Global(Isolate* isolate, Local<S> that)
|
793
817
|
: PersistentBase<T>(PersistentBase<T>::New(isolate, *that)) {
|
794
818
|
TYPE_CHECK(T, S);
|
795
819
|
}
|
@@ -806,7 +830,7 @@ class Global : public PersistentBase<T> {
|
|
806
830
|
/**
|
807
831
|
* Move constructor.
|
808
832
|
*/
|
809
|
-
V8_INLINE Global(Global&& other) : PersistentBase<T>(other.val_) {
|
833
|
+
V8_INLINE Global(Global&& other) : PersistentBase<T>(other.val_) { // NOLINT
|
810
834
|
other.val_ = nullptr;
|
811
835
|
}
|
812
836
|
V8_INLINE ~Global() { this->Reset(); }
|
@@ -814,7 +838,7 @@ class Global : public PersistentBase<T> {
|
|
814
838
|
* Move via assignment.
|
815
839
|
*/
|
816
840
|
template <class S>
|
817
|
-
V8_INLINE Global& operator=(Global<S>&& rhs) {
|
841
|
+
V8_INLINE Global& operator=(Global<S>&& rhs) { // NOLINT
|
818
842
|
TYPE_CHECK(T, S);
|
819
843
|
if (this != &rhs) {
|
820
844
|
this->Reset();
|
@@ -826,7 +850,7 @@ class Global : public PersistentBase<T> {
|
|
826
850
|
/**
|
827
851
|
* Pass allows returning uniques from functions, etc.
|
828
852
|
*/
|
829
|
-
Global Pass() { return static_cast<Global&&>(*this); }
|
853
|
+
Global Pass() { return static_cast<Global&&>(*this); } // NOLINT
|
830
854
|
|
831
855
|
/*
|
832
856
|
* For compatibility with Chromium's base::Bind (base::Passed).
|
@@ -836,8 +860,8 @@ class Global : public PersistentBase<T> {
|
|
836
860
|
private:
|
837
861
|
template <class F>
|
838
862
|
friend class ReturnValue;
|
839
|
-
Global(Global&) = delete;
|
840
|
-
void operator=(Global&) = delete;
|
863
|
+
Global(const Global&) = delete;
|
864
|
+
void operator=(const Global&) = delete;
|
841
865
|
V8_INLINE T* operator*() const { return this->val_; }
|
842
866
|
};
|
843
867
|
|
@@ -863,7 +887,7 @@ using UniquePersistent = Global<T>;
|
|
863
887
|
*/
|
864
888
|
class V8_EXPORT HandleScope {
|
865
889
|
public:
|
866
|
-
HandleScope(Isolate* isolate);
|
890
|
+
explicit HandleScope(Isolate* isolate);
|
867
891
|
|
868
892
|
~HandleScope();
|
869
893
|
|
@@ -916,7 +940,7 @@ class V8_EXPORT HandleScope {
|
|
916
940
|
*/
|
917
941
|
class V8_EXPORT EscapableHandleScope : public HandleScope {
|
918
942
|
public:
|
919
|
-
EscapableHandleScope(Isolate* isolate);
|
943
|
+
explicit EscapableHandleScope(Isolate* isolate);
|
920
944
|
V8_INLINE ~EscapableHandleScope() {}
|
921
945
|
|
922
946
|
/**
|
@@ -957,8 +981,8 @@ class V8_EXPORT SealHandleScope {
|
|
957
981
|
void operator delete(void*, size_t);
|
958
982
|
|
959
983
|
internal::Isolate* isolate_;
|
960
|
-
int prev_level_;
|
961
984
|
internal::Object** prev_limit_;
|
985
|
+
int prev_sealed_level_;
|
962
986
|
};
|
963
987
|
|
964
988
|
|
@@ -1012,31 +1036,31 @@ class ScriptOriginOptions {
|
|
1012
1036
|
class ScriptOrigin {
|
1013
1037
|
public:
|
1014
1038
|
V8_INLINE ScriptOrigin(
|
1015
|
-
|
1016
|
-
|
1017
|
-
|
1018
|
-
|
1019
|
-
|
1020
|
-
|
1021
|
-
|
1022
|
-
|
1023
|
-
V8_INLINE
|
1024
|
-
V8_INLINE
|
1025
|
-
V8_INLINE
|
1039
|
+
Local<Value> resource_name,
|
1040
|
+
Local<Integer> resource_line_offset = Local<Integer>(),
|
1041
|
+
Local<Integer> resource_column_offset = Local<Integer>(),
|
1042
|
+
Local<Boolean> resource_is_shared_cross_origin = Local<Boolean>(),
|
1043
|
+
Local<Integer> script_id = Local<Integer>(),
|
1044
|
+
Local<Boolean> resource_is_embedder_debug_script = Local<Boolean>(),
|
1045
|
+
Local<Value> source_map_url = Local<Value>(),
|
1046
|
+
Local<Boolean> resource_is_opaque = Local<Boolean>());
|
1047
|
+
V8_INLINE Local<Value> ResourceName() const;
|
1048
|
+
V8_INLINE Local<Integer> ResourceLineOffset() const;
|
1049
|
+
V8_INLINE Local<Integer> ResourceColumnOffset() const;
|
1026
1050
|
/**
|
1027
1051
|
* Returns true for embedder's debugger scripts
|
1028
1052
|
*/
|
1029
|
-
V8_INLINE
|
1030
|
-
V8_INLINE
|
1053
|
+
V8_INLINE Local<Integer> ScriptID() const;
|
1054
|
+
V8_INLINE Local<Value> SourceMapUrl() const;
|
1031
1055
|
V8_INLINE ScriptOriginOptions Options() const { return options_; }
|
1032
1056
|
|
1033
1057
|
private:
|
1034
|
-
|
1035
|
-
|
1036
|
-
|
1058
|
+
Local<Value> resource_name_;
|
1059
|
+
Local<Integer> resource_line_offset_;
|
1060
|
+
Local<Integer> resource_column_offset_;
|
1037
1061
|
ScriptOriginOptions options_;
|
1038
|
-
|
1039
|
-
|
1062
|
+
Local<Integer> script_id_;
|
1063
|
+
Local<Value> source_map_url_;
|
1040
1064
|
};
|
1041
1065
|
|
1042
1066
|
|
@@ -1051,16 +1075,16 @@ class V8_EXPORT UnboundScript {
|
|
1051
1075
|
Local<Script> BindToCurrentContext();
|
1052
1076
|
|
1053
1077
|
int GetId();
|
1054
|
-
|
1078
|
+
Local<Value> GetScriptName();
|
1055
1079
|
|
1056
1080
|
/**
|
1057
1081
|
* Data read from magic sourceURL comments.
|
1058
1082
|
*/
|
1059
|
-
|
1083
|
+
Local<Value> GetSourceURL();
|
1060
1084
|
/**
|
1061
1085
|
* Data read from magic sourceMappingURL comments.
|
1062
1086
|
*/
|
1063
|
-
|
1087
|
+
Local<Value> GetSourceMappingURL();
|
1064
1088
|
|
1065
1089
|
/**
|
1066
1090
|
* Returns zero based line number of the code_pos location in the script.
|
@@ -1083,15 +1107,15 @@ class V8_EXPORT Script {
|
|
1083
1107
|
*/
|
1084
1108
|
static V8_DEPRECATE_SOON(
|
1085
1109
|
"Use maybe version",
|
1086
|
-
Local<Script> Compile(
|
1110
|
+
Local<Script> Compile(Local<String> source,
|
1087
1111
|
ScriptOrigin* origin = nullptr));
|
1088
1112
|
static V8_WARN_UNUSED_RESULT MaybeLocal<Script> Compile(
|
1089
|
-
Local<Context> context,
|
1113
|
+
Local<Context> context, Local<String> source,
|
1090
1114
|
ScriptOrigin* origin = nullptr);
|
1091
1115
|
|
1092
1116
|
static Local<Script> V8_DEPRECATE_SOON("Use maybe version",
|
1093
|
-
Compile(
|
1094
|
-
|
1117
|
+
Compile(Local<String> source,
|
1118
|
+
Local<String> file_name));
|
1095
1119
|
|
1096
1120
|
/**
|
1097
1121
|
* Runs the script returning the resulting value. It will be run in the
|
@@ -1105,11 +1129,6 @@ class V8_EXPORT Script {
|
|
1105
1129
|
* Returns the corresponding context-unbound script.
|
1106
1130
|
*/
|
1107
1131
|
Local<UnboundScript> GetUnboundScript();
|
1108
|
-
|
1109
|
-
V8_DEPRECATED("Use GetUnboundScript()->GetId()",
|
1110
|
-
int GetId()) {
|
1111
|
-
return GetUnboundScript()->GetId();
|
1112
|
-
}
|
1113
1132
|
};
|
1114
1133
|
|
1115
1134
|
|
@@ -1183,11 +1202,11 @@ class V8_EXPORT ScriptCompiler {
|
|
1183
1202
|
Local<String> source_string;
|
1184
1203
|
|
1185
1204
|
// Origin information
|
1186
|
-
|
1187
|
-
|
1188
|
-
|
1205
|
+
Local<Value> resource_name;
|
1206
|
+
Local<Integer> resource_line_offset;
|
1207
|
+
Local<Integer> resource_column_offset;
|
1189
1208
|
ScriptOriginOptions resource_options;
|
1190
|
-
|
1209
|
+
Local<Value> source_map_url;
|
1191
1210
|
|
1192
1211
|
// Cached data from previous compilation (if a kConsume*Cache flag is
|
1193
1212
|
// set), or hold newly generated cache data (kProduce*Cache flags) are
|
@@ -1300,10 +1319,10 @@ class V8_EXPORT ScriptCompiler {
|
|
1300
1319
|
* \return Compiled script object (context independent; for running it must be
|
1301
1320
|
* bound to a context).
|
1302
1321
|
*/
|
1303
|
-
static
|
1304
|
-
|
1305
|
-
|
1306
|
-
|
1322
|
+
static V8_DEPRECATED("Use maybe version",
|
1323
|
+
Local<UnboundScript> CompileUnbound(
|
1324
|
+
Isolate* isolate, Source* source,
|
1325
|
+
CompileOptions options = kNoCompileOptions));
|
1307
1326
|
static V8_WARN_UNUSED_RESULT MaybeLocal<UnboundScript> CompileUnboundScript(
|
1308
1327
|
Isolate* isolate, Source* source,
|
1309
1328
|
CompileOptions options = kNoCompileOptions);
|
@@ -1319,7 +1338,7 @@ class V8_EXPORT ScriptCompiler {
|
|
1319
1338
|
* when this function was called. When run it will always use this
|
1320
1339
|
* context.
|
1321
1340
|
*/
|
1322
|
-
static
|
1341
|
+
static V8_DEPRECATED(
|
1323
1342
|
"Use maybe version",
|
1324
1343
|
Local<Script> Compile(Isolate* isolate, Source* source,
|
1325
1344
|
CompileOptions options = kNoCompileOptions));
|
@@ -1349,14 +1368,14 @@ class V8_EXPORT ScriptCompiler {
|
|
1349
1368
|
* (ScriptStreamingTask has been run). V8 doesn't construct the source string
|
1350
1369
|
* during streaming, so the embedder needs to pass the full source here.
|
1351
1370
|
*/
|
1352
|
-
static
|
1353
|
-
|
1354
|
-
|
1355
|
-
|
1356
|
-
|
1371
|
+
static V8_DEPRECATED("Use maybe version",
|
1372
|
+
Local<Script> Compile(Isolate* isolate,
|
1373
|
+
StreamedSource* source,
|
1374
|
+
Local<String> full_source_string,
|
1375
|
+
const ScriptOrigin& origin));
|
1357
1376
|
static V8_WARN_UNUSED_RESULT MaybeLocal<Script> Compile(
|
1358
1377
|
Local<Context> context, StreamedSource* source,
|
1359
|
-
|
1378
|
+
Local<String> full_source_string, const ScriptOrigin& origin);
|
1360
1379
|
|
1361
1380
|
/**
|
1362
1381
|
* Return a version tag for CachedData for the current V8 version & flags.
|
@@ -1381,15 +1400,13 @@ class V8_EXPORT ScriptCompiler {
|
|
1381
1400
|
/**
|
1382
1401
|
* Compile an ES6 module.
|
1383
1402
|
*
|
1384
|
-
* This is an experimental feature
|
1403
|
+
* This is an unfinished experimental feature, and is only exposed
|
1404
|
+
* here for internal testing purposes.
|
1405
|
+
* Only parsing works at the moment. Do not use.
|
1385
1406
|
*
|
1386
1407
|
* TODO(adamk): Script is likely the wrong return value for this;
|
1387
1408
|
* should return some new Module type.
|
1388
1409
|
*/
|
1389
|
-
static V8_DEPRECATE_SOON(
|
1390
|
-
"Use maybe version",
|
1391
|
-
Local<Script> CompileModule(Isolate* isolate, Source* source,
|
1392
|
-
CompileOptions options = kNoCompileOptions));
|
1393
1410
|
static V8_WARN_UNUSED_RESULT MaybeLocal<Script> CompileModule(
|
1394
1411
|
Local<Context> context, Source* source,
|
1395
1412
|
CompileOptions options = kNoCompileOptions);
|
@@ -1443,14 +1460,14 @@ class V8_EXPORT Message {
|
|
1443
1460
|
* Returns the resource name for the script from where the function causing
|
1444
1461
|
* the error originates.
|
1445
1462
|
*/
|
1446
|
-
|
1463
|
+
Local<Value> GetScriptResourceName() const;
|
1447
1464
|
|
1448
1465
|
/**
|
1449
1466
|
* Exception stack trace. By default stack traces are not captured for
|
1450
1467
|
* uncaught exceptions. SetCaptureStackTraceForUncaughtExceptions allows
|
1451
1468
|
* to change this option.
|
1452
1469
|
*/
|
1453
|
-
|
1470
|
+
Local<StackTrace> GetStackTrace() const;
|
1454
1471
|
|
1455
1472
|
/**
|
1456
1473
|
* Returns the number, 1-based, of the line where the error occurred.
|
@@ -1481,7 +1498,7 @@ class V8_EXPORT Message {
|
|
1481
1498
|
* Returns the index within the line of the last character where
|
1482
1499
|
* the error occurred.
|
1483
1500
|
*/
|
1484
|
-
|
1501
|
+
V8_DEPRECATED("Use maybe version", int GetEndColumn() const);
|
1485
1502
|
V8_WARN_UNUSED_RESULT Maybe<int> GetEndColumn(Local<Context> context) const;
|
1486
1503
|
|
1487
1504
|
/**
|
@@ -1650,8 +1667,8 @@ class V8_EXPORT JSON {
|
|
1650
1667
|
* \param json_string The string to parse.
|
1651
1668
|
* \return The corresponding value if successfully parsed.
|
1652
1669
|
*/
|
1653
|
-
static
|
1654
|
-
|
1670
|
+
static V8_DEPRECATED("Use maybe version",
|
1671
|
+
Local<Value> Parse(Local<String> json_string));
|
1655
1672
|
static V8_WARN_UNUSED_RESULT MaybeLocal<Value> Parse(
|
1656
1673
|
Isolate* isolate, Local<String> json_string);
|
1657
1674
|
};
|
@@ -1665,10 +1682,10 @@ class V8_EXPORT JSON {
|
|
1665
1682
|
class V8_EXPORT NativeWeakMap : public Data {
|
1666
1683
|
public:
|
1667
1684
|
static Local<NativeWeakMap> New(Isolate* isolate);
|
1668
|
-
void Set(
|
1669
|
-
Local<Value> Get(
|
1670
|
-
bool Has(
|
1671
|
-
bool Delete(
|
1685
|
+
void Set(Local<Value> key, Local<Value> value);
|
1686
|
+
Local<Value> Get(Local<Value> key);
|
1687
|
+
bool Has(Local<Value> key);
|
1688
|
+
bool Delete(Local<Value> key);
|
1672
1689
|
};
|
1673
1690
|
|
1674
1691
|
|
@@ -1726,7 +1743,8 @@ class V8_EXPORT Value : public Data {
|
|
1726
1743
|
bool IsFunction() const;
|
1727
1744
|
|
1728
1745
|
/**
|
1729
|
-
* Returns true if this value is an array.
|
1746
|
+
* Returns true if this value is an array. Note that it will return false for
|
1747
|
+
* an Proxy for an array.
|
1730
1748
|
*/
|
1731
1749
|
bool IsArray() const;
|
1732
1750
|
|
@@ -1939,6 +1957,11 @@ class V8_EXPORT Value : public Data {
|
|
1939
1957
|
*/
|
1940
1958
|
bool IsSharedArrayBuffer() const;
|
1941
1959
|
|
1960
|
+
/**
|
1961
|
+
* Returns true if this value is a JavaScript Proxy.
|
1962
|
+
*/
|
1963
|
+
bool IsProxy() const;
|
1964
|
+
|
1942
1965
|
|
1943
1966
|
V8_WARN_UNUSED_RESULT MaybeLocal<Boolean> ToBoolean(
|
1944
1967
|
Local<Context> context) const;
|
@@ -1962,34 +1985,34 @@ class V8_EXPORT Value : public Data {
|
|
1962
1985
|
Local<Number> ToNumber(Isolate* isolate) const);
|
1963
1986
|
V8_DEPRECATE_SOON("Use maybe version",
|
1964
1987
|
Local<String> ToString(Isolate* isolate) const);
|
1965
|
-
|
1966
|
-
|
1988
|
+
V8_DEPRECATED("Use maybe version",
|
1989
|
+
Local<String> ToDetailString(Isolate* isolate) const);
|
1967
1990
|
V8_DEPRECATE_SOON("Use maybe version",
|
1968
1991
|
Local<Object> ToObject(Isolate* isolate) const);
|
1969
1992
|
V8_DEPRECATE_SOON("Use maybe version",
|
1970
1993
|
Local<Integer> ToInteger(Isolate* isolate) const);
|
1971
|
-
|
1972
|
-
|
1994
|
+
V8_DEPRECATED("Use maybe version",
|
1995
|
+
Local<Uint32> ToUint32(Isolate* isolate) const);
|
1973
1996
|
V8_DEPRECATE_SOON("Use maybe version",
|
1974
1997
|
Local<Int32> ToInt32(Isolate* isolate) const);
|
1975
1998
|
|
1976
1999
|
inline V8_DEPRECATE_SOON("Use maybe version",
|
1977
2000
|
Local<Boolean> ToBoolean() const);
|
1978
|
-
inline
|
2001
|
+
inline V8_DEPRECATED("Use maybe version", Local<Number> ToNumber() const);
|
1979
2002
|
inline V8_DEPRECATE_SOON("Use maybe version", Local<String> ToString() const);
|
1980
|
-
inline
|
1981
|
-
|
2003
|
+
inline V8_DEPRECATED("Use maybe version",
|
2004
|
+
Local<String> ToDetailString() const);
|
1982
2005
|
inline V8_DEPRECATE_SOON("Use maybe version", Local<Object> ToObject() const);
|
1983
2006
|
inline V8_DEPRECATE_SOON("Use maybe version",
|
1984
2007
|
Local<Integer> ToInteger() const);
|
1985
|
-
inline
|
1986
|
-
inline
|
2008
|
+
inline V8_DEPRECATED("Use maybe version", Local<Uint32> ToUint32() const);
|
2009
|
+
inline V8_DEPRECATED("Use maybe version", Local<Int32> ToInt32() const);
|
1987
2010
|
|
1988
2011
|
/**
|
1989
2012
|
* Attempts to convert a string to an array index.
|
1990
2013
|
* Returns an empty handle if the conversion fails.
|
1991
2014
|
*/
|
1992
|
-
|
2015
|
+
V8_DEPRECATED("Use maybe version", Local<Uint32> ToArrayIndex() const);
|
1993
2016
|
V8_WARN_UNUSED_RESULT MaybeLocal<Uint32> ToArrayIndex(
|
1994
2017
|
Local<Context> context) const;
|
1995
2018
|
|
@@ -2008,11 +2031,11 @@ class V8_EXPORT Value : public Data {
|
|
2008
2031
|
V8_DEPRECATE_SOON("Use maybe version", int32_t Int32Value() const);
|
2009
2032
|
|
2010
2033
|
/** JS == */
|
2011
|
-
V8_DEPRECATE_SOON("Use maybe version", bool Equals(
|
2034
|
+
V8_DEPRECATE_SOON("Use maybe version", bool Equals(Local<Value> that) const);
|
2012
2035
|
V8_WARN_UNUSED_RESULT Maybe<bool> Equals(Local<Context> context,
|
2013
|
-
|
2014
|
-
bool StrictEquals(
|
2015
|
-
bool SameValue(
|
2036
|
+
Local<Value> that) const;
|
2037
|
+
bool StrictEquals(Local<Value> that) const;
|
2038
|
+
bool SameValue(Local<Value> that) const;
|
2016
2039
|
|
2017
2040
|
template <class T> V8_INLINE static Value* Cast(T* value);
|
2018
2041
|
|
@@ -2040,7 +2063,8 @@ class V8_EXPORT Boolean : public Primitive {
|
|
2040
2063
|
public:
|
2041
2064
|
bool Value() const;
|
2042
2065
|
V8_INLINE static Boolean* Cast(v8::Value* obj);
|
2043
|
-
V8_INLINE static
|
2066
|
+
V8_INLINE static Local<Boolean> New(Isolate* isolate, bool value);
|
2067
|
+
|
2044
2068
|
private:
|
2045
2069
|
static void CheckCast(v8::Value* obj);
|
2046
2070
|
};
|
@@ -2176,6 +2200,8 @@ class V8_EXPORT String : public Name {
|
|
2176
2200
|
public:
|
2177
2201
|
virtual ~ExternalStringResourceBase() {}
|
2178
2202
|
|
2203
|
+
virtual bool IsCompressible() const { return false; }
|
2204
|
+
|
2179
2205
|
protected:
|
2180
2206
|
ExternalStringResourceBase() {}
|
2181
2207
|
|
@@ -2292,7 +2318,7 @@ class V8_EXPORT String : public Name {
|
|
2292
2318
|
int length = -1);
|
2293
2319
|
|
2294
2320
|
/** Allocates a new string from Latin-1 data.*/
|
2295
|
-
static
|
2321
|
+
static V8_DEPRECATED(
|
2296
2322
|
"Use maybe version",
|
2297
2323
|
Local<String> NewFromOneByte(Isolate* isolate, const uint8_t* data,
|
2298
2324
|
NewStringType type = kNormalString,
|
@@ -2321,7 +2347,7 @@ class V8_EXPORT String : public Name {
|
|
2321
2347
|
* Creates a new string by concatenating the left and the right strings
|
2322
2348
|
* passed in as parameters.
|
2323
2349
|
*/
|
2324
|
-
static Local<String> Concat(
|
2350
|
+
static Local<String> Concat(Local<String> left, Local<String> right);
|
2325
2351
|
|
2326
2352
|
/**
|
2327
2353
|
* Creates a new external string using the data defined in the given
|
@@ -2331,10 +2357,9 @@ class V8_EXPORT String : public Name {
|
|
2331
2357
|
* should the underlying buffer be deallocated or modified except through the
|
2332
2358
|
* destructor of the external string resource.
|
2333
2359
|
*/
|
2334
|
-
static
|
2335
|
-
|
2336
|
-
|
2337
|
-
ExternalStringResource* resource));
|
2360
|
+
static V8_DEPRECATED("Use maybe version",
|
2361
|
+
Local<String> NewExternal(
|
2362
|
+
Isolate* isolate, ExternalStringResource* resource));
|
2338
2363
|
static V8_WARN_UNUSED_RESULT MaybeLocal<String> NewExternalTwoByte(
|
2339
2364
|
Isolate* isolate, ExternalStringResource* resource);
|
2340
2365
|
|
@@ -2389,7 +2414,7 @@ class V8_EXPORT String : public Name {
|
|
2389
2414
|
*/
|
2390
2415
|
class V8_EXPORT Utf8Value {
|
2391
2416
|
public:
|
2392
|
-
explicit Utf8Value(
|
2417
|
+
explicit Utf8Value(Local<v8::Value> obj);
|
2393
2418
|
~Utf8Value();
|
2394
2419
|
char* operator*() { return str_; }
|
2395
2420
|
const char* operator*() const { return str_; }
|
@@ -2411,7 +2436,7 @@ class V8_EXPORT String : public Name {
|
|
2411
2436
|
*/
|
2412
2437
|
class V8_EXPORT Value {
|
2413
2438
|
public:
|
2414
|
-
explicit Value(
|
2439
|
+
explicit Value(Local<v8::Value> obj);
|
2415
2440
|
~Value();
|
2416
2441
|
uint16_t* operator*() { return str_; }
|
2417
2442
|
const uint16_t* operator*() const { return str_; }
|
@@ -2444,8 +2469,8 @@ class V8_EXPORT Symbol : public Name {
|
|
2444
2469
|
Local<Value> Name() const;
|
2445
2470
|
|
2446
2471
|
// Create a symbol. If name is not empty, it will be used as the description.
|
2447
|
-
static Local<Symbol> New(
|
2448
|
-
|
2472
|
+
static Local<Symbol> New(Isolate* isolate,
|
2473
|
+
Local<String> name = Local<String>());
|
2449
2474
|
|
2450
2475
|
// Access global symbol registry.
|
2451
2476
|
// Note that symbols created this way are never collected, so
|
@@ -2462,6 +2487,7 @@ class V8_EXPORT Symbol : public Name {
|
|
2462
2487
|
static Local<Symbol> GetIterator(Isolate* isolate);
|
2463
2488
|
static Local<Symbol> GetUnscopables(Isolate* isolate);
|
2464
2489
|
static Local<Symbol> GetToStringTag(Isolate* isolate);
|
2490
|
+
static Local<Symbol> GetIsConcatSpreadable(Isolate* isolate);
|
2465
2491
|
|
2466
2492
|
V8_INLINE static Symbol* Cast(v8::Value* obj);
|
2467
2493
|
|
@@ -2471,6 +2497,34 @@ class V8_EXPORT Symbol : public Name {
|
|
2471
2497
|
};
|
2472
2498
|
|
2473
2499
|
|
2500
|
+
/**
|
2501
|
+
* A private symbol
|
2502
|
+
*
|
2503
|
+
* This is an experimental feature. Use at your own risk.
|
2504
|
+
*/
|
2505
|
+
class V8_EXPORT Private : public Data {
|
2506
|
+
public:
|
2507
|
+
// Returns the print name string of the private symbol, or undefined if none.
|
2508
|
+
Local<Value> Name() const;
|
2509
|
+
|
2510
|
+
// Create a private symbol. If name is not empty, it will be the description.
|
2511
|
+
static Local<Private> New(Isolate* isolate,
|
2512
|
+
Local<String> name = Local<String>());
|
2513
|
+
|
2514
|
+
// Retrieve a global private symbol. If a symbol with this name has not
|
2515
|
+
// been retrieved in the same isolate before, it is created.
|
2516
|
+
// Note that private symbols created this way are never collected, so
|
2517
|
+
// they should only be used for statically fixed properties.
|
2518
|
+
// Also, there is only one global name space for the names used as keys.
|
2519
|
+
// To minimize the potential for clashes, use qualified names as keys,
|
2520
|
+
// e.g., "Class#property".
|
2521
|
+
static Local<Private> ForApi(Isolate* isolate, Local<String> name);
|
2522
|
+
|
2523
|
+
private:
|
2524
|
+
Private();
|
2525
|
+
};
|
2526
|
+
|
2527
|
+
|
2474
2528
|
/**
|
2475
2529
|
* A JavaScript number value (ECMA-262, 4.3.20)
|
2476
2530
|
*/
|
@@ -2581,12 +2635,12 @@ enum AccessControl {
|
|
2581
2635
|
class V8_EXPORT Object : public Value {
|
2582
2636
|
public:
|
2583
2637
|
V8_DEPRECATE_SOON("Use maybe version",
|
2584
|
-
bool Set(
|
2638
|
+
bool Set(Local<Value> key, Local<Value> value));
|
2585
2639
|
V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
|
2586
2640
|
Local<Value> key, Local<Value> value);
|
2587
2641
|
|
2588
2642
|
V8_DEPRECATE_SOON("Use maybe version",
|
2589
|
-
bool Set(uint32_t index,
|
2643
|
+
bool Set(uint32_t index, Local<Value> value));
|
2590
2644
|
V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
|
2591
2645
|
Local<Value> value);
|
2592
2646
|
|
@@ -2622,15 +2676,15 @@ class V8_EXPORT Object : public Value {
|
|
2622
2676
|
// will only be returned if the interceptor doesn't return a value.
|
2623
2677
|
//
|
2624
2678
|
// Note also that this only works for named properties.
|
2625
|
-
|
2626
|
-
|
2627
|
-
|
2628
|
-
V8_DEPRECATE_SOON("Use CreateDataProperty",
|
2679
|
+
V8_DEPRECATED("Use CreateDataProperty / DefineOwnProperty",
|
2680
|
+
bool ForceSet(Local<Value> key, Local<Value> value,
|
2681
|
+
PropertyAttribute attribs = None));
|
2682
|
+
V8_DEPRECATE_SOON("Use CreateDataProperty / DefineOwnProperty",
|
2629
2683
|
Maybe<bool> ForceSet(Local<Context> context,
|
2630
2684
|
Local<Value> key, Local<Value> value,
|
2631
2685
|
PropertyAttribute attribs = None));
|
2632
2686
|
|
2633
|
-
V8_DEPRECATE_SOON("Use maybe version", Local<Value> Get(
|
2687
|
+
V8_DEPRECATE_SOON("Use maybe version", Local<Value> Get(Local<Value> key));
|
2634
2688
|
V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
|
2635
2689
|
Local<Value> key);
|
2636
2690
|
|
@@ -2643,48 +2697,48 @@ class V8_EXPORT Object : public Value {
|
|
2643
2697
|
* any combination of ReadOnly, DontEnum and DontDelete. Returns
|
2644
2698
|
* None when the property doesn't exist.
|
2645
2699
|
*/
|
2646
|
-
|
2647
|
-
|
2700
|
+
V8_DEPRECATED("Use maybe version",
|
2701
|
+
PropertyAttribute GetPropertyAttributes(Local<Value> key));
|
2648
2702
|
V8_WARN_UNUSED_RESULT Maybe<PropertyAttribute> GetPropertyAttributes(
|
2649
2703
|
Local<Context> context, Local<Value> key);
|
2650
2704
|
|
2651
2705
|
/**
|
2652
2706
|
* Returns Object.getOwnPropertyDescriptor as per ES5 section 15.2.3.3.
|
2653
2707
|
*/
|
2654
|
-
|
2655
|
-
|
2708
|
+
V8_DEPRECATED("Use maybe version",
|
2709
|
+
Local<Value> GetOwnPropertyDescriptor(Local<String> key));
|
2656
2710
|
V8_WARN_UNUSED_RESULT MaybeLocal<Value> GetOwnPropertyDescriptor(
|
2657
2711
|
Local<Context> context, Local<String> key);
|
2658
2712
|
|
2659
|
-
V8_DEPRECATE_SOON("Use maybe version", bool Has(
|
2713
|
+
V8_DEPRECATE_SOON("Use maybe version", bool Has(Local<Value> key));
|
2660
2714
|
V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
|
2661
2715
|
Local<Value> key);
|
2662
2716
|
|
2663
|
-
V8_DEPRECATE_SOON("Use maybe version", bool Delete(
|
2717
|
+
V8_DEPRECATE_SOON("Use maybe version", bool Delete(Local<Value> key));
|
2664
2718
|
// TODO(dcarney): mark V8_WARN_UNUSED_RESULT
|
2665
2719
|
Maybe<bool> Delete(Local<Context> context, Local<Value> key);
|
2666
2720
|
|
2667
|
-
|
2721
|
+
V8_DEPRECATED("Use maybe version", bool Has(uint32_t index));
|
2668
2722
|
V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
|
2669
2723
|
|
2670
|
-
|
2724
|
+
V8_DEPRECATED("Use maybe version", bool Delete(uint32_t index));
|
2671
2725
|
// TODO(dcarney): mark V8_WARN_UNUSED_RESULT
|
2672
2726
|
Maybe<bool> Delete(Local<Context> context, uint32_t index);
|
2673
2727
|
|
2674
|
-
|
2675
|
-
|
2676
|
-
|
2677
|
-
|
2678
|
-
|
2679
|
-
|
2680
|
-
|
2681
|
-
|
2682
|
-
|
2683
|
-
|
2684
|
-
|
2685
|
-
|
2686
|
-
|
2687
|
-
|
2728
|
+
V8_DEPRECATED("Use maybe version",
|
2729
|
+
bool SetAccessor(Local<String> name,
|
2730
|
+
AccessorGetterCallback getter,
|
2731
|
+
AccessorSetterCallback setter = 0,
|
2732
|
+
Local<Value> data = Local<Value>(),
|
2733
|
+
AccessControl settings = DEFAULT,
|
2734
|
+
PropertyAttribute attribute = None));
|
2735
|
+
V8_DEPRECATED("Use maybe version",
|
2736
|
+
bool SetAccessor(Local<Name> name,
|
2737
|
+
AccessorNameGetterCallback getter,
|
2738
|
+
AccessorNameSetterCallback setter = 0,
|
2739
|
+
Local<Value> data = Local<Value>(),
|
2740
|
+
AccessControl settings = DEFAULT,
|
2741
|
+
PropertyAttribute attribute = None));
|
2688
2742
|
// TODO(dcarney): mark V8_WARN_UNUSED_RESULT
|
2689
2743
|
Maybe<bool> SetAccessor(Local<Context> context, Local<Name> name,
|
2690
2744
|
AccessorNameGetterCallback getter,
|
@@ -2693,12 +2747,23 @@ class V8_EXPORT Object : public Value {
|
|
2693
2747
|
AccessControl settings = DEFAULT,
|
2694
2748
|
PropertyAttribute attribute = None);
|
2695
2749
|
|
2696
|
-
void SetAccessorProperty(Local<Name> name,
|
2697
|
-
Local<Function>
|
2698
|
-
Handle<Function> setter = Handle<Function>(),
|
2750
|
+
void SetAccessorProperty(Local<Name> name, Local<Function> getter,
|
2751
|
+
Local<Function> setter = Local<Function>(),
|
2699
2752
|
PropertyAttribute attribute = None,
|
2700
2753
|
AccessControl settings = DEFAULT);
|
2701
2754
|
|
2755
|
+
/**
|
2756
|
+
* Functionality for private properties.
|
2757
|
+
* This is an experimental feature, use at your own risk.
|
2758
|
+
* Note: Private properties are not inherited. Do not rely on this, since it
|
2759
|
+
* may change.
|
2760
|
+
*/
|
2761
|
+
Maybe<bool> HasPrivate(Local<Context> context, Local<Private> key);
|
2762
|
+
Maybe<bool> SetPrivate(Local<Context> context, Local<Private> key,
|
2763
|
+
Local<Value> value);
|
2764
|
+
Maybe<bool> DeletePrivate(Local<Context> context, Local<Private> key);
|
2765
|
+
MaybeLocal<Value> GetPrivate(Local<Context> context, Local<Private> key);
|
2766
|
+
|
2702
2767
|
/**
|
2703
2768
|
* Returns an array containing the names of the enumerable properties
|
2704
2769
|
* of this object, including properties from prototype objects. The
|
@@ -2730,8 +2795,7 @@ class V8_EXPORT Object : public Value {
|
|
2730
2795
|
* be skipped by __proto__ and it does not consult the security
|
2731
2796
|
* handler.
|
2732
2797
|
*/
|
2733
|
-
|
2734
|
-
bool SetPrototype(Handle<Value> prototype));
|
2798
|
+
V8_DEPRECATED("Use maybe version", bool SetPrototype(Local<Value> prototype));
|
2735
2799
|
V8_WARN_UNUSED_RESULT Maybe<bool> SetPrototype(Local<Context> context,
|
2736
2800
|
Local<Value> prototype);
|
2737
2801
|
|
@@ -2739,14 +2803,14 @@ class V8_EXPORT Object : public Value {
|
|
2739
2803
|
* Finds an instance of the given function template in the prototype
|
2740
2804
|
* chain.
|
2741
2805
|
*/
|
2742
|
-
Local<Object> FindInstanceInPrototypeChain(
|
2806
|
+
Local<Object> FindInstanceInPrototypeChain(Local<FunctionTemplate> tmpl);
|
2743
2807
|
|
2744
2808
|
/**
|
2745
2809
|
* Call builtin Object.prototype.toString on this object.
|
2746
2810
|
* This is different from Value::ToString() that may call
|
2747
2811
|
* user-defined toString function. This one does not.
|
2748
2812
|
*/
|
2749
|
-
|
2813
|
+
V8_DEPRECATED("Use maybe version", Local<String> ObjectProtoToString());
|
2750
2814
|
V8_WARN_UNUSED_RESULT MaybeLocal<String> ObjectProtoToString(
|
2751
2815
|
Local<Context> context);
|
2752
2816
|
|
@@ -2768,7 +2832,7 @@ class V8_EXPORT Object : public Value {
|
|
2768
2832
|
V8_INLINE Local<Value> GetInternalField(int index);
|
2769
2833
|
|
2770
2834
|
/** Sets the value in an internal field. */
|
2771
|
-
void SetInternalField(int index,
|
2835
|
+
void SetInternalField(int index, Local<Value> value);
|
2772
2836
|
|
2773
2837
|
/**
|
2774
2838
|
* Gets a 2-byte-aligned native pointer from an internal field. This field
|
@@ -2791,12 +2855,11 @@ class V8_EXPORT Object : public Value {
|
|
2791
2855
|
void SetAlignedPointerInInternalField(int index, void* value);
|
2792
2856
|
|
2793
2857
|
// Testers for local properties.
|
2794
|
-
|
2795
|
-
bool HasOwnProperty(Handle<String> key));
|
2858
|
+
V8_DEPRECATED("Use maybe version", bool HasOwnProperty(Local<String> key));
|
2796
2859
|
V8_WARN_UNUSED_RESULT Maybe<bool> HasOwnProperty(Local<Context> context,
|
2797
2860
|
Local<Name> key);
|
2798
2861
|
V8_DEPRECATE_SOON("Use maybe version",
|
2799
|
-
bool HasRealNamedProperty(
|
2862
|
+
bool HasRealNamedProperty(Local<String> key));
|
2800
2863
|
V8_WARN_UNUSED_RESULT Maybe<bool> HasRealNamedProperty(Local<Context> context,
|
2801
2864
|
Local<Name> key);
|
2802
2865
|
V8_DEPRECATE_SOON("Use maybe version",
|
@@ -2804,7 +2867,7 @@ class V8_EXPORT Object : public Value {
|
|
2804
2867
|
V8_WARN_UNUSED_RESULT Maybe<bool> HasRealIndexedProperty(
|
2805
2868
|
Local<Context> context, uint32_t index);
|
2806
2869
|
V8_DEPRECATE_SOON("Use maybe version",
|
2807
|
-
bool HasRealNamedCallbackProperty(
|
2870
|
+
bool HasRealNamedCallbackProperty(Local<String> key));
|
2808
2871
|
V8_WARN_UNUSED_RESULT Maybe<bool> HasRealNamedCallbackProperty(
|
2809
2872
|
Local<Context> context, Local<Name> key);
|
2810
2873
|
|
@@ -2812,9 +2875,9 @@ class V8_EXPORT Object : public Value {
|
|
2812
2875
|
* If result.IsEmpty() no real property was located in the prototype chain.
|
2813
2876
|
* This means interceptors in the prototype chain are not called.
|
2814
2877
|
*/
|
2815
|
-
|
2878
|
+
V8_DEPRECATED(
|
2816
2879
|
"Use maybe version",
|
2817
|
-
Local<Value> GetRealNamedPropertyInPrototypeChain(
|
2880
|
+
Local<Value> GetRealNamedPropertyInPrototypeChain(Local<String> key));
|
2818
2881
|
V8_WARN_UNUSED_RESULT MaybeLocal<Value> GetRealNamedPropertyInPrototypeChain(
|
2819
2882
|
Local<Context> context, Local<Name> key);
|
2820
2883
|
|
@@ -2823,10 +2886,10 @@ class V8_EXPORT Object : public Value {
|
|
2823
2886
|
* which can be None or any combination of ReadOnly, DontEnum and DontDelete.
|
2824
2887
|
* Interceptors in the prototype chain are not called.
|
2825
2888
|
*/
|
2826
|
-
|
2889
|
+
V8_DEPRECATED(
|
2827
2890
|
"Use maybe version",
|
2828
2891
|
Maybe<PropertyAttribute> GetRealNamedPropertyAttributesInPrototypeChain(
|
2829
|
-
|
2892
|
+
Local<String> key));
|
2830
2893
|
V8_WARN_UNUSED_RESULT Maybe<PropertyAttribute>
|
2831
2894
|
GetRealNamedPropertyAttributesInPrototypeChain(Local<Context> context,
|
2832
2895
|
Local<Name> key);
|
@@ -2836,8 +2899,8 @@ class V8_EXPORT Object : public Value {
|
|
2836
2899
|
* in the prototype chain.
|
2837
2900
|
* This means interceptors in the prototype chain are not called.
|
2838
2901
|
*/
|
2839
|
-
|
2840
|
-
|
2902
|
+
V8_DEPRECATED("Use maybe version",
|
2903
|
+
Local<Value> GetRealNamedProperty(Local<String> key));
|
2841
2904
|
V8_WARN_UNUSED_RESULT MaybeLocal<Value> GetRealNamedProperty(
|
2842
2905
|
Local<Context> context, Local<Name> key);
|
2843
2906
|
|
@@ -2846,9 +2909,9 @@ class V8_EXPORT Object : public Value {
|
|
2846
2909
|
* None or any combination of ReadOnly, DontEnum and DontDelete.
|
2847
2910
|
* Interceptors in the prototype chain are not called.
|
2848
2911
|
*/
|
2849
|
-
|
2850
|
-
|
2851
|
-
|
2912
|
+
V8_DEPRECATED("Use maybe version",
|
2913
|
+
Maybe<PropertyAttribute> GetRealNamedPropertyAttributes(
|
2914
|
+
Local<String> key));
|
2852
2915
|
V8_WARN_UNUSED_RESULT Maybe<PropertyAttribute> GetRealNamedPropertyAttributes(
|
2853
2916
|
Local<Context> context, Local<Name> key);
|
2854
2917
|
|
@@ -2867,16 +2930,12 @@ class V8_EXPORT Object : public Value {
|
|
2867
2930
|
*/
|
2868
2931
|
int GetIdentityHash();
|
2869
2932
|
|
2870
|
-
|
2871
|
-
|
2872
|
-
|
2873
|
-
|
2874
|
-
|
2875
|
-
|
2876
|
-
// TODO(dcarney): convert these to take a isolate and optionally bailout?
|
2877
|
-
bool SetHiddenValue(Handle<String> key, Handle<Value> value);
|
2878
|
-
Local<Value> GetHiddenValue(Handle<String> key);
|
2879
|
-
bool DeleteHiddenValue(Handle<String> key);
|
2933
|
+
V8_DEPRECATED("Use v8::Object::SetPrivate instead.",
|
2934
|
+
bool SetHiddenValue(Local<String> key, Local<Value> value));
|
2935
|
+
V8_DEPRECATED("Use v8::Object::GetPrivate instead.",
|
2936
|
+
Local<Value> GetHiddenValue(Local<String> key));
|
2937
|
+
V8_DEPRECATED("Use v8::Object::DeletePrivate instead.",
|
2938
|
+
bool DeleteHiddenValue(Local<String> key));
|
2880
2939
|
|
2881
2940
|
/**
|
2882
2941
|
* Clone this object with a fast but shallow copy. Values will point
|
@@ -2901,22 +2960,21 @@ class V8_EXPORT Object : public Value {
|
|
2901
2960
|
* Call an Object as a function if a callback is set by the
|
2902
2961
|
* ObjectTemplate::SetCallAsFunctionHandler method.
|
2903
2962
|
*/
|
2904
|
-
|
2905
|
-
|
2906
|
-
|
2963
|
+
V8_DEPRECATED("Use maybe version",
|
2964
|
+
Local<Value> CallAsFunction(Local<Value> recv, int argc,
|
2965
|
+
Local<Value> argv[]));
|
2907
2966
|
V8_WARN_UNUSED_RESULT MaybeLocal<Value> CallAsFunction(Local<Context> context,
|
2908
|
-
|
2967
|
+
Local<Value> recv,
|
2909
2968
|
int argc,
|
2910
|
-
|
2969
|
+
Local<Value> argv[]);
|
2911
2970
|
|
2912
2971
|
/**
|
2913
2972
|
* Call an Object as a constructor if a callback is set by the
|
2914
2973
|
* ObjectTemplate::SetCallAsFunctionHandler method.
|
2915
2974
|
* Note: This method behaves like the Function::NewInstance method.
|
2916
2975
|
*/
|
2917
|
-
|
2918
|
-
|
2919
|
-
Handle<Value> argv[]));
|
2976
|
+
V8_DEPRECATED("Use maybe version",
|
2977
|
+
Local<Value> CallAsConstructor(int argc, Local<Value> argv[]));
|
2920
2978
|
V8_WARN_UNUSED_RESULT MaybeLocal<Value> CallAsConstructor(
|
2921
2979
|
Local<Context> context, int argc, Local<Value> argv[]);
|
2922
2980
|
|
@@ -2948,10 +3006,11 @@ class V8_EXPORT Array : public Object {
|
|
2948
3006
|
* Clones an element at index |index|. Returns an empty
|
2949
3007
|
* handle if cloning fails (for any reason).
|
2950
3008
|
*/
|
2951
|
-
|
2952
|
-
|
2953
|
-
|
2954
|
-
|
3009
|
+
V8_DEPRECATED("Cloning is not supported.",
|
3010
|
+
Local<Object> CloneElementAt(uint32_t index));
|
3011
|
+
V8_DEPRECATED("Cloning is not supported.",
|
3012
|
+
MaybeLocal<Object> CloneElementAt(Local<Context> context,
|
3013
|
+
uint32_t index));
|
2955
3014
|
|
2956
3015
|
/**
|
2957
3016
|
* Creates a JavaScript array with the given length. If the length
|
@@ -2994,14 +3053,6 @@ class V8_EXPORT Map : public Object {
|
|
2994
3053
|
*/
|
2995
3054
|
static Local<Map> New(Isolate* isolate);
|
2996
3055
|
|
2997
|
-
/**
|
2998
|
-
* Creates a new Map containing the elements of array, which must be formatted
|
2999
|
-
* in the same manner as the array returned from AsArray().
|
3000
|
-
* Guaranteed to be side-effect free if the array contains no holes.
|
3001
|
-
*/
|
3002
|
-
static V8_WARN_UNUSED_RESULT MaybeLocal<Map> FromArray(Local<Context> context,
|
3003
|
-
Local<Array> array);
|
3004
|
-
|
3005
3056
|
V8_INLINE static Map* Cast(Value* obj);
|
3006
3057
|
|
3007
3058
|
private:
|
@@ -3034,13 +3085,6 @@ class V8_EXPORT Set : public Object {
|
|
3034
3085
|
*/
|
3035
3086
|
static Local<Set> New(Isolate* isolate);
|
3036
3087
|
|
3037
|
-
/**
|
3038
|
-
* Creates a new Set containing the items in array.
|
3039
|
-
* Guaranteed to be side-effect free if the array contains no holes.
|
3040
|
-
*/
|
3041
|
-
static V8_WARN_UNUSED_RESULT MaybeLocal<Set> FromArray(Local<Context> context,
|
3042
|
-
Local<Array> array);
|
3043
|
-
|
3044
3088
|
V8_INLINE static Set* Cast(Value* obj);
|
3045
3089
|
|
3046
3090
|
private:
|
@@ -3056,7 +3100,7 @@ class ReturnValue {
|
|
3056
3100
|
: value_(that.value_) {
|
3057
3101
|
TYPE_CHECK(T, S);
|
3058
3102
|
}
|
3059
|
-
//
|
3103
|
+
// Local setters
|
3060
3104
|
template <typename S>
|
3061
3105
|
V8_INLINE V8_DEPRECATE_SOON("Use Global<> instead",
|
3062
3106
|
void Set(const Persistent<S>& handle));
|
@@ -3104,7 +3148,8 @@ class FunctionCallbackInfo {
|
|
3104
3148
|
public:
|
3105
3149
|
V8_INLINE int Length() const;
|
3106
3150
|
V8_INLINE Local<Value> operator[](int i) const;
|
3107
|
-
V8_INLINE
|
3151
|
+
V8_INLINE V8_DEPRECATED("Use Data() to explicitly pass Callee instead",
|
3152
|
+
Local<Function> Callee() const);
|
3108
3153
|
V8_INLINE Local<Object> This() const;
|
3109
3154
|
V8_INLINE Local<Object> Holder() const;
|
3110
3155
|
V8_INLINE bool IsConstructCall() const;
|
@@ -3148,19 +3193,21 @@ class PropertyCallbackInfo {
|
|
3148
3193
|
V8_INLINE Local<Object> This() const;
|
3149
3194
|
V8_INLINE Local<Object> Holder() const;
|
3150
3195
|
V8_INLINE ReturnValue<T> GetReturnValue() const;
|
3196
|
+
V8_INLINE bool ShouldThrowOnError() const;
|
3151
3197
|
// This shouldn't be public, but the arm compiler needs it.
|
3152
|
-
static const int kArgsLength =
|
3198
|
+
static const int kArgsLength = 7;
|
3153
3199
|
|
3154
3200
|
protected:
|
3155
3201
|
friend class MacroAssembler;
|
3156
3202
|
friend class internal::PropertyCallbackArguments;
|
3157
3203
|
friend class internal::CustomArguments<PropertyCallbackInfo>;
|
3158
|
-
static const int
|
3159
|
-
static const int
|
3160
|
-
static const int
|
3161
|
-
static const int
|
3162
|
-
static const int
|
3163
|
-
static const int
|
3204
|
+
static const int kShouldThrowOnErrorIndex = 0;
|
3205
|
+
static const int kHolderIndex = 1;
|
3206
|
+
static const int kIsolateIndex = 2;
|
3207
|
+
static const int kReturnValueDefaultValueIndex = 3;
|
3208
|
+
static const int kReturnValueIndex = 4;
|
3209
|
+
static const int kDataIndex = 5;
|
3210
|
+
static const int kThisIndex = 6;
|
3164
3211
|
|
3165
3212
|
V8_INLINE PropertyCallbackInfo(internal::Object** args) : args_(args) {}
|
3166
3213
|
internal::Object** args_;
|
@@ -3188,27 +3235,26 @@ class V8_EXPORT Function : public Object {
|
|
3188
3235
|
Local<Function> New(Isolate* isolate, FunctionCallback callback,
|
3189
3236
|
Local<Value> data = Local<Value>(), int length = 0));
|
3190
3237
|
|
3191
|
-
|
3192
|
-
|
3193
|
-
const);
|
3238
|
+
V8_DEPRECATED("Use maybe version",
|
3239
|
+
Local<Object> NewInstance(int argc, Local<Value> argv[]) const);
|
3194
3240
|
V8_WARN_UNUSED_RESULT MaybeLocal<Object> NewInstance(
|
3195
|
-
Local<Context> context, int argc,
|
3241
|
+
Local<Context> context, int argc, Local<Value> argv[]) const;
|
3196
3242
|
|
3197
|
-
|
3243
|
+
V8_DEPRECATED("Use maybe version", Local<Object> NewInstance() const);
|
3198
3244
|
V8_WARN_UNUSED_RESULT MaybeLocal<Object> NewInstance(
|
3199
3245
|
Local<Context> context) const {
|
3200
3246
|
return NewInstance(context, 0, nullptr);
|
3201
3247
|
}
|
3202
3248
|
|
3203
3249
|
V8_DEPRECATE_SOON("Use maybe version",
|
3204
|
-
Local<Value> Call(
|
3205
|
-
|
3250
|
+
Local<Value> Call(Local<Value> recv, int argc,
|
3251
|
+
Local<Value> argv[]));
|
3206
3252
|
V8_WARN_UNUSED_RESULT MaybeLocal<Value> Call(Local<Context> context,
|
3207
|
-
|
3208
|
-
|
3253
|
+
Local<Value> recv, int argc,
|
3254
|
+
Local<Value> argv[]);
|
3209
3255
|
|
3210
|
-
void SetName(
|
3211
|
-
|
3256
|
+
void SetName(Local<String> name);
|
3257
|
+
Local<Value> GetName() const;
|
3212
3258
|
|
3213
3259
|
/**
|
3214
3260
|
* Name inferred from variable or property assignment of this function.
|
@@ -3216,13 +3262,19 @@ class V8_EXPORT Function : public Object {
|
|
3216
3262
|
* in an OO style, where many functions are anonymous but are assigned
|
3217
3263
|
* to object properties.
|
3218
3264
|
*/
|
3219
|
-
|
3265
|
+
Local<Value> GetInferredName() const;
|
3266
|
+
|
3267
|
+
/**
|
3268
|
+
* displayName if it is set, otherwise name if it is configured, otherwise
|
3269
|
+
* function name, otherwise inferred name.
|
3270
|
+
*/
|
3271
|
+
Local<Value> GetDebugName() const;
|
3220
3272
|
|
3221
3273
|
/**
|
3222
3274
|
* User-defined name assigned to the "displayName" property of this function.
|
3223
3275
|
* Used to facilitate debugging and profiling of JavaScript code.
|
3224
3276
|
*/
|
3225
|
-
|
3277
|
+
Local<Value> GetDisplayName() const;
|
3226
3278
|
|
3227
3279
|
/**
|
3228
3280
|
* Returns zero based line number of function body and
|
@@ -3286,13 +3338,13 @@ class V8_EXPORT Promise : public Object {
|
|
3286
3338
|
* Resolve/reject the associated promise with a given value.
|
3287
3339
|
* Ignored if the promise is no longer pending.
|
3288
3340
|
*/
|
3289
|
-
V8_DEPRECATE_SOON("Use maybe version", void Resolve(
|
3341
|
+
V8_DEPRECATE_SOON("Use maybe version", void Resolve(Local<Value> value));
|
3290
3342
|
// TODO(dcarney): mark V8_WARN_UNUSED_RESULT
|
3291
|
-
Maybe<bool> Resolve(Local<Context> context,
|
3343
|
+
Maybe<bool> Resolve(Local<Context> context, Local<Value> value);
|
3292
3344
|
|
3293
|
-
V8_DEPRECATE_SOON("Use maybe version", void Reject(
|
3345
|
+
V8_DEPRECATE_SOON("Use maybe version", void Reject(Local<Value> value));
|
3294
3346
|
// TODO(dcarney): mark V8_WARN_UNUSED_RESULT
|
3295
|
-
Maybe<bool> Reject(Local<Context> context,
|
3347
|
+
Maybe<bool> Reject(Local<Context> context, Local<Value> value);
|
3296
3348
|
|
3297
3349
|
V8_INLINE static Resolver* Cast(Value* obj);
|
3298
3350
|
|
@@ -3307,20 +3359,21 @@ class V8_EXPORT Promise : public Object {
|
|
3307
3359
|
* an argument. If the promise is already resolved/rejected, the handler is
|
3308
3360
|
* invoked at the end of turn.
|
3309
3361
|
*/
|
3310
|
-
|
3311
|
-
|
3312
|
-
|
3313
|
-
|
3362
|
+
V8_DEPRECATED("Use maybe version of Then",
|
3363
|
+
Local<Promise> Chain(Local<Function> handler));
|
3364
|
+
V8_DEPRECATED("Use Then",
|
3365
|
+
V8_WARN_UNUSED_RESULT MaybeLocal<Promise> Chain(
|
3366
|
+
Local<Context> context, Local<Function> handler));
|
3314
3367
|
|
3315
|
-
|
3316
|
-
|
3368
|
+
V8_DEPRECATED("Use maybe version",
|
3369
|
+
Local<Promise> Catch(Local<Function> handler));
|
3317
3370
|
V8_WARN_UNUSED_RESULT MaybeLocal<Promise> Catch(Local<Context> context,
|
3318
|
-
|
3371
|
+
Local<Function> handler);
|
3319
3372
|
|
3320
|
-
|
3321
|
-
|
3373
|
+
V8_DEPRECATED("Use maybe version",
|
3374
|
+
Local<Promise> Then(Local<Function> handler));
|
3322
3375
|
V8_WARN_UNUSED_RESULT MaybeLocal<Promise> Then(Local<Context> context,
|
3323
|
-
|
3376
|
+
Local<Function> handler);
|
3324
3377
|
|
3325
3378
|
/**
|
3326
3379
|
* Returns true if the promise has at least one derived promise, and
|
@@ -3336,6 +3389,32 @@ class V8_EXPORT Promise : public Object {
|
|
3336
3389
|
};
|
3337
3390
|
|
3338
3391
|
|
3392
|
+
/**
|
3393
|
+
* An instance of the built-in Proxy constructor (ECMA-262, 6th Edition,
|
3394
|
+
* 26.2.1).
|
3395
|
+
*/
|
3396
|
+
class V8_EXPORT Proxy : public Object {
|
3397
|
+
public:
|
3398
|
+
Local<Object> GetTarget();
|
3399
|
+
Local<Value> GetHandler();
|
3400
|
+
bool IsRevoked();
|
3401
|
+
void Revoke();
|
3402
|
+
|
3403
|
+
/**
|
3404
|
+
* Creates a new empty Map.
|
3405
|
+
*/
|
3406
|
+
static MaybeLocal<Proxy> New(Local<Context> context,
|
3407
|
+
Local<Object> local_target,
|
3408
|
+
Local<Object> local_handler);
|
3409
|
+
|
3410
|
+
V8_INLINE static Proxy* Cast(Value* obj);
|
3411
|
+
|
3412
|
+
private:
|
3413
|
+
Proxy();
|
3414
|
+
static void CheckCast(Value* obj);
|
3415
|
+
};
|
3416
|
+
|
3417
|
+
|
3339
3418
|
#ifndef V8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT
|
3340
3419
|
// The number of required internal fields can be defined by embedder.
|
3341
3420
|
#define V8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT 2
|
@@ -3562,9 +3641,9 @@ class V8_EXPORT TypedArray : public ArrayBufferView {
|
|
3562
3641
|
*/
|
3563
3642
|
class V8_EXPORT Uint8Array : public TypedArray {
|
3564
3643
|
public:
|
3565
|
-
static Local<Uint8Array> New(
|
3644
|
+
static Local<Uint8Array> New(Local<ArrayBuffer> array_buffer,
|
3566
3645
|
size_t byte_offset, size_t length);
|
3567
|
-
static Local<Uint8Array> New(
|
3646
|
+
static Local<Uint8Array> New(Local<SharedArrayBuffer> shared_array_buffer,
|
3568
3647
|
size_t byte_offset, size_t length);
|
3569
3648
|
V8_INLINE static Uint8Array* Cast(Value* obj);
|
3570
3649
|
|
@@ -3580,10 +3659,10 @@ class V8_EXPORT Uint8Array : public TypedArray {
|
|
3580
3659
|
*/
|
3581
3660
|
class V8_EXPORT Uint8ClampedArray : public TypedArray {
|
3582
3661
|
public:
|
3583
|
-
static Local<Uint8ClampedArray> New(
|
3584
|
-
|
3662
|
+
static Local<Uint8ClampedArray> New(Local<ArrayBuffer> array_buffer,
|
3663
|
+
size_t byte_offset, size_t length);
|
3585
3664
|
static Local<Uint8ClampedArray> New(
|
3586
|
-
|
3665
|
+
Local<SharedArrayBuffer> shared_array_buffer, size_t byte_offset,
|
3587
3666
|
size_t length);
|
3588
3667
|
V8_INLINE static Uint8ClampedArray* Cast(Value* obj);
|
3589
3668
|
|
@@ -3598,9 +3677,9 @@ class V8_EXPORT Uint8ClampedArray : public TypedArray {
|
|
3598
3677
|
*/
|
3599
3678
|
class V8_EXPORT Int8Array : public TypedArray {
|
3600
3679
|
public:
|
3601
|
-
static Local<Int8Array> New(
|
3602
|
-
|
3603
|
-
static Local<Int8Array> New(
|
3680
|
+
static Local<Int8Array> New(Local<ArrayBuffer> array_buffer,
|
3681
|
+
size_t byte_offset, size_t length);
|
3682
|
+
static Local<Int8Array> New(Local<SharedArrayBuffer> shared_array_buffer,
|
3604
3683
|
size_t byte_offset, size_t length);
|
3605
3684
|
V8_INLINE static Int8Array* Cast(Value* obj);
|
3606
3685
|
|
@@ -3616,9 +3695,9 @@ class V8_EXPORT Int8Array : public TypedArray {
|
|
3616
3695
|
*/
|
3617
3696
|
class V8_EXPORT Uint16Array : public TypedArray {
|
3618
3697
|
public:
|
3619
|
-
static Local<Uint16Array> New(
|
3620
|
-
|
3621
|
-
static Local<Uint16Array> New(
|
3698
|
+
static Local<Uint16Array> New(Local<ArrayBuffer> array_buffer,
|
3699
|
+
size_t byte_offset, size_t length);
|
3700
|
+
static Local<Uint16Array> New(Local<SharedArrayBuffer> shared_array_buffer,
|
3622
3701
|
size_t byte_offset, size_t length);
|
3623
3702
|
V8_INLINE static Uint16Array* Cast(Value* obj);
|
3624
3703
|
|
@@ -3634,9 +3713,9 @@ class V8_EXPORT Uint16Array : public TypedArray {
|
|
3634
3713
|
*/
|
3635
3714
|
class V8_EXPORT Int16Array : public TypedArray {
|
3636
3715
|
public:
|
3637
|
-
static Local<Int16Array> New(
|
3716
|
+
static Local<Int16Array> New(Local<ArrayBuffer> array_buffer,
|
3638
3717
|
size_t byte_offset, size_t length);
|
3639
|
-
static Local<Int16Array> New(
|
3718
|
+
static Local<Int16Array> New(Local<SharedArrayBuffer> shared_array_buffer,
|
3640
3719
|
size_t byte_offset, size_t length);
|
3641
3720
|
V8_INLINE static Int16Array* Cast(Value* obj);
|
3642
3721
|
|
@@ -3652,9 +3731,9 @@ class V8_EXPORT Int16Array : public TypedArray {
|
|
3652
3731
|
*/
|
3653
3732
|
class V8_EXPORT Uint32Array : public TypedArray {
|
3654
3733
|
public:
|
3655
|
-
static Local<Uint32Array> New(
|
3656
|
-
|
3657
|
-
static Local<Uint32Array> New(
|
3734
|
+
static Local<Uint32Array> New(Local<ArrayBuffer> array_buffer,
|
3735
|
+
size_t byte_offset, size_t length);
|
3736
|
+
static Local<Uint32Array> New(Local<SharedArrayBuffer> shared_array_buffer,
|
3658
3737
|
size_t byte_offset, size_t length);
|
3659
3738
|
V8_INLINE static Uint32Array* Cast(Value* obj);
|
3660
3739
|
|
@@ -3670,9 +3749,9 @@ class V8_EXPORT Uint32Array : public TypedArray {
|
|
3670
3749
|
*/
|
3671
3750
|
class V8_EXPORT Int32Array : public TypedArray {
|
3672
3751
|
public:
|
3673
|
-
static Local<Int32Array> New(
|
3752
|
+
static Local<Int32Array> New(Local<ArrayBuffer> array_buffer,
|
3674
3753
|
size_t byte_offset, size_t length);
|
3675
|
-
static Local<Int32Array> New(
|
3754
|
+
static Local<Int32Array> New(Local<SharedArrayBuffer> shared_array_buffer,
|
3676
3755
|
size_t byte_offset, size_t length);
|
3677
3756
|
V8_INLINE static Int32Array* Cast(Value* obj);
|
3678
3757
|
|
@@ -3688,9 +3767,9 @@ class V8_EXPORT Int32Array : public TypedArray {
|
|
3688
3767
|
*/
|
3689
3768
|
class V8_EXPORT Float32Array : public TypedArray {
|
3690
3769
|
public:
|
3691
|
-
static Local<Float32Array> New(
|
3692
|
-
|
3693
|
-
static Local<Float32Array> New(
|
3770
|
+
static Local<Float32Array> New(Local<ArrayBuffer> array_buffer,
|
3771
|
+
size_t byte_offset, size_t length);
|
3772
|
+
static Local<Float32Array> New(Local<SharedArrayBuffer> shared_array_buffer,
|
3694
3773
|
size_t byte_offset, size_t length);
|
3695
3774
|
V8_INLINE static Float32Array* Cast(Value* obj);
|
3696
3775
|
|
@@ -3706,9 +3785,9 @@ class V8_EXPORT Float32Array : public TypedArray {
|
|
3706
3785
|
*/
|
3707
3786
|
class V8_EXPORT Float64Array : public TypedArray {
|
3708
3787
|
public:
|
3709
|
-
static Local<Float64Array> New(
|
3710
|
-
|
3711
|
-
static Local<Float64Array> New(
|
3788
|
+
static Local<Float64Array> New(Local<ArrayBuffer> array_buffer,
|
3789
|
+
size_t byte_offset, size_t length);
|
3790
|
+
static Local<Float64Array> New(Local<SharedArrayBuffer> shared_array_buffer,
|
3712
3791
|
size_t byte_offset, size_t length);
|
3713
3792
|
V8_INLINE static Float64Array* Cast(Value* obj);
|
3714
3793
|
|
@@ -3724,9 +3803,9 @@ class V8_EXPORT Float64Array : public TypedArray {
|
|
3724
3803
|
*/
|
3725
3804
|
class V8_EXPORT DataView : public ArrayBufferView {
|
3726
3805
|
public:
|
3727
|
-
static Local<DataView> New(
|
3806
|
+
static Local<DataView> New(Local<ArrayBuffer> array_buffer,
|
3728
3807
|
size_t byte_offset, size_t length);
|
3729
|
-
static Local<DataView> New(
|
3808
|
+
static Local<DataView> New(Local<SharedArrayBuffer> shared_array_buffer,
|
3730
3809
|
size_t byte_offset, size_t length);
|
3731
3810
|
V8_INLINE static DataView* Cast(Value* obj);
|
3732
3811
|
|
@@ -3893,7 +3972,8 @@ class V8_EXPORT NumberObject : public Object {
|
|
3893
3972
|
*/
|
3894
3973
|
class V8_EXPORT BooleanObject : public Object {
|
3895
3974
|
public:
|
3896
|
-
static Local<Value> New(bool value);
|
3975
|
+
static Local<Value> New(Isolate* isolate, bool value);
|
3976
|
+
V8_DEPRECATED("Pass an isolate", static Local<Value> New(bool value));
|
3897
3977
|
|
3898
3978
|
bool ValueOf() const;
|
3899
3979
|
|
@@ -3909,7 +3989,7 @@ class V8_EXPORT BooleanObject : public Object {
|
|
3909
3989
|
*/
|
3910
3990
|
class V8_EXPORT StringObject : public Object {
|
3911
3991
|
public:
|
3912
|
-
static Local<Value> New(
|
3992
|
+
static Local<Value> New(Local<String> value);
|
3913
3993
|
|
3914
3994
|
Local<String> ValueOf() const;
|
3915
3995
|
|
@@ -3927,7 +4007,7 @@ class V8_EXPORT StringObject : public Object {
|
|
3927
4007
|
*/
|
3928
4008
|
class V8_EXPORT SymbolObject : public Object {
|
3929
4009
|
public:
|
3930
|
-
static Local<Value> New(Isolate* isolate,
|
4010
|
+
static Local<Value> New(Isolate* isolate, Local<Symbol> value);
|
3931
4011
|
|
3932
4012
|
Local<Symbol> ValueOf() const;
|
3933
4013
|
|
@@ -3951,7 +4031,9 @@ class V8_EXPORT RegExp : public Object {
|
|
3951
4031
|
kNone = 0,
|
3952
4032
|
kGlobal = 1,
|
3953
4033
|
kIgnoreCase = 2,
|
3954
|
-
kMultiline = 4
|
4034
|
+
kMultiline = 4,
|
4035
|
+
kSticky = 8,
|
4036
|
+
kUnicode = 16
|
3955
4037
|
};
|
3956
4038
|
|
3957
4039
|
/**
|
@@ -3965,10 +4047,10 @@ class V8_EXPORT RegExp : public Object {
|
|
3965
4047
|
* is equivalent to evaluating "/foo/gm".
|
3966
4048
|
*/
|
3967
4049
|
static V8_DEPRECATE_SOON("Use maybe version",
|
3968
|
-
Local<RegExp> New(
|
4050
|
+
Local<RegExp> New(Local<String> pattern,
|
3969
4051
|
Flags flags));
|
3970
4052
|
static V8_WARN_UNUSED_RESULT MaybeLocal<RegExp> New(Local<Context> context,
|
3971
|
-
|
4053
|
+
Local<String> pattern,
|
3972
4054
|
Flags flags);
|
3973
4055
|
|
3974
4056
|
/**
|
@@ -4003,6 +4085,15 @@ class V8_EXPORT External : public Value {
|
|
4003
4085
|
};
|
4004
4086
|
|
4005
4087
|
|
4088
|
+
#define V8_INTRINSICS_LIST(F) F(ArrayProto_values, array_values_iterator)
|
4089
|
+
|
4090
|
+
enum Intrinsic {
|
4091
|
+
#define V8_DECL_INTRINSIC(name, iname) k##name,
|
4092
|
+
V8_INTRINSICS_LIST(V8_DECL_INTRINSIC)
|
4093
|
+
#undef V8_DECL_INTRINSIC
|
4094
|
+
};
|
4095
|
+
|
4096
|
+
|
4006
4097
|
// --- Templates ---
|
4007
4098
|
|
4008
4099
|
|
@@ -4012,9 +4103,9 @@ class V8_EXPORT External : public Value {
|
|
4012
4103
|
class V8_EXPORT Template : public Data {
|
4013
4104
|
public:
|
4014
4105
|
/** Adds a property to each instance created by this template.*/
|
4015
|
-
void Set(
|
4106
|
+
void Set(Local<Name> name, Local<Data> value,
|
4016
4107
|
PropertyAttribute attributes = None);
|
4017
|
-
V8_INLINE void Set(Isolate* isolate, const char* name,
|
4108
|
+
V8_INLINE void Set(Isolate* isolate, const char* name, Local<Data> value);
|
4018
4109
|
|
4019
4110
|
void SetAccessorProperty(
|
4020
4111
|
Local<Name> name,
|
@@ -4050,24 +4141,27 @@ class V8_EXPORT Template : public Data {
|
|
4050
4141
|
* defined by FunctionTemplate::HasInstance()), an implicit TypeError is
|
4051
4142
|
* thrown and no callback is invoked.
|
4052
4143
|
*/
|
4053
|
-
void SetNativeDataProperty(
|
4054
|
-
|
4055
|
-
|
4056
|
-
|
4057
|
-
|
4058
|
-
|
4059
|
-
|
4060
|
-
|
4061
|
-
|
4062
|
-
|
4063
|
-
|
4064
|
-
|
4065
|
-
|
4066
|
-
|
4067
|
-
|
4068
|
-
|
4069
|
-
|
4070
|
-
|
4144
|
+
void SetNativeDataProperty(
|
4145
|
+
Local<String> name, AccessorGetterCallback getter,
|
4146
|
+
AccessorSetterCallback setter = 0,
|
4147
|
+
// TODO(dcarney): gcc can't handle Local below
|
4148
|
+
Local<Value> data = Local<Value>(), PropertyAttribute attribute = None,
|
4149
|
+
Local<AccessorSignature> signature = Local<AccessorSignature>(),
|
4150
|
+
AccessControl settings = DEFAULT);
|
4151
|
+
void SetNativeDataProperty(
|
4152
|
+
Local<Name> name, AccessorNameGetterCallback getter,
|
4153
|
+
AccessorNameSetterCallback setter = 0,
|
4154
|
+
// TODO(dcarney): gcc can't handle Local below
|
4155
|
+
Local<Value> data = Local<Value>(), PropertyAttribute attribute = None,
|
4156
|
+
Local<AccessorSignature> signature = Local<AccessorSignature>(),
|
4157
|
+
AccessControl settings = DEFAULT);
|
4158
|
+
|
4159
|
+
/**
|
4160
|
+
* During template instantiation, sets the value with the intrinsic property
|
4161
|
+
* from the correct context.
|
4162
|
+
*/
|
4163
|
+
void SetIntrinsicDataProperty(Local<Name> name, Intrinsic intrinsic,
|
4164
|
+
PropertyAttribute attribute = None);
|
4071
4165
|
|
4072
4166
|
private:
|
4073
4167
|
Template();
|
@@ -4227,6 +4321,16 @@ enum AccessType {
|
|
4227
4321
|
};
|
4228
4322
|
|
4229
4323
|
|
4324
|
+
/**
|
4325
|
+
* Returns true if the given context should be allowed to access the given
|
4326
|
+
* object.
|
4327
|
+
*/
|
4328
|
+
typedef bool (*AccessCheckCallback)(Local<Context> accessing_context,
|
4329
|
+
Local<Object> accessed_object,
|
4330
|
+
Local<Value> data);
|
4331
|
+
typedef bool (*DeprecatedAccessCheckCallback)(Local<Context> accessing_context,
|
4332
|
+
Local<Object> accessed_object);
|
4333
|
+
|
4230
4334
|
/**
|
4231
4335
|
* Returns true if cross-context access should be allowed to the named
|
4232
4336
|
* property with the given key on the host object.
|
@@ -4346,11 +4450,19 @@ class V8_EXPORT FunctionTemplate : public Template {
|
|
4346
4450
|
public:
|
4347
4451
|
/** Creates a function template.*/
|
4348
4452
|
static Local<FunctionTemplate> New(
|
4349
|
-
Isolate* isolate,
|
4350
|
-
|
4351
|
-
|
4352
|
-
|
4353
|
-
|
4453
|
+
Isolate* isolate, FunctionCallback callback = 0,
|
4454
|
+
Local<Value> data = Local<Value>(),
|
4455
|
+
Local<Signature> signature = Local<Signature>(), int length = 0);
|
4456
|
+
|
4457
|
+
/**
|
4458
|
+
* Creates a function template with a fast handler. If a fast handler is set,
|
4459
|
+
* the callback cannot be null.
|
4460
|
+
*/
|
4461
|
+
static Local<FunctionTemplate> NewWithFastHandler(
|
4462
|
+
Isolate* isolate, FunctionCallback callback,
|
4463
|
+
experimental::FastAccessorBuilder* fast_handler = nullptr,
|
4464
|
+
Local<Value> data = Local<Value>(),
|
4465
|
+
Local<Signature> signature = Local<Signature>(), int length = 0);
|
4354
4466
|
|
4355
4467
|
/** Returns the unique function instance in the current execution context.*/
|
4356
4468
|
V8_DEPRECATE_SOON("Use maybe version", Local<Function> GetFunction());
|
@@ -4362,8 +4474,9 @@ class V8_EXPORT FunctionTemplate : public Template {
|
|
4362
4474
|
* callback is called whenever the function created from this
|
4363
4475
|
* FunctionTemplate is called.
|
4364
4476
|
*/
|
4365
|
-
void SetCallHandler(
|
4366
|
-
|
4477
|
+
void SetCallHandler(
|
4478
|
+
FunctionCallback callback, Local<Value> data = Local<Value>(),
|
4479
|
+
experimental::FastAccessorBuilder* fast_handler = nullptr);
|
4367
4480
|
|
4368
4481
|
/** Set the predefined length property for the FunctionTemplate. */
|
4369
4482
|
void SetLength(int length);
|
@@ -4372,7 +4485,7 @@ class V8_EXPORT FunctionTemplate : public Template {
|
|
4372
4485
|
Local<ObjectTemplate> InstanceTemplate();
|
4373
4486
|
|
4374
4487
|
/** Causes the function template to inherit from a parent function template.*/
|
4375
|
-
void Inherit(
|
4488
|
+
void Inherit(Local<FunctionTemplate> parent);
|
4376
4489
|
|
4377
4490
|
/**
|
4378
4491
|
* A PrototypeTemplate is the template used to create the prototype object
|
@@ -4385,7 +4498,7 @@ class V8_EXPORT FunctionTemplate : public Template {
|
|
4385
4498
|
* printing objects created with the function created from the
|
4386
4499
|
* FunctionTemplate as its constructor.
|
4387
4500
|
*/
|
4388
|
-
void SetClassName(
|
4501
|
+
void SetClassName(Local<String> name);
|
4389
4502
|
|
4390
4503
|
|
4391
4504
|
/**
|
@@ -4424,7 +4537,7 @@ class V8_EXPORT FunctionTemplate : public Template {
|
|
4424
4537
|
* Returns true if the given object is an instance of this function
|
4425
4538
|
* template.
|
4426
4539
|
*/
|
4427
|
-
bool HasInstance(
|
4540
|
+
bool HasInstance(Local<Value> object);
|
4428
4541
|
|
4429
4542
|
private:
|
4430
4543
|
FunctionTemplate();
|
@@ -4454,7 +4567,7 @@ struct NamedPropertyHandlerConfiguration {
|
|
4454
4567
|
GenericNamedPropertyQueryCallback query = 0,
|
4455
4568
|
GenericNamedPropertyDeleterCallback deleter = 0,
|
4456
4569
|
GenericNamedPropertyEnumeratorCallback enumerator = 0,
|
4457
|
-
|
4570
|
+
Local<Value> data = Local<Value>(),
|
4458
4571
|
PropertyHandlerFlags flags = PropertyHandlerFlags::kNone)
|
4459
4572
|
: getter(getter),
|
4460
4573
|
setter(setter),
|
@@ -4469,7 +4582,7 @@ struct NamedPropertyHandlerConfiguration {
|
|
4469
4582
|
GenericNamedPropertyQueryCallback query;
|
4470
4583
|
GenericNamedPropertyDeleterCallback deleter;
|
4471
4584
|
GenericNamedPropertyEnumeratorCallback enumerator;
|
4472
|
-
|
4585
|
+
Local<Value> data;
|
4473
4586
|
PropertyHandlerFlags flags;
|
4474
4587
|
};
|
4475
4588
|
|
@@ -4482,7 +4595,7 @@ struct IndexedPropertyHandlerConfiguration {
|
|
4482
4595
|
IndexedPropertyQueryCallback query = 0,
|
4483
4596
|
IndexedPropertyDeleterCallback deleter = 0,
|
4484
4597
|
IndexedPropertyEnumeratorCallback enumerator = 0,
|
4485
|
-
|
4598
|
+
Local<Value> data = Local<Value>(),
|
4486
4599
|
PropertyHandlerFlags flags = PropertyHandlerFlags::kNone)
|
4487
4600
|
: getter(getter),
|
4488
4601
|
setter(setter),
|
@@ -4497,7 +4610,7 @@ struct IndexedPropertyHandlerConfiguration {
|
|
4497
4610
|
IndexedPropertyQueryCallback query;
|
4498
4611
|
IndexedPropertyDeleterCallback deleter;
|
4499
4612
|
IndexedPropertyEnumeratorCallback enumerator;
|
4500
|
-
|
4613
|
+
Local<Value> data;
|
4501
4614
|
PropertyHandlerFlags flags;
|
4502
4615
|
};
|
4503
4616
|
|
@@ -4513,8 +4626,8 @@ class V8_EXPORT ObjectTemplate : public Template {
|
|
4513
4626
|
/** Creates an ObjectTemplate. */
|
4514
4627
|
static Local<ObjectTemplate> New(
|
4515
4628
|
Isolate* isolate,
|
4516
|
-
|
4517
|
-
static
|
4629
|
+
Local<FunctionTemplate> constructor = Local<FunctionTemplate>());
|
4630
|
+
static V8_DEPRECATED("Use isolate version", Local<ObjectTemplate> New());
|
4518
4631
|
|
4519
4632
|
/** Creates a new instance of this template.*/
|
4520
4633
|
V8_DEPRECATE_SOON("Use maybe version", Local<Object> NewInstance());
|
@@ -4549,22 +4662,16 @@ class V8_EXPORT ObjectTemplate : public Template {
|
|
4549
4662
|
* defined by FunctionTemplate::HasInstance()), an implicit TypeError is
|
4550
4663
|
* thrown and no callback is invoked.
|
4551
4664
|
*/
|
4552
|
-
void SetAccessor(
|
4553
|
-
|
4554
|
-
|
4555
|
-
|
4556
|
-
|
4557
|
-
|
4558
|
-
|
4559
|
-
|
4560
|
-
|
4561
|
-
|
4562
|
-
AccessorNameSetterCallback setter = 0,
|
4563
|
-
Handle<Value> data = Handle<Value>(),
|
4564
|
-
AccessControl settings = DEFAULT,
|
4565
|
-
PropertyAttribute attribute = None,
|
4566
|
-
Handle<AccessorSignature> signature =
|
4567
|
-
Handle<AccessorSignature>());
|
4665
|
+
void SetAccessor(
|
4666
|
+
Local<String> name, AccessorGetterCallback getter,
|
4667
|
+
AccessorSetterCallback setter = 0, Local<Value> data = Local<Value>(),
|
4668
|
+
AccessControl settings = DEFAULT, PropertyAttribute attribute = None,
|
4669
|
+
Local<AccessorSignature> signature = Local<AccessorSignature>());
|
4670
|
+
void SetAccessor(
|
4671
|
+
Local<Name> name, AccessorNameGetterCallback getter,
|
4672
|
+
AccessorNameSetterCallback setter = 0, Local<Value> data = Local<Value>(),
|
4673
|
+
AccessControl settings = DEFAULT, PropertyAttribute attribute = None,
|
4674
|
+
Local<AccessorSignature> signature = Local<AccessorSignature>());
|
4568
4675
|
|
4569
4676
|
/**
|
4570
4677
|
* Sets a named property handler on the object template.
|
@@ -4587,13 +4694,12 @@ class V8_EXPORT ObjectTemplate : public Template {
|
|
4587
4694
|
* whenever they are invoked.
|
4588
4695
|
*/
|
4589
4696
|
// TODO(dcarney): deprecate
|
4590
|
-
void SetNamedPropertyHandler(
|
4591
|
-
|
4592
|
-
|
4593
|
-
|
4594
|
-
|
4595
|
-
|
4596
|
-
Handle<Value> data = Handle<Value>());
|
4697
|
+
void SetNamedPropertyHandler(NamedPropertyGetterCallback getter,
|
4698
|
+
NamedPropertySetterCallback setter = 0,
|
4699
|
+
NamedPropertyQueryCallback query = 0,
|
4700
|
+
NamedPropertyDeleterCallback deleter = 0,
|
4701
|
+
NamedPropertyEnumeratorCallback enumerator = 0,
|
4702
|
+
Local<Value> data = Local<Value>());
|
4597
4703
|
void SetHandler(const NamedPropertyHandlerConfiguration& configuration);
|
4598
4704
|
|
4599
4705
|
/**
|
@@ -4620,7 +4726,7 @@ class V8_EXPORT ObjectTemplate : public Template {
|
|
4620
4726
|
IndexedPropertyQueryCallback query = 0,
|
4621
4727
|
IndexedPropertyDeleterCallback deleter = 0,
|
4622
4728
|
IndexedPropertyEnumeratorCallback enumerator = 0,
|
4623
|
-
|
4729
|
+
Local<Value> data = Local<Value>()) {
|
4624
4730
|
SetHandler(IndexedPropertyHandlerConfiguration(getter, setter, query,
|
4625
4731
|
deleter, enumerator, data));
|
4626
4732
|
}
|
@@ -4631,7 +4737,7 @@ class V8_EXPORT ObjectTemplate : public Template {
|
|
4631
4737
|
* function.
|
4632
4738
|
*/
|
4633
4739
|
void SetCallAsFunctionHandler(FunctionCallback callback,
|
4634
|
-
|
4740
|
+
Local<Value> data = Local<Value>());
|
4635
4741
|
|
4636
4742
|
/**
|
4637
4743
|
* Mark object instances of the template as undetectable.
|
@@ -4644,16 +4750,25 @@ class V8_EXPORT ObjectTemplate : public Template {
|
|
4644
4750
|
void MarkAsUndetectable();
|
4645
4751
|
|
4646
4752
|
/**
|
4647
|
-
* Sets access check
|
4648
|
-
*
|
4753
|
+
* Sets access check callback on the object template and enables access
|
4754
|
+
* checks.
|
4649
4755
|
*
|
4650
4756
|
* When accessing properties on instances of this object template,
|
4651
4757
|
* the access check callback will be called to determine whether or
|
4652
4758
|
* not to allow cross-context access to the properties.
|
4653
4759
|
*/
|
4654
|
-
void
|
4655
|
-
|
4656
|
-
|
4760
|
+
void SetAccessCheckCallback(AccessCheckCallback callback,
|
4761
|
+
Local<Value> data = Local<Value>());
|
4762
|
+
V8_DEPRECATED(
|
4763
|
+
"Use SetAccessCheckCallback with new AccessCheckCallback signature.",
|
4764
|
+
void SetAccessCheckCallback(DeprecatedAccessCheckCallback callback,
|
4765
|
+
Local<Value> data = Local<Value>()));
|
4766
|
+
|
4767
|
+
V8_DEPRECATED(
|
4768
|
+
"Use SetAccessCheckCallback instead",
|
4769
|
+
void SetAccessCheckCallbacks(NamedSecurityCallback named_handler,
|
4770
|
+
IndexedSecurityCallback indexed_handler,
|
4771
|
+
Local<Value> data = Local<Value>()));
|
4657
4772
|
|
4658
4773
|
/**
|
4659
4774
|
* Gets the number of internal fields for objects generated from
|
@@ -4670,7 +4785,7 @@ class V8_EXPORT ObjectTemplate : public Template {
|
|
4670
4785
|
private:
|
4671
4786
|
ObjectTemplate();
|
4672
4787
|
static Local<ObjectTemplate> New(internal::Isolate* isolate,
|
4673
|
-
|
4788
|
+
Local<FunctionTemplate> constructor);
|
4674
4789
|
friend class FunctionTemplate;
|
4675
4790
|
};
|
4676
4791
|
|
@@ -4682,7 +4797,7 @@ class V8_EXPORT Signature : public Data {
|
|
4682
4797
|
public:
|
4683
4798
|
static Local<Signature> New(
|
4684
4799
|
Isolate* isolate,
|
4685
|
-
|
4800
|
+
Local<FunctionTemplate> receiver = Local<FunctionTemplate>());
|
4686
4801
|
|
4687
4802
|
private:
|
4688
4803
|
Signature();
|
@@ -4695,29 +4810,15 @@ class V8_EXPORT Signature : public Data {
|
|
4695
4810
|
*/
|
4696
4811
|
class V8_EXPORT AccessorSignature : public Data {
|
4697
4812
|
public:
|
4698
|
-
static Local<AccessorSignature> New(
|
4699
|
-
|
4700
|
-
|
4813
|
+
static Local<AccessorSignature> New(
|
4814
|
+
Isolate* isolate,
|
4815
|
+
Local<FunctionTemplate> receiver = Local<FunctionTemplate>());
|
4701
4816
|
|
4702
4817
|
private:
|
4703
4818
|
AccessorSignature();
|
4704
4819
|
};
|
4705
4820
|
|
4706
4821
|
|
4707
|
-
/**
|
4708
|
-
* A utility for determining the type of objects based on the template
|
4709
|
-
* they were constructed from.
|
4710
|
-
*/
|
4711
|
-
class V8_EXPORT TypeSwitch : public Data {
|
4712
|
-
public:
|
4713
|
-
static Local<TypeSwitch> New(Handle<FunctionTemplate> type);
|
4714
|
-
static Local<TypeSwitch> New(int argc, Handle<FunctionTemplate> types[]);
|
4715
|
-
int match(Handle<Value> value);
|
4716
|
-
private:
|
4717
|
-
TypeSwitch();
|
4718
|
-
};
|
4719
|
-
|
4720
|
-
|
4721
4822
|
// --- Extensions ---
|
4722
4823
|
|
4723
4824
|
class V8_EXPORT ExternalOneByteStringResourceImpl
|
@@ -4747,9 +4848,9 @@ class V8_EXPORT Extension { // NOLINT
|
|
4747
4848
|
const char** deps = 0,
|
4748
4849
|
int source_length = -1);
|
4749
4850
|
virtual ~Extension() { }
|
4750
|
-
virtual v8::
|
4751
|
-
v8::Isolate* isolate, v8::
|
4752
|
-
return v8::
|
4851
|
+
virtual v8::Local<v8::FunctionTemplate> GetNativeFunctionTemplate(
|
4852
|
+
v8::Isolate* isolate, v8::Local<v8::String> name) {
|
4853
|
+
return v8::Local<v8::FunctionTemplate>();
|
4753
4854
|
}
|
4754
4855
|
|
4755
4856
|
const char* name() const { return name_; }
|
@@ -4780,10 +4881,10 @@ void V8_EXPORT RegisterExtension(Extension* extension);
|
|
4780
4881
|
|
4781
4882
|
// --- Statics ---
|
4782
4883
|
|
4783
|
-
V8_INLINE
|
4784
|
-
V8_INLINE
|
4785
|
-
V8_INLINE
|
4786
|
-
V8_INLINE
|
4884
|
+
V8_INLINE Local<Primitive> Undefined(Isolate* isolate);
|
4885
|
+
V8_INLINE Local<Primitive> Null(Isolate* isolate);
|
4886
|
+
V8_INLINE Local<Boolean> True(Isolate* isolate);
|
4887
|
+
V8_INLINE Local<Boolean> False(Isolate* isolate);
|
4787
4888
|
|
4788
4889
|
|
4789
4890
|
/**
|
@@ -4811,12 +4912,6 @@ class V8_EXPORT ResourceConstraints {
|
|
4811
4912
|
void ConfigureDefaults(uint64_t physical_memory,
|
4812
4913
|
uint64_t virtual_memory_limit);
|
4813
4914
|
|
4814
|
-
// Deprecated, will be removed soon.
|
4815
|
-
V8_DEPRECATED("Use two-args version instead",
|
4816
|
-
void ConfigureDefaults(uint64_t physical_memory,
|
4817
|
-
uint64_t virtual_memory_limit,
|
4818
|
-
uint32_t number_of_processors));
|
4819
|
-
|
4820
4915
|
int max_semi_space_size() const { return max_semi_space_size_; }
|
4821
4916
|
void set_max_semi_space_size(int value) { max_semi_space_size_ = value; }
|
4822
4917
|
int max_old_space_size() const { return max_old_space_size_; }
|
@@ -4826,14 +4921,6 @@ class V8_EXPORT ResourceConstraints {
|
|
4826
4921
|
uint32_t* stack_limit() const { return stack_limit_; }
|
4827
4922
|
// Sets an address beyond which the VM's stack may not grow.
|
4828
4923
|
void set_stack_limit(uint32_t* value) { stack_limit_ = value; }
|
4829
|
-
V8_DEPRECATED("Unused, will be removed", int max_available_threads() const) {
|
4830
|
-
return max_available_threads_;
|
4831
|
-
}
|
4832
|
-
// Set the number of threads available to V8, assuming at least 1.
|
4833
|
-
V8_DEPRECATED("Unused, will be removed",
|
4834
|
-
void set_max_available_threads(int value)) {
|
4835
|
-
max_available_threads_ = value;
|
4836
|
-
}
|
4837
4924
|
size_t code_range_size() const { return code_range_size_; }
|
4838
4925
|
void set_code_range_size(size_t value) {
|
4839
4926
|
code_range_size_ = value;
|
@@ -4844,7 +4931,6 @@ class V8_EXPORT ResourceConstraints {
|
|
4844
4931
|
int max_old_space_size_;
|
4845
4932
|
int max_executable_size_;
|
4846
4933
|
uint32_t* stack_limit_;
|
4847
|
-
int max_available_threads_;
|
4848
4934
|
size_t code_range_size_;
|
4849
4935
|
};
|
4850
4936
|
|
@@ -4855,7 +4941,7 @@ class V8_EXPORT ResourceConstraints {
|
|
4855
4941
|
typedef void (*FatalErrorCallback)(const char* location, const char* message);
|
4856
4942
|
|
4857
4943
|
|
4858
|
-
typedef void (*MessageCallback)(
|
4944
|
+
typedef void (*MessageCallback)(Local<Message> message, Local<Value> error);
|
4859
4945
|
|
4860
4946
|
// --- Tracing ---
|
4861
4947
|
|
@@ -4867,24 +4953,26 @@ typedef void (*LogEventCallback)(const char* name, int event);
|
|
4867
4953
|
*/
|
4868
4954
|
class V8_EXPORT Exception {
|
4869
4955
|
public:
|
4870
|
-
static Local<Value> RangeError(
|
4871
|
-
static Local<Value> ReferenceError(
|
4872
|
-
static Local<Value> SyntaxError(
|
4873
|
-
static Local<Value> TypeError(
|
4874
|
-
static Local<Value> Error(
|
4956
|
+
static Local<Value> RangeError(Local<String> message);
|
4957
|
+
static Local<Value> ReferenceError(Local<String> message);
|
4958
|
+
static Local<Value> SyntaxError(Local<String> message);
|
4959
|
+
static Local<Value> TypeError(Local<String> message);
|
4960
|
+
static Local<Value> Error(Local<String> message);
|
4875
4961
|
|
4876
4962
|
/**
|
4877
4963
|
* Creates an error message for the given exception.
|
4878
4964
|
* Will try to reconstruct the original stack trace from the exception value,
|
4879
4965
|
* or capture the current stack trace if not available.
|
4880
4966
|
*/
|
4881
|
-
static Local<Message> CreateMessage(
|
4967
|
+
static Local<Message> CreateMessage(Isolate* isolate, Local<Value> exception);
|
4968
|
+
V8_DEPRECATED("Use version with an Isolate*",
|
4969
|
+
static Local<Message> CreateMessage(Local<Value> exception));
|
4882
4970
|
|
4883
4971
|
/**
|
4884
4972
|
* Returns the original stack trace that was captured at the creation time
|
4885
4973
|
* of a given exception, or an empty handle if not available.
|
4886
4974
|
*/
|
4887
|
-
static Local<StackTrace> GetStackTrace(
|
4975
|
+
static Local<StackTrace> GetStackTrace(Local<Value> exception);
|
4888
4976
|
};
|
4889
4977
|
|
4890
4978
|
|
@@ -4921,8 +5009,10 @@ typedef void (*MemoryAllocationCallback)(ObjectSpace space,
|
|
4921
5009
|
AllocationAction action,
|
4922
5010
|
int size);
|
4923
5011
|
|
4924
|
-
// --- Leave Script Callback ---
|
4925
|
-
typedef void (*
|
5012
|
+
// --- Enter/Leave Script Callback ---
|
5013
|
+
typedef void (*BeforeCallEnteredCallback)(Isolate*);
|
5014
|
+
typedef void (*CallCompletedCallback)(Isolate*);
|
5015
|
+
typedef void (*DeprecatedCallCompletedCallback)();
|
4926
5016
|
|
4927
5017
|
// --- Promise Reject Callback ---
|
4928
5018
|
enum PromiseRejectEvent {
|
@@ -4932,25 +5022,27 @@ enum PromiseRejectEvent {
|
|
4932
5022
|
|
4933
5023
|
class PromiseRejectMessage {
|
4934
5024
|
public:
|
4935
|
-
PromiseRejectMessage(
|
4936
|
-
|
5025
|
+
PromiseRejectMessage(Local<Promise> promise, PromiseRejectEvent event,
|
5026
|
+
Local<Value> value, Local<StackTrace> stack_trace)
|
4937
5027
|
: promise_(promise),
|
4938
5028
|
event_(event),
|
4939
5029
|
value_(value),
|
4940
5030
|
stack_trace_(stack_trace) {}
|
4941
5031
|
|
4942
|
-
V8_INLINE
|
5032
|
+
V8_INLINE Local<Promise> GetPromise() const { return promise_; }
|
4943
5033
|
V8_INLINE PromiseRejectEvent GetEvent() const { return event_; }
|
4944
|
-
V8_INLINE
|
5034
|
+
V8_INLINE Local<Value> GetValue() const { return value_; }
|
4945
5035
|
|
4946
|
-
|
4947
|
-
|
5036
|
+
V8_DEPRECATED("Use v8::Exception::CreateMessage(GetValue())->GetStackTrace()",
|
5037
|
+
V8_INLINE Local<StackTrace> GetStackTrace() const) {
|
5038
|
+
return stack_trace_;
|
5039
|
+
}
|
4948
5040
|
|
4949
5041
|
private:
|
4950
|
-
|
5042
|
+
Local<Promise> promise_;
|
4951
5043
|
PromiseRejectEvent event_;
|
4952
|
-
|
4953
|
-
|
5044
|
+
Local<Value> value_;
|
5045
|
+
Local<StackTrace> stack_trace_;
|
4954
5046
|
};
|
4955
5047
|
|
4956
5048
|
typedef void (*PromiseRejectCallback)(PromiseRejectMessage message);
|
@@ -4974,27 +5066,42 @@ typedef bool (*AllowCodeGenerationFromStringsCallback)(Local<Context> context);
|
|
4974
5066
|
// --- Garbage Collection Callbacks ---
|
4975
5067
|
|
4976
5068
|
/**
|
4977
|
-
* Applications can register callback functions which will be called
|
4978
|
-
*
|
4979
|
-
*
|
4980
|
-
*
|
4981
|
-
*
|
5069
|
+
* Applications can register callback functions which will be called before and
|
5070
|
+
* after certain garbage collection operations. Allocations are not allowed in
|
5071
|
+
* the callback functions, you therefore cannot manipulate objects (set or
|
5072
|
+
* delete properties for example) since it is possible such operations will
|
5073
|
+
* result in the allocation of objects.
|
4982
5074
|
*/
|
4983
5075
|
enum GCType {
|
4984
5076
|
kGCTypeScavenge = 1 << 0,
|
4985
5077
|
kGCTypeMarkSweepCompact = 1 << 1,
|
4986
|
-
|
5078
|
+
kGCTypeIncrementalMarking = 1 << 2,
|
5079
|
+
kGCTypeProcessWeakCallbacks = 1 << 3,
|
5080
|
+
kGCTypeAll = kGCTypeScavenge | kGCTypeMarkSweepCompact |
|
5081
|
+
kGCTypeIncrementalMarking | kGCTypeProcessWeakCallbacks
|
4987
5082
|
};
|
4988
5083
|
|
5084
|
+
/**
|
5085
|
+
* GCCallbackFlags is used to notify additional information about the GC
|
5086
|
+
* callback.
|
5087
|
+
* - kGCCallbackFlagConstructRetainedObjectInfos: The GC callback is for
|
5088
|
+
* constructing retained object infos.
|
5089
|
+
* - kGCCallbackFlagForced: The GC callback is for a forced GC for testing.
|
5090
|
+
* - kGCCallbackFlagSynchronousPhantomCallbackProcessing: The GC callback
|
5091
|
+
* is called synchronously without getting posted to an idle task.
|
5092
|
+
* - kGCCallbackFlagCollectAllAvailableGarbage: The GC callback is called
|
5093
|
+
* in a phase where V8 is trying to collect all available garbage
|
5094
|
+
* (e.g., handling a low memory notification).
|
5095
|
+
*/
|
4989
5096
|
enum GCCallbackFlags {
|
4990
5097
|
kNoGCCallbackFlags = 0,
|
4991
|
-
kGCCallbackFlagCompacted = 1 << 0,
|
4992
5098
|
kGCCallbackFlagConstructRetainedObjectInfos = 1 << 1,
|
4993
|
-
kGCCallbackFlagForced = 1 << 2
|
5099
|
+
kGCCallbackFlagForced = 1 << 2,
|
5100
|
+
kGCCallbackFlagSynchronousPhantomCallbackProcessing = 1 << 3,
|
5101
|
+
kGCCallbackFlagCollectAllAvailableGarbage = 1 << 4,
|
4994
5102
|
};
|
4995
5103
|
|
4996
|
-
typedef void (*
|
4997
|
-
typedef void (*GCEpilogueCallback)(GCType type, GCCallbackFlags flags);
|
5104
|
+
typedef void (*GCCallback)(GCType type, GCCallbackFlags flags);
|
4998
5105
|
|
4999
5106
|
typedef void (*InterruptCallback)(Isolate* isolate, void* data);
|
5000
5107
|
|
@@ -5014,6 +5121,7 @@ class V8_EXPORT HeapStatistics {
|
|
5014
5121
|
size_t total_available_size() { return total_available_size_; }
|
5015
5122
|
size_t used_heap_size() { return used_heap_size_; }
|
5016
5123
|
size_t heap_size_limit() { return heap_size_limit_; }
|
5124
|
+
size_t does_zap_garbage() { return does_zap_garbage_; }
|
5017
5125
|
|
5018
5126
|
private:
|
5019
5127
|
size_t total_heap_size_;
|
@@ -5022,6 +5130,7 @@ class V8_EXPORT HeapStatistics {
|
|
5022
5130
|
size_t total_available_size_;
|
5023
5131
|
size_t used_heap_size_;
|
5024
5132
|
size_t heap_size_limit_;
|
5133
|
+
bool does_zap_garbage_;
|
5025
5134
|
|
5026
5135
|
friend class V8;
|
5027
5136
|
friend class Isolate;
|
@@ -5111,7 +5220,7 @@ struct JitCodeEvent {
|
|
5111
5220
|
// Size of the instructions.
|
5112
5221
|
size_t code_len;
|
5113
5222
|
// Script info for CODE_ADDED event.
|
5114
|
-
|
5223
|
+
Local<UnboundScript> script;
|
5115
5224
|
// User-defined data for *_LINE_INFO_* event. It's used to hold the source
|
5116
5225
|
// code line information which is returned from the
|
5117
5226
|
// CODE_START_LINE_INFO_RECORDING event. And it's passed to subsequent
|
@@ -5171,7 +5280,7 @@ typedef void (*JitCodeEventHandler)(const JitCodeEvent* event);
|
|
5171
5280
|
class V8_EXPORT ExternalResourceVisitor { // NOLINT
|
5172
5281
|
public:
|
5173
5282
|
virtual ~ExternalResourceVisitor() {}
|
5174
|
-
virtual void VisitExternalString(
|
5283
|
+
virtual void VisitExternalString(Local<String> string) {}
|
5175
5284
|
};
|
5176
5285
|
|
5177
5286
|
|
@@ -5359,6 +5468,30 @@ class V8_EXPORT Isolate {
|
|
5359
5468
|
kSlotsBufferOverflow = 5,
|
5360
5469
|
kObjectObserve = 6,
|
5361
5470
|
kForcedGC = 7,
|
5471
|
+
kSloppyMode = 8,
|
5472
|
+
kStrictMode = 9,
|
5473
|
+
kStrongMode = 10,
|
5474
|
+
kRegExpPrototypeStickyGetter = 11,
|
5475
|
+
kRegExpPrototypeToString = 12,
|
5476
|
+
kRegExpPrototypeUnicodeGetter = 13,
|
5477
|
+
kIntlV8Parse = 14,
|
5478
|
+
kIntlPattern = 15,
|
5479
|
+
kIntlResolved = 16,
|
5480
|
+
kPromiseChain = 17,
|
5481
|
+
kPromiseAccept = 18,
|
5482
|
+
kPromiseDefer = 19,
|
5483
|
+
kHtmlCommentInExternalScript = 20,
|
5484
|
+
kHtmlComment = 21,
|
5485
|
+
kSloppyModeBlockScopedFunctionRedefinition = 22,
|
5486
|
+
kForInInitializer = 23,
|
5487
|
+
kArrayProtectorDirtied = 24,
|
5488
|
+
kArraySpeciesModified = 25,
|
5489
|
+
kArrayPrototypeConstructorModified = 26,
|
5490
|
+
kArrayInstanceProtoModified = 27,
|
5491
|
+
kArrayInstanceConstructorModified = 28,
|
5492
|
+
|
5493
|
+
// If you add new values here, you'll also need to update V8Initializer.cpp
|
5494
|
+
// in Chromium.
|
5362
5495
|
kUseCounterFeatureCount // This enum value must be last.
|
5363
5496
|
};
|
5364
5497
|
|
@@ -5377,8 +5510,6 @@ class V8_EXPORT Isolate {
|
|
5377
5510
|
*/
|
5378
5511
|
static Isolate* New(const CreateParams& params);
|
5379
5512
|
|
5380
|
-
static V8_DEPRECATED("Always pass CreateParams", Isolate* New());
|
5381
|
-
|
5382
5513
|
/**
|
5383
5514
|
* Returns the entered isolate for the current thread or NULL in
|
5384
5515
|
* case there is no current isolate.
|
@@ -5387,6 +5518,19 @@ class V8_EXPORT Isolate {
|
|
5387
5518
|
*/
|
5388
5519
|
static Isolate* GetCurrent();
|
5389
5520
|
|
5521
|
+
/**
|
5522
|
+
* Custom callback used by embedders to help V8 determine if it should abort
|
5523
|
+
* when it throws and no internal handler is predicted to catch the
|
5524
|
+
* exception. If --abort-on-uncaught-exception is used on the command line,
|
5525
|
+
* then V8 will abort if either:
|
5526
|
+
* - no custom callback is set.
|
5527
|
+
* - the custom callback set returns true.
|
5528
|
+
* Otherwise, the custom callback will not be called and V8 will not abort.
|
5529
|
+
*/
|
5530
|
+
typedef bool (*AbortOnUncaughtExceptionCallback)(Isolate*);
|
5531
|
+
void SetAbortOnUncaughtExceptionCallback(
|
5532
|
+
AbortOnUncaughtExceptionCallback callback);
|
5533
|
+
|
5390
5534
|
/**
|
5391
5535
|
* Methods below this point require holding a lock (using Locker) in
|
5392
5536
|
* a multi-threaded environment.
|
@@ -5414,6 +5558,15 @@ class V8_EXPORT Isolate {
|
|
5414
5558
|
*/
|
5415
5559
|
void Dispose();
|
5416
5560
|
|
5561
|
+
/**
|
5562
|
+
* Discards all V8 thread-specific data for the Isolate. Should be used
|
5563
|
+
* if a thread is terminating and it has used an Isolate that will outlive
|
5564
|
+
* the thread -- all thread-specific data for an Isolate is discarded when
|
5565
|
+
* an Isolate is disposed so this call is pointless if an Isolate is about
|
5566
|
+
* to be Disposed.
|
5567
|
+
*/
|
5568
|
+
void DiscardThreadSpecificMetadata();
|
5569
|
+
|
5417
5570
|
/**
|
5418
5571
|
* Associate embedder-specific data with the isolate. |slot| has to be
|
5419
5572
|
* between 0 and GetNumberOfDataSlots() - 1.
|
@@ -5518,7 +5671,10 @@ class V8_EXPORT Isolate {
|
|
5518
5671
|
/** Returns true if this isolate has a current context. */
|
5519
5672
|
bool InContext();
|
5520
5673
|
|
5521
|
-
/**
|
5674
|
+
/**
|
5675
|
+
* Returns the context of the currently running JavaScript, or the context
|
5676
|
+
* on the top of the stack if no JavaScript is running.
|
5677
|
+
*/
|
5522
5678
|
Local<Context> GetCurrentContext();
|
5523
5679
|
|
5524
5680
|
/**
|
@@ -5526,9 +5682,12 @@ class V8_EXPORT Isolate {
|
|
5526
5682
|
* context of the top-most JavaScript frame. If there are no
|
5527
5683
|
* JavaScript frames an empty handle is returned.
|
5528
5684
|
*/
|
5529
|
-
|
5685
|
+
V8_DEPRECATE_SOON(
|
5686
|
+
"Calling context concept is not compatible with tail calls, and will be "
|
5687
|
+
"removed.",
|
5688
|
+
Local<Context> GetCallingContext());
|
5530
5689
|
|
5531
|
-
/** Returns the last entered
|
5690
|
+
/** Returns the last context entered through V8's C++ API. */
|
5532
5691
|
Local<Context> GetEnteredContext();
|
5533
5692
|
|
5534
5693
|
/**
|
@@ -5572,12 +5731,8 @@ class V8_EXPORT Isolate {
|
|
5572
5731
|
template<typename T, typename S>
|
5573
5732
|
void SetReference(const Persistent<T>& parent, const Persistent<S>& child);
|
5574
5733
|
|
5575
|
-
typedef void (*
|
5576
|
-
|
5577
|
-
GCCallbackFlags flags);
|
5578
|
-
typedef void (*GCEpilogueCallback)(Isolate* isolate,
|
5579
|
-
GCType type,
|
5580
|
-
GCCallbackFlags flags);
|
5734
|
+
typedef void (*GCCallback)(Isolate* isolate, GCType type,
|
5735
|
+
GCCallbackFlags flags);
|
5581
5736
|
|
5582
5737
|
/**
|
5583
5738
|
* Enables the host application to receive a notification before a
|
@@ -5588,14 +5743,14 @@ class V8_EXPORT Isolate {
|
|
5588
5743
|
* not possible to register the same callback function two times with
|
5589
5744
|
* different GCType filters.
|
5590
5745
|
*/
|
5591
|
-
void AddGCPrologueCallback(
|
5592
|
-
|
5746
|
+
void AddGCPrologueCallback(GCCallback callback,
|
5747
|
+
GCType gc_type_filter = kGCTypeAll);
|
5593
5748
|
|
5594
5749
|
/**
|
5595
5750
|
* This function removes callback which was installed by
|
5596
5751
|
* AddGCPrologueCallback function.
|
5597
5752
|
*/
|
5598
|
-
void RemoveGCPrologueCallback(
|
5753
|
+
void RemoveGCPrologueCallback(GCCallback callback);
|
5599
5754
|
|
5600
5755
|
/**
|
5601
5756
|
* Enables the host application to receive a notification after a
|
@@ -5606,15 +5761,14 @@ class V8_EXPORT Isolate {
|
|
5606
5761
|
* not possible to register the same callback function two times with
|
5607
5762
|
* different GCType filters.
|
5608
5763
|
*/
|
5609
|
-
void AddGCEpilogueCallback(
|
5610
|
-
|
5764
|
+
void AddGCEpilogueCallback(GCCallback callback,
|
5765
|
+
GCType gc_type_filter = kGCTypeAll);
|
5611
5766
|
|
5612
5767
|
/**
|
5613
5768
|
* This function removes callback which was installed by
|
5614
5769
|
* AddGCEpilogueCallback function.
|
5615
5770
|
*/
|
5616
|
-
void RemoveGCEpilogueCallback(
|
5617
|
-
|
5771
|
+
void RemoveGCEpilogueCallback(GCCallback callback);
|
5618
5772
|
|
5619
5773
|
/**
|
5620
5774
|
* Forcefully terminate the current thread of JavaScript execution
|
@@ -5678,6 +5832,19 @@ class V8_EXPORT Isolate {
|
|
5678
5832
|
*/
|
5679
5833
|
void SetEventLogger(LogEventCallback that);
|
5680
5834
|
|
5835
|
+
/**
|
5836
|
+
* Adds a callback to notify the host application right before a script
|
5837
|
+
* is about to run. If a script re-enters the runtime during executing, the
|
5838
|
+
* BeforeCallEnteredCallback is invoked for each re-entrance.
|
5839
|
+
* Executing scripts inside the callback will re-trigger the callback.
|
5840
|
+
*/
|
5841
|
+
void AddBeforeCallEnteredCallback(BeforeCallEnteredCallback callback);
|
5842
|
+
|
5843
|
+
/**
|
5844
|
+
* Removes callback that was installed by AddBeforeCallEnteredCallback.
|
5845
|
+
*/
|
5846
|
+
void RemoveBeforeCallEnteredCallback(BeforeCallEnteredCallback callback);
|
5847
|
+
|
5681
5848
|
/**
|
5682
5849
|
* Adds a callback to notify the host application when a script finished
|
5683
5850
|
* running. If a script re-enters the runtime during executing, the
|
@@ -5686,12 +5853,18 @@ class V8_EXPORT Isolate {
|
|
5686
5853
|
* further callbacks.
|
5687
5854
|
*/
|
5688
5855
|
void AddCallCompletedCallback(CallCompletedCallback callback);
|
5856
|
+
V8_DEPRECATE_SOON(
|
5857
|
+
"Use callback with parameter",
|
5858
|
+
void AddCallCompletedCallback(DeprecatedCallCompletedCallback callback));
|
5689
5859
|
|
5690
5860
|
/**
|
5691
5861
|
* Removes callback that was installed by AddCallCompletedCallback.
|
5692
5862
|
*/
|
5693
5863
|
void RemoveCallCompletedCallback(CallCompletedCallback callback);
|
5694
|
-
|
5864
|
+
V8_DEPRECATE_SOON(
|
5865
|
+
"Use callback with parameter",
|
5866
|
+
void RemoveCallCompletedCallback(
|
5867
|
+
DeprecatedCallCompletedCallback callback));
|
5695
5868
|
|
5696
5869
|
/**
|
5697
5870
|
* Set callback to notify about promise reject with no handler, or
|
@@ -5708,7 +5881,7 @@ class V8_EXPORT Isolate {
|
|
5708
5881
|
/**
|
5709
5882
|
* Experimental: Enqueues the callback to the Microtask Work Queue
|
5710
5883
|
*/
|
5711
|
-
void EnqueueMicrotask(
|
5884
|
+
void EnqueueMicrotask(Local<Function> microtask);
|
5712
5885
|
|
5713
5886
|
/**
|
5714
5887
|
* Experimental: Enqueues the callback to the Microtask Work Queue
|
@@ -5763,8 +5936,8 @@ class V8_EXPORT Isolate {
|
|
5763
5936
|
*/
|
5764
5937
|
bool IdleNotificationDeadline(double deadline_in_seconds);
|
5765
5938
|
|
5766
|
-
|
5767
|
-
|
5939
|
+
V8_DEPRECATED("use IdleNotificationDeadline()",
|
5940
|
+
bool IdleNotification(int idle_time_in_ms));
|
5768
5941
|
|
5769
5942
|
/**
|
5770
5943
|
* Optional notification that the system is running low on memory.
|
@@ -5783,6 +5956,18 @@ class V8_EXPORT Isolate {
|
|
5783
5956
|
*/
|
5784
5957
|
int ContextDisposedNotification(bool dependant_context = true);
|
5785
5958
|
|
5959
|
+
/**
|
5960
|
+
* Optional notification that the isolate switched to the foreground.
|
5961
|
+
* V8 uses these notifications to guide heuristics.
|
5962
|
+
*/
|
5963
|
+
void IsolateInForegroundNotification();
|
5964
|
+
|
5965
|
+
/**
|
5966
|
+
* Optional notification that the isolate switched to the background.
|
5967
|
+
* V8 uses these notifications to guide heuristics.
|
5968
|
+
*/
|
5969
|
+
void IsolateInBackgroundNotification();
|
5970
|
+
|
5786
5971
|
/**
|
5787
5972
|
* Allows the host application to provide the address of a function that is
|
5788
5973
|
* notified each time code is added, moved or removed.
|
@@ -5860,7 +6045,7 @@ class V8_EXPORT Isolate {
|
|
5860
6045
|
* Otherwise, the exception object will be passed to the callback instead.
|
5861
6046
|
*/
|
5862
6047
|
bool AddMessageListener(MessageCallback that,
|
5863
|
-
|
6048
|
+
Local<Value> data = Local<Value>());
|
5864
6049
|
|
5865
6050
|
/**
|
5866
6051
|
* Remove all message listeners from the specified callback function.
|
@@ -5912,6 +6097,13 @@ class V8_EXPORT Isolate {
|
|
5912
6097
|
*/
|
5913
6098
|
void VisitHandlesForPartialDependence(PersistentHandleVisitor* visitor);
|
5914
6099
|
|
6100
|
+
/**
|
6101
|
+
* Iterates through all the persistent handles in the current isolate's heap
|
6102
|
+
* that have class_ids and are weak to be marked as inactive if there is no
|
6103
|
+
* pending activity for the handle.
|
6104
|
+
*/
|
6105
|
+
void VisitWeakHandles(PersistentHandleVisitor* visitor);
|
6106
|
+
|
5915
6107
|
private:
|
5916
6108
|
template <class K, class V, class Traits>
|
5917
6109
|
friend class PersistentValueMapBase;
|
@@ -5926,7 +6118,7 @@ class V8_EXPORT Isolate {
|
|
5926
6118
|
void SetObjectGroupId(internal::Object** object, UniqueId id);
|
5927
6119
|
void SetReferenceFromGroup(UniqueId id, internal::Object** object);
|
5928
6120
|
void SetReference(internal::Object** parent, internal::Object** child);
|
5929
|
-
void
|
6121
|
+
void ReportExternalAllocationLimitReached();
|
5930
6122
|
};
|
5931
6123
|
|
5932
6124
|
class V8_EXPORT StartupData {
|
@@ -5966,7 +6158,7 @@ typedef uintptr_t (*ReturnAddressLocationResolver)(
|
|
5966
6158
|
class V8_EXPORT V8 {
|
5967
6159
|
public:
|
5968
6160
|
/** Set the callback to invoke in case of fatal errors. */
|
5969
|
-
V8_INLINE static
|
6161
|
+
V8_INLINE static V8_DEPRECATED(
|
5970
6162
|
"Use isolate version",
|
5971
6163
|
void SetFatalErrorHandler(FatalErrorCallback that));
|
5972
6164
|
|
@@ -5974,25 +6166,15 @@ class V8_EXPORT V8 {
|
|
5974
6166
|
* Set the callback to invoke to check if code generation from
|
5975
6167
|
* strings should be allowed.
|
5976
6168
|
*/
|
5977
|
-
V8_INLINE static
|
6169
|
+
V8_INLINE static V8_DEPRECATED(
|
5978
6170
|
"Use isolate version", void SetAllowCodeGenerationFromStringsCallback(
|
5979
6171
|
AllowCodeGenerationFromStringsCallback that));
|
5980
6172
|
|
5981
|
-
/**
|
5982
|
-
* Set allocator to use for ArrayBuffer memory.
|
5983
|
-
* The allocator should be set only once. The allocator should be set
|
5984
|
-
* before any code tha uses ArrayBuffers is executed.
|
5985
|
-
* This allocator is used in all isolates.
|
5986
|
-
*/
|
5987
|
-
static V8_DEPRECATE_SOON(
|
5988
|
-
"Use isolate version",
|
5989
|
-
void SetArrayBufferAllocator(ArrayBuffer::Allocator* allocator));
|
5990
|
-
|
5991
6173
|
/**
|
5992
6174
|
* Check if V8 is dead and therefore unusable. This is the case after
|
5993
6175
|
* fatal errors such as out-of-memory situations.
|
5994
6176
|
*/
|
5995
|
-
V8_INLINE static
|
6177
|
+
V8_INLINE static V8_DEPRECATED("Use isolate version", bool IsDead());
|
5996
6178
|
|
5997
6179
|
/**
|
5998
6180
|
* Hand startup data to V8, in case the embedder has chosen to build
|
@@ -6028,22 +6210,22 @@ class V8_EXPORT V8 {
|
|
6028
6210
|
* If data is specified, it will be passed to the callback when it is called.
|
6029
6211
|
* Otherwise, the exception object will be passed to the callback instead.
|
6030
6212
|
*/
|
6031
|
-
V8_INLINE static
|
6213
|
+
V8_INLINE static V8_DEPRECATED(
|
6032
6214
|
"Use isolate version",
|
6033
6215
|
bool AddMessageListener(MessageCallback that,
|
6034
|
-
|
6216
|
+
Local<Value> data = Local<Value>()));
|
6035
6217
|
|
6036
6218
|
/**
|
6037
6219
|
* Remove all message listeners from the specified callback function.
|
6038
6220
|
*/
|
6039
|
-
V8_INLINE static
|
6221
|
+
V8_INLINE static V8_DEPRECATED(
|
6040
6222
|
"Use isolate version", void RemoveMessageListeners(MessageCallback that));
|
6041
6223
|
|
6042
6224
|
/**
|
6043
6225
|
* Tells V8 to capture current stack trace when uncaught exception occurs
|
6044
6226
|
* and report it to the message listeners. The option is off by default.
|
6045
6227
|
*/
|
6046
|
-
V8_INLINE static
|
6228
|
+
V8_INLINE static V8_DEPRECATED(
|
6047
6229
|
"Use isolate version",
|
6048
6230
|
void SetCaptureStackTraceForUncaughtExceptions(
|
6049
6231
|
bool capture, int frame_limit = 10,
|
@@ -6065,7 +6247,7 @@ class V8_EXPORT V8 {
|
|
6065
6247
|
static const char* GetVersion();
|
6066
6248
|
|
6067
6249
|
/** Callback function for reporting failed access checks.*/
|
6068
|
-
V8_INLINE static
|
6250
|
+
V8_INLINE static V8_DEPRECATED(
|
6069
6251
|
"Use isolate version",
|
6070
6252
|
void SetFailedAccessCheckCallbackFunction(FailedAccessCheckCallback));
|
6071
6253
|
|
@@ -6079,18 +6261,18 @@ class V8_EXPORT V8 {
|
|
6079
6261
|
* register the same callback function two times with different
|
6080
6262
|
* GCType filters.
|
6081
6263
|
*/
|
6082
|
-
static
|
6264
|
+
static V8_DEPRECATED(
|
6083
6265
|
"Use isolate version",
|
6084
|
-
void AddGCPrologueCallback(
|
6266
|
+
void AddGCPrologueCallback(GCCallback callback,
|
6085
6267
|
GCType gc_type_filter = kGCTypeAll));
|
6086
6268
|
|
6087
6269
|
/**
|
6088
6270
|
* This function removes callback which was installed by
|
6089
6271
|
* AddGCPrologueCallback function.
|
6090
6272
|
*/
|
6091
|
-
V8_INLINE static
|
6273
|
+
V8_INLINE static V8_DEPRECATED(
|
6092
6274
|
"Use isolate version",
|
6093
|
-
void RemoveGCPrologueCallback(
|
6275
|
+
void RemoveGCPrologueCallback(GCCallback callback));
|
6094
6276
|
|
6095
6277
|
/**
|
6096
6278
|
* Enables the host application to receive a notification after a
|
@@ -6102,24 +6284,24 @@ class V8_EXPORT V8 {
|
|
6102
6284
|
* register the same callback function two times with different
|
6103
6285
|
* GCType filters.
|
6104
6286
|
*/
|
6105
|
-
static
|
6287
|
+
static V8_DEPRECATED(
|
6106
6288
|
"Use isolate version",
|
6107
|
-
void AddGCEpilogueCallback(
|
6289
|
+
void AddGCEpilogueCallback(GCCallback callback,
|
6108
6290
|
GCType gc_type_filter = kGCTypeAll));
|
6109
6291
|
|
6110
6292
|
/**
|
6111
6293
|
* This function removes callback which was installed by
|
6112
6294
|
* AddGCEpilogueCallback function.
|
6113
6295
|
*/
|
6114
|
-
V8_INLINE static
|
6296
|
+
V8_INLINE static V8_DEPRECATED(
|
6115
6297
|
"Use isolate version",
|
6116
|
-
void RemoveGCEpilogueCallback(
|
6298
|
+
void RemoveGCEpilogueCallback(GCCallback callback));
|
6117
6299
|
|
6118
6300
|
/**
|
6119
6301
|
* Enables the host application to provide a mechanism to be notified
|
6120
6302
|
* and perform custom logging when V8 Allocates Executable Memory.
|
6121
6303
|
*/
|
6122
|
-
V8_INLINE static
|
6304
|
+
V8_INLINE static V8_DEPRECATED(
|
6123
6305
|
"Use isolate version",
|
6124
6306
|
void AddMemoryAllocationCallback(MemoryAllocationCallback callback,
|
6125
6307
|
ObjectSpace space,
|
@@ -6128,7 +6310,7 @@ class V8_EXPORT V8 {
|
|
6128
6310
|
/**
|
6129
6311
|
* Removes callback that was installed by AddMemoryAllocationCallback.
|
6130
6312
|
*/
|
6131
|
-
V8_INLINE static
|
6313
|
+
V8_INLINE static V8_DEPRECATED(
|
6132
6314
|
"Use isolate version",
|
6133
6315
|
void RemoveMemoryAllocationCallback(MemoryAllocationCallback callback));
|
6134
6316
|
|
@@ -6160,8 +6342,8 @@ class V8_EXPORT V8 {
|
|
6160
6342
|
*
|
6161
6343
|
* \param isolate The isolate in which to terminate the current JS execution.
|
6162
6344
|
*/
|
6163
|
-
V8_INLINE static
|
6164
|
-
|
6345
|
+
V8_INLINE static V8_DEPRECATED("Use isolate version",
|
6346
|
+
void TerminateExecution(Isolate* isolate));
|
6165
6347
|
|
6166
6348
|
/**
|
6167
6349
|
* Is V8 terminating JavaScript execution.
|
@@ -6173,7 +6355,7 @@ class V8_EXPORT V8 {
|
|
6173
6355
|
*
|
6174
6356
|
* \param isolate The isolate in which to check.
|
6175
6357
|
*/
|
6176
|
-
V8_INLINE static
|
6358
|
+
V8_INLINE static V8_DEPRECATED(
|
6177
6359
|
"Use isolate version",
|
6178
6360
|
bool IsExecutionTerminating(Isolate* isolate = NULL));
|
6179
6361
|
|
@@ -6193,7 +6375,7 @@ class V8_EXPORT V8 {
|
|
6193
6375
|
*
|
6194
6376
|
* \param isolate The isolate in which to resume execution capability.
|
6195
6377
|
*/
|
6196
|
-
V8_INLINE static
|
6378
|
+
V8_INLINE static V8_DEPRECATED(
|
6197
6379
|
"Use isolate version", void CancelTerminateExecution(Isolate* isolate));
|
6198
6380
|
|
6199
6381
|
/**
|
@@ -6212,15 +6394,15 @@ class V8_EXPORT V8 {
|
|
6212
6394
|
* heap. GC is not invoked prior to iterating, therefore there is no
|
6213
6395
|
* guarantee that visited objects are still alive.
|
6214
6396
|
*/
|
6215
|
-
V8_INLINE static
|
6216
|
-
"Use
|
6397
|
+
V8_INLINE static V8_DEPRECATED(
|
6398
|
+
"Use isolate version",
|
6217
6399
|
void VisitExternalResources(ExternalResourceVisitor* visitor));
|
6218
6400
|
|
6219
6401
|
/**
|
6220
6402
|
* Iterates through all the persistent handles in the current isolate's heap
|
6221
6403
|
* that have class_ids.
|
6222
6404
|
*/
|
6223
|
-
V8_INLINE static
|
6405
|
+
V8_INLINE static V8_DEPRECATED(
|
6224
6406
|
"Use isolate version",
|
6225
6407
|
void VisitHandlesWithClassIds(PersistentHandleVisitor* visitor));
|
6226
6408
|
|
@@ -6228,7 +6410,7 @@ class V8_EXPORT V8 {
|
|
6228
6410
|
* Iterates through all the persistent handles in isolate's heap that have
|
6229
6411
|
* class_ids.
|
6230
6412
|
*/
|
6231
|
-
V8_INLINE static
|
6413
|
+
V8_INLINE static V8_DEPRECATED(
|
6232
6414
|
"Use isolate version",
|
6233
6415
|
void VisitHandlesWithClassIds(Isolate* isolate,
|
6234
6416
|
PersistentHandleVisitor* visitor));
|
@@ -6240,7 +6422,7 @@ class V8_EXPORT V8 {
|
|
6240
6422
|
* garbage collection but is free to visit an arbitrary superset of these
|
6241
6423
|
* objects.
|
6242
6424
|
*/
|
6243
|
-
V8_INLINE static
|
6425
|
+
V8_INLINE static V8_DEPRECATED(
|
6244
6426
|
"Use isolate version",
|
6245
6427
|
void VisitHandlesForPartialDependence(Isolate* isolate,
|
6246
6428
|
PersistentHandleVisitor* visitor));
|
@@ -6254,6 +6436,25 @@ class V8_EXPORT V8 {
|
|
6254
6436
|
*/
|
6255
6437
|
static bool InitializeICU(const char* icu_data_file = NULL);
|
6256
6438
|
|
6439
|
+
/**
|
6440
|
+
* Initialize the external startup data. The embedder only needs to
|
6441
|
+
* invoke this method when external startup data was enabled in a build.
|
6442
|
+
*
|
6443
|
+
* If V8 was compiled with the startup data in an external file, then
|
6444
|
+
* V8 needs to be given those external files during startup. There are
|
6445
|
+
* three ways to do this:
|
6446
|
+
* - InitializeExternalStartupData(const char*)
|
6447
|
+
* This will look in the given directory for files "natives_blob.bin"
|
6448
|
+
* and "snapshot_blob.bin" - which is what the default build calls them.
|
6449
|
+
* - InitializeExternalStartupData(const char*, const char*)
|
6450
|
+
* As above, but will directly use the two given file names.
|
6451
|
+
* - Call SetNativesDataBlob, SetNativesDataBlob.
|
6452
|
+
* This will read the blobs from the given data structures and will
|
6453
|
+
* not perform any file IO.
|
6454
|
+
*/
|
6455
|
+
static void InitializeExternalStartupData(const char* directory_path);
|
6456
|
+
static void InitializeExternalStartupData(const char* natives_blob,
|
6457
|
+
const char* snapshot_blob);
|
6257
6458
|
/**
|
6258
6459
|
* Sets the v8::Platform to use. This should be invoked before V8 is
|
6259
6460
|
* initialized.
|
@@ -6379,7 +6580,7 @@ class V8_EXPORT TryCatch {
|
|
6379
6580
|
* all TryCatch blocks should be stack allocated because the memory
|
6380
6581
|
* location itself is compared against JavaScript try/catch blocks.
|
6381
6582
|
*/
|
6382
|
-
|
6583
|
+
V8_DEPRECATED("Use isolate version", TryCatch());
|
6383
6584
|
|
6384
6585
|
/**
|
6385
6586
|
* Creates a new try/catch block and registers it with v8. Note that
|
@@ -6429,7 +6630,7 @@ class V8_EXPORT TryCatch {
|
|
6429
6630
|
* ReThrow; the caller must return immediately to where the exception
|
6430
6631
|
* is caught.
|
6431
6632
|
*/
|
6432
|
-
|
6633
|
+
Local<Value> ReThrow();
|
6433
6634
|
|
6434
6635
|
/**
|
6435
6636
|
* Returns the exception caught by this try/catch block. If no exception has
|
@@ -6591,22 +6792,21 @@ class V8_EXPORT Context {
|
|
6591
6792
|
* and only object identify will remain.
|
6592
6793
|
*/
|
6593
6794
|
static Local<Context> New(
|
6594
|
-
Isolate* isolate,
|
6595
|
-
|
6596
|
-
|
6597
|
-
Handle<Value> global_object = Handle<Value>());
|
6795
|
+
Isolate* isolate, ExtensionConfiguration* extensions = NULL,
|
6796
|
+
Local<ObjectTemplate> global_template = Local<ObjectTemplate>(),
|
6797
|
+
Local<Value> global_object = Local<Value>());
|
6598
6798
|
|
6599
6799
|
/**
|
6600
6800
|
* Sets the security token for the context. To access an object in
|
6601
6801
|
* another context, the security tokens must match.
|
6602
6802
|
*/
|
6603
|
-
void SetSecurityToken(
|
6803
|
+
void SetSecurityToken(Local<Value> token);
|
6604
6804
|
|
6605
6805
|
/** Restores the security token to the default value. */
|
6606
6806
|
void UseDefaultSecurityToken();
|
6607
6807
|
|
6608
6808
|
/** Returns the security token of this context.*/
|
6609
|
-
|
6809
|
+
Local<Value> GetSecurityToken();
|
6610
6810
|
|
6611
6811
|
/**
|
6612
6812
|
* Enter this context. After entering a context, all code compiled
|
@@ -6640,17 +6840,19 @@ class V8_EXPORT Context {
|
|
6640
6840
|
V8_INLINE Local<Value> GetEmbedderData(int index);
|
6641
6841
|
|
6642
6842
|
/**
|
6643
|
-
* Gets the
|
6644
|
-
* to this object and can use it to export functionality
|
6843
|
+
* Gets the binding object used by V8 extras. Extra natives get a reference
|
6844
|
+
* to this object and can use it to "export" functionality by adding
|
6845
|
+
* properties. Extra natives can also "import" functionality by accessing
|
6846
|
+
* properties added by the embedder using the V8 API.
|
6645
6847
|
*/
|
6646
|
-
Local<Object>
|
6848
|
+
Local<Object> GetExtrasBindingObject();
|
6647
6849
|
|
6648
6850
|
/**
|
6649
6851
|
* Sets the embedder data with the given index, growing the data as
|
6650
6852
|
* needed. Note that index 0 currently has a special meaning for Chrome's
|
6651
6853
|
* debugger.
|
6652
6854
|
*/
|
6653
|
-
void SetEmbedderData(int index,
|
6855
|
+
void SetEmbedderData(int index, Local<Value> value);
|
6654
6856
|
|
6655
6857
|
/**
|
6656
6858
|
* Gets a 2-byte-aligned native pointer from the embedder data with the given
|
@@ -6693,7 +6895,12 @@ class V8_EXPORT Context {
|
|
6693
6895
|
* code generation from strings is not allowed and 'eval' or the 'Function'
|
6694
6896
|
* constructor are called.
|
6695
6897
|
*/
|
6696
|
-
void SetErrorMessageForCodeGenerationFromStrings(
|
6898
|
+
void SetErrorMessageForCodeGenerationFromStrings(Local<String> message);
|
6899
|
+
|
6900
|
+
/**
|
6901
|
+
* Estimate the memory in bytes retained by this context.
|
6902
|
+
*/
|
6903
|
+
size_t EstimatedSize();
|
6697
6904
|
|
6698
6905
|
/**
|
6699
6906
|
* Stack-allocated class which sets the execution context for all
|
@@ -6701,13 +6908,13 @@ class V8_EXPORT Context {
|
|
6701
6908
|
*/
|
6702
6909
|
class Scope {
|
6703
6910
|
public:
|
6704
|
-
explicit V8_INLINE Scope(
|
6911
|
+
explicit V8_INLINE Scope(Local<Context> context) : context_(context) {
|
6705
6912
|
context_->Enter();
|
6706
6913
|
}
|
6707
6914
|
V8_INLINE ~Scope() { context_->Exit(); }
|
6708
6915
|
|
6709
6916
|
private:
|
6710
|
-
|
6917
|
+
Local<Context> context_;
|
6711
6918
|
};
|
6712
6919
|
|
6713
6920
|
private:
|
@@ -6942,12 +7149,12 @@ class Internals {
|
|
6942
7149
|
1 * kApiPointerSize + kApiIntSize;
|
6943
7150
|
static const int kStringResourceOffset = 3 * kApiPointerSize;
|
6944
7151
|
|
6945
|
-
static const int kOddballKindOffset =
|
7152
|
+
static const int kOddballKindOffset = 4 * kApiPointerSize;
|
6946
7153
|
static const int kForeignAddressOffset = kApiPointerSize;
|
6947
7154
|
static const int kJSObjectHeaderSize = 3 * kApiPointerSize;
|
6948
7155
|
static const int kFixedArrayHeaderSize = 2 * kApiPointerSize;
|
6949
7156
|
static const int kContextHeaderSize = 2 * kApiPointerSize;
|
6950
|
-
static const int kContextEmbedderDataIndex =
|
7157
|
+
static const int kContextEmbedderDataIndex = 5;
|
6951
7158
|
static const int kFullStringRepresentationMask = 0x07;
|
6952
7159
|
static const int kStringEncodingMask = 0x4;
|
6953
7160
|
static const int kExternalTwoByteRepresentationTag = 0x02;
|
@@ -6979,8 +7186,9 @@ class Internals {
|
|
6979
7186
|
static const int kNodeStateIsNearDeathValue = 4;
|
6980
7187
|
static const int kNodeIsIndependentShift = 3;
|
6981
7188
|
static const int kNodeIsPartiallyDependentShift = 4;
|
7189
|
+
static const int kNodeIsActiveShift = 4;
|
6982
7190
|
|
6983
|
-
static const int kJSObjectType =
|
7191
|
+
static const int kJSObjectType = 0xb5;
|
6984
7192
|
static const int kFirstNonstringType = 0x80;
|
6985
7193
|
static const int kOddballType = 0x83;
|
6986
7194
|
static const int kForeignType = 0x87;
|
@@ -7058,7 +7266,7 @@ class Internals {
|
|
7058
7266
|
V8_INLINE static void SetEmbedderData(v8::Isolate* isolate,
|
7059
7267
|
uint32_t slot,
|
7060
7268
|
void* data) {
|
7061
|
-
uint8_t
|
7269
|
+
uint8_t* addr = reinterpret_cast<uint8_t*>(isolate) +
|
7062
7270
|
kIsolateEmbedderDataOffset + slot * kApiPointerSize;
|
7063
7271
|
*reinterpret_cast<void**>(addr) = data;
|
7064
7272
|
}
|
@@ -7214,7 +7422,7 @@ void PersistentBase<T>::Reset() {
|
|
7214
7422
|
|
7215
7423
|
template <class T>
|
7216
7424
|
template <class S>
|
7217
|
-
void PersistentBase<T>::Reset(Isolate* isolate, const
|
7425
|
+
void PersistentBase<T>::Reset(Isolate* isolate, const Local<S>& other) {
|
7218
7426
|
TYPE_CHECK(T, S);
|
7219
7427
|
Reset();
|
7220
7428
|
if (other.IsEmpty()) return;
|
@@ -7305,6 +7513,15 @@ void PersistentBase<T>::MarkPartiallyDependent() {
|
|
7305
7513
|
}
|
7306
7514
|
|
7307
7515
|
|
7516
|
+
template <class T>
|
7517
|
+
void PersistentBase<T>::MarkActive() {
|
7518
|
+
typedef internal::Internals I;
|
7519
|
+
if (this->IsEmpty()) return;
|
7520
|
+
I::UpdateNodeFlag(reinterpret_cast<internal::Object**>(this->val_), true,
|
7521
|
+
I::kNodeIsActiveShift);
|
7522
|
+
}
|
7523
|
+
|
7524
|
+
|
7308
7525
|
template <class T>
|
7309
7526
|
void PersistentBase<T>::SetWrapperClassId(uint16_t class_id) {
|
7310
7527
|
typedef internal::Internals I;
|
@@ -7511,14 +7728,14 @@ int FunctionCallbackInfo<T>::Length() const {
|
|
7511
7728
|
return length_;
|
7512
7729
|
}
|
7513
7730
|
|
7514
|
-
ScriptOrigin::ScriptOrigin(
|
7515
|
-
|
7516
|
-
|
7517
|
-
|
7518
|
-
|
7519
|
-
|
7520
|
-
|
7521
|
-
|
7731
|
+
ScriptOrigin::ScriptOrigin(Local<Value> resource_name,
|
7732
|
+
Local<Integer> resource_line_offset,
|
7733
|
+
Local<Integer> resource_column_offset,
|
7734
|
+
Local<Boolean> resource_is_shared_cross_origin,
|
7735
|
+
Local<Integer> script_id,
|
7736
|
+
Local<Boolean> resource_is_embedder_debug_script,
|
7737
|
+
Local<Value> source_map_url,
|
7738
|
+
Local<Boolean> resource_is_opaque)
|
7522
7739
|
: resource_name_(resource_name),
|
7523
7740
|
resource_line_offset_(resource_line_offset),
|
7524
7741
|
resource_column_offset_(resource_column_offset),
|
@@ -7530,27 +7747,23 @@ ScriptOrigin::ScriptOrigin(Handle<Value> resource_name,
|
|
7530
7747
|
script_id_(script_id),
|
7531
7748
|
source_map_url_(source_map_url) {}
|
7532
7749
|
|
7533
|
-
|
7534
|
-
return resource_name_;
|
7535
|
-
}
|
7750
|
+
Local<Value> ScriptOrigin::ResourceName() const { return resource_name_; }
|
7536
7751
|
|
7537
7752
|
|
7538
|
-
|
7753
|
+
Local<Integer> ScriptOrigin::ResourceLineOffset() const {
|
7539
7754
|
return resource_line_offset_;
|
7540
7755
|
}
|
7541
7756
|
|
7542
7757
|
|
7543
|
-
|
7758
|
+
Local<Integer> ScriptOrigin::ResourceColumnOffset() const {
|
7544
7759
|
return resource_column_offset_;
|
7545
7760
|
}
|
7546
7761
|
|
7547
7762
|
|
7548
|
-
|
7549
|
-
return script_id_;
|
7550
|
-
}
|
7763
|
+
Local<Integer> ScriptOrigin::ScriptID() const { return script_id_; }
|
7551
7764
|
|
7552
7765
|
|
7553
|
-
|
7766
|
+
Local<Value> ScriptOrigin::SourceMapUrl() const { return source_map_url_; }
|
7554
7767
|
|
7555
7768
|
|
7556
7769
|
ScriptCompiler::Source::Source(Local<String> string, const ScriptOrigin& origin,
|
@@ -7580,12 +7793,12 @@ const ScriptCompiler::CachedData* ScriptCompiler::Source::GetCachedData()
|
|
7580
7793
|
}
|
7581
7794
|
|
7582
7795
|
|
7583
|
-
|
7796
|
+
Local<Boolean> Boolean::New(Isolate* isolate, bool value) {
|
7584
7797
|
return value ? True(isolate) : False(isolate);
|
7585
7798
|
}
|
7586
7799
|
|
7587
7800
|
|
7588
|
-
void Template::Set(Isolate* isolate, const char* name, v8::
|
7801
|
+
void Template::Set(Isolate* isolate, const char* name, v8::Local<Data> value) {
|
7589
7802
|
Set(v8::String::NewFromUtf8(isolate, name, NewStringType::kNormal)
|
7590
7803
|
.ToLocalChecked(),
|
7591
7804
|
value);
|
@@ -7932,6 +8145,14 @@ Promise* Promise::Cast(v8::Value* value) {
|
|
7932
8145
|
}
|
7933
8146
|
|
7934
8147
|
|
8148
|
+
Proxy* Proxy::Cast(v8::Value* value) {
|
8149
|
+
#ifdef V8_ENABLE_CHECKS
|
8150
|
+
CheckCast(value);
|
8151
|
+
#endif
|
8152
|
+
return static_cast<Proxy*>(value);
|
8153
|
+
}
|
8154
|
+
|
8155
|
+
|
7935
8156
|
Promise::Resolver* Promise::Resolver::Cast(v8::Value* value) {
|
7936
8157
|
#ifdef V8_ENABLE_CHECKS
|
7937
8158
|
CheckCast(value);
|
@@ -8097,40 +8318,46 @@ ReturnValue<T> PropertyCallbackInfo<T>::GetReturnValue() const {
|
|
8097
8318
|
return ReturnValue<T>(&args_[kReturnValueIndex]);
|
8098
8319
|
}
|
8099
8320
|
|
8321
|
+
template <typename T>
|
8322
|
+
bool PropertyCallbackInfo<T>::ShouldThrowOnError() const {
|
8323
|
+
typedef internal::Internals I;
|
8324
|
+
return args_[kShouldThrowOnErrorIndex] != I::IntToSmi(0);
|
8325
|
+
}
|
8326
|
+
|
8100
8327
|
|
8101
|
-
|
8328
|
+
Local<Primitive> Undefined(Isolate* isolate) {
|
8102
8329
|
typedef internal::Object* S;
|
8103
8330
|
typedef internal::Internals I;
|
8104
8331
|
I::CheckInitialized(isolate);
|
8105
8332
|
S* slot = I::GetRoot(isolate, I::kUndefinedValueRootIndex);
|
8106
|
-
return
|
8333
|
+
return Local<Primitive>(reinterpret_cast<Primitive*>(slot));
|
8107
8334
|
}
|
8108
8335
|
|
8109
8336
|
|
8110
|
-
|
8337
|
+
Local<Primitive> Null(Isolate* isolate) {
|
8111
8338
|
typedef internal::Object* S;
|
8112
8339
|
typedef internal::Internals I;
|
8113
8340
|
I::CheckInitialized(isolate);
|
8114
8341
|
S* slot = I::GetRoot(isolate, I::kNullValueRootIndex);
|
8115
|
-
return
|
8342
|
+
return Local<Primitive>(reinterpret_cast<Primitive*>(slot));
|
8116
8343
|
}
|
8117
8344
|
|
8118
8345
|
|
8119
|
-
|
8346
|
+
Local<Boolean> True(Isolate* isolate) {
|
8120
8347
|
typedef internal::Object* S;
|
8121
8348
|
typedef internal::Internals I;
|
8122
8349
|
I::CheckInitialized(isolate);
|
8123
8350
|
S* slot = I::GetRoot(isolate, I::kTrueValueRootIndex);
|
8124
|
-
return
|
8351
|
+
return Local<Boolean>(reinterpret_cast<Boolean*>(slot));
|
8125
8352
|
}
|
8126
8353
|
|
8127
8354
|
|
8128
|
-
|
8355
|
+
Local<Boolean> False(Isolate* isolate) {
|
8129
8356
|
typedef internal::Object* S;
|
8130
8357
|
typedef internal::Internals I;
|
8131
8358
|
I::CheckInitialized(isolate);
|
8132
8359
|
S* slot = I::GetRoot(isolate, I::kFalseValueRootIndex);
|
8133
|
-
return
|
8360
|
+
return Local<Boolean>(reinterpret_cast<Boolean*>(slot));
|
8134
8361
|
}
|
8135
8362
|
|
8136
8363
|
|
@@ -8166,7 +8393,7 @@ int64_t Isolate::AdjustAmountOfExternalAllocatedMemory(
|
|
8166
8393
|
if (change_in_bytes > 0 &&
|
8167
8394
|
amount - *amount_of_external_allocated_memory_at_last_global_gc >
|
8168
8395
|
I::kExternalAllocationLimit) {
|
8169
|
-
|
8396
|
+
ReportExternalAllocationLimitReached();
|
8170
8397
|
}
|
8171
8398
|
*amount_of_external_allocated_memory = amount;
|
8172
8399
|
return *amount_of_external_allocated_memory;
|
@@ -8238,7 +8465,7 @@ bool V8::IsDead() {
|
|
8238
8465
|
}
|
8239
8466
|
|
8240
8467
|
|
8241
|
-
bool V8::AddMessageListener(MessageCallback that,
|
8468
|
+
bool V8::AddMessageListener(MessageCallback that, Local<Value> data) {
|
8242
8469
|
Isolate* isolate = Isolate::GetCurrent();
|
8243
8470
|
return isolate->AddMessageListener(that, data);
|
8244
8471
|
}
|
@@ -8271,17 +8498,17 @@ void V8::SetFatalErrorHandler(FatalErrorCallback callback) {
|
|
8271
8498
|
}
|
8272
8499
|
|
8273
8500
|
|
8274
|
-
void V8::RemoveGCPrologueCallback(
|
8501
|
+
void V8::RemoveGCPrologueCallback(GCCallback callback) {
|
8275
8502
|
Isolate* isolate = Isolate::GetCurrent();
|
8276
8503
|
isolate->RemoveGCPrologueCallback(
|
8277
|
-
reinterpret_cast<v8::Isolate::
|
8504
|
+
reinterpret_cast<v8::Isolate::GCCallback>(callback));
|
8278
8505
|
}
|
8279
8506
|
|
8280
8507
|
|
8281
|
-
void V8::RemoveGCEpilogueCallback(
|
8508
|
+
void V8::RemoveGCEpilogueCallback(GCCallback callback) {
|
8282
8509
|
Isolate* isolate = Isolate::GetCurrent();
|
8283
8510
|
isolate->RemoveGCEpilogueCallback(
|
8284
|
-
reinterpret_cast<v8::Isolate::
|
8511
|
+
reinterpret_cast<v8::Isolate::GCCallback>(callback));
|
8285
8512
|
}
|
8286
8513
|
|
8287
8514
|
|
@@ -8356,4 +8583,4 @@ void V8::VisitHandlesForPartialDependence(Isolate* isolate,
|
|
8356
8583
|
#undef TYPE_CHECK
|
8357
8584
|
|
8358
8585
|
|
8359
|
-
#endif //
|
8586
|
+
#endif // INCLUDE_V8_H_
|