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

Side by Side Diff: src/api.cc

Issue 11028027: Revert trunk to bleeding_edge at r12484 (Closed) Base URL: https://v8.googlecode.com/svn/trunk
Patch Set: Created 8 years, 2 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 | Annotate | Revision Log
« no previous file with comments | « include/v8.h ('k') | src/arm/assembler-arm.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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 523 matching lines...) Expand 10 before | Expand all | Expand 10 after
534 int dep_count, 534 int dep_count,
535 const char** deps, 535 const char** deps,
536 int source_length) 536 int source_length)
537 : name_(name), 537 : name_(name),
538 source_length_(source_length >= 0 ? 538 source_length_(source_length >= 0 ?
539 source_length : 539 source_length :
540 (source ? static_cast<int>(strlen(source)) : 0)), 540 (source ? static_cast<int>(strlen(source)) : 0)),
541 source_(source, source_length_), 541 source_(source, source_length_),
542 dep_count_(dep_count), 542 dep_count_(dep_count),
543 deps_(deps), 543 deps_(deps),
544 auto_enable_(false) { 544 auto_enable_(false) { }
545 CHECK(source != NULL || source_length_ == 0);
546 }
547 545
548 546
549 v8::Handle<Primitive> Undefined() { 547 v8::Handle<Primitive> Undefined() {
550 i::Isolate* isolate = i::Isolate::Current(); 548 i::Isolate* isolate = i::Isolate::Current();
551 if (!EnsureInitializedForIsolate(isolate, "v8::Undefined()")) { 549 if (!EnsureInitializedForIsolate(isolate, "v8::Undefined()")) {
552 return v8::Handle<v8::Primitive>(); 550 return v8::Handle<v8::Primitive>();
553 } 551 }
554 return v8::Handle<Primitive>(ToApi<Primitive>( 552 return v8::Handle<Primitive>(ToApi<Primitive>(
555 isolate->factory()->undefined_value())); 553 isolate->factory()->undefined_value()));
556 } 554 }
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
758 } 756 }
759 757
760 // Content of 'last_context' could be NULL. 758 // Content of 'last_context' could be NULL.
761 i::Context* last_context = 759 i::Context* last_context =
762 isolate->handle_scope_implementer()->RestoreContext(); 760 isolate->handle_scope_implementer()->RestoreContext();
763 isolate->set_context(last_context); 761 isolate->set_context(last_context);
764 isolate->set_context_exit_happened(true); 762 isolate->set_context_exit_happened(true);
765 } 763 }
766 764
767 765
768 void Context::SetData(v8::Handle<Value> data) { 766 void Context::SetData(v8::Handle<String> data) {
769 i::Handle<i::Context> env = Utils::OpenHandle(this); 767 i::Handle<i::Context> env = Utils::OpenHandle(this);
770 i::Isolate* isolate = env->GetIsolate(); 768 i::Isolate* isolate = env->GetIsolate();
771 if (IsDeadCheck(isolate, "v8::Context::SetData()")) return; 769 if (IsDeadCheck(isolate, "v8::Context::SetData()")) return;
772 i::Handle<i::Object> raw_data = Utils::OpenHandle(*data); 770 i::Handle<i::Object> raw_data = Utils::OpenHandle(*data);
773 ASSERT(env->IsNativeContext()); 771 ASSERT(env->IsNativeContext());
774 if (env->IsNativeContext()) { 772 if (env->IsNativeContext()) {
775 env->set_data(*raw_data); 773 env->set_data(*raw_data);
776 } 774 }
777 } 775 }
778 776
779 777
780 v8::Local<v8::Value> Context::GetData() { 778 v8::Local<v8::Value> Context::GetData() {
781 i::Handle<i::Context> env = Utils::OpenHandle(this); 779 i::Handle<i::Context> env = Utils::OpenHandle(this);
782 i::Isolate* isolate = env->GetIsolate(); 780 i::Isolate* isolate = env->GetIsolate();
783 if (IsDeadCheck(isolate, "v8::Context::GetData()")) { 781 if (IsDeadCheck(isolate, "v8::Context::GetData()")) {
782 return v8::Local<Value>();
783 }
784 i::Object* raw_result = NULL;
785 ASSERT(env->IsNativeContext());
786 if (env->IsNativeContext()) {
787 raw_result = env->data();
788 } else {
784 return Local<Value>(); 789 return Local<Value>();
785 } 790 }
786 ASSERT(env->IsNativeContext()); 791 i::Handle<i::Object> result(raw_result, isolate);
787 if (!env->IsNativeContext()) {
788 return Local<Value>();
789 }
790 i::Handle<i::Object> result(env->data(), isolate);
791 return Utils::ToLocal(result); 792 return Utils::ToLocal(result);
792 } 793 }
793 794
794 795
795 i::Object** v8::HandleScope::RawClose(i::Object** value) { 796 i::Object** v8::HandleScope::RawClose(i::Object** value) {
796 if (!ApiCheck(!is_closed_, 797 if (!ApiCheck(!is_closed_,
797 "v8::HandleScope::Close()", 798 "v8::HandleScope::Close()",
798 "Local scope has already been closed")) { 799 "Local scope has already been closed")) {
799 return 0; 800 return 0;
800 } 801 }
(...skipping 2593 matching lines...) Expand 10 before | Expand all | Expand 10 after
3394 } 3395 }
3395 3396
3396 } // namespace 3397 } // namespace
3397 3398
3398 3399
3399 void v8::Object::SetIndexedPropertiesToPixelData(uint8_t* data, int length) { 3400 void v8::Object::SetIndexedPropertiesToPixelData(uint8_t* data, int length) {
3400 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); 3401 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
3401 ON_BAILOUT(isolate, "v8::SetElementsToPixelData()", return); 3402 ON_BAILOUT(isolate, "v8::SetElementsToPixelData()", return);
3402 ENTER_V8(isolate); 3403 ENTER_V8(isolate);
3403 i::HandleScope scope(isolate); 3404 i::HandleScope scope(isolate);
3404 if (!ApiCheck(length >= 0 && length <= i::ExternalPixelArray::kMaxLength, 3405 if (!ApiCheck(length <= i::ExternalPixelArray::kMaxLength,
3405 "v8::Object::SetIndexedPropertiesToPixelData()", 3406 "v8::Object::SetIndexedPropertiesToPixelData()",
3406 "length exceeds max acceptable value")) { 3407 "length exceeds max acceptable value")) {
3407 return; 3408 return;
3408 } 3409 }
3409 i::Handle<i::JSObject> self = Utils::OpenHandle(this); 3410 i::Handle<i::JSObject> self = Utils::OpenHandle(this);
3410 if (!ApiCheck(!self->IsJSArray(), 3411 if (!ApiCheck(!self->IsJSArray(),
3411 "v8::Object::SetIndexedPropertiesToPixelData()", 3412 "v8::Object::SetIndexedPropertiesToPixelData()",
3412 "JSArray is not supported")) { 3413 "JSArray is not supported")) {
3413 return; 3414 return;
3414 } 3415 }
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
3450 3451
3451 3452
3452 void v8::Object::SetIndexedPropertiesToExternalArrayData( 3453 void v8::Object::SetIndexedPropertiesToExternalArrayData(
3453 void* data, 3454 void* data,
3454 ExternalArrayType array_type, 3455 ExternalArrayType array_type,
3455 int length) { 3456 int length) {
3456 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); 3457 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
3457 ON_BAILOUT(isolate, "v8::SetIndexedPropertiesToExternalArrayData()", return); 3458 ON_BAILOUT(isolate, "v8::SetIndexedPropertiesToExternalArrayData()", return);
3458 ENTER_V8(isolate); 3459 ENTER_V8(isolate);
3459 i::HandleScope scope(isolate); 3460 i::HandleScope scope(isolate);
3460 if (!ApiCheck(length >= 0 && length <= i::ExternalArray::kMaxLength, 3461 if (!ApiCheck(length <= i::ExternalArray::kMaxLength,
3461 "v8::Object::SetIndexedPropertiesToExternalArrayData()", 3462 "v8::Object::SetIndexedPropertiesToExternalArrayData()",
3462 "length exceeds max acceptable value")) { 3463 "length exceeds max acceptable value")) {
3463 return; 3464 return;
3464 } 3465 }
3465 i::Handle<i::JSObject> self = Utils::OpenHandle(this); 3466 i::Handle<i::JSObject> self = Utils::OpenHandle(this);
3466 if (!ApiCheck(!self->IsJSArray(), 3467 if (!ApiCheck(!self->IsJSArray(),
3467 "v8::Object::SetIndexedPropertiesToExternalArrayData()", 3468 "v8::Object::SetIndexedPropertiesToExternalArrayData()",
3468 "JSArray is not supported")) { 3469 "JSArray is not supported")) {
3469 return; 3470 return;
3470 } 3471 }
(...skipping 608 matching lines...) Expand 10 before | Expand all | Expand 10 after
4079 if (i::StringShape(*str).IsExternalTwoByte()) { 4080 if (i::StringShape(*str).IsExternalTwoByte()) {
4080 const void* resource = 4081 const void* resource =
4081 i::Handle<i::ExternalTwoByteString>::cast(str)->resource(); 4082 i::Handle<i::ExternalTwoByteString>::cast(str)->resource();
4082 expected = reinterpret_cast<const ExternalStringResource*>(resource); 4083 expected = reinterpret_cast<const ExternalStringResource*>(resource);
4083 } else { 4084 } else {
4084 expected = NULL; 4085 expected = NULL;
4085 } 4086 }
4086 CHECK_EQ(expected, value); 4087 CHECK_EQ(expected, value);
4087 } 4088 }
4088 4089
4089 void v8::String::VerifyExternalStringResourceBase(
4090 v8::String::ExternalStringResourceBase* value, Encoding encoding) const {
4091 i::Handle<i::String> str = Utils::OpenHandle(this);
4092 const v8::String::ExternalStringResourceBase* expected;
4093 Encoding expectedEncoding;
4094 if (i::StringShape(*str).IsExternalAscii()) {
4095 const void* resource =
4096 i::Handle<i::ExternalAsciiString>::cast(str)->resource();
4097 expected = reinterpret_cast<const ExternalStringResourceBase*>(resource);
4098 expectedEncoding = ASCII_ENCODING;
4099 } else if (i::StringShape(*str).IsExternalTwoByte()) {
4100 const void* resource =
4101 i::Handle<i::ExternalTwoByteString>::cast(str)->resource();
4102 expected = reinterpret_cast<const ExternalStringResourceBase*>(resource);
4103 expectedEncoding = TWO_BYTE_ENCODING;
4104 } else {
4105 expected = NULL;
4106 expectedEncoding = str->IsAsciiRepresentation() ? ASCII_ENCODING
4107 : TWO_BYTE_ENCODING;
4108 }
4109 CHECK_EQ(expected, value);
4110 CHECK_EQ(expectedEncoding, encoding);
4111 }
4112 4090
4113 const v8::String::ExternalAsciiStringResource* 4091 const v8::String::ExternalAsciiStringResource*
4114 v8::String::GetExternalAsciiStringResource() const { 4092 v8::String::GetExternalAsciiStringResource() const {
4115 i::Handle<i::String> str = Utils::OpenHandle(this); 4093 i::Handle<i::String> str = Utils::OpenHandle(this);
4116 if (IsDeadCheck(str->GetIsolate(), 4094 if (IsDeadCheck(str->GetIsolate(),
4117 "v8::String::GetExternalAsciiStringResource()")) { 4095 "v8::String::GetExternalAsciiStringResource()")) {
4118 return NULL; 4096 return NULL;
4119 } 4097 }
4120 if (i::StringShape(*str).IsExternalAscii()) { 4098 if (i::StringShape(*str).IsExternalAscii()) {
4121 const void* resource = 4099 const void* resource =
(...skipping 470 matching lines...) Expand 10 before | Expand all | Expand 10 after
4592 return false; 4570 return false;
4593 } 4571 }
4594 ENTER_V8(isolate); 4572 ENTER_V8(isolate);
4595 i::Object** ctx = reinterpret_cast<i::Object**>(this); 4573 i::Object** ctx = reinterpret_cast<i::Object**>(this);
4596 i::Handle<i::Context> context = 4574 i::Handle<i::Context> context =
4597 i::Handle<i::Context>::cast(i::Handle<i::Object>(ctx)); 4575 i::Handle<i::Context>::cast(i::Handle<i::Object>(ctx));
4598 return !context->allow_code_gen_from_strings()->IsFalse(); 4576 return !context->allow_code_gen_from_strings()->IsFalse();
4599 } 4577 }
4600 4578
4601 4579
4602 void Context::SetErrorMessageForCodeGenerationFromStrings(
4603 Handle<String> error) {
4604 i::Isolate* isolate = i::Isolate::Current();
4605 if (IsDeadCheck(isolate,
4606 "v8::Context::SetErrorMessageForCodeGenerationFromStrings()")) {
4607 return;
4608 }
4609 ENTER_V8(isolate);
4610 i::Object** ctx = reinterpret_cast<i::Object**>(this);
4611 i::Handle<i::Context> context =
4612 i::Handle<i::Context>::cast(i::Handle<i::Object>(ctx));
4613 i::Handle<i::Object> error_handle = Utils::OpenHandle(*error);
4614 context->set_error_message_for_code_gen_from_strings(*error_handle);
4615 }
4616
4617
4618 void V8::SetWrapperClassId(i::Object** global_handle, uint16_t class_id) { 4580 void V8::SetWrapperClassId(i::Object** global_handle, uint16_t class_id) {
4619 i::GlobalHandles::SetWrapperClassId(global_handle, class_id); 4581 i::GlobalHandles::SetWrapperClassId(global_handle, class_id);
4620 } 4582 }
4621 4583
4622 4584
4623 Local<v8::Object> ObjectTemplate::NewInstance() { 4585 Local<v8::Object> ObjectTemplate::NewInstance() {
4624 i::Isolate* isolate = i::Isolate::Current(); 4586 i::Isolate* isolate = i::Isolate::Current();
4625 ON_BAILOUT(isolate, "v8::ObjectTemplate::NewInstance()", 4587 ON_BAILOUT(isolate, "v8::ObjectTemplate::NewInstance()",
4626 return Local<v8::Object>()); 4588 return Local<v8::Object>());
4627 LOG_API(isolate, "ObjectTemplate::NewInstance"); 4589 LOG_API(isolate, "ObjectTemplate::NewInstance");
(...skipping 1962 matching lines...) Expand 10 before | Expand all | Expand 10 after
6590 6552
6591 v->VisitPointers(blocks_.first(), first_block_limit_); 6553 v->VisitPointers(blocks_.first(), first_block_limit_);
6592 6554
6593 for (int i = 1; i < blocks_.length(); i++) { 6555 for (int i = 1; i < blocks_.length(); i++) {
6594 v->VisitPointers(blocks_[i], &blocks_[i][kHandleBlockSize]); 6556 v->VisitPointers(blocks_[i], &blocks_[i][kHandleBlockSize]);
6595 } 6557 }
6596 } 6558 }
6597 6559
6598 6560
6599 } } // namespace v8::internal 6561 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « include/v8.h ('k') | src/arm/assembler-arm.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698