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

Side by Side Diff: src/api.cc

Issue 149413010: A64: Synchronize with r16024. (Closed) Base URL: https://v8.googlecode.com/svn/branches/experimental/a64
Patch Set: Created 6 years, 10 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 | « src/accessors.cc ('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 380 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 return StartupData::kUncompressed; 391 return StartupData::kUncompressed;
392 #endif 392 #endif
393 } 393 }
394 394
395 395
396 enum CompressedStartupDataItems { 396 enum CompressedStartupDataItems {
397 kSnapshot = 0, 397 kSnapshot = 0,
398 kSnapshotContext, 398 kSnapshotContext,
399 kLibraries, 399 kLibraries,
400 kExperimentalLibraries, 400 kExperimentalLibraries,
401 #if defined(ENABLE_I18N_SUPPORT) 401 #if defined(V8_I18N_SUPPORT)
402 kI18NExtension, 402 kI18NExtension,
403 #endif 403 #endif
404 kCompressedStartupDataCount 404 kCompressedStartupDataCount
405 }; 405 };
406 406
407 407
408 int V8::GetCompressedStartupDataCount() { 408 int V8::GetCompressedStartupDataCount() {
409 #ifdef COMPRESS_STARTUP_DATA_BZ2 409 #ifdef COMPRESS_STARTUP_DATA_BZ2
410 return kCompressedStartupDataCount; 410 return kCompressedStartupDataCount;
411 #else 411 #else
(...skipping 23 matching lines...) Expand all
435 435
436 i::Vector<const i::byte> exp_libraries_source = 436 i::Vector<const i::byte> exp_libraries_source =
437 i::ExperimentalNatives::GetScriptsSource(); 437 i::ExperimentalNatives::GetScriptsSource();
438 compressed_data[kExperimentalLibraries].data = 438 compressed_data[kExperimentalLibraries].data =
439 reinterpret_cast<const char*>(exp_libraries_source.start()); 439 reinterpret_cast<const char*>(exp_libraries_source.start());
440 compressed_data[kExperimentalLibraries].compressed_size = 440 compressed_data[kExperimentalLibraries].compressed_size =
441 exp_libraries_source.length(); 441 exp_libraries_source.length();
442 compressed_data[kExperimentalLibraries].raw_size = 442 compressed_data[kExperimentalLibraries].raw_size =
443 i::ExperimentalNatives::GetRawScriptsSize(); 443 i::ExperimentalNatives::GetRawScriptsSize();
444 444
445 #if defined(ENABLE_I18N_SUPPORT) 445 #if defined(V8_I18N_SUPPORT)
446 i::Vector<const ii:byte> i18n_extension_source = 446 i::Vector<const ii:byte> i18n_extension_source =
447 i::I18NNatives::GetScriptsSource(); 447 i::I18NNatives::GetScriptsSource();
448 compressed_data[kI18NExtension].data = 448 compressed_data[kI18NExtension].data =
449 reinterpret_cast<const char*>(i18n_extension_source.start()); 449 reinterpret_cast<const char*>(i18n_extension_source.start());
450 compressed_data[kI18NExtension].compressed_size = 450 compressed_data[kI18NExtension].compressed_size =
451 i18n_extension_source.length(); 451 i18n_extension_source.length();
452 compressed_data[kI18NExtension].raw_size = 452 compressed_data[kI18NExtension].raw_size =
453 i::I18NNatives::GetRawScriptsSize(); 453 i::I18NNatives::GetRawScriptsSize();
454 #endif 454 #endif
455 #endif 455 #endif
(...skipping 19 matching lines...) Expand all
475 decompressed_data[kLibraries].raw_size); 475 decompressed_data[kLibraries].raw_size);
476 i::Natives::SetRawScriptsSource(libraries_source); 476 i::Natives::SetRawScriptsSource(libraries_source);
477 477
478 ASSERT_EQ(i::ExperimentalNatives::GetRawScriptsSize(), 478 ASSERT_EQ(i::ExperimentalNatives::GetRawScriptsSize(),
479 decompressed_data[kExperimentalLibraries].raw_size); 479 decompressed_data[kExperimentalLibraries].raw_size);
480 i::Vector<const char> exp_libraries_source( 480 i::Vector<const char> exp_libraries_source(
481 decompressed_data[kExperimentalLibraries].data, 481 decompressed_data[kExperimentalLibraries].data,
482 decompressed_data[kExperimentalLibraries].raw_size); 482 decompressed_data[kExperimentalLibraries].raw_size);
483 i::ExperimentalNatives::SetRawScriptsSource(exp_libraries_source); 483 i::ExperimentalNatives::SetRawScriptsSource(exp_libraries_source);
484 484
485 #if defined(ENABLE_I18N_SUPPORT) 485 #if defined(V8_I18N_SUPPORT)
486 ASSERT_EQ(i::I18NNatives::GetRawScriptsSize(), 486 ASSERT_EQ(i::I18NNatives::GetRawScriptsSize(),
487 decompressed_data[kI18NExtension].raw_size); 487 decompressed_data[kI18NExtension].raw_size);
488 i::Vector<const char> i18n_extension_source( 488 i::Vector<const char> i18n_extension_source(
489 decompressed_data[kI18NExtension].data, 489 decompressed_data[kI18NExtension].data,
490 decompressed_data[kI18NExtension].raw_size); 490 decompressed_data[kI18NExtension].raw_size);
491 i::I18NNatives::SetRawScriptsSource(i18n_extension_source); 491 i::I18NNatives::SetRawScriptsSource(i18n_extension_source);
492 #endif 492 #endif
493 #endif 493 #endif
494 } 494 }
495 495
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after
763 if (!ApiCheck(isolate->handle_scope_implementer()->LeaveLastContext(), 763 if (!ApiCheck(isolate->handle_scope_implementer()->LeaveLastContext(),
764 "v8::Context::Exit()", 764 "v8::Context::Exit()",
765 "Cannot exit non-entered context")) { 765 "Cannot exit non-entered context")) {
766 return; 766 return;
767 } 767 }
768 768
769 // Content of 'last_context' could be NULL. 769 // Content of 'last_context' could be NULL.
770 i::Context* last_context = 770 i::Context* last_context =
771 isolate->handle_scope_implementer()->RestoreContext(); 771 isolate->handle_scope_implementer()->RestoreContext();
772 isolate->set_context(last_context); 772 isolate->set_context(last_context);
773 isolate->set_context_exit_happened(true);
773 } 774 }
774 775
775 776
776 static void* DecodeSmiToAligned(i::Object* value, const char* location) { 777 static void* DecodeSmiToAligned(i::Object* value, const char* location) {
777 ApiCheck(value->IsSmi(), location, "Not a Smi"); 778 ApiCheck(value->IsSmi(), location, "Not a Smi");
778 return reinterpret_cast<void*>(value); 779 return reinterpret_cast<void*>(value);
779 } 780 }
780 781
781 782
782 static i::Smi* EncodeAlignedAsSmi(void* value, const char* location) { 783 static i::Smi* EncodeAlignedAsSmi(void* value, const char* location) {
(...skipping 1127 matching lines...) Expand 10 before | Expand all | Expand 10 after
1910 i::Isolate* isolate = i::Isolate::Current(); 1911 i::Isolate* isolate = i::Isolate::Current();
1911 ON_BAILOUT(isolate, "v8::Script::New()", return Local<Script>()); 1912 ON_BAILOUT(isolate, "v8::Script::New()", return Local<Script>());
1912 LOG_API(isolate, "Script::New"); 1913 LOG_API(isolate, "Script::New");
1913 ENTER_V8(isolate); 1914 ENTER_V8(isolate);
1914 i::SharedFunctionInfo* raw_result = NULL; 1915 i::SharedFunctionInfo* raw_result = NULL;
1915 { i::HandleScope scope(isolate); 1916 { i::HandleScope scope(isolate);
1916 i::Handle<i::String> str = Utils::OpenHandle(*source); 1917 i::Handle<i::String> str = Utils::OpenHandle(*source);
1917 i::Handle<i::Object> name_obj; 1918 i::Handle<i::Object> name_obj;
1918 int line_offset = 0; 1919 int line_offset = 0;
1919 int column_offset = 0; 1920 int column_offset = 0;
1921 bool is_shared_cross_origin = false;
1920 if (origin != NULL) { 1922 if (origin != NULL) {
1921 if (!origin->ResourceName().IsEmpty()) { 1923 if (!origin->ResourceName().IsEmpty()) {
1922 name_obj = Utils::OpenHandle(*origin->ResourceName()); 1924 name_obj = Utils::OpenHandle(*origin->ResourceName());
1923 } 1925 }
1924 if (!origin->ResourceLineOffset().IsEmpty()) { 1926 if (!origin->ResourceLineOffset().IsEmpty()) {
1925 line_offset = static_cast<int>(origin->ResourceLineOffset()->Value()); 1927 line_offset = static_cast<int>(origin->ResourceLineOffset()->Value());
1926 } 1928 }
1927 if (!origin->ResourceColumnOffset().IsEmpty()) { 1929 if (!origin->ResourceColumnOffset().IsEmpty()) {
1928 column_offset = 1930 column_offset =
1929 static_cast<int>(origin->ResourceColumnOffset()->Value()); 1931 static_cast<int>(origin->ResourceColumnOffset()->Value());
1930 } 1932 }
1933 if (!origin->ResourceIsSharedCrossOrigin().IsEmpty()) {
1934 is_shared_cross_origin =
1935 origin->ResourceIsSharedCrossOrigin() == v8::True();
1936 }
1931 } 1937 }
1932 EXCEPTION_PREAMBLE(isolate); 1938 EXCEPTION_PREAMBLE(isolate);
1933 i::ScriptDataImpl* pre_data_impl = 1939 i::ScriptDataImpl* pre_data_impl =
1934 static_cast<i::ScriptDataImpl*>(pre_data); 1940 static_cast<i::ScriptDataImpl*>(pre_data);
1935 // We assert that the pre-data is sane, even though we can actually 1941 // We assert that the pre-data is sane, even though we can actually
1936 // handle it if it turns out not to be in release mode. 1942 // handle it if it turns out not to be in release mode.
1937 ASSERT(pre_data_impl == NULL || pre_data_impl->SanityCheck()); 1943 ASSERT(pre_data_impl == NULL || pre_data_impl->SanityCheck());
1938 // If the pre-data isn't sane we simply ignore it 1944 // If the pre-data isn't sane we simply ignore it
1939 if (pre_data_impl != NULL && !pre_data_impl->SanityCheck()) { 1945 if (pre_data_impl != NULL && !pre_data_impl->SanityCheck()) {
1940 pre_data_impl = NULL; 1946 pre_data_impl = NULL;
1941 } 1947 }
1942 i::Handle<i::SharedFunctionInfo> result = 1948 i::Handle<i::SharedFunctionInfo> result =
1943 i::Compiler::Compile(str, 1949 i::Compiler::Compile(str,
1944 name_obj, 1950 name_obj,
1945 line_offset, 1951 line_offset,
1946 column_offset, 1952 column_offset,
1953 is_shared_cross_origin,
1947 isolate->global_context(), 1954 isolate->global_context(),
1948 NULL, 1955 NULL,
1949 pre_data_impl, 1956 pre_data_impl,
1950 Utils::OpenHandle(*script_data, true), 1957 Utils::OpenHandle(*script_data, true),
1951 i::NOT_NATIVES_CODE); 1958 i::NOT_NATIVES_CODE);
1952 has_pending_exception = result.is_null(); 1959 has_pending_exception = result.is_null();
1953 EXCEPTION_BAILOUT_CHECK(isolate, Local<Script>()); 1960 EXCEPTION_BAILOUT_CHECK(isolate, Local<Script>());
1954 raw_result = *result; 1961 raw_result = *result;
1955 } 1962 }
1956 i::Handle<i::SharedFunctionInfo> result(raw_result, isolate); 1963 i::Handle<i::SharedFunctionInfo> result(raw_result, isolate);
(...skipping 447 matching lines...) Expand 10 before | Expand all | Expand 10 after
2404 &has_pending_exception); 2411 &has_pending_exception);
2405 EXCEPTION_BAILOUT_CHECK(isolate, 0); 2412 EXCEPTION_BAILOUT_CHECK(isolate, 0);
2406 i::Handle<i::JSMessageObject> message = 2413 i::Handle<i::JSMessageObject> message =
2407 i::Handle<i::JSMessageObject>::cast(data_obj); 2414 i::Handle<i::JSMessageObject>::cast(data_obj);
2408 int start = message->start_position(); 2415 int start = message->start_position();
2409 int end = message->end_position(); 2416 int end = message->end_position();
2410 return static_cast<int>(start_col_obj->Number()) + (end - start); 2417 return static_cast<int>(start_col_obj->Number()) + (end - start);
2411 } 2418 }
2412 2419
2413 2420
2421 bool Message::IsSharedCrossOrigin() const {
2422 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
2423 if (IsDeadCheck(isolate, "v8::Message::IsSharedCrossOrigin()")) return 0;
2424 ENTER_V8(isolate);
2425 i::HandleScope scope(isolate);
2426 i::Handle<i::JSMessageObject> message =
2427 i::Handle<i::JSMessageObject>::cast(Utils::OpenHandle(this));
2428 i::Handle<i::JSValue> script =
2429 i::Handle<i::JSValue>::cast(i::Handle<i::Object>(message->script(),
2430 isolate));
2431 return i::Script::cast(script->value())->is_shared_cross_origin();
2432 }
2433
2434
2414 Local<String> Message::GetSourceLine() const { 2435 Local<String> Message::GetSourceLine() const {
2415 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); 2436 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
2416 ON_BAILOUT(isolate, "v8::Message::GetSourceLine()", return Local<String>()); 2437 ON_BAILOUT(isolate, "v8::Message::GetSourceLine()", return Local<String>());
2417 ENTER_V8(isolate); 2438 ENTER_V8(isolate);
2418 HandleScope scope(reinterpret_cast<Isolate*>(isolate)); 2439 HandleScope scope(reinterpret_cast<Isolate*>(isolate));
2419 EXCEPTION_PREAMBLE(isolate); 2440 EXCEPTION_PREAMBLE(isolate);
2420 i::Handle<i::Object> result = CallV8HeapFunction("GetSourceLine", 2441 i::Handle<i::Object> result = CallV8HeapFunction("GetSourceLine",
2421 Utils::OpenHandle(this), 2442 Utils::OpenHandle(this),
2422 &has_pending_exception); 2443 &has_pending_exception);
2423 EXCEPTION_BAILOUT_CHECK(isolate, Local<v8::String>()); 2444 EXCEPTION_BAILOUT_CHECK(isolate, Local<v8::String>());
(...skipping 3652 matching lines...) Expand 10 before | Expand all | Expand 10 after
6076 i::Isolate* isolate = i::Isolate::Current(); 6097 i::Isolate* isolate = i::Isolate::Current();
6077 EnsureInitializedForIsolate(isolate, "v8::NumberObject::New()"); 6098 EnsureInitializedForIsolate(isolate, "v8::NumberObject::New()");
6078 LOG_API(isolate, "NumberObject::New"); 6099 LOG_API(isolate, "NumberObject::New");
6079 ENTER_V8(isolate); 6100 ENTER_V8(isolate);
6080 i::Handle<i::Object> number = isolate->factory()->NewNumber(value); 6101 i::Handle<i::Object> number = isolate->factory()->NewNumber(value);
6081 i::Handle<i::Object> obj = isolate->factory()->ToObject(number); 6102 i::Handle<i::Object> obj = isolate->factory()->ToObject(number);
6082 return Utils::ToLocal(obj); 6103 return Utils::ToLocal(obj);
6083 } 6104 }
6084 6105
6085 6106
6086 double v8::NumberObject::NumberValue() const { 6107 double v8::NumberObject::ValueOf() const {
6087 i::Isolate* isolate = i::Isolate::Current(); 6108 i::Isolate* isolate = i::Isolate::Current();
6088 if (IsDeadCheck(isolate, "v8::NumberObject::NumberValue()")) return 0; 6109 if (IsDeadCheck(isolate, "v8::NumberObject::NumberValue()")) return 0;
6089 LOG_API(isolate, "NumberObject::NumberValue"); 6110 LOG_API(isolate, "NumberObject::NumberValue");
6090 i::Handle<i::Object> obj = Utils::OpenHandle(this); 6111 i::Handle<i::Object> obj = Utils::OpenHandle(this);
6091 i::Handle<i::JSValue> jsvalue = i::Handle<i::JSValue>::cast(obj); 6112 i::Handle<i::JSValue> jsvalue = i::Handle<i::JSValue>::cast(obj);
6092 return jsvalue->value()->Number(); 6113 return jsvalue->value()->Number();
6093 } 6114 }
6094 6115
6095 6116
6096 Local<v8::Value> v8::BooleanObject::New(bool value) { 6117 Local<v8::Value> v8::BooleanObject::New(bool value) {
6097 i::Isolate* isolate = i::Isolate::Current(); 6118 i::Isolate* isolate = i::Isolate::Current();
6098 EnsureInitializedForIsolate(isolate, "v8::BooleanObject::New()"); 6119 EnsureInitializedForIsolate(isolate, "v8::BooleanObject::New()");
6099 LOG_API(isolate, "BooleanObject::New"); 6120 LOG_API(isolate, "BooleanObject::New");
6100 ENTER_V8(isolate); 6121 ENTER_V8(isolate);
6101 i::Handle<i::Object> boolean(value 6122 i::Handle<i::Object> boolean(value
6102 ? isolate->heap()->true_value() 6123 ? isolate->heap()->true_value()
6103 : isolate->heap()->false_value(), 6124 : isolate->heap()->false_value(),
6104 isolate); 6125 isolate);
6105 i::Handle<i::Object> obj = isolate->factory()->ToObject(boolean); 6126 i::Handle<i::Object> obj = isolate->factory()->ToObject(boolean);
6106 return Utils::ToLocal(obj); 6127 return Utils::ToLocal(obj);
6107 } 6128 }
6108 6129
6109 6130
6110 bool v8::BooleanObject::BooleanValue() const { 6131 bool v8::BooleanObject::ValueOf() const {
6111 i::Isolate* isolate = i::Isolate::Current(); 6132 i::Isolate* isolate = i::Isolate::Current();
6112 if (IsDeadCheck(isolate, "v8::BooleanObject::BooleanValue()")) return 0; 6133 if (IsDeadCheck(isolate, "v8::BooleanObject::BooleanValue()")) return 0;
6113 LOG_API(isolate, "BooleanObject::BooleanValue"); 6134 LOG_API(isolate, "BooleanObject::BooleanValue");
6114 i::Handle<i::Object> obj = Utils::OpenHandle(this); 6135 i::Handle<i::Object> obj = Utils::OpenHandle(this);
6115 i::Handle<i::JSValue> jsvalue = i::Handle<i::JSValue>::cast(obj); 6136 i::Handle<i::JSValue> jsvalue = i::Handle<i::JSValue>::cast(obj);
6116 return jsvalue->value()->IsTrue(); 6137 return jsvalue->value()->IsTrue();
6117 } 6138 }
6118 6139
6119 6140
6120 Local<v8::Value> v8::StringObject::New(Handle<String> value) { 6141 Local<v8::Value> v8::StringObject::New(Handle<String> value) {
6121 i::Isolate* isolate = i::Isolate::Current(); 6142 i::Isolate* isolate = i::Isolate::Current();
6122 EnsureInitializedForIsolate(isolate, "v8::StringObject::New()"); 6143 EnsureInitializedForIsolate(isolate, "v8::StringObject::New()");
6123 LOG_API(isolate, "StringObject::New"); 6144 LOG_API(isolate, "StringObject::New");
6124 ENTER_V8(isolate); 6145 ENTER_V8(isolate);
6125 i::Handle<i::Object> obj = 6146 i::Handle<i::Object> obj =
6126 isolate->factory()->ToObject(Utils::OpenHandle(*value)); 6147 isolate->factory()->ToObject(Utils::OpenHandle(*value));
6127 return Utils::ToLocal(obj); 6148 return Utils::ToLocal(obj);
6128 } 6149 }
6129 6150
6130 6151
6131 Local<v8::String> v8::StringObject::StringValue() const { 6152 Local<v8::String> v8::StringObject::ValueOf() const {
6132 i::Isolate* isolate = i::Isolate::Current(); 6153 i::Isolate* isolate = i::Isolate::Current();
6133 if (IsDeadCheck(isolate, "v8::StringObject::StringValue()")) { 6154 if (IsDeadCheck(isolate, "v8::StringObject::StringValue()")) {
6134 return Local<v8::String>(); 6155 return Local<v8::String>();
6135 } 6156 }
6136 LOG_API(isolate, "StringObject::StringValue"); 6157 LOG_API(isolate, "StringObject::StringValue");
6137 i::Handle<i::Object> obj = Utils::OpenHandle(this); 6158 i::Handle<i::Object> obj = Utils::OpenHandle(this);
6138 i::Handle<i::JSValue> jsvalue = i::Handle<i::JSValue>::cast(obj); 6159 i::Handle<i::JSValue> jsvalue = i::Handle<i::JSValue>::cast(obj);
6139 return Utils::ToLocal( 6160 return Utils::ToLocal(
6140 i::Handle<i::String>(i::String::cast(jsvalue->value()))); 6161 i::Handle<i::String>(i::String::cast(jsvalue->value())));
6141 } 6162 }
6142 6163
6143 6164
6144 Local<v8::Value> v8::SymbolObject::New(Isolate* isolate, Handle<Symbol> value) { 6165 Local<v8::Value> v8::SymbolObject::New(Isolate* isolate, Handle<Symbol> value) {
6145 i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate); 6166 i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate);
6146 EnsureInitializedForIsolate(i_isolate, "v8::SymbolObject::New()"); 6167 EnsureInitializedForIsolate(i_isolate, "v8::SymbolObject::New()");
6147 LOG_API(i_isolate, "SymbolObject::New"); 6168 LOG_API(i_isolate, "SymbolObject::New");
6148 ENTER_V8(i_isolate); 6169 ENTER_V8(i_isolate);
6149 i::Handle<i::Object> obj = 6170 i::Handle<i::Object> obj =
6150 i_isolate->factory()->ToObject(Utils::OpenHandle(*value)); 6171 i_isolate->factory()->ToObject(Utils::OpenHandle(*value));
6151 return Utils::ToLocal(obj); 6172 return Utils::ToLocal(obj);
6152 } 6173 }
6153 6174
6154 6175
6155 Local<v8::Symbol> v8::SymbolObject::SymbolValue() const { 6176 Local<v8::Symbol> v8::SymbolObject::ValueOf() const {
6156 i::Isolate* isolate = i::Isolate::Current(); 6177 i::Isolate* isolate = i::Isolate::Current();
6157 if (IsDeadCheck(isolate, "v8::SymbolObject::SymbolValue()")) 6178 if (IsDeadCheck(isolate, "v8::SymbolObject::SymbolValue()"))
6158 return Local<v8::Symbol>(); 6179 return Local<v8::Symbol>();
6159 LOG_API(isolate, "SymbolObject::SymbolValue"); 6180 LOG_API(isolate, "SymbolObject::SymbolValue");
6160 i::Handle<i::Object> obj = Utils::OpenHandle(this); 6181 i::Handle<i::Object> obj = Utils::OpenHandle(this);
6161 i::Handle<i::JSValue> jsvalue = i::Handle<i::JSValue>::cast(obj); 6182 i::Handle<i::JSValue> jsvalue = i::Handle<i::JSValue>::cast(obj);
6162 return Utils::ToLocal( 6183 return Utils::ToLocal(
6163 i::Handle<i::Symbol>(i::Symbol::cast(jsvalue->value()))); 6184 i::Handle<i::Symbol>(i::Symbol::cast(jsvalue->value())));
6164 } 6185 }
6165 6186
6166 6187
6167 Local<v8::Value> v8::Date::New(double time) { 6188 Local<v8::Value> v8::Date::New(double time) {
6168 i::Isolate* isolate = i::Isolate::Current(); 6189 i::Isolate* isolate = i::Isolate::Current();
6169 EnsureInitializedForIsolate(isolate, "v8::Date::New()"); 6190 EnsureInitializedForIsolate(isolate, "v8::Date::New()");
6170 LOG_API(isolate, "Date::New"); 6191 LOG_API(isolate, "Date::New");
6171 if (std::isnan(time)) { 6192 if (std::isnan(time)) {
6172 // Introduce only canonical NaN value into the VM, to avoid signaling NaNs. 6193 // Introduce only canonical NaN value into the VM, to avoid signaling NaNs.
6173 time = i::OS::nan_value(); 6194 time = i::OS::nan_value();
6174 } 6195 }
6175 ENTER_V8(isolate); 6196 ENTER_V8(isolate);
6176 EXCEPTION_PREAMBLE(isolate); 6197 EXCEPTION_PREAMBLE(isolate);
6177 i::Handle<i::Object> obj = 6198 i::Handle<i::Object> obj =
6178 i::Execution::NewDate(time, &has_pending_exception); 6199 i::Execution::NewDate(time, &has_pending_exception);
6179 EXCEPTION_BAILOUT_CHECK(isolate, Local<v8::Value>()); 6200 EXCEPTION_BAILOUT_CHECK(isolate, Local<v8::Value>());
6180 return Utils::ToLocal(obj); 6201 return Utils::ToLocal(obj);
6181 } 6202 }
6182 6203
6183 6204
6184 double v8::Date::NumberValue() const { 6205 double v8::Date::ValueOf() const {
6185 i::Isolate* isolate = i::Isolate::Current(); 6206 i::Isolate* isolate = i::Isolate::Current();
6186 if (IsDeadCheck(isolate, "v8::Date::NumberValue()")) return 0; 6207 if (IsDeadCheck(isolate, "v8::Date::NumberValue()")) return 0;
6187 LOG_API(isolate, "Date::NumberValue"); 6208 LOG_API(isolate, "Date::NumberValue");
6188 i::Handle<i::Object> obj = Utils::OpenHandle(this); 6209 i::Handle<i::Object> obj = Utils::OpenHandle(this);
6189 i::Handle<i::JSDate> jsdate = i::Handle<i::JSDate>::cast(obj); 6210 i::Handle<i::JSDate> jsdate = i::Handle<i::JSDate>::cast(obj);
6190 return jsdate->value()->Number(); 6211 return jsdate->value()->Number();
6191 } 6212 }
6192 6213
6193 6214
6194 void v8::Date::DateTimeConfigurationChangeNotification() { 6215 void v8::Date::DateTimeConfigurationChangeNotification() {
(...skipping 1902 matching lines...) Expand 10 before | Expand all | Expand 10 after
8097 Isolate* isolate = reinterpret_cast<Isolate*>(info.GetIsolate()); 8118 Isolate* isolate = reinterpret_cast<Isolate*>(info.GetIsolate());
8098 Address callback_address = 8119 Address callback_address =
8099 reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback)); 8120 reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback));
8100 VMState<EXTERNAL> state(isolate); 8121 VMState<EXTERNAL> state(isolate);
8101 ExternalCallbackScope call_scope(isolate, callback_address); 8122 ExternalCallbackScope call_scope(isolate, callback_address);
8102 return callback(info); 8123 return callback(info);
8103 } 8124 }
8104 8125
8105 8126
8106 } } // namespace v8::internal 8127 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/accessors.cc ('k') | src/arm/assembler-arm.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698