| OLD | NEW |
| 1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| 6 | 6 |
| 7 #include "../../../core/include/fxcrt/fx_basic.h" | 7 #include "../../../core/include/fxcrt/fx_basic.h" |
| 8 #include "../../../core/include/fxcrt/fx_ext.h" | 8 #include "../../../core/include/fxcrt/fx_ext.h" |
| 9 #include "../../include/jsapi/fxjs_v8.h" | 9 #include "../../include/jsapi/fxjs_v8.h" |
| 10 #include "../../include/fsdk_define.h" | 10 #include "../../include/fsdk_define.h" |
| (...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 361 } | 361 } |
| 362 delete pObjDef; | 362 delete pObjDef; |
| 363 } | 363 } |
| 364 delete pArray; | 364 delete pArray; |
| 365 isolate->SetData(g_embedderDataSlot, NULL); | 365 isolate->SetData(g_embedderDataSlot, NULL); |
| 366 } | 366 } |
| 367 | 367 |
| 368 void JS_Initial(unsigned int embedderDataSlot) { | 368 void JS_Initial(unsigned int embedderDataSlot) { |
| 369 g_embedderDataSlot = embedderDataSlot; | 369 g_embedderDataSlot = embedderDataSlot; |
| 370 } | 370 } |
| 371 void JS_Release() {} | |
| 372 int JS_Parse(IJS_Runtime* pJSRuntime, | |
| 373 IFXJS_Context* pJSContext, | |
| 374 const wchar_t* script, | |
| 375 long length, | |
| 376 FXJSErr* perror) { | |
| 377 v8::Isolate* isolate = (v8::Isolate*)pJSRuntime; | |
| 378 v8::Isolate::Scope isolate_scope(isolate); | |
| 379 v8::TryCatch try_catch(isolate); | |
| 380 | 371 |
| 381 CFX_WideString wsScript(script); | 372 void JS_Release() { |
| 382 CFX_ByteString bsScript = wsScript.UTF8Encode(); | |
| 383 | |
| 384 v8::Local<v8::Context> context = isolate->GetCurrentContext(); | |
| 385 v8::Local<v8::Script> compiled_script; | |
| 386 if (!v8::Script::Compile(context, | |
| 387 v8::String::NewFromUtf8(isolate, bsScript.c_str(), | |
| 388 v8::NewStringType::kNormal, | |
| 389 bsScript.GetLength()) | |
| 390 .ToLocalChecked()) | |
| 391 .ToLocal(&compiled_script)) { | |
| 392 v8::String::Utf8Value error(try_catch.Exception()); | |
| 393 return -1; | |
| 394 } | |
| 395 return 0; | |
| 396 } | 373 } |
| 397 | 374 |
| 398 int JS_Execute(IJS_Runtime* pJSRuntime, | 375 int JS_Execute(IJS_Runtime* pJSRuntime, |
| 399 IFXJS_Context* pJSContext, | 376 IFXJS_Context* pJSContext, |
| 400 const wchar_t* script, | 377 const wchar_t* script, |
| 401 long length, | 378 long length, |
| 402 FXJSErr* perror) { | 379 FXJSErr* perror) { |
| 403 v8::Isolate* isolate = (v8::Isolate*)pJSRuntime; | 380 v8::Isolate* isolate = (v8::Isolate*)pJSRuntime; |
| 404 v8::Isolate::Scope isolate_scope(isolate); | 381 v8::Isolate::Scope isolate_scope(isolate); |
| 405 v8::TryCatch try_catch(isolate); | 382 v8::TryCatch try_catch(isolate); |
| (...skipping 766 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1172 | 1149 |
| 1173 bool JS_PortIsNan(double d) { | 1150 bool JS_PortIsNan(double d) { |
| 1174 return d != d; | 1151 return d != d; |
| 1175 } | 1152 } |
| 1176 | 1153 |
| 1177 double JS_LocalTime(double d) { | 1154 double JS_LocalTime(double d) { |
| 1178 return JS_GetDateTime() + _getDaylightSavingTA(d); | 1155 return JS_GetDateTime() + _getDaylightSavingTA(d); |
| 1179 } | 1156 } |
| 1180 | 1157 |
| 1181 // JavaScript time implement End. | 1158 // JavaScript time implement End. |
| OLD | NEW |