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 "global.h" | 7 #include "global.h" |
8 | 8 |
9 #include "../../../core/include/fxcrt/fx_ext.h" | 9 #include "../../../core/include/fxcrt/fx_ext.h" |
10 #include "../../include/javascript/IJavaScript.h" | 10 #include "../../include/javascript/IJavaScript.h" |
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
252 break; | 252 break; |
253 case JS_GLOBALDATA_TYPE_STRING: | 253 case JS_GLOBALDATA_TYPE_STRING: |
254 SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_STRING, 0, | 254 SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_STRING, 0, |
255 false, pData->data.sData, v8::Local<v8::Object>(), | 255 false, pData->data.sData, v8::Local<v8::Object>(), |
256 pData->bPersistent == 1); | 256 pData->bPersistent == 1); |
257 FXJS_PutObjectString(NULL, m_pJSObject->ToV8Object(), | 257 FXJS_PutObjectString(NULL, m_pJSObject->ToV8Object(), |
258 pData->data.sKey.UTF8Decode().c_str(), | 258 pData->data.sKey.UTF8Decode().c_str(), |
259 pData->data.sData.UTF8Decode().c_str()); | 259 pData->data.sData.UTF8Decode().c_str()); |
260 break; | 260 break; |
261 case JS_GLOBALDATA_TYPE_OBJECT: { | 261 case JS_GLOBALDATA_TYPE_OBJECT: { |
262 v8::Isolate* pRuntime = FXJS_GetRuntime(m_pJSObject->ToV8Object()); | 262 v8::Isolate* pRuntime = m_pJSObject->ToV8Object()->GetIsolate(); |
263 v8::Local<v8::Object> pObj = FXJS_NewFxDynamicObj(pRuntime, NULL, -1); | 263 v8::Local<v8::Object> pObj = FXJS_NewFxDynamicObj(pRuntime, NULL, -1); |
264 | 264 |
265 PutObjectProperty(pObj, &pData->data); | 265 PutObjectProperty(pObj, &pData->data); |
266 | 266 |
267 SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_OBJECT, 0, | 267 SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_OBJECT, 0, |
268 false, "", pObj, pData->bPersistent == 1); | 268 false, "", pObj, pData->bPersistent == 1); |
269 FXJS_PutObjectObject(NULL, m_pJSObject->ToV8Object(), | 269 FXJS_PutObjectObject(NULL, m_pJSObject->ToV8Object(), |
270 pData->data.sKey.UTF8Decode().c_str(), pObj); | 270 pData->data.sKey.UTF8Decode().c_str(), pObj); |
271 | 271 |
272 } break; | 272 } break; |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
317 m_pGlobalData->SetGlobalVariablePersistent(name, pData->bPersistent); | 317 m_pGlobalData->SetGlobalVariablePersistent(name, pData->bPersistent); |
318 break; | 318 break; |
319 } | 319 } |
320 } | 320 } |
321 } | 321 } |
322 } | 322 } |
323 | 323 |
324 void JSGlobalAlternate::ObjectToArray(IJS_Context* cc, | 324 void JSGlobalAlternate::ObjectToArray(IJS_Context* cc, |
325 v8::Local<v8::Object> pObj, | 325 v8::Local<v8::Object> pObj, |
326 CJS_GlobalVariableArray& array) { | 326 CJS_GlobalVariableArray& array) { |
327 v8::Local<v8::Context> context = pObj->CreationContext(); | 327 v8::Isolate* isolate = pObj->GetIsolate(); |
328 v8::Isolate* isolate = context->GetIsolate(); | |
329 CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc); | 328 CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc); |
330 | 329 |
331 v8::Local<v8::Array> pKeyList = FXJS_GetObjectElementNames(isolate, pObj); | 330 v8::Local<v8::Array> pKeyList = FXJS_GetObjectElementNames(isolate, pObj); |
332 int nObjElements = pKeyList->Length(); | 331 int nObjElements = pKeyList->Length(); |
333 for (int i = 0; i < nObjElements; i++) { | 332 for (int i = 0; i < nObjElements; i++) { |
334 CFX_WideString ws = | 333 CFX_WideString ws = |
335 FXJS_ToString(isolate, FXJS_GetArrayElement(isolate, pKeyList, i)); | 334 FXJS_ToString(isolate, FXJS_GetArrayElement(isolate, pKeyList, i)); |
336 CFX_ByteString sKey = ws.UTF8Encode(); | 335 CFX_ByteString sKey = ws.UTF8Encode(); |
337 | 336 |
338 v8::Local<v8::Value> v = FXJS_GetObjectElement(isolate, pObj, ws.c_str()); | 337 v8::Local<v8::Value> v = FXJS_GetObjectElement(isolate, pObj, ws.c_str()); |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
394 break; | 393 break; |
395 case JS_GLOBALDATA_TYPE_BOOLEAN: | 394 case JS_GLOBALDATA_TYPE_BOOLEAN: |
396 FXJS_PutObjectBoolean(NULL, pObj, pObjData->sKey.UTF8Decode().c_str(), | 395 FXJS_PutObjectBoolean(NULL, pObj, pObjData->sKey.UTF8Decode().c_str(), |
397 pObjData->bData == 1); | 396 pObjData->bData == 1); |
398 break; | 397 break; |
399 case JS_GLOBALDATA_TYPE_STRING: | 398 case JS_GLOBALDATA_TYPE_STRING: |
400 FXJS_PutObjectString(NULL, pObj, pObjData->sKey.UTF8Decode().c_str(), | 399 FXJS_PutObjectString(NULL, pObj, pObjData->sKey.UTF8Decode().c_str(), |
401 pObjData->sData.UTF8Decode().c_str()); | 400 pObjData->sData.UTF8Decode().c_str()); |
402 break; | 401 break; |
403 case JS_GLOBALDATA_TYPE_OBJECT: { | 402 case JS_GLOBALDATA_TYPE_OBJECT: { |
404 v8::Isolate* pRuntime = FXJS_GetRuntime(m_pJSObject->ToV8Object()); | 403 v8::Isolate* pRuntime = m_pJSObject->ToV8Object()->GetIsolate(); |
405 v8::Local<v8::Object> pNewObj = | 404 v8::Local<v8::Object> pNewObj = |
406 FXJS_NewFxDynamicObj(pRuntime, NULL, -1); | 405 FXJS_NewFxDynamicObj(pRuntime, NULL, -1); |
407 PutObjectProperty(pNewObj, pObjData); | 406 PutObjectProperty(pNewObj, pObjData); |
408 FXJS_PutObjectObject(NULL, pObj, pObjData->sKey.UTF8Decode().c_str(), | 407 FXJS_PutObjectObject(NULL, pObj, pObjData->sKey.UTF8Decode().c_str(), |
409 pNewObj); | 408 pNewObj); |
410 } break; | 409 } break; |
411 case JS_GLOBALDATA_TYPE_NULL: | 410 case JS_GLOBALDATA_TYPE_NULL: |
412 FXJS_PutObjectNull(NULL, pObj, pObjData->sKey.UTF8Decode().c_str()); | 411 FXJS_PutObjectNull(NULL, pObj, pObjData->sKey.UTF8Decode().c_str()); |
413 break; | 412 break; |
414 } | 413 } |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
447 case JS_GLOBALDATA_TYPE_NUMBER: { | 446 case JS_GLOBALDATA_TYPE_NUMBER: { |
448 pTemp->dData = dData; | 447 pTemp->dData = dData; |
449 } break; | 448 } break; |
450 case JS_GLOBALDATA_TYPE_BOOLEAN: { | 449 case JS_GLOBALDATA_TYPE_BOOLEAN: { |
451 pTemp->bData = bData; | 450 pTemp->bData = bData; |
452 } break; | 451 } break; |
453 case JS_GLOBALDATA_TYPE_STRING: { | 452 case JS_GLOBALDATA_TYPE_STRING: { |
454 pTemp->sData = sData; | 453 pTemp->sData = sData; |
455 } break; | 454 } break; |
456 case JS_GLOBALDATA_TYPE_OBJECT: { | 455 case JS_GLOBALDATA_TYPE_OBJECT: { |
457 pTemp->pData.Reset(FXJS_GetRuntime(pData), pData); | 456 pTemp->pData.Reset(pData->GetIsolate(), pData); |
458 } break; | 457 } break; |
459 case JS_GLOBALDATA_TYPE_NULL: | 458 case JS_GLOBALDATA_TYPE_NULL: |
460 break; | 459 break; |
461 default: | 460 default: |
462 return FALSE; | 461 return FALSE; |
463 } | 462 } |
464 return TRUE; | 463 return TRUE; |
465 } | 464 } |
466 | 465 |
467 JSGlobalData* pNewData = NULL; | 466 JSGlobalData* pNewData = NULL; |
(...skipping 13 matching lines...) Expand all Loading... |
481 } break; | 480 } break; |
482 case JS_GLOBALDATA_TYPE_STRING: { | 481 case JS_GLOBALDATA_TYPE_STRING: { |
483 pNewData = new JSGlobalData; | 482 pNewData = new JSGlobalData; |
484 pNewData->nType = JS_GLOBALDATA_TYPE_STRING; | 483 pNewData->nType = JS_GLOBALDATA_TYPE_STRING; |
485 pNewData->sData = sData; | 484 pNewData->sData = sData; |
486 pNewData->bPersistent = bDefaultPersistent; | 485 pNewData->bPersistent = bDefaultPersistent; |
487 } break; | 486 } break; |
488 case JS_GLOBALDATA_TYPE_OBJECT: { | 487 case JS_GLOBALDATA_TYPE_OBJECT: { |
489 pNewData = new JSGlobalData; | 488 pNewData = new JSGlobalData; |
490 pNewData->nType = JS_GLOBALDATA_TYPE_OBJECT; | 489 pNewData->nType = JS_GLOBALDATA_TYPE_OBJECT; |
491 pNewData->pData.Reset(FXJS_GetRuntime(pData), pData); | 490 pNewData->pData.Reset(pData->GetIsolate(), pData); |
492 pNewData->bPersistent = bDefaultPersistent; | 491 pNewData->bPersistent = bDefaultPersistent; |
493 } break; | 492 } break; |
494 case JS_GLOBALDATA_TYPE_NULL: { | 493 case JS_GLOBALDATA_TYPE_NULL: { |
495 pNewData = new JSGlobalData; | 494 pNewData = new JSGlobalData; |
496 pNewData->nType = JS_GLOBALDATA_TYPE_NULL; | 495 pNewData->nType = JS_GLOBALDATA_TYPE_NULL; |
497 pNewData->bPersistent = bDefaultPersistent; | 496 pNewData->bPersistent = bDefaultPersistent; |
498 } break; | 497 } break; |
499 default: | 498 default: |
500 return FALSE; | 499 return FALSE; |
501 } | 500 } |
(...skipping 17 matching lines...) Expand all Loading... |
519 return CJS_Value::VT_boolean; | 518 return CJS_Value::VT_boolean; |
520 if (nHash == JSCONST_nDateHash) | 519 if (nHash == JSCONST_nDateHash) |
521 return CJS_Value::VT_date; | 520 return CJS_Value::VT_date; |
522 if (nHash == JSCONST_nObjectHash) | 521 if (nHash == JSCONST_nObjectHash) |
523 return CJS_Value::VT_object; | 522 return CJS_Value::VT_object; |
524 if (nHash == JSCONST_nFXobjHash) | 523 if (nHash == JSCONST_nFXobjHash) |
525 return CJS_Value::VT_fxobject; | 524 return CJS_Value::VT_fxobject; |
526 | 525 |
527 return CJS_Value::VT_unknown; | 526 return CJS_Value::VT_unknown; |
528 } | 527 } |
OLD | NEW |