summaryrefslogtreecommitdiff
path: root/fpdfsdk/src/jsapi/fxjs_v8.cpp
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2016-03-04 13:43:46 -0800
committerTom Sepez <tsepez@chromium.org>2016-03-04 13:43:46 -0800
commit297b515e3d53095e36991480a194b54ce887757b (patch)
treeb9b6be50cd9264f18df5264fb5fabe3c7e502ba0 /fpdfsdk/src/jsapi/fxjs_v8.cpp
parentc91f42a7ec3fdc57c76a9b175914ecfbd24a9a03 (diff)
downloadpdfium-297b515e3d53095e36991480a194b54ce887757b.tar.xz
Re-land "Only place primitive objects on the V8 global template."
This reverts commit 1a35d55dd6b0d1ea1918e2d6a6c25faf599ba168. Prevent handles from being destructed after v8 is gone. BUG=pdfium:419 R=ochang@chromium.org Review URL: https://codereview.chromium.org/1761073006 .
Diffstat (limited to 'fpdfsdk/src/jsapi/fxjs_v8.cpp')
-rw-r--r--fpdfsdk/src/jsapi/fxjs_v8.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/fpdfsdk/src/jsapi/fxjs_v8.cpp b/fpdfsdk/src/jsapi/fxjs_v8.cpp
index f015f87136..5631ab6258 100644
--- a/fpdfsdk/src/jsapi/fxjs_v8.cpp
+++ b/fpdfsdk/src/jsapi/fxjs_v8.cpp
@@ -287,14 +287,15 @@ void FXJS_DefineGlobalMethod(v8::Isolate* pIsolate,
void FXJS_DefineGlobalConst(v8::Isolate* pIsolate,
const wchar_t* sConstName,
- v8::Local<v8::Value> pDefault) {
+ v8::FunctionCallback pConstGetter) {
v8::Isolate::Scope isolate_scope(pIsolate);
v8::HandleScope handle_scope(pIsolate);
CFX_ByteString bsConst = CFX_WideString(sConstName).UTF8Encode();
- GetGlobalObjectTemplate(pIsolate)->Set(
- v8::String::NewFromUtf8(pIsolate, bsConst.c_str(),
- v8::NewStringType::kNormal).ToLocalChecked(),
- pDefault, v8::ReadOnly);
+ GetGlobalObjectTemplate(pIsolate)
+ ->SetAccessorProperty(v8::String::NewFromUtf8(pIsolate, bsConst.c_str(),
+ v8::NewStringType::kNormal)
+ .ToLocalChecked(),
+ v8::FunctionTemplate::New(pIsolate, pConstGetter));
}
void FXJS_InitializeRuntime(