| 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 355 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 366 delete pArray; | 366 delete pArray; |
| 367 isolate->SetData(1, NULL); | 367 isolate->SetData(1, NULL); |
| 368 isolate->SetData(g_embedderDataSlot, NULL); | 368 isolate->SetData(g_embedderDataSlot, NULL); |
| 369 // TODO(tsepez): Don't use more than one embedder data slot. | 369 // TODO(tsepez): Don't use more than one embedder data slot. |
| 370 isolate->SetData(2, NULL); | 370 isolate->SetData(2, NULL); |
| 371 } | 371 } |
| 372 | 372 |
| 373 void JS_Initial(unsigned int embedderDataSlot) { | 373 void JS_Initial(unsigned int embedderDataSlot) { |
| 374 g_embedderDataSlot = embedderDataSlot; | 374 g_embedderDataSlot = embedderDataSlot; |
| 375 } | 375 } |
| 376 void JS_Release() {} | |
| 377 int JS_Parse(IJS_Runtime* pJSRuntime, | |
| 378 IFXJS_Context* pJSContext, | |
| 379 const wchar_t* script, | |
| 380 long length, | |
| 381 FXJSErr* perror) { | |
| 382 v8::Isolate* isolate = (v8::Isolate*)pJSRuntime; | |
| 383 v8::Isolate::Scope isolate_scope(isolate); | |
| 384 v8::TryCatch try_catch(isolate); | |
| 385 | 376 |
| 386 CFX_WideString wsScript(script); | 377 void JS_Release() { |
| 387 CFX_ByteString bsScript = wsScript.UTF8Encode(); | |
| 388 | |
| 389 v8::Local<v8::Context> context = isolate->GetCurrentContext(); | |
| 390 v8::Local<v8::Script> compiled_script; | |
| 391 if (!v8::Script::Compile(context, | |
| 392 v8::String::NewFromUtf8(isolate, bsScript.c_str(), | |
| 393 v8::NewStringType::kNormal, | |
| 394 bsScript.GetLength()) | |
| 395 .ToLocalChecked()) | |
| 396 .ToLocal(&compiled_script)) { | |
| 397 v8::String::Utf8Value error(try_catch.Exception()); | |
| 398 return -1; | |
| 399 } | |
| 400 return 0; | |
| 401 } | 378 } |
| 402 | 379 |
| 403 int JS_Execute(IJS_Runtime* pJSRuntime, | 380 int JS_Execute(IJS_Runtime* pJSRuntime, |
| 404 IFXJS_Context* pJSContext, | 381 IFXJS_Context* pJSContext, |
| 405 const wchar_t* script, | 382 const wchar_t* script, |
| 406 long length, | 383 long length, |
| 407 FXJSErr* perror) { | 384 FXJSErr* perror) { |
| 408 v8::Isolate* isolate = (v8::Isolate*)pJSRuntime; | 385 v8::Isolate* isolate = (v8::Isolate*)pJSRuntime; |
| 409 v8::Isolate::Scope isolate_scope(isolate); | 386 v8::Isolate::Scope isolate_scope(isolate); |
| 410 v8::TryCatch try_catch(isolate); | 387 v8::TryCatch try_catch(isolate); |
| (...skipping 766 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1177 | 1154 |
| 1178 bool JS_PortIsNan(double d) { | 1155 bool JS_PortIsNan(double d) { |
| 1179 return d != d; | 1156 return d != d; |
| 1180 } | 1157 } |
| 1181 | 1158 |
| 1182 double JS_LocalTime(double d) { | 1159 double JS_LocalTime(double d) { |
| 1183 return JS_GetDateTime() + _getDaylightSavingTA(d); | 1160 return JS_GetDateTime() + _getDaylightSavingTA(d); |
| 1184 } | 1161 } |
| 1185 | 1162 |
| 1186 // JavaScript time implement End. | 1163 // JavaScript time implement End. |
| OLD | NEW |