| 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 |