Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(634)

Side by Side Diff: fpdfsdk/src/javascript/global.cpp

Issue 1347833002: Ensure functions in FXJS_V8 are prefixed by FXJS_. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Rebase, nits, format. Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « fpdfsdk/src/javascript/event.cpp ('k') | fpdfsdk/src/javascript/util.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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_ext.h"
7 #include "../../include/javascript/IJavaScript.h" 8 #include "../../include/javascript/IJavaScript.h"
8 #include "../../include/javascript/JS_Context.h" 9 #include "../../include/javascript/JS_Context.h"
9 #include "../../include/javascript/JS_Define.h" 10 #include "../../include/javascript/JS_Define.h"
10 #include "../../include/javascript/JS_EventHandler.h" 11 #include "../../include/javascript/JS_EventHandler.h"
11 #include "../../include/javascript/JS_GlobalData.h" 12 #include "../../include/javascript/JS_GlobalData.h"
12 #include "../../include/javascript/JS_Object.h" 13 #include "../../include/javascript/JS_Object.h"
13 #include "../../include/javascript/JS_Value.h" 14 #include "../../include/javascript/JS_Value.h"
14 #include "../../include/javascript/JavaScript.h" 15 #include "../../include/javascript/JavaScript.h"
15 #include "../../include/javascript/global.h" 16 #include "../../include/javascript/global.h"
16 #include "../../include/javascript/resource.h" 17 #include "../../include/javascript/resource.h"
(...skipping 28 matching lines...) Expand all
45 const unsigned int JSCONST_nBoolHash = 46 const unsigned int JSCONST_nBoolHash =
46 CHash<'b', 'o', 'o', 'l', 'e', 'a', 'n'>::value; 47 CHash<'b', 'o', 'o', 'l', 'e', 'a', 'n'>::value;
47 const unsigned int JSCONST_nDateHash = CHash<'d', 'a', 't', 'e'>::value; 48 const unsigned int JSCONST_nDateHash = CHash<'d', 'a', 't', 'e'>::value;
48 const unsigned int JSCONST_nObjectHash = 49 const unsigned int JSCONST_nObjectHash =
49 CHash<'o', 'b', 'j', 'e', 'c', 't'>::value; 50 CHash<'o', 'b', 'j', 'e', 'c', 't'>::value;
50 const unsigned int JSCONST_nFXobjHash = CHash<'f', 'x', 'o', 'b', 'j'>::value; 51 const unsigned int JSCONST_nFXobjHash = CHash<'f', 'x', 'o', 'b', 'j'>::value;
51 const unsigned int JSCONST_nNullHash = CHash<'n', 'u', 'l', 'l'>::value; 52 const unsigned int JSCONST_nNullHash = CHash<'n', 'u', 'l', 'l'>::value;
52 const unsigned int JSCONST_nUndefHash = 53 const unsigned int JSCONST_nUndefHash =
53 CHash<'u', 'n', 'd', 'e', 'f', 'i', 'n', 'e', 'd'>::value; 54 CHash<'u', 'n', 'd', 'e', 'f', 'i', 'n', 'e', 'd'>::value;
54 55
56 static unsigned JS_CalcHash(const wchar_t* main) {
57 return (unsigned)FX_HashCode_String_GetW(main, FXSYS_wcslen(main));
58 }
59
55 #ifdef _DEBUG 60 #ifdef _DEBUG
56 class HashVerify { 61 class HashVerify {
57 public: 62 public:
58 HashVerify(); 63 HashVerify();
59 } g_hashVerify; 64 } g_hashVerify;
60 65
61 HashVerify::HashVerify() { 66 HashVerify::HashVerify() {
62 ASSERT(JSCONST_nStringHash == 67 ASSERT(JSCONST_nStringHash == JS_CalcHash(kFXJSValueNameString));
63 JS_CalcHash(kFXJSValueNameString, wcslen(kFXJSValueNameString))); 68 ASSERT(JSCONST_nNumberHash == JS_CalcHash(kFXJSValueNameNumber));
64 ASSERT(JSCONST_nNumberHash == 69 ASSERT(JSCONST_nBoolHash == JS_CalcHash(kFXJSValueNameBoolean));
65 JS_CalcHash(kFXJSValueNameNumber, wcslen(kFXJSValueNameNumber))); 70 ASSERT(JSCONST_nDateHash == JS_CalcHash(kFXJSValueNameDate));
66 ASSERT(JSCONST_nBoolHash == 71 ASSERT(JSCONST_nObjectHash == JS_CalcHash(kFXJSValueNameObject));
67 JS_CalcHash(kFXJSValueNameBoolean, wcslen(kFXJSValueNameBoolean))); 72 ASSERT(JSCONST_nFXobjHash == JS_CalcHash(kFXJSValueNameFxobj));
68 ASSERT(JSCONST_nDateHash == 73 ASSERT(JSCONST_nNullHash == JS_CalcHash(kFXJSValueNameNull));
69 JS_CalcHash(kFXJSValueNameDate, wcslen(kFXJSValueNameDate))); 74 ASSERT(JSCONST_nUndefHash == JS_CalcHash(kFXJSValueNameUndefined);
70 ASSERT(JSCONST_nObjectHash ==
71 JS_CalcHash(kFXJSValueNameObject, wcslen(kFXJSValueNameObject)));
72 ASSERT(JSCONST_nFXobjHash ==
73 JS_CalcHash(kFXJSValueNameFxobj, wcslen(kFXJSValueNameFxobj)));
74 ASSERT(JSCONST_nNullHash ==
75 JS_CalcHash(kFXJSValueNameNull, wcslen(kFXJSValueNameNull)));
76 ASSERT(JSCONST_nUndefHash ==
77 JS_CalcHash(kFXJSValueNameUndefined, wcslen(kFXJSValueNameUndefined)));
78 } 75 }
79 #endif 76 #endif
80 77
81 BEGIN_JS_STATIC_CONST(CJS_Global) 78 BEGIN_JS_STATIC_CONST(CJS_Global)
82 END_JS_STATIC_CONST() 79 END_JS_STATIC_CONST()
83 80
84 BEGIN_JS_STATIC_PROP(CJS_Global) 81 BEGIN_JS_STATIC_PROP(CJS_Global)
85 END_JS_STATIC_PROP() 82 END_JS_STATIC_PROP()
86 83
87 BEGIN_JS_STATIC_METHOD(CJS_Global) 84 BEGIN_JS_STATIC_METHOD(CJS_Global)
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
132 return TRUE; 129 return TRUE;
133 } 130 }
134 131
135 FX_BOOL JSGlobalAlternate::DoProperty(IFXJS_Context* cc, 132 FX_BOOL JSGlobalAlternate::DoProperty(IFXJS_Context* cc,
136 const FX_WCHAR* propname, 133 const FX_WCHAR* propname,
137 CJS_PropValue& vp, 134 CJS_PropValue& vp,
138 CFX_WideString& sError) { 135 CFX_WideString& sError) {
139 if (vp.IsSetting()) { 136 if (vp.IsSetting()) {
140 CFX_ByteString sPropName = CFX_ByteString::FromUnicode(propname); 137 CFX_ByteString sPropName = CFX_ByteString::FromUnicode(propname);
141 switch (vp.GetType()) { 138 switch (vp.GetType()) {
142 case VT_number: { 139 case CJS_Value::VT_number: {
143 double dData; 140 double dData;
144 vp >> dData; 141 vp >> dData;
145 return SetGlobalVariables(sPropName, JS_GLOBALDATA_TYPE_NUMBER, dData, 142 return SetGlobalVariables(sPropName, JS_GLOBALDATA_TYPE_NUMBER, dData,
146 false, "", v8::Local<v8::Object>(), FALSE); 143 false, "", v8::Local<v8::Object>(), FALSE);
147 } 144 }
148 case VT_boolean: { 145 case CJS_Value::VT_boolean: {
149 bool bData; 146 bool bData;
150 vp >> bData; 147 vp >> bData;
151 return SetGlobalVariables(sPropName, JS_GLOBALDATA_TYPE_BOOLEAN, 0, 148 return SetGlobalVariables(sPropName, JS_GLOBALDATA_TYPE_BOOLEAN, 0,
152 bData, "", v8::Local<v8::Object>(), FALSE); 149 bData, "", v8::Local<v8::Object>(), FALSE);
153 } 150 }
154 case VT_string: { 151 case CJS_Value::VT_string: {
155 CFX_ByteString sData; 152 CFX_ByteString sData;
156 vp >> sData; 153 vp >> sData;
157 return SetGlobalVariables(sPropName, JS_GLOBALDATA_TYPE_STRING, 0, 154 return SetGlobalVariables(sPropName, JS_GLOBALDATA_TYPE_STRING, 0,
158 false, sData, v8::Local<v8::Object>(), FALSE); 155 false, sData, v8::Local<v8::Object>(), FALSE);
159 } 156 }
160 case VT_object: { 157 case CJS_Value::VT_object: {
161 v8::Local<v8::Object> pData; 158 v8::Local<v8::Object> pData;
162 vp >> pData; 159 vp >> pData;
163 return SetGlobalVariables(sPropName, JS_GLOBALDATA_TYPE_OBJECT, 0, 160 return SetGlobalVariables(sPropName, JS_GLOBALDATA_TYPE_OBJECT, 0,
164 false, "", pData, FALSE); 161 false, "", pData, FALSE);
165 } 162 }
166 case VT_null: { 163 case CJS_Value::VT_null: {
167 return SetGlobalVariables(sPropName, JS_GLOBALDATA_TYPE_NULL, 0, false, 164 return SetGlobalVariables(sPropName, JS_GLOBALDATA_TYPE_NULL, 0, false,
168 "", v8::Local<v8::Object>(), FALSE); 165 "", v8::Local<v8::Object>(), FALSE);
169 } 166 }
170 case VT_undefined: { 167 case CJS_Value::VT_undefined: {
171 DelProperty(cc, propname, sError); 168 DelProperty(cc, propname, sError);
172 return TRUE; 169 return TRUE;
173 } 170 }
174 default: 171 default:
175 break; 172 break;
176 } 173 }
177 } else { 174 } else {
178 auto it = m_mapGlobal.find(CFX_ByteString::FromUnicode(propname)); 175 auto it = m_mapGlobal.find(CFX_ByteString::FromUnicode(propname));
179 if (it == m_mapGlobal.end()) { 176 if (it == m_mapGlobal.end()) {
180 vp.SetNull(); 177 vp.SetNull();
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
239 236
240 for (int i = 0, sz = m_pGlobalData->GetSize(); i < sz; i++) { 237 for (int i = 0, sz = m_pGlobalData->GetSize(); i < sz; i++) {
241 CJS_GlobalData_Element* pData = m_pGlobalData->GetAt(i); 238 CJS_GlobalData_Element* pData = m_pGlobalData->GetAt(i);
242 ASSERT(pData != NULL); 239 ASSERT(pData != NULL);
243 240
244 switch (pData->data.nType) { 241 switch (pData->data.nType) {
245 case JS_GLOBALDATA_TYPE_NUMBER: 242 case JS_GLOBALDATA_TYPE_NUMBER:
246 SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_NUMBER, 243 SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_NUMBER,
247 pData->data.dData, false, "", 244 pData->data.dData, false, "",
248 v8::Local<v8::Object>(), pData->bPersistent == 1); 245 v8::Local<v8::Object>(), pData->bPersistent == 1);
249 JS_PutObjectNumber(NULL, (v8::Local<v8::Object>)(*m_pJSObject), 246 FXJS_PutObjectNumber(NULL, (v8::Local<v8::Object>)(*m_pJSObject),
250 pData->data.sKey.UTF8Decode().c_str(), 247 pData->data.sKey.UTF8Decode().c_str(),
251 pData->data.dData); 248 pData->data.dData);
252 break; 249 break;
253 case JS_GLOBALDATA_TYPE_BOOLEAN: 250 case JS_GLOBALDATA_TYPE_BOOLEAN:
254 SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_BOOLEAN, 0, 251 SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_BOOLEAN, 0,
255 (bool)(pData->data.bData == 1), "", 252 (bool)(pData->data.bData == 1), "",
256 v8::Local<v8::Object>(), pData->bPersistent == 1); 253 v8::Local<v8::Object>(), pData->bPersistent == 1);
257 JS_PutObjectBoolean(NULL, (v8::Local<v8::Object>)(*m_pJSObject), 254 FXJS_PutObjectBoolean(NULL, (v8::Local<v8::Object>)(*m_pJSObject),
258 pData->data.sKey.UTF8Decode().c_str(), 255 pData->data.sKey.UTF8Decode().c_str(),
259 (bool)(pData->data.bData == 1)); 256 (bool)(pData->data.bData == 1));
260 break; 257 break;
261 case JS_GLOBALDATA_TYPE_STRING: 258 case JS_GLOBALDATA_TYPE_STRING:
262 SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_STRING, 0, 259 SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_STRING, 0,
263 false, pData->data.sData, v8::Local<v8::Object>(), 260 false, pData->data.sData, v8::Local<v8::Object>(),
264 pData->bPersistent == 1); 261 pData->bPersistent == 1);
265 JS_PutObjectString(NULL, (v8::Local<v8::Object>)(*m_pJSObject), 262 FXJS_PutObjectString(NULL, (v8::Local<v8::Object>)(*m_pJSObject),
266 pData->data.sKey.UTF8Decode().c_str(), 263 pData->data.sKey.UTF8Decode().c_str(),
267 pData->data.sData.UTF8Decode().c_str()); 264 pData->data.sData.UTF8Decode().c_str());
268 break; 265 break;
269 case JS_GLOBALDATA_TYPE_OBJECT: { 266 case JS_GLOBALDATA_TYPE_OBJECT: {
270 v8::Isolate* pRuntime = 267 v8::Isolate* pRuntime =
271 JS_GetRuntime((v8::Local<v8::Object>)(*m_pJSObject)); 268 FXJS_GetRuntime((v8::Local<v8::Object>)(*m_pJSObject));
272 v8::Local<v8::Object> pObj = JS_NewFxDynamicObj(pRuntime, NULL, -1); 269 v8::Local<v8::Object> pObj = FXJS_NewFxDynamicObj(pRuntime, NULL, -1);
273 270
274 PutObjectProperty(pObj, &pData->data); 271 PutObjectProperty(pObj, &pData->data);
275 272
276 SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_OBJECT, 0, 273 SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_OBJECT, 0,
277 false, "", (v8::Local<v8::Object>)pObj, 274 false, "", (v8::Local<v8::Object>)pObj,
278 pData->bPersistent == 1); 275 pData->bPersistent == 1);
279 JS_PutObjectObject(NULL, (v8::Local<v8::Object>)(*m_pJSObject), 276 FXJS_PutObjectObject(NULL, (v8::Local<v8::Object>)(*m_pJSObject),
280 pData->data.sKey.UTF8Decode().c_str(), 277 pData->data.sKey.UTF8Decode().c_str(),
281 (v8::Local<v8::Object>)pObj); 278 (v8::Local<v8::Object>)pObj);
282 } break; 279 } break;
283 case JS_GLOBALDATA_TYPE_NULL: 280 case JS_GLOBALDATA_TYPE_NULL:
284 SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_NULL, 0, false, 281 SetGlobalVariables(pData->data.sKey, JS_GLOBALDATA_TYPE_NULL, 0, false,
285 "", v8::Local<v8::Object>(), 282 "", v8::Local<v8::Object>(),
286 pData->bPersistent == 1); 283 pData->bPersistent == 1);
287 JS_PutObjectNull(NULL, (v8::Local<v8::Object>)(*m_pJSObject), 284 FXJS_PutObjectNull(NULL, (v8::Local<v8::Object>)(*m_pJSObject),
288 pData->data.sKey.UTF8Decode().c_str()); 285 pData->data.sKey.UTF8Decode().c_str());
289 break; 286 break;
290 } 287 }
291 } 288 }
292 } 289 }
293 290
294 void JSGlobalAlternate::CommitGlobalPersisitentVariables() { 291 void JSGlobalAlternate::CommitGlobalPersisitentVariables() {
295 ASSERT(m_pGlobalData); 292 ASSERT(m_pGlobalData);
296 for (auto it = m_mapGlobal.begin(); it != m_mapGlobal.end(); ++it) { 293 for (auto it = m_mapGlobal.begin(); it != m_mapGlobal.end(); ++it) {
297 CFX_ByteString name = it->first; 294 CFX_ByteString name = it->first;
298 JSGlobalData* pData = it->second; 295 JSGlobalData* pData = it->second;
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 break; 327 break;
331 } 328 }
332 } 329 }
333 } 330 }
334 } 331 }
335 332
336 void JSGlobalAlternate::ObjectToArray(v8::Local<v8::Object> pObj, 333 void JSGlobalAlternate::ObjectToArray(v8::Local<v8::Object> pObj,
337 CJS_GlobalVariableArray& array) { 334 CJS_GlobalVariableArray& array) {
338 v8::Local<v8::Context> context = pObj->CreationContext(); 335 v8::Local<v8::Context> context = pObj->CreationContext();
339 v8::Isolate* isolate = context->GetIsolate(); 336 v8::Isolate* isolate = context->GetIsolate();
340 v8::Local<v8::Array> pKeyList = JS_GetObjectElementNames(isolate, pObj); 337 v8::Local<v8::Array> pKeyList = FXJS_GetObjectElementNames(isolate, pObj);
341 int nObjElements = pKeyList->Length(); 338 int nObjElements = pKeyList->Length();
342 339
343 for (int i = 0; i < nObjElements; i++) { 340 for (int i = 0; i < nObjElements; i++) {
344 CFX_WideString ws = 341 CFX_WideString ws =
345 JS_ToString(isolate, JS_GetArrayElement(isolate, pKeyList, i)); 342 FXJS_ToString(isolate, FXJS_GetArrayElement(isolate, pKeyList, i));
346 CFX_ByteString sKey = ws.UTF8Encode(); 343 CFX_ByteString sKey = ws.UTF8Encode();
347 344
348 v8::Local<v8::Value> v = JS_GetObjectElement(isolate, pObj, ws.c_str()); 345 v8::Local<v8::Value> v = FXJS_GetObjectElement(isolate, pObj, ws.c_str());
349 FXJSVALUETYPE vt = GET_VALUE_TYPE(v); 346 switch (GET_VALUE_TYPE(v)) {
350 switch (vt) { 347 case CJS_Value::VT_number: {
351 case VT_number: {
352 CJS_KeyValue* pObjElement = new CJS_KeyValue; 348 CJS_KeyValue* pObjElement = new CJS_KeyValue;
353 pObjElement->nType = JS_GLOBALDATA_TYPE_NUMBER; 349 pObjElement->nType = JS_GLOBALDATA_TYPE_NUMBER;
354 pObjElement->sKey = sKey; 350 pObjElement->sKey = sKey;
355 pObjElement->dData = JS_ToNumber(isolate, v); 351 pObjElement->dData = FXJS_ToNumber(isolate, v);
356 array.Add(pObjElement); 352 array.Add(pObjElement);
357 } break; 353 } break;
358 case VT_boolean: { 354 case CJS_Value::VT_boolean: {
359 CJS_KeyValue* pObjElement = new CJS_KeyValue; 355 CJS_KeyValue* pObjElement = new CJS_KeyValue;
360 pObjElement->nType = JS_GLOBALDATA_TYPE_BOOLEAN; 356 pObjElement->nType = JS_GLOBALDATA_TYPE_BOOLEAN;
361 pObjElement->sKey = sKey; 357 pObjElement->sKey = sKey;
362 pObjElement->dData = JS_ToBoolean(isolate, v); 358 pObjElement->dData = FXJS_ToBoolean(isolate, v);
363 array.Add(pObjElement); 359 array.Add(pObjElement);
364 } break; 360 } break;
365 case VT_string: { 361 case CJS_Value::VT_string: {
366 CFX_ByteString sValue = 362 CFX_ByteString sValue =
367 CJS_Value(isolate, v, VT_string).ToCFXByteString(); 363 CJS_Value(isolate, v, CJS_Value::VT_string).ToCFXByteString();
368 CJS_KeyValue* pObjElement = new CJS_KeyValue; 364 CJS_KeyValue* pObjElement = new CJS_KeyValue;
369 pObjElement->nType = JS_GLOBALDATA_TYPE_STRING; 365 pObjElement->nType = JS_GLOBALDATA_TYPE_STRING;
370 pObjElement->sKey = sKey; 366 pObjElement->sKey = sKey;
371 pObjElement->sData = sValue; 367 pObjElement->sData = sValue;
372 array.Add(pObjElement); 368 array.Add(pObjElement);
373 } break; 369 } break;
374 case VT_object: { 370 case CJS_Value::VT_object: {
375 CJS_KeyValue* pObjElement = new CJS_KeyValue; 371 CJS_KeyValue* pObjElement = new CJS_KeyValue;
376 pObjElement->nType = JS_GLOBALDATA_TYPE_OBJECT; 372 pObjElement->nType = JS_GLOBALDATA_TYPE_OBJECT;
377 pObjElement->sKey = sKey; 373 pObjElement->sKey = sKey;
378 ObjectToArray(JS_ToObject(isolate, v), pObjElement->objData); 374 ObjectToArray(FXJS_ToObject(isolate, v), pObjElement->objData);
379 array.Add(pObjElement); 375 array.Add(pObjElement);
380 } break; 376 } break;
381 case VT_null: { 377 case CJS_Value::VT_null: {
382 CJS_KeyValue* pObjElement = new CJS_KeyValue; 378 CJS_KeyValue* pObjElement = new CJS_KeyValue;
383 pObjElement->nType = JS_GLOBALDATA_TYPE_NULL; 379 pObjElement->nType = JS_GLOBALDATA_TYPE_NULL;
384 pObjElement->sKey = sKey; 380 pObjElement->sKey = sKey;
385 array.Add(pObjElement); 381 array.Add(pObjElement);
386 } break; 382 } break;
387 default: 383 default:
388 break; 384 break;
389 } 385 }
390 } 386 }
391 } 387 }
392 388
393 void JSGlobalAlternate::PutObjectProperty(v8::Local<v8::Object> pObj, 389 void JSGlobalAlternate::PutObjectProperty(v8::Local<v8::Object> pObj,
394 CJS_KeyValue* pData) { 390 CJS_KeyValue* pData) {
395 ASSERT(pData != NULL); 391 ASSERT(pData != NULL);
396 392
397 for (int i = 0, sz = pData->objData.Count(); i < sz; i++) { 393 for (int i = 0, sz = pData->objData.Count(); i < sz; i++) {
398 CJS_KeyValue* pObjData = pData->objData.GetAt(i); 394 CJS_KeyValue* pObjData = pData->objData.GetAt(i);
399 ASSERT(pObjData != NULL); 395 ASSERT(pObjData != NULL);
400 396
401 switch (pObjData->nType) { 397 switch (pObjData->nType) {
402 case JS_GLOBALDATA_TYPE_NUMBER: 398 case JS_GLOBALDATA_TYPE_NUMBER:
403 JS_PutObjectNumber(NULL, (v8::Local<v8::Object>)pObj, 399 FXJS_PutObjectNumber(NULL, (v8::Local<v8::Object>)pObj,
404 pObjData->sKey.UTF8Decode().c_str(), 400 pObjData->sKey.UTF8Decode().c_str(),
405 pObjData->dData); 401 pObjData->dData);
406 break; 402 break;
407 case JS_GLOBALDATA_TYPE_BOOLEAN: 403 case JS_GLOBALDATA_TYPE_BOOLEAN:
408 JS_PutObjectBoolean(NULL, (v8::Local<v8::Object>)pObj, 404 FXJS_PutObjectBoolean(NULL, (v8::Local<v8::Object>)pObj,
409 pObjData->sKey.UTF8Decode().c_str(), 405 pObjData->sKey.UTF8Decode().c_str(),
410 (bool)(pObjData->bData == 1)); 406 (bool)(pObjData->bData == 1));
411 break; 407 break;
412 case JS_GLOBALDATA_TYPE_STRING: 408 case JS_GLOBALDATA_TYPE_STRING:
413 JS_PutObjectString(NULL, (v8::Local<v8::Object>)pObj, 409 FXJS_PutObjectString(NULL, (v8::Local<v8::Object>)pObj,
414 pObjData->sKey.UTF8Decode().c_str(), 410 pObjData->sKey.UTF8Decode().c_str(),
415 pObjData->sData.UTF8Decode().c_str()); 411 pObjData->sData.UTF8Decode().c_str());
416 break; 412 break;
417 case JS_GLOBALDATA_TYPE_OBJECT: { 413 case JS_GLOBALDATA_TYPE_OBJECT: {
418 v8::Isolate* pRuntime = 414 v8::Isolate* pRuntime =
419 JS_GetRuntime((v8::Local<v8::Object>)(*m_pJSObject)); 415 FXJS_GetRuntime((v8::Local<v8::Object>)(*m_pJSObject));
420 v8::Local<v8::Object> pNewObj = JS_NewFxDynamicObj(pRuntime, NULL, -1); 416 v8::Local<v8::Object> pNewObj =
417 FXJS_NewFxDynamicObj(pRuntime, NULL, -1);
421 PutObjectProperty(pNewObj, pObjData); 418 PutObjectProperty(pNewObj, pObjData);
422 JS_PutObjectObject(NULL, (v8::Local<v8::Object>)pObj, 419 FXJS_PutObjectObject(NULL, (v8::Local<v8::Object>)pObj,
423 pObjData->sKey.UTF8Decode().c_str(), 420 pObjData->sKey.UTF8Decode().c_str(),
424 (v8::Local<v8::Object>)pNewObj); 421 (v8::Local<v8::Object>)pNewObj);
425 } break; 422 } break;
426 case JS_GLOBALDATA_TYPE_NULL: 423 case JS_GLOBALDATA_TYPE_NULL:
427 JS_PutObjectNull(NULL, (v8::Local<v8::Object>)pObj, 424 FXJS_PutObjectNull(NULL, (v8::Local<v8::Object>)pObj,
428 pObjData->sKey.UTF8Decode().c_str()); 425 pObjData->sKey.UTF8Decode().c_str());
429 break; 426 break;
430 } 427 }
431 } 428 }
432 } 429 }
433 430
434 void JSGlobalAlternate::DestroyGlobalPersisitentVariables() { 431 void JSGlobalAlternate::DestroyGlobalPersisitentVariables() {
435 for (const auto& pair : m_mapGlobal) { 432 for (const auto& pair : m_mapGlobal) {
436 delete pair.second; 433 delete pair.second;
437 } 434 }
438 m_mapGlobal.clear(); 435 m_mapGlobal.clear();
(...skipping 24 matching lines...) Expand all
463 case JS_GLOBALDATA_TYPE_NUMBER: { 460 case JS_GLOBALDATA_TYPE_NUMBER: {
464 pTemp->dData = dData; 461 pTemp->dData = dData;
465 } break; 462 } break;
466 case JS_GLOBALDATA_TYPE_BOOLEAN: { 463 case JS_GLOBALDATA_TYPE_BOOLEAN: {
467 pTemp->bData = bData; 464 pTemp->bData = bData;
468 } break; 465 } break;
469 case JS_GLOBALDATA_TYPE_STRING: { 466 case JS_GLOBALDATA_TYPE_STRING: {
470 pTemp->sData = sData; 467 pTemp->sData = sData;
471 } break; 468 } break;
472 case JS_GLOBALDATA_TYPE_OBJECT: { 469 case JS_GLOBALDATA_TYPE_OBJECT: {
473 pTemp->pData.Reset(JS_GetRuntime(pData), pData); 470 pTemp->pData.Reset(FXJS_GetRuntime(pData), pData);
474 } break; 471 } break;
475 case JS_GLOBALDATA_TYPE_NULL: 472 case JS_GLOBALDATA_TYPE_NULL:
476 break; 473 break;
477 default: 474 default:
478 return FALSE; 475 return FALSE;
479 } 476 }
480 return TRUE; 477 return TRUE;
481 } 478 }
482 479
483 JSGlobalData* pNewData = NULL; 480 JSGlobalData* pNewData = NULL;
(...skipping 13 matching lines...) Expand all
497 } break; 494 } break;
498 case JS_GLOBALDATA_TYPE_STRING: { 495 case JS_GLOBALDATA_TYPE_STRING: {
499 pNewData = new JSGlobalData; 496 pNewData = new JSGlobalData;
500 pNewData->nType = JS_GLOBALDATA_TYPE_STRING; 497 pNewData->nType = JS_GLOBALDATA_TYPE_STRING;
501 pNewData->sData = sData; 498 pNewData->sData = sData;
502 pNewData->bPersistent = bDefaultPersistent; 499 pNewData->bPersistent = bDefaultPersistent;
503 } break; 500 } break;
504 case JS_GLOBALDATA_TYPE_OBJECT: { 501 case JS_GLOBALDATA_TYPE_OBJECT: {
505 pNewData = new JSGlobalData; 502 pNewData = new JSGlobalData;
506 pNewData->nType = JS_GLOBALDATA_TYPE_OBJECT; 503 pNewData->nType = JS_GLOBALDATA_TYPE_OBJECT;
507 pNewData->pData.Reset(JS_GetRuntime(pData), pData); 504 pNewData->pData.Reset(FXJS_GetRuntime(pData), pData);
508 pNewData->bPersistent = bDefaultPersistent; 505 pNewData->bPersistent = bDefaultPersistent;
509 } break; 506 } break;
510 case JS_GLOBALDATA_TYPE_NULL: { 507 case JS_GLOBALDATA_TYPE_NULL: {
511 pNewData = new JSGlobalData; 508 pNewData = new JSGlobalData;
512 pNewData->nType = JS_GLOBALDATA_TYPE_NULL; 509 pNewData->nType = JS_GLOBALDATA_TYPE_NULL;
513 pNewData->bPersistent = bDefaultPersistent; 510 pNewData->bPersistent = bDefaultPersistent;
514 } break; 511 } break;
515 default: 512 default:
516 return FALSE; 513 return FALSE;
517 } 514 }
518 515
519 m_mapGlobal[propname] = pNewData; 516 m_mapGlobal[propname] = pNewData;
520 return TRUE; 517 return TRUE;
521 } 518 }
522 519
523 FXJSVALUETYPE GET_VALUE_TYPE(v8::Local<v8::Value> p) { 520 CJS_Value::Type GET_VALUE_TYPE(v8::Local<v8::Value> p) {
524 const unsigned int nHash = JS_CalcHash(JS_GetTypeof(p)); 521 const unsigned int nHash = JS_CalcHash(FXJS_GetTypeof(p));
525 522
526 if (nHash == JSCONST_nUndefHash) 523 if (nHash == JSCONST_nUndefHash)
527 return VT_undefined; 524 return CJS_Value::VT_undefined;
528 if (nHash == JSCONST_nNullHash) 525 if (nHash == JSCONST_nNullHash)
529 return VT_null; 526 return CJS_Value::VT_null;
530 if (nHash == JSCONST_nStringHash) 527 if (nHash == JSCONST_nStringHash)
531 return VT_string; 528 return CJS_Value::VT_string;
532 if (nHash == JSCONST_nNumberHash) 529 if (nHash == JSCONST_nNumberHash)
533 return VT_number; 530 return CJS_Value::VT_number;
534 if (nHash == JSCONST_nBoolHash) 531 if (nHash == JSCONST_nBoolHash)
535 return VT_boolean; 532 return CJS_Value::VT_boolean;
536 if (nHash == JSCONST_nDateHash) 533 if (nHash == JSCONST_nDateHash)
537 return VT_date; 534 return CJS_Value::VT_date;
538 if (nHash == JSCONST_nObjectHash) 535 if (nHash == JSCONST_nObjectHash)
539 return VT_object; 536 return CJS_Value::VT_object;
540 if (nHash == JSCONST_nFXobjHash) 537 if (nHash == JSCONST_nFXobjHash)
541 return VT_fxobject; 538 return CJS_Value::VT_fxobject;
542 539
543 return VT_unknown; 540 return CJS_Value::VT_unknown;
544 } 541 }
OLDNEW
« no previous file with comments | « fpdfsdk/src/javascript/event.cpp ('k') | fpdfsdk/src/javascript/util.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698