diff options
author | Tom Sepez <tsepez@chromium.org> | 2016-03-04 13:43:46 -0800 |
---|---|---|
committer | Tom Sepez <tsepez@chromium.org> | 2016-03-04 13:43:46 -0800 |
commit | 297b515e3d53095e36991480a194b54ce887757b (patch) | |
tree | b9b6be50cd9264f18df5264fb5fabe3c7e502ba0 /fpdfsdk/src/jsapi/fxjs_v8.cpp | |
parent | c91f42a7ec3fdc57c76a9b175914ecfbd24a9a03 (diff) | |
download | pdfium-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.cpp | 11 |
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( |