@zowe/cli 8.37.1 → 8.39.0
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.
- package/lib/zosfiles/edit/Edit.utils.d.ts.map +1 -1
- package/lib/zosfiles/edit/Edit.utils.js.map +1 -1
- package/node_modules/@zowe/core-for-zowe-sdk/lib/constants/Core.constants.d.ts +8 -0
- package/node_modules/@zowe/core-for-zowe-sdk/lib/constants/Core.constants.d.ts.map +1 -1
- package/node_modules/@zowe/core-for-zowe-sdk/lib/constants/Core.constants.js +31 -0
- package/node_modules/@zowe/core-for-zowe-sdk/lib/constants/Core.constants.js.map +1 -1
- package/node_modules/@zowe/core-for-zowe-sdk/package.json +3 -3
- package/node_modules/@zowe/imperative/lib/config/src/ProfileCredentials.d.ts.map +1 -1
- package/node_modules/@zowe/imperative/lib/config/src/ProfileCredentials.js +15 -1
- package/node_modules/@zowe/imperative/lib/config/src/ProfileCredentials.js.map +1 -1
- package/node_modules/@zowe/imperative/lib/imperative/src/config/cmd/report-env/EnvQuery.d.ts.map +1 -1
- package/node_modules/@zowe/imperative/lib/imperative/src/config/cmd/report-env/EnvQuery.js +1 -2
- package/node_modules/@zowe/imperative/lib/imperative/src/config/cmd/report-env/EnvQuery.js.map +1 -1
- package/node_modules/@zowe/imperative/lib/rest/index.d.ts +1 -0
- package/node_modules/@zowe/imperative/lib/rest/index.d.ts.map +1 -1
- package/node_modules/@zowe/imperative/lib/rest/index.js +1 -0
- package/node_modules/@zowe/imperative/lib/rest/index.js.map +1 -1
- package/node_modules/@zowe/imperative/lib/rest/src/session/AbstractSession.d.ts +16 -2
- package/node_modules/@zowe/imperative/lib/rest/src/session/AbstractSession.d.ts.map +1 -1
- package/node_modules/@zowe/imperative/lib/rest/src/session/AbstractSession.js +57 -9
- package/node_modules/@zowe/imperative/lib/rest/src/session/AbstractSession.js.map +1 -1
- package/node_modules/@zowe/imperative/lib/rest/src/session/SessConstants.d.ts +29 -0
- package/node_modules/@zowe/imperative/lib/rest/src/session/SessConstants.d.ts.map +1 -1
- package/node_modules/@zowe/imperative/lib/rest/src/session/SessConstants.js +32 -1
- package/node_modules/@zowe/imperative/lib/rest/src/session/SessConstants.js.map +1 -1
- package/node_modules/@zowe/imperative/lib/rest/src/session/doc/IApimlDecision.d.ts +44 -0
- package/node_modules/@zowe/imperative/lib/rest/src/session/doc/IApimlDecision.d.ts.map +1 -0
- package/node_modules/@zowe/imperative/lib/rest/src/session/doc/IApimlDecision.js +40 -0
- package/node_modules/@zowe/imperative/lib/rest/src/session/doc/IApimlDecision.js.map +1 -0
- package/node_modules/@zowe/imperative/lib/rest/src/session/doc/ISession.d.ts +11 -0
- package/node_modules/@zowe/imperative/lib/rest/src/session/doc/ISession.d.ts.map +1 -1
- package/node_modules/@zowe/imperative/package.json +2 -2
- package/node_modules/@zowe/imperative/web-help/package-lock.json +62 -61
- package/node_modules/@zowe/provisioning-for-zowe-sdk/package.json +4 -4
- package/node_modules/@zowe/secrets-for-zowe-sdk/package.json +1 -1
- package/node_modules/@zowe/secrets-for-zowe-sdk/prebuilds/keyring.darwin-arm64.node +0 -0
- package/node_modules/@zowe/secrets-for-zowe-sdk/prebuilds/keyring.darwin-x64.node +0 -0
- package/node_modules/@zowe/secrets-for-zowe-sdk/prebuilds/keyring.linux-arm-gnueabihf.node +0 -0
- package/node_modules/@zowe/secrets-for-zowe-sdk/prebuilds/keyring.linux-arm64-gnu.node +0 -0
- package/node_modules/@zowe/secrets-for-zowe-sdk/prebuilds/keyring.linux-arm64-musl.node +0 -0
- package/node_modules/@zowe/secrets-for-zowe-sdk/prebuilds/keyring.linux-ia32-gnu.node +0 -0
- package/node_modules/@zowe/secrets-for-zowe-sdk/prebuilds/keyring.linux-x64-gnu.node +0 -0
- package/node_modules/@zowe/secrets-for-zowe-sdk/prebuilds/keyring.linux-x64-musl.node +0 -0
- package/node_modules/@zowe/secrets-for-zowe-sdk/prebuilds/keyring.win32-arm64-msvc.node +0 -0
- package/node_modules/@zowe/secrets-for-zowe-sdk/prebuilds/keyring.win32-ia32-msvc.node +0 -0
- package/node_modules/@zowe/secrets-for-zowe-sdk/prebuilds/keyring.win32-x64-msvc.node +0 -0
- package/node_modules/@zowe/secrets-for-zowe-sdk/src/keyring/index.js +86 -18
- package/node_modules/@zowe/zos-console-for-zowe-sdk/package.json +4 -4
- package/node_modules/@zowe/zos-files-for-zowe-sdk/lib/constants/ZosFiles.messages.d.ts.map +1 -1
- package/node_modules/@zowe/zos-files-for-zowe-sdk/lib/constants/ZosFiles.messages.js +27 -0
- package/node_modules/@zowe/zos-files-for-zowe-sdk/lib/constants/ZosFiles.messages.js.map +1 -1
- package/node_modules/@zowe/zos-files-for-zowe-sdk/lib/methods/create/Create.d.ts.map +1 -1
- package/node_modules/@zowe/zos-files-for-zowe-sdk/lib/methods/create/Create.js +57 -2
- package/node_modules/@zowe/zos-files-for-zowe-sdk/lib/methods/create/Create.js.map +1 -1
- package/node_modules/@zowe/zos-files-for-zowe-sdk/lib/methods/delete/Delete.d.ts.map +1 -1
- package/node_modules/@zowe/zos-files-for-zowe-sdk/lib/methods/delete/Delete.js +1 -0
- package/node_modules/@zowe/zos-files-for-zowe-sdk/lib/methods/delete/Delete.js.map +1 -1
- package/node_modules/@zowe/zos-files-for-zowe-sdk/lib/methods/list/List.d.ts.map +1 -1
- package/node_modules/@zowe/zos-files-for-zowe-sdk/lib/methods/list/List.js +1 -0
- package/node_modules/@zowe/zos-files-for-zowe-sdk/lib/methods/list/List.js.map +1 -1
- package/node_modules/@zowe/zos-files-for-zowe-sdk/lib/methods/utilities/Utilities.d.ts +10 -0
- package/node_modules/@zowe/zos-files-for-zowe-sdk/lib/methods/utilities/Utilities.d.ts.map +1 -1
- package/node_modules/@zowe/zos-files-for-zowe-sdk/lib/methods/utilities/Utilities.js +43 -17
- package/node_modules/@zowe/zos-files-for-zowe-sdk/lib/methods/utilities/Utilities.js.map +1 -1
- package/node_modules/@zowe/zos-files-for-zowe-sdk/lib/utils/ZosFilesUtils.d.ts +25 -0
- package/node_modules/@zowe/zos-files-for-zowe-sdk/lib/utils/ZosFilesUtils.d.ts.map +1 -1
- package/node_modules/@zowe/zos-files-for-zowe-sdk/lib/utils/ZosFilesUtils.js +53 -0
- package/node_modules/@zowe/zos-files-for-zowe-sdk/lib/utils/ZosFilesUtils.js.map +1 -1
- package/node_modules/@zowe/zos-files-for-zowe-sdk/package.json +5 -5
- package/node_modules/@zowe/zos-jobs-for-zowe-sdk/lib/CancelJobs.d.ts.map +1 -1
- package/node_modules/@zowe/zos-jobs-for-zowe-sdk/lib/CancelJobs.js +2 -0
- package/node_modules/@zowe/zos-jobs-for-zowe-sdk/lib/CancelJobs.js.map +1 -1
- package/node_modules/@zowe/zos-jobs-for-zowe-sdk/lib/DeleteJobs.d.ts.map +1 -1
- package/node_modules/@zowe/zos-jobs-for-zowe-sdk/lib/DeleteJobs.js +2 -0
- package/node_modules/@zowe/zos-jobs-for-zowe-sdk/lib/DeleteJobs.js.map +1 -1
- package/node_modules/@zowe/zos-jobs-for-zowe-sdk/lib/DownloadJobs.d.ts.map +1 -1
- package/node_modules/@zowe/zos-jobs-for-zowe-sdk/lib/DownloadJobs.js +3 -0
- package/node_modules/@zowe/zos-jobs-for-zowe-sdk/lib/DownloadJobs.js.map +1 -1
- package/node_modules/@zowe/zos-jobs-for-zowe-sdk/lib/GetJobs.d.ts.map +1 -1
- package/node_modules/@zowe/zos-jobs-for-zowe-sdk/lib/GetJobs.js +8 -0
- package/node_modules/@zowe/zos-jobs-for-zowe-sdk/lib/GetJobs.js.map +1 -1
- package/node_modules/@zowe/zos-jobs-for-zowe-sdk/lib/JobsMessages.d.ts.map +1 -1
- package/node_modules/@zowe/zos-jobs-for-zowe-sdk/lib/JobsMessages.js +24 -0
- package/node_modules/@zowe/zos-jobs-for-zowe-sdk/lib/JobsMessages.js.map +1 -1
- package/node_modules/@zowe/zos-jobs-for-zowe-sdk/lib/JobsUtils.d.ts +39 -0
- package/node_modules/@zowe/zos-jobs-for-zowe-sdk/lib/JobsUtils.d.ts.map +1 -0
- package/node_modules/@zowe/zos-jobs-for-zowe-sdk/lib/JobsUtils.js +72 -0
- package/node_modules/@zowe/zos-jobs-for-zowe-sdk/lib/JobsUtils.js.map +1 -0
- package/node_modules/@zowe/zos-jobs-for-zowe-sdk/lib/ModifyJobs.d.ts.map +1 -1
- package/node_modules/@zowe/zos-jobs-for-zowe-sdk/lib/ModifyJobs.js +2 -0
- package/node_modules/@zowe/zos-jobs-for-zowe-sdk/lib/ModifyJobs.js.map +1 -1
- package/node_modules/@zowe/zos-jobs-for-zowe-sdk/lib/SearchJobs.d.ts.map +1 -1
- package/node_modules/@zowe/zos-jobs-for-zowe-sdk/lib/SearchJobs.js +3 -0
- package/node_modules/@zowe/zos-jobs-for-zowe-sdk/lib/SearchJobs.js.map +1 -1
- package/node_modules/@zowe/zos-jobs-for-zowe-sdk/package.json +5 -5
- package/node_modules/@zowe/zos-logs-for-zowe-sdk/package.json +4 -4
- package/node_modules/@zowe/zos-tso-for-zowe-sdk/package.json +5 -5
- package/node_modules/@zowe/zos-uss-for-zowe-sdk/lib/Shell.d.ts.map +1 -1
- package/node_modules/@zowe/zos-uss-for-zowe-sdk/lib/Shell.js +1 -1
- package/node_modules/@zowe/zos-uss-for-zowe-sdk/lib/Shell.js.map +1 -1
- package/node_modules/@zowe/zos-uss-for-zowe-sdk/lib/SshSession.d.ts.map +1 -1
- package/node_modules/@zowe/zos-uss-for-zowe-sdk/lib/SshSession.js.map +1 -1
- package/node_modules/@zowe/zos-uss-for-zowe-sdk/lib/doc/ISshSession.d.ts +14 -0
- package/node_modules/@zowe/zos-uss-for-zowe-sdk/lib/doc/ISshSession.d.ts.map +1 -1
- package/node_modules/@zowe/zos-uss-for-zowe-sdk/package.json +3 -3
- package/node_modules/@zowe/zos-workflows-for-zowe-sdk/lib/Create.d.ts.map +1 -1
- package/node_modules/@zowe/zos-workflows-for-zowe-sdk/lib/Create.js +3 -2
- package/node_modules/@zowe/zos-workflows-for-zowe-sdk/lib/Create.js.map +1 -1
- package/node_modules/@zowe/zos-workflows-for-zowe-sdk/package.json +5 -5
- package/node_modules/@zowe/zosmf-for-zowe-sdk/lib/constants/Zosmf.profile.d.ts.map +1 -1
- package/node_modules/@zowe/zosmf-for-zowe-sdk/lib/constants/Zosmf.profile.js +9 -0
- package/node_modules/@zowe/zosmf-for-zowe-sdk/lib/constants/Zosmf.profile.js.map +1 -1
- package/node_modules/@zowe/zosmf-for-zowe-sdk/package.json +4 -4
- package/node_modules/brace-expansion/dist/commonjs/index.d.ts +4 -0
- package/node_modules/brace-expansion/dist/commonjs/index.d.ts.map +1 -1
- package/node_modules/brace-expansion/dist/commonjs/index.js +69 -25
- package/node_modules/brace-expansion/dist/commonjs/index.js.map +1 -1
- package/node_modules/brace-expansion/dist/esm/index.d.ts +4 -0
- package/node_modules/brace-expansion/dist/esm/index.d.ts.map +1 -1
- package/node_modules/brace-expansion/dist/esm/index.js +68 -24
- package/node_modules/brace-expansion/dist/esm/index.js.map +1 -1
- package/node_modules/brace-expansion/package.json +2 -1
- package/node_modules/cpu-features/.github/workflows/ci.yml +15 -9
- package/node_modules/cpu-features/.github/workflows/lint.yml +2 -2
- package/node_modules/cpu-features/deps/cpu_features/cpu_features.gyp +1 -0
- package/node_modules/cpu-features/package.json +2 -2
- package/node_modules/markdown-it/dist/index.cjs.js +3696 -5376
- package/node_modules/markdown-it/dist/index.cjs.js.map +1 -0
- package/node_modules/markdown-it/dist/markdown-it.js +1446 -4481
- package/node_modules/markdown-it/dist/markdown-it.js.map +1 -0
- package/node_modules/markdown-it/dist/markdown-it.min.js +3 -2
- package/node_modules/markdown-it/dist/markdown-it.min.js.map +1 -0
- package/node_modules/markdown-it/lib/common/html_re.mjs +9 -9
- package/node_modules/markdown-it/lib/common/utils.mjs +2 -11
- package/node_modules/markdown-it/lib/helpers/parse_link_destination.mjs +1 -1
- package/node_modules/markdown-it/lib/parser_block.mjs +9 -9
- package/node_modules/markdown-it/lib/parser_core.mjs +7 -7
- package/node_modules/markdown-it/lib/parser_inline.mjs +16 -16
- package/node_modules/markdown-it/lib/renderer.mjs +2 -2
- package/node_modules/markdown-it/lib/rules_block/blockquote.mjs +6 -6
- package/node_modules/markdown-it/lib/rules_block/code.mjs +2 -2
- package/node_modules/markdown-it/lib/rules_block/fence.mjs +4 -4
- package/node_modules/markdown-it/lib/rules_block/heading.mjs +7 -7
- package/node_modules/markdown-it/lib/rules_block/hr.mjs +2 -2
- package/node_modules/markdown-it/lib/rules_block/html_block.mjs +6 -6
- package/node_modules/markdown-it/lib/rules_block/lheading.mjs +8 -8
- package/node_modules/markdown-it/lib/rules_block/list.mjs +6 -6
- package/node_modules/markdown-it/lib/rules_block/paragraph.mjs +5 -5
- package/node_modules/markdown-it/lib/rules_block/reference.mjs +1 -1
- package/node_modules/markdown-it/lib/rules_block/state_block.mjs +6 -6
- package/node_modules/markdown-it/lib/rules_block/table.mjs +4 -4
- package/node_modules/markdown-it/lib/rules_core/block.mjs +3 -3
- package/node_modules/markdown-it/lib/rules_core/linkify.mjs +46 -20
- package/node_modules/markdown-it/lib/rules_core/normalize.mjs +2 -2
- package/node_modules/markdown-it/lib/rules_core/smartquotes.mjs +48 -27
- package/node_modules/markdown-it/lib/rules_inline/autolink.mjs +17 -17
- package/node_modules/markdown-it/lib/rules_inline/balance_pairs.mjs +2 -2
- package/node_modules/markdown-it/lib/rules_inline/emphasis.mjs +8 -8
- package/node_modules/markdown-it/lib/rules_inline/entity.mjs +7 -7
- package/node_modules/markdown-it/lib/rules_inline/escape.mjs +15 -1
- package/node_modules/markdown-it/lib/rules_inline/html_inline.mjs +1 -1
- package/node_modules/markdown-it/lib/rules_inline/link.mjs +1 -1
- package/node_modules/markdown-it/lib/rules_inline/linkify.mjs +27 -9
- package/node_modules/markdown-it/lib/rules_inline/state_inline.mjs +2 -2
- package/node_modules/markdown-it/lib/rules_inline/strikethrough.mjs +10 -10
- package/node_modules/markdown-it/lib/token.mjs +12 -12
- package/node_modules/markdown-it/package.json +27 -34
- package/node_modules/nan/.github/workflows/ci.yml +46 -0
- package/node_modules/nan/.pre-commit-config.yaml +8 -0
- package/node_modules/nan/CHANGELOG.md +56 -1
- package/node_modules/nan/README.md +7 -6
- package/node_modules/nan/doc/methods.md +17 -0
- package/node_modules/nan/doc/string_bytes.md +19 -0
- package/node_modules/nan/doc/v8_internals.md +16 -4
- package/node_modules/nan/nan.h +274 -26
- package/node_modules/nan/nan_callbacks.h +50 -1
- package/node_modules/nan/nan_callbacks_12_inl.h +294 -50
- package/node_modules/nan/nan_callbacks_pre_12_inl.h +10 -2
- package/node_modules/nan/nan_implementation_12_inl.h +19 -3
- package/node_modules/nan/nan_maybe_43_inl.h +7 -2
- package/node_modules/nan/nan_maybe_pre_43_inl.h +1 -1
- package/node_modules/nan/nan_scriptorigin.h +22 -1
- package/node_modules/nan/nan_typedarray_contents.h +1 -1
- package/node_modules/nan/nan_weak.h +16 -0
- package/node_modules/nan/package.json +5 -5
- package/package.json +16 -14
|
@@ -9,9 +9,45 @@
|
|
|
9
9
|
#ifndef NAN_CALLBACKS_12_INL_H_
|
|
10
10
|
#define NAN_CALLBACKS_12_INL_H_
|
|
11
11
|
|
|
12
|
+
#if defined(V8_MAJOR_VERSION) && \
|
|
13
|
+
(V8_MAJOR_VERSION > 14 || \
|
|
14
|
+
(V8_MAJOR_VERSION == 14 && \
|
|
15
|
+
defined(V8_MINOR_VERSION) && V8_MINOR_VERSION >= 6))
|
|
16
|
+
# define NAN_HAS_PROPERTY_CALLBACK_INFO_HOLDER_V2 1
|
|
17
|
+
#endif
|
|
18
|
+
|
|
19
|
+
// 14.7 renamed HolderV2()/SetPrototypeV2() to Holder()/SetPrototype(); the V2
|
|
20
|
+
// names were removed in 15.3.
|
|
21
|
+
#if defined(V8_MAJOR_VERSION) && \
|
|
22
|
+
(V8_MAJOR_VERSION > 14 || \
|
|
23
|
+
(V8_MAJOR_VERSION == 14 && \
|
|
24
|
+
defined(V8_MINOR_VERSION) && V8_MINOR_VERSION >= 7))
|
|
25
|
+
# define NAN_HAS_PROPERTY_CALLBACK_INFO_HOLDER_V2_AS_HOLDER 1
|
|
26
|
+
#endif
|
|
27
|
+
|
|
28
|
+
// 14.8 added setter callbacks taking PropertyCallbackInfo<v8::Boolean>; the
|
|
29
|
+
// PropertyCallbackInfo<void> ones were removed in 15.3.
|
|
30
|
+
#if defined(V8_MAJOR_VERSION) && \
|
|
31
|
+
(V8_MAJOR_VERSION > 14 || \
|
|
32
|
+
(V8_MAJOR_VERSION == 14 && \
|
|
33
|
+
defined(V8_MINOR_VERSION) && V8_MINOR_VERSION >= 8))
|
|
34
|
+
# define NAN_HAS_PROPERTY_CALLBACK_INFO_BOOLEAN_SETTER 1
|
|
35
|
+
#endif
|
|
36
|
+
|
|
37
|
+
namespace imp {
|
|
38
|
+
// The V8 value type behind Nan::PropertyCallbackInfo<T> and
|
|
39
|
+
// Nan::ReturnValue<T>. Setters keep PropertyCallbackInfo<void> in Nan's API.
|
|
40
|
+
template<typename T> struct PropertyCallbackValue { typedef T Type; };
|
|
41
|
+
#if defined(NAN_HAS_PROPERTY_CALLBACK_INFO_BOOLEAN_SETTER)
|
|
42
|
+
template<> struct PropertyCallbackValue<void> { typedef v8::Boolean Type; };
|
|
43
|
+
#endif
|
|
44
|
+
typedef v8::PropertyCallbackInfo<PropertyCallbackValue<void>::Type>
|
|
45
|
+
SetterPropertyCallbackInfo;
|
|
46
|
+
} // end of namespace imp
|
|
47
|
+
|
|
12
48
|
template<typename T>
|
|
13
49
|
class ReturnValue {
|
|
14
|
-
v8::ReturnValue<T> value_;
|
|
50
|
+
v8::ReturnValue<typename imp::PropertyCallbackValue<T>::Type> value_;
|
|
15
51
|
|
|
16
52
|
public:
|
|
17
53
|
template <class S>
|
|
@@ -89,6 +125,12 @@ class ReturnValue {
|
|
|
89
125
|
inline void Set(S *whatever) { TYPE_CHECK(S*, v8::Primitive); }
|
|
90
126
|
};
|
|
91
127
|
|
|
128
|
+
#if defined(NAN_HAS_PROPERTY_CALLBACK_INFO_HOLDER_V2)
|
|
129
|
+
template<>
|
|
130
|
+
template <typename S>
|
|
131
|
+
inline void ReturnValue<void>::Set(const v8::Local<S> &) {}
|
|
132
|
+
#endif
|
|
133
|
+
|
|
92
134
|
template<typename T>
|
|
93
135
|
class FunctionCallbackInfo {
|
|
94
136
|
const v8::FunctionCallbackInfo<T> &info_;
|
|
@@ -106,10 +148,24 @@ class FunctionCallbackInfo {
|
|
|
106
148
|
}
|
|
107
149
|
|
|
108
150
|
#if NODE_MAJOR_VERSION < 10
|
|
109
|
-
inline v8::Local<v8::Function> Callee() const {
|
|
151
|
+
NAN_DEPRECATED inline v8::Local<v8::Function> Callee() const {
|
|
152
|
+
return info_.Callee();
|
|
153
|
+
}
|
|
110
154
|
#endif
|
|
111
155
|
inline v8::Local<v8::Value> Data() const { return data_; }
|
|
112
|
-
inline v8::Local<v8::Object> Holder() const {
|
|
156
|
+
inline v8::Local<v8::Object> Holder() const {
|
|
157
|
+
#if defined(V8_MAJOR_VERSION) && \
|
|
158
|
+
(V8_MAJOR_VERSION > 12 || \
|
|
159
|
+
(V8_MAJOR_VERSION == 12 && \
|
|
160
|
+
(defined(V8_MINOR_VERSION) && \
|
|
161
|
+
(V8_MINOR_VERSION > 5 || \
|
|
162
|
+
(V8_MINOR_VERSION == 5 && defined(V8_BUILD_NUMBER) && \
|
|
163
|
+
V8_BUILD_NUMBER >= 214)))))
|
|
164
|
+
return info_.This();
|
|
165
|
+
#else
|
|
166
|
+
return info_.Holder();
|
|
167
|
+
#endif
|
|
168
|
+
}
|
|
113
169
|
inline bool IsConstructCall() const { return info_.IsConstructCall(); }
|
|
114
170
|
inline int Length() const { return info_.Length(); }
|
|
115
171
|
inline v8::Local<v8::Value> operator[](int i) const { return info_[i]; }
|
|
@@ -133,20 +189,37 @@ class FunctionCallbackInfo {
|
|
|
133
189
|
|
|
134
190
|
template<typename T>
|
|
135
191
|
class PropertyCallbackInfo {
|
|
136
|
-
|
|
192
|
+
typedef v8::PropertyCallbackInfo<
|
|
193
|
+
typename imp::PropertyCallbackValue<T>::Type> Info;
|
|
194
|
+
const Info &info_;
|
|
137
195
|
const v8::Local<v8::Value> data_;
|
|
138
196
|
|
|
139
197
|
public:
|
|
140
198
|
explicit inline PropertyCallbackInfo(
|
|
141
|
-
const
|
|
199
|
+
const Info &info
|
|
142
200
|
, const v8::Local<v8::Value> data) :
|
|
143
201
|
info_(info)
|
|
144
202
|
, data_(data) {}
|
|
145
203
|
|
|
146
204
|
inline v8::Isolate* GetIsolate() const { return info_.GetIsolate(); }
|
|
147
205
|
inline v8::Local<v8::Value> Data() const { return data_; }
|
|
148
|
-
inline v8::Local<v8::Object> This() const {
|
|
149
|
-
|
|
206
|
+
inline v8::Local<v8::Object> This() const {
|
|
207
|
+
#if defined(NAN_HAS_PROPERTY_CALLBACK_INFO_HOLDER_V2_AS_HOLDER)
|
|
208
|
+
return info_.Holder();
|
|
209
|
+
#elif defined(NAN_HAS_PROPERTY_CALLBACK_INFO_HOLDER_V2)
|
|
210
|
+
return info_.HolderV2();
|
|
211
|
+
#else
|
|
212
|
+
return info_.This();
|
|
213
|
+
#endif
|
|
214
|
+
}
|
|
215
|
+
inline v8::Local<v8::Object> Holder() const {
|
|
216
|
+
#if defined(NAN_HAS_PROPERTY_CALLBACK_INFO_HOLDER_V2) && \
|
|
217
|
+
!defined(NAN_HAS_PROPERTY_CALLBACK_INFO_HOLDER_V2_AS_HOLDER)
|
|
218
|
+
return info_.HolderV2();
|
|
219
|
+
#else
|
|
220
|
+
return info_.Holder();
|
|
221
|
+
#endif
|
|
222
|
+
}
|
|
150
223
|
inline ReturnValue<T> GetReturnValue() const {
|
|
151
224
|
return ReturnValue<T>(info_.GetReturnValue());
|
|
152
225
|
}
|
|
@@ -164,14 +237,27 @@ class PropertyCallbackInfo {
|
|
|
164
237
|
NAN_DISALLOW_ASSIGN_COPY_MOVE(PropertyCallbackInfo)
|
|
165
238
|
};
|
|
166
239
|
|
|
240
|
+
// Gated on V8_EXTERNAL_POINTER_TAG_COUNT (defined alongside the tagged
|
|
241
|
+
// Value() API) rather than a V8_MAJOR_VERSION cutoff, since Node and
|
|
242
|
+
// Chromium/Electron ship divergent V8 snapshots under the same major.
|
|
243
|
+
// Tag must match the one used by imp::NewExternal.
|
|
244
|
+
inline void* GetExternalValue(v8::Local<v8::External> ext) {
|
|
245
|
+
#ifdef V8_EXTERNAL_POINTER_TAG_COUNT
|
|
246
|
+
return ext->Value(v8::kExternalPointerTypeTagDefault);
|
|
247
|
+
#else
|
|
248
|
+
return ext->Value();
|
|
249
|
+
#endif
|
|
250
|
+
}
|
|
251
|
+
|
|
167
252
|
namespace imp {
|
|
253
|
+
|
|
168
254
|
static
|
|
169
255
|
void FunctionCallbackWrapper(const v8::FunctionCallbackInfo<v8::Value> &info) {
|
|
170
256
|
v8::Local<v8::Object> obj = info.Data().As<v8::Object>();
|
|
171
257
|
FunctionCallback callback = reinterpret_cast<FunctionCallback>(
|
|
172
258
|
reinterpret_cast<intptr_t>(
|
|
173
|
-
obj->GetInternalField(kFunctionIndex)
|
|
174
|
-
.As<v8::Value>().As<v8::External>()
|
|
259
|
+
Nan::GetExternalValue(obj->GetInternalField(kFunctionIndex)
|
|
260
|
+
.As<v8::Value>().As<v8::External>())));
|
|
175
261
|
FunctionCallbackInfo<v8::Value>
|
|
176
262
|
cbinfo(info, obj->GetInternalField(kDataIndex).As<v8::Value>());
|
|
177
263
|
callback(cbinfo);
|
|
@@ -189,8 +275,8 @@ void GetterCallbackWrapper(
|
|
|
189
275
|
cbinfo(info, obj->GetInternalField(kDataIndex).As<v8::Value>());
|
|
190
276
|
GetterCallback callback = reinterpret_cast<GetterCallback>(
|
|
191
277
|
reinterpret_cast<intptr_t>(
|
|
192
|
-
obj->GetInternalField(kGetterIndex)
|
|
193
|
-
.As<v8::Value>().As<v8::External>()
|
|
278
|
+
Nan::GetExternalValue(obj->GetInternalField(kGetterIndex)
|
|
279
|
+
.As<v8::Value>().As<v8::External>())));
|
|
194
280
|
callback(property.As<v8::String>(), cbinfo);
|
|
195
281
|
}
|
|
196
282
|
|
|
@@ -201,21 +287,21 @@ static
|
|
|
201
287
|
void SetterCallbackWrapper(
|
|
202
288
|
v8::Local<v8::Name> property
|
|
203
289
|
, v8::Local<v8::Value> value
|
|
204
|
-
, const
|
|
290
|
+
, const SetterPropertyCallbackInfo &info) {
|
|
205
291
|
v8::Local<v8::Object> obj = info.Data().As<v8::Object>();
|
|
206
292
|
PropertyCallbackInfo<void>
|
|
207
293
|
cbinfo(info, obj->GetInternalField(kDataIndex).As<v8::Value>());
|
|
208
294
|
SetterCallback callback = reinterpret_cast<SetterCallback>(
|
|
209
295
|
reinterpret_cast<intptr_t>(
|
|
210
|
-
obj->GetInternalField(kSetterIndex)
|
|
211
|
-
.As<v8::Value>().As<v8::External>()
|
|
296
|
+
Nan::GetExternalValue(obj->GetInternalField(kSetterIndex)
|
|
297
|
+
.As<v8::Value>().As<v8::External>())));
|
|
212
298
|
callback(property.As<v8::String>(), value, cbinfo);
|
|
213
299
|
}
|
|
214
300
|
|
|
215
301
|
typedef void (*NativeSetter)(
|
|
216
302
|
v8::Local<v8::Name>
|
|
217
303
|
, v8::Local<v8::Value>
|
|
218
|
-
, const
|
|
304
|
+
, const SetterPropertyCallbackInfo &);
|
|
219
305
|
#else
|
|
220
306
|
static
|
|
221
307
|
void GetterCallbackWrapper(
|
|
@@ -226,8 +312,8 @@ void GetterCallbackWrapper(
|
|
|
226
312
|
cbinfo(info, obj->GetInternalField(kDataIndex).As<v8::Value>());
|
|
227
313
|
GetterCallback callback = reinterpret_cast<GetterCallback>(
|
|
228
314
|
reinterpret_cast<intptr_t>(
|
|
229
|
-
obj->GetInternalField(kGetterIndex)
|
|
230
|
-
.As<v8::Value>().As<v8::External>()
|
|
315
|
+
Nan::GetExternalValue(obj->GetInternalField(kGetterIndex)
|
|
316
|
+
.As<v8::Value>().As<v8::External>())));
|
|
231
317
|
callback(property, cbinfo);
|
|
232
318
|
}
|
|
233
319
|
|
|
@@ -244,8 +330,8 @@ void SetterCallbackWrapper(
|
|
|
244
330
|
cbinfo(info, obj->GetInternalField(kDataIndex).As<v8::Value>());
|
|
245
331
|
SetterCallback callback = reinterpret_cast<SetterCallback>(
|
|
246
332
|
reinterpret_cast<intptr_t>(
|
|
247
|
-
obj->GetInternalField(kSetterIndex)
|
|
248
|
-
.As<v8::Value>().As<v8::External>()
|
|
333
|
+
Nan::GetExternalValue(obj->GetInternalField(kSetterIndex)
|
|
334
|
+
.As<v8::Value>().As<v8::External>())));
|
|
249
335
|
callback(property, value, cbinfo);
|
|
250
336
|
}
|
|
251
337
|
|
|
@@ -256,6 +342,47 @@ typedef void (*NativeSetter)(
|
|
|
256
342
|
#endif
|
|
257
343
|
|
|
258
344
|
#if NODE_MODULE_VERSION > NODE_0_12_MODULE_VERSION
|
|
345
|
+
|
|
346
|
+
#if defined(V8_MAJOR_VERSION) && (V8_MAJOR_VERSION > 12 || \
|
|
347
|
+
(V8_MAJOR_VERSION == 12 && defined(V8_MINOR_VERSION) && V8_MINOR_VERSION > 4))
|
|
348
|
+
static
|
|
349
|
+
v8::Intercepted PropertyGetterCallbackWrapper(
|
|
350
|
+
v8::Local<v8::Name> property
|
|
351
|
+
, const v8::PropertyCallbackInfo<v8::Value> &info) {
|
|
352
|
+
v8::Local<v8::Object> obj = info.Data().As<v8::Object>();
|
|
353
|
+
PropertyCallbackInfo<v8::Value>
|
|
354
|
+
cbinfo(info, obj->GetInternalField(kDataIndex).As<v8::Value>());
|
|
355
|
+
PropertyGetterCallback callback = reinterpret_cast<PropertyGetterCallback>(
|
|
356
|
+
reinterpret_cast<intptr_t>(
|
|
357
|
+
Nan::GetExternalValue(obj->GetInternalField(kPropertyGetterIndex)
|
|
358
|
+
.As<v8::Value>().As<v8::External>())));
|
|
359
|
+
return callback(property.As<v8::String>(), cbinfo);
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
typedef v8::Intercepted (*NativePropertyGetter)
|
|
363
|
+
(v8::Local<v8::Name>, const v8::PropertyCallbackInfo<v8::Value> &);
|
|
364
|
+
|
|
365
|
+
static
|
|
366
|
+
v8::Intercepted PropertySetterCallbackWrapper(
|
|
367
|
+
v8::Local<v8::Name> property
|
|
368
|
+
, v8::Local<v8::Value> value
|
|
369
|
+
, const SetterPropertyCallbackInfo &info) {
|
|
370
|
+
v8::Local<v8::Object> obj = info.Data().As<v8::Object>();
|
|
371
|
+
PropertyCallbackInfo<void>
|
|
372
|
+
cbinfo(info, obj->GetInternalField(kDataIndex).As<v8::Value>());
|
|
373
|
+
PropertySetterCallback callback = reinterpret_cast<PropertySetterCallback>(
|
|
374
|
+
reinterpret_cast<intptr_t>(
|
|
375
|
+
Nan::GetExternalValue(obj->GetInternalField(kPropertySetterIndex)
|
|
376
|
+
.As<v8::Value>().As<v8::External>())));
|
|
377
|
+
return callback(property.As<v8::String>(), value, cbinfo);
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
typedef v8::Intercepted (*NativePropertySetter)(
|
|
381
|
+
v8::Local<v8::Name>
|
|
382
|
+
, v8::Local<v8::Value>
|
|
383
|
+
, const SetterPropertyCallbackInfo &);
|
|
384
|
+
|
|
385
|
+
#else
|
|
259
386
|
static
|
|
260
387
|
void PropertyGetterCallbackWrapper(
|
|
261
388
|
v8::Local<v8::Name> property
|
|
@@ -265,8 +392,8 @@ void PropertyGetterCallbackWrapper(
|
|
|
265
392
|
cbinfo(info, obj->GetInternalField(kDataIndex).As<v8::Value>());
|
|
266
393
|
PropertyGetterCallback callback = reinterpret_cast<PropertyGetterCallback>(
|
|
267
394
|
reinterpret_cast<intptr_t>(
|
|
268
|
-
obj->GetInternalField(kPropertyGetterIndex)
|
|
269
|
-
.As<v8::Value>().As<v8::External>()
|
|
395
|
+
Nan::GetExternalValue(obj->GetInternalField(kPropertyGetterIndex)
|
|
396
|
+
.As<v8::Value>().As<v8::External>())));
|
|
270
397
|
callback(property.As<v8::String>(), cbinfo);
|
|
271
398
|
}
|
|
272
399
|
|
|
@@ -283,8 +410,8 @@ void PropertySetterCallbackWrapper(
|
|
|
283
410
|
cbinfo(info, obj->GetInternalField(kDataIndex).As<v8::Value>());
|
|
284
411
|
PropertySetterCallback callback = reinterpret_cast<PropertySetterCallback>(
|
|
285
412
|
reinterpret_cast<intptr_t>(
|
|
286
|
-
obj->GetInternalField(kPropertySetterIndex)
|
|
287
|
-
.As<v8::Value>().As<v8::External>()
|
|
413
|
+
Nan::GetExternalValue(obj->GetInternalField(kPropertySetterIndex)
|
|
414
|
+
.As<v8::Value>().As<v8::External>())));
|
|
288
415
|
callback(property.As<v8::String>(), value, cbinfo);
|
|
289
416
|
}
|
|
290
417
|
|
|
@@ -292,6 +419,7 @@ typedef void (*NativePropertySetter)(
|
|
|
292
419
|
v8::Local<v8::Name>
|
|
293
420
|
, v8::Local<v8::Value>
|
|
294
421
|
, const v8::PropertyCallbackInfo<v8::Value> &);
|
|
422
|
+
#endif
|
|
295
423
|
|
|
296
424
|
static
|
|
297
425
|
void PropertyEnumeratorCallbackWrapper(
|
|
@@ -301,14 +429,51 @@ void PropertyEnumeratorCallbackWrapper(
|
|
|
301
429
|
cbinfo(info, obj->GetInternalField(kDataIndex).As<v8::Value>());
|
|
302
430
|
PropertyEnumeratorCallback callback =
|
|
303
431
|
reinterpret_cast<PropertyEnumeratorCallback>(reinterpret_cast<intptr_t>(
|
|
304
|
-
obj->GetInternalField(kPropertyEnumeratorIndex)
|
|
305
|
-
.As<v8::Value>().As<v8::External>()
|
|
432
|
+
Nan::GetExternalValue(obj->GetInternalField(kPropertyEnumeratorIndex)
|
|
433
|
+
.As<v8::Value>().As<v8::External>())));
|
|
306
434
|
callback(cbinfo);
|
|
307
435
|
}
|
|
308
436
|
|
|
309
437
|
typedef void (*NativePropertyEnumerator)
|
|
310
438
|
(const v8::PropertyCallbackInfo<v8::Array> &);
|
|
311
439
|
|
|
440
|
+
#if defined(V8_MAJOR_VERSION) && (V8_MAJOR_VERSION > 12 || \
|
|
441
|
+
(V8_MAJOR_VERSION == 12 && defined(V8_MINOR_VERSION) && V8_MINOR_VERSION > 4))
|
|
442
|
+
static
|
|
443
|
+
v8::Intercepted PropertyDeleterCallbackWrapper(
|
|
444
|
+
v8::Local<v8::Name> property
|
|
445
|
+
, const v8::PropertyCallbackInfo<v8::Boolean> &info) {
|
|
446
|
+
v8::Local<v8::Object> obj = info.Data().As<v8::Object>();
|
|
447
|
+
PropertyCallbackInfo<v8::Boolean>
|
|
448
|
+
cbinfo(info, obj->GetInternalField(kDataIndex).As<v8::Value>());
|
|
449
|
+
PropertyDeleterCallback callback = reinterpret_cast<PropertyDeleterCallback>(
|
|
450
|
+
reinterpret_cast<intptr_t>(
|
|
451
|
+
Nan::GetExternalValue(obj->GetInternalField(kPropertyDeleterIndex)
|
|
452
|
+
.As<v8::Value>().As<v8::External>())));
|
|
453
|
+
return callback(property.As<v8::String>(), cbinfo);
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
typedef v8::Intercepted (NativePropertyDeleter)
|
|
457
|
+
(v8::Local<v8::Name>, const v8::PropertyCallbackInfo<v8::Boolean> &);
|
|
458
|
+
|
|
459
|
+
|
|
460
|
+
static
|
|
461
|
+
v8::Intercepted PropertyQueryCallbackWrapper(
|
|
462
|
+
v8::Local<v8::Name> property
|
|
463
|
+
, const v8::PropertyCallbackInfo<v8::Integer> &info) {
|
|
464
|
+
v8::Local<v8::Object> obj = info.Data().As<v8::Object>();
|
|
465
|
+
PropertyCallbackInfo<v8::Integer>
|
|
466
|
+
cbinfo(info, obj->GetInternalField(kDataIndex).As<v8::Value>());
|
|
467
|
+
PropertyQueryCallback callback = reinterpret_cast<PropertyQueryCallback>(
|
|
468
|
+
reinterpret_cast<intptr_t>(
|
|
469
|
+
Nan::GetExternalValue(obj->GetInternalField(kPropertyQueryIndex)
|
|
470
|
+
.As<v8::Value>().As<v8::External>())));
|
|
471
|
+
return callback(property.As<v8::String>(), cbinfo);
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
typedef v8::Intercepted (*NativePropertyQuery)
|
|
475
|
+
(v8::Local<v8::Name>, const v8::PropertyCallbackInfo<v8::Integer> &);
|
|
476
|
+
#else
|
|
312
477
|
static
|
|
313
478
|
void PropertyDeleterCallbackWrapper(
|
|
314
479
|
v8::Local<v8::Name> property
|
|
@@ -318,8 +483,8 @@ void PropertyDeleterCallbackWrapper(
|
|
|
318
483
|
cbinfo(info, obj->GetInternalField(kDataIndex).As<v8::Value>());
|
|
319
484
|
PropertyDeleterCallback callback = reinterpret_cast<PropertyDeleterCallback>(
|
|
320
485
|
reinterpret_cast<intptr_t>(
|
|
321
|
-
obj->GetInternalField(kPropertyDeleterIndex)
|
|
322
|
-
.As<v8::Value>().As<v8::External>()
|
|
486
|
+
Nan::GetExternalValue(obj->GetInternalField(kPropertyDeleterIndex)
|
|
487
|
+
.As<v8::Value>().As<v8::External>())));
|
|
323
488
|
callback(property.As<v8::String>(), cbinfo);
|
|
324
489
|
}
|
|
325
490
|
|
|
@@ -335,13 +500,14 @@ void PropertyQueryCallbackWrapper(
|
|
|
335
500
|
cbinfo(info, obj->GetInternalField(kDataIndex).As<v8::Value>());
|
|
336
501
|
PropertyQueryCallback callback = reinterpret_cast<PropertyQueryCallback>(
|
|
337
502
|
reinterpret_cast<intptr_t>(
|
|
338
|
-
obj->GetInternalField(kPropertyQueryIndex)
|
|
339
|
-
.As<v8::Value>().As<v8::External>()
|
|
503
|
+
Nan::GetExternalValue(obj->GetInternalField(kPropertyQueryIndex)
|
|
504
|
+
.As<v8::Value>().As<v8::External>())));
|
|
340
505
|
callback(property.As<v8::String>(), cbinfo);
|
|
341
506
|
}
|
|
342
507
|
|
|
343
508
|
typedef void (*NativePropertyQuery)
|
|
344
509
|
(v8::Local<v8::Name>, const v8::PropertyCallbackInfo<v8::Integer> &);
|
|
510
|
+
#endif
|
|
345
511
|
#else
|
|
346
512
|
static
|
|
347
513
|
void PropertyGetterCallbackWrapper(
|
|
@@ -352,8 +518,8 @@ void PropertyGetterCallbackWrapper(
|
|
|
352
518
|
cbinfo(info, obj->GetInternalField(kDataIndex).As<v8::Value>());
|
|
353
519
|
PropertyGetterCallback callback = reinterpret_cast<PropertyGetterCallback>(
|
|
354
520
|
reinterpret_cast<intptr_t>(
|
|
355
|
-
obj->GetInternalField(kPropertyGetterIndex)
|
|
356
|
-
.As<v8::Value>().As<v8::External>()
|
|
521
|
+
Nan::GetExternalValue(obj->GetInternalField(kPropertyGetterIndex)
|
|
522
|
+
.As<v8::Value>().As<v8::External>())));
|
|
357
523
|
callback(property, cbinfo);
|
|
358
524
|
}
|
|
359
525
|
|
|
@@ -370,8 +536,8 @@ void PropertySetterCallbackWrapper(
|
|
|
370
536
|
cbinfo(info, obj->GetInternalField(kDataIndex).As<v8::Value>());
|
|
371
537
|
PropertySetterCallback callback = reinterpret_cast<PropertySetterCallback>(
|
|
372
538
|
reinterpret_cast<intptr_t>(
|
|
373
|
-
obj->GetInternalField(kPropertySetterIndex)
|
|
374
|
-
.As<v8::Value>().As<v8::External>()
|
|
539
|
+
Nan::GetExternalValue(obj->GetInternalField(kPropertySetterIndex)
|
|
540
|
+
.As<v8::Value>().As<v8::External>())));
|
|
375
541
|
callback(property, value, cbinfo);
|
|
376
542
|
}
|
|
377
543
|
|
|
@@ -388,8 +554,8 @@ void PropertyEnumeratorCallbackWrapper(
|
|
|
388
554
|
cbinfo(info, obj->GetInternalField(kDataIndex).As<v8::Value>());
|
|
389
555
|
PropertyEnumeratorCallback callback =
|
|
390
556
|
reinterpret_cast<PropertyEnumeratorCallback>(reinterpret_cast<intptr_t>(
|
|
391
|
-
obj->GetInternalField(kPropertyEnumeratorIndex)
|
|
392
|
-
.As<v8::Value>().As<v8::External>()
|
|
557
|
+
Nan::GetExternalValue(obj->GetInternalField(kPropertyEnumeratorIndex)
|
|
558
|
+
.As<v8::Value>().As<v8::External>())));
|
|
393
559
|
callback(cbinfo);
|
|
394
560
|
}
|
|
395
561
|
|
|
@@ -405,8 +571,8 @@ void PropertyDeleterCallbackWrapper(
|
|
|
405
571
|
cbinfo(info, obj->GetInternalField(kDataIndex).As<v8::Value>());
|
|
406
572
|
PropertyDeleterCallback callback = reinterpret_cast<PropertyDeleterCallback>(
|
|
407
573
|
reinterpret_cast<intptr_t>(
|
|
408
|
-
obj->GetInternalField(kPropertyDeleterIndex)
|
|
409
|
-
.As<v8::Value>().As<v8::External>()
|
|
574
|
+
Nan::GetExternalValue(obj->GetInternalField(kPropertyDeleterIndex)
|
|
575
|
+
.As<v8::Value>().As<v8::External>())));
|
|
410
576
|
callback(property, cbinfo);
|
|
411
577
|
}
|
|
412
578
|
|
|
@@ -422,8 +588,8 @@ void PropertyQueryCallbackWrapper(
|
|
|
422
588
|
cbinfo(info, obj->GetInternalField(kDataIndex).As<v8::Value>());
|
|
423
589
|
PropertyQueryCallback callback = reinterpret_cast<PropertyQueryCallback>(
|
|
424
590
|
reinterpret_cast<intptr_t>(
|
|
425
|
-
obj->GetInternalField(kPropertyQueryIndex)
|
|
426
|
-
.As<v8::Value>().As<v8::External>()
|
|
591
|
+
Nan::GetExternalValue(obj->GetInternalField(kPropertyQueryIndex)
|
|
592
|
+
.As<v8::Value>().As<v8::External>())));
|
|
427
593
|
callback(property, cbinfo);
|
|
428
594
|
}
|
|
429
595
|
|
|
@@ -431,6 +597,45 @@ typedef void (*NativePropertyQuery)
|
|
|
431
597
|
(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Integer> &);
|
|
432
598
|
#endif
|
|
433
599
|
|
|
600
|
+
#if defined(V8_MAJOR_VERSION) && (V8_MAJOR_VERSION > 12 || \
|
|
601
|
+
(V8_MAJOR_VERSION == 12 && defined(V8_MINOR_VERSION) && V8_MINOR_VERSION > 4))
|
|
602
|
+
static
|
|
603
|
+
v8::Intercepted IndexGetterCallbackWrapper(
|
|
604
|
+
uint32_t index, const v8::PropertyCallbackInfo<v8::Value> &info) {
|
|
605
|
+
v8::Local<v8::Object> obj = info.Data().As<v8::Object>();
|
|
606
|
+
PropertyCallbackInfo<v8::Value>
|
|
607
|
+
cbinfo(info, obj->GetInternalField(kDataIndex).As<v8::Value>());
|
|
608
|
+
IndexGetterCallback callback = reinterpret_cast<IndexGetterCallback>(
|
|
609
|
+
reinterpret_cast<intptr_t>(
|
|
610
|
+
Nan::GetExternalValue(obj->GetInternalField(kIndexPropertyGetterIndex)
|
|
611
|
+
.As<v8::Value>().As<v8::External>())));
|
|
612
|
+
return callback(index, cbinfo);
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
typedef v8::Intercepted (*NativeIndexGetter)
|
|
616
|
+
(uint32_t, const v8::PropertyCallbackInfo<v8::Value> &);
|
|
617
|
+
|
|
618
|
+
static
|
|
619
|
+
v8::Intercepted IndexSetterCallbackWrapper(
|
|
620
|
+
uint32_t index
|
|
621
|
+
, v8::Local<v8::Value> value
|
|
622
|
+
, const SetterPropertyCallbackInfo &info) {
|
|
623
|
+
v8::Local<v8::Object> obj = info.Data().As<v8::Object>();
|
|
624
|
+
PropertyCallbackInfo<void>
|
|
625
|
+
cbinfo(info, obj->GetInternalField(kDataIndex).As<v8::Value>());
|
|
626
|
+
IndexSetterCallback callback = reinterpret_cast<IndexSetterCallback>(
|
|
627
|
+
reinterpret_cast<intptr_t>(
|
|
628
|
+
Nan::GetExternalValue(obj->GetInternalField(kIndexPropertySetterIndex)
|
|
629
|
+
.As<v8::Value>().As<v8::External>())));
|
|
630
|
+
return callback(index, value, cbinfo);
|
|
631
|
+
}
|
|
632
|
+
|
|
633
|
+
typedef v8::Intercepted (*NativeIndexSetter)(
|
|
634
|
+
uint32_t
|
|
635
|
+
, v8::Local<v8::Value>
|
|
636
|
+
, const SetterPropertyCallbackInfo &);
|
|
637
|
+
|
|
638
|
+
#else
|
|
434
639
|
static
|
|
435
640
|
void IndexGetterCallbackWrapper(
|
|
436
641
|
uint32_t index, const v8::PropertyCallbackInfo<v8::Value> &info) {
|
|
@@ -439,14 +644,13 @@ void IndexGetterCallbackWrapper(
|
|
|
439
644
|
cbinfo(info, obj->GetInternalField(kDataIndex).As<v8::Value>());
|
|
440
645
|
IndexGetterCallback callback = reinterpret_cast<IndexGetterCallback>(
|
|
441
646
|
reinterpret_cast<intptr_t>(
|
|
442
|
-
obj->GetInternalField(kIndexPropertyGetterIndex)
|
|
443
|
-
.As<v8::Value>().As<v8::External>()
|
|
647
|
+
Nan::GetExternalValue(obj->GetInternalField(kIndexPropertyGetterIndex)
|
|
648
|
+
.As<v8::Value>().As<v8::External>())));
|
|
444
649
|
callback(index, cbinfo);
|
|
445
650
|
}
|
|
446
651
|
|
|
447
652
|
typedef void (*NativeIndexGetter)
|
|
448
653
|
(uint32_t, const v8::PropertyCallbackInfo<v8::Value> &);
|
|
449
|
-
|
|
450
654
|
static
|
|
451
655
|
void IndexSetterCallbackWrapper(
|
|
452
656
|
uint32_t index
|
|
@@ -457,8 +661,8 @@ void IndexSetterCallbackWrapper(
|
|
|
457
661
|
cbinfo(info, obj->GetInternalField(kDataIndex).As<v8::Value>());
|
|
458
662
|
IndexSetterCallback callback = reinterpret_cast<IndexSetterCallback>(
|
|
459
663
|
reinterpret_cast<intptr_t>(
|
|
460
|
-
obj->GetInternalField(kIndexPropertySetterIndex)
|
|
461
|
-
.As<v8::Value>().As<v8::External>()
|
|
664
|
+
Nan::GetExternalValue(obj->GetInternalField(kIndexPropertySetterIndex)
|
|
665
|
+
.As<v8::Value>().As<v8::External>())));
|
|
462
666
|
callback(index, value, cbinfo);
|
|
463
667
|
}
|
|
464
668
|
|
|
@@ -467,6 +671,8 @@ typedef void (*NativeIndexSetter)(
|
|
|
467
671
|
, v8::Local<v8::Value>
|
|
468
672
|
, const v8::PropertyCallbackInfo<v8::Value> &);
|
|
469
673
|
|
|
674
|
+
#endif
|
|
675
|
+
|
|
470
676
|
static
|
|
471
677
|
void IndexEnumeratorCallbackWrapper(
|
|
472
678
|
const v8::PropertyCallbackInfo<v8::Array> &info) {
|
|
@@ -475,15 +681,50 @@ void IndexEnumeratorCallbackWrapper(
|
|
|
475
681
|
cbinfo(info, obj->GetInternalField(kDataIndex).As<v8::Value>());
|
|
476
682
|
IndexEnumeratorCallback callback = reinterpret_cast<IndexEnumeratorCallback>(
|
|
477
683
|
reinterpret_cast<intptr_t>(
|
|
478
|
-
obj->GetInternalField(
|
|
684
|
+
Nan::GetExternalValue(obj->GetInternalField(
|
|
479
685
|
kIndexPropertyEnumeratorIndex)
|
|
480
|
-
.As<v8::Value>().As<v8::External>()
|
|
686
|
+
.As<v8::Value>().As<v8::External>())));
|
|
481
687
|
callback(cbinfo);
|
|
482
688
|
}
|
|
483
689
|
|
|
484
690
|
typedef void (*NativeIndexEnumerator)
|
|
485
691
|
(const v8::PropertyCallbackInfo<v8::Array> &);
|
|
486
692
|
|
|
693
|
+
#if defined(V8_MAJOR_VERSION) && (V8_MAJOR_VERSION > 12 || \
|
|
694
|
+
(V8_MAJOR_VERSION == 12 && defined(V8_MINOR_VERSION) && V8_MINOR_VERSION > 4))
|
|
695
|
+
static
|
|
696
|
+
v8::Intercepted IndexDeleterCallbackWrapper(
|
|
697
|
+
uint32_t index, const v8::PropertyCallbackInfo<v8::Boolean> &info) {
|
|
698
|
+
v8::Local<v8::Object> obj = info.Data().As<v8::Object>();
|
|
699
|
+
PropertyCallbackInfo<v8::Boolean>
|
|
700
|
+
cbinfo(info, obj->GetInternalField(kDataIndex).As<v8::Value>());
|
|
701
|
+
IndexDeleterCallback callback = reinterpret_cast<IndexDeleterCallback>(
|
|
702
|
+
reinterpret_cast<intptr_t>(
|
|
703
|
+
Nan::GetExternalValue(obj->GetInternalField(
|
|
704
|
+
kIndexPropertyDeleterIndex)
|
|
705
|
+
.As<v8::Value>().As<v8::External>())));
|
|
706
|
+
return callback(index, cbinfo);
|
|
707
|
+
}
|
|
708
|
+
|
|
709
|
+
typedef v8::Intercepted (*NativeIndexDeleter)
|
|
710
|
+
(uint32_t, const v8::PropertyCallbackInfo<v8::Boolean> &);
|
|
711
|
+
|
|
712
|
+
static
|
|
713
|
+
v8::Intercepted IndexQueryCallbackWrapper(
|
|
714
|
+
uint32_t index, const v8::PropertyCallbackInfo<v8::Integer> &info) {
|
|
715
|
+
v8::Local<v8::Object> obj = info.Data().As<v8::Object>();
|
|
716
|
+
PropertyCallbackInfo<v8::Integer>
|
|
717
|
+
cbinfo(info, obj->GetInternalField(kDataIndex).As<v8::Value>());
|
|
718
|
+
IndexQueryCallback callback = reinterpret_cast<IndexQueryCallback>(
|
|
719
|
+
reinterpret_cast<intptr_t>(
|
|
720
|
+
Nan::GetExternalValue(obj->GetInternalField(kIndexPropertyQueryIndex)
|
|
721
|
+
.As<v8::Value>().As<v8::External>())));
|
|
722
|
+
return callback(index, cbinfo);
|
|
723
|
+
}
|
|
724
|
+
|
|
725
|
+
typedef v8::Intercepted (*NativeIndexQuery)
|
|
726
|
+
(uint32_t, const v8::PropertyCallbackInfo<v8::Integer> &);
|
|
727
|
+
#else
|
|
487
728
|
static
|
|
488
729
|
void IndexDeleterCallbackWrapper(
|
|
489
730
|
uint32_t index, const v8::PropertyCallbackInfo<v8::Boolean> &info) {
|
|
@@ -492,8 +733,9 @@ void IndexDeleterCallbackWrapper(
|
|
|
492
733
|
cbinfo(info, obj->GetInternalField(kDataIndex).As<v8::Value>());
|
|
493
734
|
IndexDeleterCallback callback = reinterpret_cast<IndexDeleterCallback>(
|
|
494
735
|
reinterpret_cast<intptr_t>(
|
|
495
|
-
obj->GetInternalField(
|
|
496
|
-
|
|
736
|
+
Nan::GetExternalValue(obj->GetInternalField(
|
|
737
|
+
kIndexPropertyDeleterIndex)
|
|
738
|
+
.As<v8::Value>().As<v8::External>())));
|
|
497
739
|
callback(index, cbinfo);
|
|
498
740
|
}
|
|
499
741
|
|
|
@@ -508,13 +750,15 @@ void IndexQueryCallbackWrapper(
|
|
|
508
750
|
cbinfo(info, obj->GetInternalField(kDataIndex).As<v8::Value>());
|
|
509
751
|
IndexQueryCallback callback = reinterpret_cast<IndexQueryCallback>(
|
|
510
752
|
reinterpret_cast<intptr_t>(
|
|
511
|
-
obj->GetInternalField(kIndexPropertyQueryIndex)
|
|
512
|
-
.As<v8::Value>().As<v8::External>()
|
|
753
|
+
Nan::GetExternalValue(obj->GetInternalField(kIndexPropertyQueryIndex)
|
|
754
|
+
.As<v8::Value>().As<v8::External>())));
|
|
513
755
|
callback(index, cbinfo);
|
|
514
756
|
}
|
|
515
757
|
|
|
516
758
|
typedef void (*NativeIndexQuery)
|
|
517
759
|
(uint32_t, const v8::PropertyCallbackInfo<v8::Integer> &);
|
|
760
|
+
|
|
761
|
+
#endif
|
|
518
762
|
} // end of namespace imp
|
|
519
763
|
|
|
520
764
|
#endif // NAN_CALLBACKS_12_INL_H_
|
|
@@ -136,9 +136,13 @@ class FunctionCallbackInfo {
|
|
|
136
136
|
return ReturnValue<T>(return_value_);
|
|
137
137
|
}
|
|
138
138
|
|
|
139
|
-
inline v8::Local<v8::Function> Callee() const {
|
|
139
|
+
NAN_DEPRECATED inline v8::Local<v8::Function> Callee() const {
|
|
140
|
+
return args_.Callee();
|
|
141
|
+
}
|
|
140
142
|
inline v8::Local<v8::Value> Data() const { return data_; }
|
|
141
|
-
inline v8::Local<v8::Object> Holder() const {
|
|
143
|
+
inline v8::Local<v8::Object> Holder() const {
|
|
144
|
+
return args_.Holder();
|
|
145
|
+
}
|
|
142
146
|
inline bool IsConstructCall() const { return args_.IsConstructCall(); }
|
|
143
147
|
inline int Length() const { return args_.Length(); }
|
|
144
148
|
inline v8::Local<v8::Value> operator[](int i) const { return args_[i]; }
|
|
@@ -283,6 +287,10 @@ class PropertyCallbackInfo<v8::Integer> :
|
|
|
283
287
|
}
|
|
284
288
|
};
|
|
285
289
|
|
|
290
|
+
inline void* GetExternalValue(v8::Local<v8::External> ext) {
|
|
291
|
+
return ext->Value();
|
|
292
|
+
}
|
|
293
|
+
|
|
286
294
|
namespace imp {
|
|
287
295
|
template<typename T>
|
|
288
296
|
class ReturnValueImp : public ReturnValue<T> {
|
|
@@ -14,6 +14,22 @@
|
|
|
14
14
|
|
|
15
15
|
namespace imp {
|
|
16
16
|
|
|
17
|
+
// Recent V8 versions (currently Chromium/Electron's V8 snapshot; not yet in
|
|
18
|
+
// any released Node) gained an ExternalPointerTypeTag parameter on
|
|
19
|
+
// v8::External::New(). Detect that API via the V8_EXTERNAL_POINTER_TAG_COUNT
|
|
20
|
+
// macro (defined in <v8-internal.h> alongside the new signature) rather than
|
|
21
|
+
// a V8_MAJOR_VERSION cutoff, since Node and Chromium ship divergent V8
|
|
22
|
+
// snapshots under the same major version. Externals created via this helper
|
|
23
|
+
// are read back through imp::GetExternalPointer in nan_callbacks_12_inl.h,
|
|
24
|
+
// which uses the matching kExternalPointerTypeTagDefault tag.
|
|
25
|
+
inline v8::Local<v8::External> NewExternal(v8::Isolate* isolate, void* value) {
|
|
26
|
+
#ifdef V8_EXTERNAL_POINTER_TAG_COUNT
|
|
27
|
+
return v8::External::New(isolate, value, v8::kExternalPointerTypeTagDefault);
|
|
28
|
+
#else
|
|
29
|
+
return v8::External::New(isolate, value);
|
|
30
|
+
#endif
|
|
31
|
+
}
|
|
32
|
+
|
|
17
33
|
//=== Array ====================================================================
|
|
18
34
|
|
|
19
35
|
Factory<v8::Array>::return_t
|
|
@@ -76,7 +92,7 @@ Factory<v8::Date>::New(double value) {
|
|
|
76
92
|
|
|
77
93
|
Factory<v8::External>::return_t
|
|
78
94
|
Factory<v8::External>::New(void * value) {
|
|
79
|
-
return
|
|
95
|
+
return imp::NewExternal(v8::Isolate::GetCurrent(), value);
|
|
80
96
|
}
|
|
81
97
|
|
|
82
98
|
//=== Function =================================================================
|
|
@@ -92,7 +108,7 @@ Factory<v8::Function>::New( FunctionCallback callback
|
|
|
92
108
|
|
|
93
109
|
obj->SetInternalField(
|
|
94
110
|
imp::kFunctionIndex
|
|
95
|
-
,
|
|
111
|
+
, imp::NewExternal(isolate, reinterpret_cast<void *>(callback)));
|
|
96
112
|
|
|
97
113
|
v8::Local<v8::Value> val = v8::Local<v8::Value>::New(isolate, data);
|
|
98
114
|
|
|
@@ -128,7 +144,7 @@ Factory<v8::FunctionTemplate>::New( FunctionCallback callback
|
|
|
128
144
|
|
|
129
145
|
obj->SetInternalField(
|
|
130
146
|
imp::kFunctionIndex
|
|
131
|
-
,
|
|
147
|
+
, imp::NewExternal(isolate, reinterpret_cast<void *>(callback)));
|
|
132
148
|
v8::Local<v8::Value> val = v8::Local<v8::Value>::New(isolate, data);
|
|
133
149
|
|
|
134
150
|
if (!val.IsEmpty()) {
|