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

Side by Side Diff: fxjs/cfxjse_value.cpp

Issue 2471353002: Remove FX_BOOL entirely. (Closed)
Patch Set: Fix nits now rather than later Created 4 years, 1 month 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 | « fxjs/cfxjse_value.h ('k') | fxjs/fxjse.h » ('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 "fxjs/cfxjse_value.h" 7 #include "fxjs/cfxjse_value.h"
8 8
9 #include <math.h> 9 #include <math.h>
10 10
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 v8::Local<v8::Value> hDate = v8::Date::New(m_pIsolate, dDouble); 121 v8::Local<v8::Value> hDate = v8::Date::New(m_pIsolate, dDouble);
122 m_hValue.Reset(m_pIsolate, hDate); 122 m_hValue.Reset(m_pIsolate, hDate);
123 } 123 }
124 124
125 void CFXJSE_Value::SetFloat(FX_FLOAT fFloat) { 125 void CFXJSE_Value::SetFloat(FX_FLOAT fFloat) {
126 CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate); 126 CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate);
127 v8::Local<v8::Value> pValue = v8::Number::New(m_pIsolate, ftod(fFloat)); 127 v8::Local<v8::Value> pValue = v8::Number::New(m_pIsolate, ftod(fFloat));
128 m_hValue.Reset(m_pIsolate, pValue); 128 m_hValue.Reset(m_pIsolate, pValue);
129 } 129 }
130 130
131 FX_BOOL CFXJSE_Value::SetObjectProperty(const CFX_ByteStringC& szPropName, 131 bool CFXJSE_Value::SetObjectProperty(const CFX_ByteStringC& szPropName,
132 CFXJSE_Value* lpPropValue) { 132 CFXJSE_Value* lpPropValue) {
133 ASSERT(lpPropValue); 133 ASSERT(lpPropValue);
134 CFXJSE_ScopeUtil_IsolateHandleRootContext scope(m_pIsolate); 134 CFXJSE_ScopeUtil_IsolateHandleRootContext scope(m_pIsolate);
135 v8::Local<v8::Value> hObject = 135 v8::Local<v8::Value> hObject =
136 v8::Local<v8::Value>::New(m_pIsolate, m_hValue); 136 v8::Local<v8::Value>::New(m_pIsolate, m_hValue);
137 if (!hObject->IsObject()) 137 if (!hObject->IsObject())
138 return FALSE; 138 return false;
139 139
140 v8::Local<v8::Value> hPropValue = 140 v8::Local<v8::Value> hPropValue =
141 v8::Local<v8::Value>::New(m_pIsolate, lpPropValue->DirectGetValue()); 141 v8::Local<v8::Value>::New(m_pIsolate, lpPropValue->DirectGetValue());
142 return (FX_BOOL)hObject.As<v8::Object>()->Set( 142 return (bool)hObject.As<v8::Object>()->Set(
143 v8::String::NewFromUtf8(m_pIsolate, szPropName.c_str(), 143 v8::String::NewFromUtf8(m_pIsolate, szPropName.c_str(),
144 v8::String::kNormalString, 144 v8::String::kNormalString,
145 szPropName.GetLength()), 145 szPropName.GetLength()),
146 hPropValue); 146 hPropValue);
147 } 147 }
148 148
149 FX_BOOL CFXJSE_Value::GetObjectProperty(const CFX_ByteStringC& szPropName, 149 bool CFXJSE_Value::GetObjectProperty(const CFX_ByteStringC& szPropName,
150 CFXJSE_Value* lpPropValue) { 150 CFXJSE_Value* lpPropValue) {
151 ASSERT(lpPropValue); 151 ASSERT(lpPropValue);
152 CFXJSE_ScopeUtil_IsolateHandleRootContext scope(m_pIsolate); 152 CFXJSE_ScopeUtil_IsolateHandleRootContext scope(m_pIsolate);
153 v8::Local<v8::Value> hObject = 153 v8::Local<v8::Value> hObject =
154 v8::Local<v8::Value>::New(m_pIsolate, m_hValue); 154 v8::Local<v8::Value>::New(m_pIsolate, m_hValue);
155 if (!hObject->IsObject()) 155 if (!hObject->IsObject())
156 return FALSE; 156 return false;
157 157
158 v8::Local<v8::Value> hPropValue = 158 v8::Local<v8::Value> hPropValue =
159 hObject.As<v8::Object>()->Get(v8::String::NewFromUtf8( 159 hObject.As<v8::Object>()->Get(v8::String::NewFromUtf8(
160 m_pIsolate, szPropName.c_str(), v8::String::kNormalString, 160 m_pIsolate, szPropName.c_str(), v8::String::kNormalString,
161 szPropName.GetLength())); 161 szPropName.GetLength()));
162 lpPropValue->ForceSetValue(hPropValue); 162 lpPropValue->ForceSetValue(hPropValue);
163 return TRUE; 163 return true;
164 } 164 }
165 165
166 FX_BOOL CFXJSE_Value::SetObjectProperty(uint32_t uPropIdx, 166 bool CFXJSE_Value::SetObjectProperty(uint32_t uPropIdx,
167 CFXJSE_Value* lpPropValue) { 167 CFXJSE_Value* lpPropValue) {
168 CFXJSE_ScopeUtil_IsolateHandleRootContext scope(m_pIsolate); 168 CFXJSE_ScopeUtil_IsolateHandleRootContext scope(m_pIsolate);
169 v8::Local<v8::Value> hObject = 169 v8::Local<v8::Value> hObject =
170 v8::Local<v8::Value>::New(m_pIsolate, m_hValue); 170 v8::Local<v8::Value>::New(m_pIsolate, m_hValue);
171 if (!hObject->IsObject()) 171 if (!hObject->IsObject())
172 return FALSE; 172 return false;
173 173
174 v8::Local<v8::Value> hPropValue = 174 v8::Local<v8::Value> hPropValue =
175 v8::Local<v8::Value>::New(m_pIsolate, lpPropValue->DirectGetValue()); 175 v8::Local<v8::Value>::New(m_pIsolate, lpPropValue->DirectGetValue());
176 return (FX_BOOL)hObject.As<v8::Object>()->Set(uPropIdx, hPropValue); 176 return (bool)hObject.As<v8::Object>()->Set(uPropIdx, hPropValue);
177 } 177 }
178 178
179 FX_BOOL CFXJSE_Value::GetObjectPropertyByIdx(uint32_t uPropIdx, 179 bool CFXJSE_Value::GetObjectPropertyByIdx(uint32_t uPropIdx,
180 CFXJSE_Value* lpPropValue) { 180 CFXJSE_Value* lpPropValue) {
181 CFXJSE_ScopeUtil_IsolateHandleRootContext scope(m_pIsolate); 181 CFXJSE_ScopeUtil_IsolateHandleRootContext scope(m_pIsolate);
182 v8::Local<v8::Value> hObject = 182 v8::Local<v8::Value> hObject =
183 v8::Local<v8::Value>::New(m_pIsolate, m_hValue); 183 v8::Local<v8::Value>::New(m_pIsolate, m_hValue);
184 if (!hObject->IsObject()) 184 if (!hObject->IsObject())
185 return FALSE; 185 return false;
186 186
187 v8::Local<v8::Value> hPropValue = hObject.As<v8::Object>()->Get(uPropIdx); 187 v8::Local<v8::Value> hPropValue = hObject.As<v8::Object>()->Get(uPropIdx);
188 lpPropValue->ForceSetValue(hPropValue); 188 lpPropValue->ForceSetValue(hPropValue);
189 return TRUE; 189 return true;
190 } 190 }
191 191
192 FX_BOOL CFXJSE_Value::DeleteObjectProperty(const CFX_ByteStringC& szPropName) { 192 bool CFXJSE_Value::DeleteObjectProperty(const CFX_ByteStringC& szPropName) {
193 CFXJSE_ScopeUtil_IsolateHandleRootContext scope(m_pIsolate); 193 CFXJSE_ScopeUtil_IsolateHandleRootContext scope(m_pIsolate);
194 v8::Local<v8::Value> hObject = 194 v8::Local<v8::Value> hObject =
195 v8::Local<v8::Value>::New(m_pIsolate, m_hValue); 195 v8::Local<v8::Value>::New(m_pIsolate, m_hValue);
196 if (!hObject->IsObject()) 196 if (!hObject->IsObject())
197 return FALSE; 197 return false;
198 198
199 hObject.As<v8::Object>()->Delete(v8::String::NewFromUtf8( 199 hObject.As<v8::Object>()->Delete(v8::String::NewFromUtf8(
200 m_pIsolate, szPropName.c_str(), v8::String::kNormalString, 200 m_pIsolate, szPropName.c_str(), v8::String::kNormalString,
201 szPropName.GetLength())); 201 szPropName.GetLength()));
202 return TRUE; 202 return true;
203 } 203 }
204 204
205 FX_BOOL CFXJSE_Value::HasObjectOwnProperty(const CFX_ByteStringC& szPropName, 205 bool CFXJSE_Value::HasObjectOwnProperty(const CFX_ByteStringC& szPropName,
206 FX_BOOL bUseTypeGetter) { 206 bool bUseTypeGetter) {
207 CFXJSE_ScopeUtil_IsolateHandleRootContext scope(m_pIsolate); 207 CFXJSE_ScopeUtil_IsolateHandleRootContext scope(m_pIsolate);
208 v8::Local<v8::Value> hObject = 208 v8::Local<v8::Value> hObject =
209 v8::Local<v8::Value>::New(m_pIsolate, m_hValue); 209 v8::Local<v8::Value>::New(m_pIsolate, m_hValue);
210 if (!hObject->IsObject()) 210 if (!hObject->IsObject())
211 return FALSE; 211 return false;
212 212
213 v8::Local<v8::String> hKey = v8::String::NewFromUtf8( 213 v8::Local<v8::String> hKey = v8::String::NewFromUtf8(
214 m_pIsolate, szPropName.c_str(), v8::String::kNormalString, 214 m_pIsolate, szPropName.c_str(), v8::String::kNormalString,
215 szPropName.GetLength()); 215 szPropName.GetLength());
216 return hObject.As<v8::Object>()->HasRealNamedProperty(hKey) || 216 return hObject.As<v8::Object>()->HasRealNamedProperty(hKey) ||
217 (bUseTypeGetter && 217 (bUseTypeGetter &&
218 hObject.As<v8::Object>() 218 hObject.As<v8::Object>()
219 ->HasOwnProperty(m_pIsolate->GetCurrentContext(), hKey) 219 ->HasOwnProperty(m_pIsolate->GetCurrentContext(), hKey)
220 .FromMaybe(false)); 220 .FromMaybe(false));
221 } 221 }
222 222
223 FX_BOOL CFXJSE_Value::SetObjectOwnProperty(const CFX_ByteStringC& szPropName, 223 bool CFXJSE_Value::SetObjectOwnProperty(const CFX_ByteStringC& szPropName,
224 CFXJSE_Value* lpPropValue) { 224 CFXJSE_Value* lpPropValue) {
225 ASSERT(lpPropValue); 225 ASSERT(lpPropValue);
226 CFXJSE_ScopeUtil_IsolateHandleRootContext scope(m_pIsolate); 226 CFXJSE_ScopeUtil_IsolateHandleRootContext scope(m_pIsolate);
227 v8::Local<v8::Value> hObject = 227 v8::Local<v8::Value> hObject =
228 v8::Local<v8::Value>::New(m_pIsolate, m_hValue); 228 v8::Local<v8::Value>::New(m_pIsolate, m_hValue);
229 if (!hObject->IsObject()) 229 if (!hObject->IsObject())
230 return FALSE; 230 return false;
231 231
232 v8::Local<v8::Value> pValue = 232 v8::Local<v8::Value> pValue =
233 v8::Local<v8::Value>::New(m_pIsolate, lpPropValue->m_hValue); 233 v8::Local<v8::Value>::New(m_pIsolate, lpPropValue->m_hValue);
234 return hObject.As<v8::Object>() 234 return hObject.As<v8::Object>()
235 ->DefineOwnProperty( 235 ->DefineOwnProperty(
236 m_pIsolate->GetCurrentContext(), 236 m_pIsolate->GetCurrentContext(),
237 v8::String::NewFromUtf8(m_pIsolate, szPropName.c_str(), 237 v8::String::NewFromUtf8(m_pIsolate, szPropName.c_str(),
238 v8::String::kNormalString, 238 v8::String::kNormalString,
239 szPropName.GetLength()), 239 szPropName.GetLength()),
240 pValue) 240 pValue)
241 .FromMaybe(false); 241 .FromMaybe(false);
242 } 242 }
243 243
244 FX_BOOL CFXJSE_Value::SetFunctionBind(CFXJSE_Value* lpOldFunction, 244 bool CFXJSE_Value::SetFunctionBind(CFXJSE_Value* lpOldFunction,
245 CFXJSE_Value* lpNewThis) { 245 CFXJSE_Value* lpNewThis) {
246 ASSERT(lpOldFunction && lpNewThis); 246 ASSERT(lpOldFunction && lpNewThis);
247 247
248 CFXJSE_ScopeUtil_IsolateHandleRootContext scope(m_pIsolate); 248 CFXJSE_ScopeUtil_IsolateHandleRootContext scope(m_pIsolate);
249 v8::Local<v8::Value> rgArgs[2]; 249 v8::Local<v8::Value> rgArgs[2];
250 v8::Local<v8::Value> hOldFunction = 250 v8::Local<v8::Value> hOldFunction =
251 v8::Local<v8::Value>::New(m_pIsolate, lpOldFunction->DirectGetValue()); 251 v8::Local<v8::Value>::New(m_pIsolate, lpOldFunction->DirectGetValue());
252 if (hOldFunction.IsEmpty() || !hOldFunction->IsFunction()) 252 if (hOldFunction.IsEmpty() || !hOldFunction->IsFunction())
253 return FALSE; 253 return false;
254 254
255 rgArgs[0] = hOldFunction; 255 rgArgs[0] = hOldFunction;
256 v8::Local<v8::Value> hNewThis = 256 v8::Local<v8::Value> hNewThis =
257 v8::Local<v8::Value>::New(m_pIsolate, lpNewThis->DirectGetValue()); 257 v8::Local<v8::Value>::New(m_pIsolate, lpNewThis->DirectGetValue());
258 if (hNewThis.IsEmpty()) 258 if (hNewThis.IsEmpty())
259 return FALSE; 259 return false;
260 260
261 rgArgs[1] = hNewThis; 261 rgArgs[1] = hNewThis;
262 v8::Local<v8::String> hBinderFuncSource = 262 v8::Local<v8::String> hBinderFuncSource =
263 v8::String::NewFromUtf8(m_pIsolate, 263 v8::String::NewFromUtf8(m_pIsolate,
264 "(function (oldfunction, newthis) { return " 264 "(function (oldfunction, newthis) { return "
265 "oldfunction.bind(newthis); })"); 265 "oldfunction.bind(newthis); })");
266 v8::Local<v8::Function> hBinderFunc = 266 v8::Local<v8::Function> hBinderFunc =
267 v8::Script::Compile(hBinderFuncSource)->Run().As<v8::Function>(); 267 v8::Script::Compile(hBinderFuncSource)->Run().As<v8::Function>();
268 v8::Local<v8::Value> hBoundFunction = 268 v8::Local<v8::Value> hBoundFunction =
269 hBinderFunc->Call(m_pIsolate->GetCurrentContext()->Global(), 2, rgArgs); 269 hBinderFunc->Call(m_pIsolate->GetCurrentContext()->Global(), 2, rgArgs);
270 if (hBoundFunction.IsEmpty() || !hBoundFunction->IsFunction()) 270 if (hBoundFunction.IsEmpty() || !hBoundFunction->IsFunction())
271 return FALSE; 271 return false;
272 272
273 m_hValue.Reset(m_pIsolate, hBoundFunction); 273 m_hValue.Reset(m_pIsolate, hBoundFunction);
274 return TRUE; 274 return true;
275 } 275 }
276 276
277 #define FXJSE_INVALID_PTR ((void*)(intptr_t)-1) 277 #define FXJSE_INVALID_PTR ((void*)(intptr_t)-1)
278 FX_BOOL CFXJSE_Value::Call(CFXJSE_Value* lpReceiver, 278 bool CFXJSE_Value::Call(CFXJSE_Value* lpReceiver,
279 CFXJSE_Value* lpRetValue, 279 CFXJSE_Value* lpRetValue,
280 uint32_t nArgCount, 280 uint32_t nArgCount,
281 CFXJSE_Value** lpArgs) { 281 CFXJSE_Value** lpArgs) {
282 CFXJSE_ScopeUtil_IsolateHandleRootContext scope(m_pIsolate); 282 CFXJSE_ScopeUtil_IsolateHandleRootContext scope(m_pIsolate);
283 v8::Local<v8::Value> hFunctionValue = 283 v8::Local<v8::Value> hFunctionValue =
284 v8::Local<v8::Value>::New(m_pIsolate, DirectGetValue()); 284 v8::Local<v8::Value>::New(m_pIsolate, DirectGetValue());
285 v8::Local<v8::Object> hFunctionObject = 285 v8::Local<v8::Object> hFunctionObject =
286 !hFunctionValue.IsEmpty() && hFunctionValue->IsObject() 286 !hFunctionValue.IsEmpty() && hFunctionValue->IsObject()
287 ? hFunctionValue.As<v8::Object>() 287 ? hFunctionValue.As<v8::Object>()
288 : v8::Local<v8::Object>(); 288 : v8::Local<v8::Object>();
289 289
290 v8::TryCatch trycatch(m_pIsolate); 290 v8::TryCatch trycatch(m_pIsolate);
291 if (hFunctionObject.IsEmpty() || !hFunctionObject->IsCallable()) { 291 if (hFunctionObject.IsEmpty() || !hFunctionObject->IsCallable()) {
292 if (lpRetValue) 292 if (lpRetValue)
293 lpRetValue->ForceSetValue(FXJSE_CreateReturnValue(m_pIsolate, trycatch)); 293 lpRetValue->ForceSetValue(FXJSE_CreateReturnValue(m_pIsolate, trycatch));
294 return FALSE; 294 return false;
295 } 295 }
296 296
297 v8::Local<v8::Value> hReturnValue; 297 v8::Local<v8::Value> hReturnValue;
298 v8::Local<v8::Value>* lpLocalArgs = NULL; 298 v8::Local<v8::Value>* lpLocalArgs = NULL;
299 if (nArgCount) { 299 if (nArgCount) {
300 lpLocalArgs = FX_Alloc(v8::Local<v8::Value>, nArgCount); 300 lpLocalArgs = FX_Alloc(v8::Local<v8::Value>, nArgCount);
301 for (uint32_t i = 0; i < nArgCount; i++) { 301 for (uint32_t i = 0; i < nArgCount; i++) {
302 new (lpLocalArgs + i) v8::Local<v8::Value>; 302 new (lpLocalArgs + i) v8::Local<v8::Value>;
303 CFXJSE_Value* lpArg = lpArgs[i]; 303 CFXJSE_Value* lpArg = lpArgs[i];
304 if (lpArg) { 304 if (lpArg) {
305 lpLocalArgs[i] = 305 lpLocalArgs[i] =
306 v8::Local<v8::Value>::New(m_pIsolate, lpArg->DirectGetValue()); 306 v8::Local<v8::Value>::New(m_pIsolate, lpArg->DirectGetValue());
307 } 307 }
308 if (lpLocalArgs[i].IsEmpty()) { 308 if (lpLocalArgs[i].IsEmpty()) {
309 lpLocalArgs[i] = v8::Undefined(m_pIsolate); 309 lpLocalArgs[i] = v8::Undefined(m_pIsolate);
310 } 310 }
311 } 311 }
312 } 312 }
313 313
314 FX_BOOL bRetValue = TRUE; 314 bool bRetValue = true;
315 if (lpReceiver == FXJSE_INVALID_PTR) { 315 if (lpReceiver == FXJSE_INVALID_PTR) {
316 v8::MaybeLocal<v8::Value> maybe_retvalue = 316 v8::MaybeLocal<v8::Value> maybe_retvalue =
317 hFunctionObject->CallAsConstructor(m_pIsolate->GetCurrentContext(), 317 hFunctionObject->CallAsConstructor(m_pIsolate->GetCurrentContext(),
318 nArgCount, lpLocalArgs); 318 nArgCount, lpLocalArgs);
319 hReturnValue = maybe_retvalue.FromMaybe(v8::Local<v8::Value>()); 319 hReturnValue = maybe_retvalue.FromMaybe(v8::Local<v8::Value>());
320 } else { 320 } else {
321 v8::Local<v8::Value> hReceiver; 321 v8::Local<v8::Value> hReceiver;
322 if (lpReceiver) { 322 if (lpReceiver) {
323 hReceiver = 323 hReceiver =
324 v8::Local<v8::Value>::New(m_pIsolate, lpReceiver->DirectGetValue()); 324 v8::Local<v8::Value>::New(m_pIsolate, lpReceiver->DirectGetValue());
325 } 325 }
326 if (hReceiver.IsEmpty() || !hReceiver->IsObject()) 326 if (hReceiver.IsEmpty() || !hReceiver->IsObject())
327 hReceiver = v8::Object::New(m_pIsolate); 327 hReceiver = v8::Object::New(m_pIsolate);
328 328
329 v8::MaybeLocal<v8::Value> maybe_retvalue = hFunctionObject->CallAsFunction( 329 v8::MaybeLocal<v8::Value> maybe_retvalue = hFunctionObject->CallAsFunction(
330 m_pIsolate->GetCurrentContext(), hReceiver, nArgCount, lpLocalArgs); 330 m_pIsolate->GetCurrentContext(), hReceiver, nArgCount, lpLocalArgs);
331 hReturnValue = maybe_retvalue.FromMaybe(v8::Local<v8::Value>()); 331 hReturnValue = maybe_retvalue.FromMaybe(v8::Local<v8::Value>());
332 } 332 }
333 333
334 if (trycatch.HasCaught()) { 334 if (trycatch.HasCaught()) {
335 hReturnValue = FXJSE_CreateReturnValue(m_pIsolate, trycatch); 335 hReturnValue = FXJSE_CreateReturnValue(m_pIsolate, trycatch);
336 bRetValue = FALSE; 336 bRetValue = false;
337 } 337 }
338 338
339 if (lpRetValue) 339 if (lpRetValue)
340 lpRetValue->ForceSetValue(hReturnValue); 340 lpRetValue->ForceSetValue(hReturnValue);
341 341
342 if (lpLocalArgs) { 342 if (lpLocalArgs) {
343 for (uint32_t i = 0; i < nArgCount; i++) 343 for (uint32_t i = 0; i < nArgCount; i++)
344 lpLocalArgs[i].~Local(); 344 lpLocalArgs[i].~Local();
345 FX_Free(lpLocalArgs); 345 FX_Free(lpLocalArgs);
346 } 346 }
347 return bRetValue; 347 return bRetValue;
348 } 348 }
349 349
350 FX_BOOL CFXJSE_Value::IsUndefined() const { 350 bool CFXJSE_Value::IsUndefined() const {
351 if (m_hValue.IsEmpty()) 351 if (m_hValue.IsEmpty())
352 return FALSE; 352 return false;
353 353
354 CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate); 354 CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate);
355 v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue); 355 v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue);
356 return hValue->IsUndefined(); 356 return hValue->IsUndefined();
357 } 357 }
358 358
359 FX_BOOL CFXJSE_Value::IsNull() const { 359 bool CFXJSE_Value::IsNull() const {
360 if (m_hValue.IsEmpty()) 360 if (m_hValue.IsEmpty())
361 return FALSE; 361 return false;
362 362
363 CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate); 363 CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate);
364 v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue); 364 v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue);
365 return hValue->IsNull(); 365 return hValue->IsNull();
366 } 366 }
367 367
368 FX_BOOL CFXJSE_Value::IsBoolean() const { 368 bool CFXJSE_Value::IsBoolean() const {
369 if (m_hValue.IsEmpty()) 369 if (m_hValue.IsEmpty())
370 return FALSE; 370 return false;
371 371
372 CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate); 372 CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate);
373 v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue); 373 v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue);
374 return hValue->IsBoolean(); 374 return hValue->IsBoolean();
375 } 375 }
376 376
377 FX_BOOL CFXJSE_Value::IsString() const { 377 bool CFXJSE_Value::IsString() const {
378 if (m_hValue.IsEmpty()) 378 if (m_hValue.IsEmpty())
379 return FALSE; 379 return false;
380 380
381 CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate); 381 CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate);
382 v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue); 382 v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue);
383 return hValue->IsString(); 383 return hValue->IsString();
384 } 384 }
385 385
386 FX_BOOL CFXJSE_Value::IsNumber() const { 386 bool CFXJSE_Value::IsNumber() const {
387 if (m_hValue.IsEmpty()) 387 if (m_hValue.IsEmpty())
388 return FALSE; 388 return false;
389 389
390 CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate); 390 CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate);
391 v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue); 391 v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue);
392 return hValue->IsNumber(); 392 return hValue->IsNumber();
393 } 393 }
394 394
395 FX_BOOL CFXJSE_Value::IsInteger() const { 395 bool CFXJSE_Value::IsInteger() const {
396 if (m_hValue.IsEmpty()) 396 if (m_hValue.IsEmpty())
397 return FALSE; 397 return false;
398 398
399 CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate); 399 CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate);
400 v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue); 400 v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue);
401 return hValue->IsInt32(); 401 return hValue->IsInt32();
402 } 402 }
403 403
404 FX_BOOL CFXJSE_Value::IsObject() const { 404 bool CFXJSE_Value::IsObject() const {
405 if (m_hValue.IsEmpty()) 405 if (m_hValue.IsEmpty())
406 return FALSE; 406 return false;
407 407
408 CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate); 408 CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate);
409 v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue); 409 v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue);
410 return hValue->IsObject(); 410 return hValue->IsObject();
411 } 411 }
412 412
413 FX_BOOL CFXJSE_Value::IsArray() const { 413 bool CFXJSE_Value::IsArray() const {
414 if (m_hValue.IsEmpty()) 414 if (m_hValue.IsEmpty())
415 return FALSE; 415 return false;
416 416
417 CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate); 417 CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate);
418 v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue); 418 v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue);
419 return hValue->IsArray(); 419 return hValue->IsArray();
420 } 420 }
421 421
422 FX_BOOL CFXJSE_Value::IsFunction() const { 422 bool CFXJSE_Value::IsFunction() const {
423 if (m_hValue.IsEmpty()) 423 if (m_hValue.IsEmpty())
424 return FALSE; 424 return false;
425 425
426 CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate); 426 CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate);
427 v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue); 427 v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue);
428 return hValue->IsFunction(); 428 return hValue->IsFunction();
429 } 429 }
430 430
431 FX_BOOL CFXJSE_Value::IsDate() const { 431 bool CFXJSE_Value::IsDate() const {
432 if (m_hValue.IsEmpty()) 432 if (m_hValue.IsEmpty())
433 return FALSE; 433 return false;
434 434
435 CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate); 435 CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate);
436 v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue); 436 v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue);
437 return hValue->IsDate(); 437 return hValue->IsDate();
438 } 438 }
439 439
440 FX_BOOL CFXJSE_Value::ToBoolean() const { 440 bool CFXJSE_Value::ToBoolean() const {
441 ASSERT(!m_hValue.IsEmpty()); 441 ASSERT(!m_hValue.IsEmpty());
442 CFXJSE_ScopeUtil_IsolateHandleRootContext scope(m_pIsolate); 442 CFXJSE_ScopeUtil_IsolateHandleRootContext scope(m_pIsolate);
443 v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue); 443 v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue);
444 return static_cast<FX_BOOL>(hValue->BooleanValue()); 444 return static_cast<bool>(hValue->BooleanValue());
445 } 445 }
446 446
447 FX_FLOAT CFXJSE_Value::ToFloat() const { 447 FX_FLOAT CFXJSE_Value::ToFloat() const {
448 ASSERT(!m_hValue.IsEmpty()); 448 ASSERT(!m_hValue.IsEmpty());
449 CFXJSE_ScopeUtil_IsolateHandleRootContext scope(m_pIsolate); 449 CFXJSE_ScopeUtil_IsolateHandleRootContext scope(m_pIsolate);
450 v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue); 450 v8::Local<v8::Value> hValue = v8::Local<v8::Value>::New(m_pIsolate, m_hValue);
451 return static_cast<FX_FLOAT>(hValue->NumberValue()); 451 return static_cast<FX_FLOAT>(hValue->NumberValue());
452 } 452 }
453 453
454 double CFXJSE_Value::ToDouble() const { 454 double CFXJSE_Value::ToDouble() const {
(...skipping 24 matching lines...) Expand all
479 v8::Local<v8::Value> hValue = v8::Undefined(m_pIsolate); 479 v8::Local<v8::Value> hValue = v8::Undefined(m_pIsolate);
480 m_hValue.Reset(m_pIsolate, hValue); 480 m_hValue.Reset(m_pIsolate, hValue);
481 } 481 }
482 482
483 void CFXJSE_Value::SetNull() { 483 void CFXJSE_Value::SetNull() {
484 CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate); 484 CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate);
485 v8::Local<v8::Value> hValue = v8::Null(m_pIsolate); 485 v8::Local<v8::Value> hValue = v8::Null(m_pIsolate);
486 m_hValue.Reset(m_pIsolate, hValue); 486 m_hValue.Reset(m_pIsolate, hValue);
487 } 487 }
488 488
489 void CFXJSE_Value::SetBoolean(FX_BOOL bBoolean) { 489 void CFXJSE_Value::SetBoolean(bool bBoolean) {
490 CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate); 490 CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate);
491 v8::Local<v8::Value> hValue = v8::Boolean::New(m_pIsolate, bBoolean != FALSE); 491 v8::Local<v8::Value> hValue = v8::Boolean::New(m_pIsolate, bBoolean != false);
492 m_hValue.Reset(m_pIsolate, hValue); 492 m_hValue.Reset(m_pIsolate, hValue);
493 } 493 }
494 494
495 void CFXJSE_Value::SetInteger(int32_t nInteger) { 495 void CFXJSE_Value::SetInteger(int32_t nInteger) {
496 CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate); 496 CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate);
497 v8::Local<v8::Value> hValue = v8::Integer::New(m_pIsolate, nInteger); 497 v8::Local<v8::Value> hValue = v8::Integer::New(m_pIsolate, nInteger);
498 m_hValue.Reset(m_pIsolate, hValue); 498 m_hValue.Reset(m_pIsolate, hValue);
499 } 499 }
500 500
501 void CFXJSE_Value::SetDouble(double dDouble) { 501 void CFXJSE_Value::SetDouble(double dDouble) {
502 CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate); 502 CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate);
503 v8::Local<v8::Value> hValue = v8::Number::New(m_pIsolate, dDouble); 503 v8::Local<v8::Value> hValue = v8::Number::New(m_pIsolate, dDouble);
504 m_hValue.Reset(m_pIsolate, hValue); 504 m_hValue.Reset(m_pIsolate, hValue);
505 } 505 }
506 506
507 void CFXJSE_Value::SetString(const CFX_ByteStringC& szString) { 507 void CFXJSE_Value::SetString(const CFX_ByteStringC& szString) {
508 CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate); 508 CFXJSE_ScopeUtil_IsolateHandle scope(m_pIsolate);
509 v8::Local<v8::Value> hValue = v8::String::NewFromUtf8( 509 v8::Local<v8::Value> hValue = v8::String::NewFromUtf8(
510 m_pIsolate, reinterpret_cast<const char*>(szString.raw_str()), 510 m_pIsolate, reinterpret_cast<const char*>(szString.raw_str()),
511 v8::String::kNormalString, szString.GetLength()); 511 v8::String::kNormalString, szString.GetLength());
512 m_hValue.Reset(m_pIsolate, hValue); 512 m_hValue.Reset(m_pIsolate, hValue);
513 } 513 }
514 514
515 void CFXJSE_Value::SetJSObject() { 515 void CFXJSE_Value::SetJSObject() {
516 CFXJSE_ScopeUtil_IsolateHandleRootContext scope(m_pIsolate); 516 CFXJSE_ScopeUtil_IsolateHandleRootContext scope(m_pIsolate);
517 v8::Local<v8::Value> hValue = v8::Object::New(m_pIsolate); 517 v8::Local<v8::Value> hValue = v8::Object::New(m_pIsolate);
518 m_hValue.Reset(m_pIsolate, hValue); 518 m_hValue.Reset(m_pIsolate, hValue);
519 } 519 }
OLDNEW
« no previous file with comments | « fxjs/cfxjse_value.h ('k') | fxjs/fxjse.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698