Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2008 the V8 project authors. All rights reserved. | 1 // Copyright 2008 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 304 context_.Reset(isolate, context); | 304 context_.Reset(isolate, context); |
| 305 context->Enter(); | 305 context->Enter(); |
| 306 // We can't do this later perhaps because of a fatal error. | 306 // We can't do this later perhaps because of a fatal error. |
| 307 isolate_ = isolate; | 307 isolate_ = isolate; |
| 308 } | 308 } |
| 309 | 309 |
| 310 v8::Persistent<v8::Context> context_; | 310 v8::Persistent<v8::Context> context_; |
| 311 v8::Isolate* isolate_; | 311 v8::Isolate* isolate_; |
| 312 }; | 312 }; |
| 313 | 313 |
| 314 | |
| 315 static inline uint16_t* AsciiToTwoByteString(const char* source) { | |
| 316 int array_length = i::StrLength(source) + 1; | |
| 317 uint16_t* converted = i::NewArray<uint16_t>(array_length); | |
| 318 for (int i = 0; i < array_length; i++) converted[i] = source[i]; | |
| 319 return converted; | |
| 320 } | |
| 321 | |
| 322 | |
| 314 static inline v8::Local<v8::Value> v8_num(double x) { | 323 static inline v8::Local<v8::Value> v8_num(double x) { |
| 315 return v8::Number::New(v8::Isolate::GetCurrent(), x); | 324 return v8::Number::New(v8::Isolate::GetCurrent(), x); |
| 316 } | 325 } |
| 317 | 326 |
| 318 | 327 |
| 319 static inline v8::Local<v8::String> v8_str(const char* x) { | 328 static inline v8::Local<v8::String> v8_str(const char* x) { |
| 320 return v8::String::NewFromUtf8(v8::Isolate::GetCurrent(), x); | 329 return v8::String::NewFromUtf8(v8::Isolate::GetCurrent(), x); |
| 321 } | 330 } |
| 322 | 331 |
| 323 | 332 |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 396 ->Run(); | 405 ->Run(); |
| 397 } | 406 } |
| 398 | 407 |
| 399 | 408 |
| 400 static inline v8::Local<v8::Value> CompileRunWithOrigin( | 409 static inline v8::Local<v8::Value> CompileRunWithOrigin( |
| 401 const char* source, const char* origin_url) { | 410 const char* source, const char* origin_url) { |
| 402 return CompileRunWithOrigin(v8_str(source), origin_url); | 411 return CompileRunWithOrigin(v8_str(source), origin_url); |
| 403 } | 412 } |
| 404 | 413 |
| 405 | 414 |
| 415 | |
| 416 static inline void ExpectString(const char* code, const char* expected) { | |
| 417 v8::Local<v8::Value> result = CompileRun(code); | |
| 418 CHECK(result->IsString()); | |
| 419 v8::String::Utf8Value utf8(result); | |
| 420 CHECK_EQ(expected, *utf8); | |
| 421 } | |
| 422 | |
| 423 | |
| 424 static inline void ExpectInt32(const char* code, int expected) { | |
| 425 v8::Local<v8::Value> result = CompileRun(code); | |
| 426 CHECK(result->IsInt32()); | |
| 427 CHECK_EQ(expected, result->Int32Value()); | |
| 428 } | |
| 429 | |
| 430 | |
| 431 static inline void ExpectBoolean(const char* code, bool expected) { | |
| 432 v8::Local<v8::Value> result = CompileRun(code); | |
| 433 CHECK(result->IsBoolean()); | |
| 434 CHECK_EQ(expected, result->BooleanValue()); | |
| 435 } | |
| 436 | |
| 437 | |
| 438 static inline void ExpectTrue(const char* code) { | |
| 439 ExpectBoolean(code, true); | |
| 440 } | |
| 441 | |
| 442 | |
| 443 static inline void ExpectFalse(const char* code) { | |
| 444 ExpectBoolean(code, false); | |
| 445 } | |
| 446 | |
| 447 | |
| 448 static inline void ExpectObject(const char* code, | |
| 449 v8::Local<v8::Value> expected) { | |
| 450 v8::Local<v8::Value> result = CompileRun(code); | |
| 451 CHECK(result->Equals(expected)); | |
|
rossberg
2014/06/03 13:48:46
Not your CL really, but shouldn't this use SameVal
marja
2014/06/03 14:16:35
Changed this to use SameValue.
| |
| 452 } | |
| 453 | |
| 454 | |
| 455 static inline void ExpectUndefined(const char* code) { | |
| 456 v8::Local<v8::Value> result = CompileRun(code); | |
| 457 CHECK(result->IsUndefined()); | |
| 458 } | |
| 459 | |
| 460 | |
| 406 // Helper function that simulates a full new-space in the heap. | 461 // Helper function that simulates a full new-space in the heap. |
| 407 static inline void SimulateFullSpace(v8::internal::NewSpace* space) { | 462 static inline void SimulateFullSpace(v8::internal::NewSpace* space) { |
| 408 int new_linear_size = static_cast<int>( | 463 int new_linear_size = static_cast<int>( |
| 409 *space->allocation_limit_address() - *space->allocation_top_address()); | 464 *space->allocation_limit_address() - *space->allocation_top_address()); |
| 410 if (new_linear_size == 0) return; | 465 if (new_linear_size == 0) return; |
| 411 v8::internal::AllocationResult allocation = | 466 v8::internal::AllocationResult allocation = |
| 412 space->AllocateRaw(new_linear_size); | 467 space->AllocateRaw(new_linear_size); |
| 413 v8::internal::FreeListNode* node = | 468 v8::internal::FreeListNode* node = |
| 414 v8::internal::FreeListNode::cast(allocation.ToObjectChecked()); | 469 v8::internal::FreeListNode::cast(allocation.ToObjectChecked()); |
| 415 node->set_size(space->heap(), new_linear_size); | 470 node->set_size(space->heap(), new_linear_size); |
| (...skipping 24 matching lines...) Expand all Loading... | |
| 440 CHECK_EQ(0, heap_profiler_->heap_object_map()->FindUntrackedObjects()); | 495 CHECK_EQ(0, heap_profiler_->heap_object_map()->FindUntrackedObjects()); |
| 441 heap_profiler_->StopHeapObjectsTracking(); | 496 heap_profiler_->StopHeapObjectsTracking(); |
| 442 } | 497 } |
| 443 | 498 |
| 444 private: | 499 private: |
| 445 i::HeapProfiler* heap_profiler_; | 500 i::HeapProfiler* heap_profiler_; |
| 446 }; | 501 }; |
| 447 | 502 |
| 448 | 503 |
| 449 #endif // ifndef CCTEST_H_ | 504 #endif // ifndef CCTEST_H_ |
| OLD | NEW |