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

Side by Side Diff: src/api.cc

Issue 12210083: Renamed "symbols" to "internalized strings" throughout the code base, (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Addressed Yang's comments Created 7 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/builtins-arm.cc » ('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 1761 matching lines...) Expand 10 before | Expand all | Expand 10 after
1772 } 1772 }
1773 1773
1774 1774
1775 v8::Local<Value> v8::TryCatch::StackTrace() const { 1775 v8::Local<Value> v8::TryCatch::StackTrace() const {
1776 ASSERT(isolate_ == i::Isolate::Current()); 1776 ASSERT(isolate_ == i::Isolate::Current());
1777 if (HasCaught()) { 1777 if (HasCaught()) {
1778 i::Object* raw_obj = reinterpret_cast<i::Object*>(exception_); 1778 i::Object* raw_obj = reinterpret_cast<i::Object*>(exception_);
1779 if (!raw_obj->IsJSObject()) return v8::Local<Value>(); 1779 if (!raw_obj->IsJSObject()) return v8::Local<Value>();
1780 i::HandleScope scope(isolate_); 1780 i::HandleScope scope(isolate_);
1781 i::Handle<i::JSObject> obj(i::JSObject::cast(raw_obj), isolate_); 1781 i::Handle<i::JSObject> obj(i::JSObject::cast(raw_obj), isolate_);
1782 i::Handle<i::String> name = isolate_->factory()->stack_symbol(); 1782 i::Handle<i::String> name = isolate_->factory()->stack_string();
1783 if (!obj->HasProperty(*name)) return v8::Local<Value>(); 1783 if (!obj->HasProperty(*name)) return v8::Local<Value>();
1784 i::Handle<i::Object> value = i::GetProperty(obj, name); 1784 i::Handle<i::Object> value = i::GetProperty(obj, name);
1785 if (value.is_null()) return v8::Local<Value>(); 1785 if (value.is_null()) return v8::Local<Value>();
1786 return v8::Utils::ToLocal(scope.CloseAndEscape(value)); 1786 return v8::Utils::ToLocal(scope.CloseAndEscape(value));
1787 } else { 1787 } else {
1788 return v8::Local<Value>(); 1788 return v8::Local<Value>();
1789 } 1789 }
1790 } 1790 }
1791 1791
1792 1792
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
1883 return scope.Close(Utils::StackTraceToLocal(stackTrace)); 1883 return scope.Close(Utils::StackTraceToLocal(stackTrace));
1884 } 1884 }
1885 1885
1886 1886
1887 static i::Handle<i::Object> CallV8HeapFunction(const char* name, 1887 static i::Handle<i::Object> CallV8HeapFunction(const char* name,
1888 i::Handle<i::Object> recv, 1888 i::Handle<i::Object> recv,
1889 int argc, 1889 int argc,
1890 i::Handle<i::Object> argv[], 1890 i::Handle<i::Object> argv[],
1891 bool* has_pending_exception) { 1891 bool* has_pending_exception) {
1892 i::Isolate* isolate = i::Isolate::Current(); 1892 i::Isolate* isolate = i::Isolate::Current();
1893 i::Handle<i::String> fmt_str = isolate->factory()->LookupUtf8Symbol(name); 1893 i::Handle<i::String> fmt_str =
1894 isolate->factory()->InternalizeUtf8String(name);
1894 i::Object* object_fun = 1895 i::Object* object_fun =
1895 isolate->js_builtins_object()->GetPropertyNoExceptionThrown(*fmt_str); 1896 isolate->js_builtins_object()->GetPropertyNoExceptionThrown(*fmt_str);
1896 i::Handle<i::JSFunction> fun = 1897 i::Handle<i::JSFunction> fun =
1897 i::Handle<i::JSFunction>(i::JSFunction::cast(object_fun)); 1898 i::Handle<i::JSFunction>(i::JSFunction::cast(object_fun));
1898 i::Handle<i::Object> value = 1899 i::Handle<i::Object> value =
1899 i::Execution::Call(fun, recv, argc, argv, has_pending_exception); 1900 i::Execution::Call(fun, recv, argc, argv, has_pending_exception);
1900 return value; 1901 return value;
1901 } 1902 }
1902 1903
1903 1904
(...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after
2276 return i::FastUI2D(i::FastD2UI(value)) == value; 2277 return i::FastUI2D(i::FastD2UI(value)) == value;
2277 } 2278 }
2278 return false; 2279 return false;
2279 } 2280 }
2280 2281
2281 2282
2282 bool Value::IsDate() const { 2283 bool Value::IsDate() const {
2283 i::Isolate* isolate = i::Isolate::Current(); 2284 i::Isolate* isolate = i::Isolate::Current();
2284 if (IsDeadCheck(isolate, "v8::Value::IsDate()")) return false; 2285 if (IsDeadCheck(isolate, "v8::Value::IsDate()")) return false;
2285 i::Handle<i::Object> obj = Utils::OpenHandle(this); 2286 i::Handle<i::Object> obj = Utils::OpenHandle(this);
2286 return obj->HasSpecificClassOf(isolate->heap()->Date_symbol()); 2287 return obj->HasSpecificClassOf(isolate->heap()->Date_string());
2287 } 2288 }
2288 2289
2289 2290
2290 bool Value::IsStringObject() const { 2291 bool Value::IsStringObject() const {
2291 i::Isolate* isolate = i::Isolate::Current(); 2292 i::Isolate* isolate = i::Isolate::Current();
2292 if (IsDeadCheck(isolate, "v8::Value::IsStringObject()")) return false; 2293 if (IsDeadCheck(isolate, "v8::Value::IsStringObject()")) return false;
2293 i::Handle<i::Object> obj = Utils::OpenHandle(this); 2294 i::Handle<i::Object> obj = Utils::OpenHandle(this);
2294 return obj->HasSpecificClassOf(isolate->heap()->String_symbol()); 2295 return obj->HasSpecificClassOf(isolate->heap()->String_string());
2295 } 2296 }
2296 2297
2297 2298
2298 bool Value::IsNumberObject() const { 2299 bool Value::IsNumberObject() const {
2299 i::Isolate* isolate = i::Isolate::Current(); 2300 i::Isolate* isolate = i::Isolate::Current();
2300 if (IsDeadCheck(isolate, "v8::Value::IsNumberObject()")) return false; 2301 if (IsDeadCheck(isolate, "v8::Value::IsNumberObject()")) return false;
2301 i::Handle<i::Object> obj = Utils::OpenHandle(this); 2302 i::Handle<i::Object> obj = Utils::OpenHandle(this);
2302 return obj->HasSpecificClassOf(isolate->heap()->Number_symbol()); 2303 return obj->HasSpecificClassOf(isolate->heap()->Number_string());
2303 } 2304 }
2304 2305
2305 2306
2306 static i::Object* LookupBuiltin(i::Isolate* isolate, 2307 static i::Object* LookupBuiltin(i::Isolate* isolate,
2307 const char* builtin_name) { 2308 const char* builtin_name) {
2308 i::Handle<i::String> symbol = 2309 i::Handle<i::String> string =
2309 isolate->factory()->LookupUtf8Symbol(builtin_name); 2310 isolate->factory()->InternalizeUtf8String(builtin_name);
2310 i::Handle<i::JSBuiltinsObject> builtins = isolate->js_builtins_object(); 2311 i::Handle<i::JSBuiltinsObject> builtins = isolate->js_builtins_object();
2311 return builtins->GetPropertyNoExceptionThrown(*symbol); 2312 return builtins->GetPropertyNoExceptionThrown(*string);
2312 } 2313 }
2313 2314
2314 2315
2315 static bool CheckConstructor(i::Isolate* isolate, 2316 static bool CheckConstructor(i::Isolate* isolate,
2316 i::Handle<i::JSObject> obj, 2317 i::Handle<i::JSObject> obj,
2317 const char* class_name) { 2318 const char* class_name) {
2318 i::Object* constr = obj->map()->constructor(); 2319 i::Object* constr = obj->map()->constructor();
2319 if (!constr->IsJSFunction()) return false; 2320 if (!constr->IsJSFunction()) return false;
2320 i::JSFunction* func = i::JSFunction::cast(constr); 2321 i::JSFunction* func = i::JSFunction::cast(constr);
2321 return func->shared()->native() && 2322 return func->shared()->native() &&
(...skipping 17 matching lines...) Expand all
2339 } else { 2340 } else {
2340 return false; 2341 return false;
2341 } 2342 }
2342 } 2343 }
2343 2344
2344 2345
2345 bool Value::IsBooleanObject() const { 2346 bool Value::IsBooleanObject() const {
2346 i::Isolate* isolate = i::Isolate::Current(); 2347 i::Isolate* isolate = i::Isolate::Current();
2347 if (IsDeadCheck(isolate, "v8::Value::IsBooleanObject()")) return false; 2348 if (IsDeadCheck(isolate, "v8::Value::IsBooleanObject()")) return false;
2348 i::Handle<i::Object> obj = Utils::OpenHandle(this); 2349 i::Handle<i::Object> obj = Utils::OpenHandle(this);
2349 return obj->HasSpecificClassOf(isolate->heap()->Boolean_symbol()); 2350 return obj->HasSpecificClassOf(isolate->heap()->Boolean_string());
2350 } 2351 }
2351 2352
2352 2353
2353 bool Value::IsRegExp() const { 2354 bool Value::IsRegExp() const {
2354 if (IsDeadCheck(i::Isolate::Current(), "v8::Value::IsRegExp()")) return false; 2355 if (IsDeadCheck(i::Isolate::Current(), "v8::Value::IsRegExp()")) return false;
2355 i::Handle<i::Object> obj = Utils::OpenHandle(this); 2356 i::Handle<i::Object> obj = Utils::OpenHandle(this);
2356 return obj->IsJSRegExp(); 2357 return obj->IsJSRegExp();
2357 } 2358 }
2358 2359
2359 2360
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
2531 ApiCheck(obj->IsJSArray(), 2532 ApiCheck(obj->IsJSArray(),
2532 "v8::Array::Cast()", 2533 "v8::Array::Cast()",
2533 "Could not convert to array"); 2534 "Could not convert to array");
2534 } 2535 }
2535 2536
2536 2537
2537 void v8::Date::CheckCast(v8::Value* that) { 2538 void v8::Date::CheckCast(v8::Value* that) {
2538 i::Isolate* isolate = i::Isolate::Current(); 2539 i::Isolate* isolate = i::Isolate::Current();
2539 if (IsDeadCheck(isolate, "v8::Date::Cast()")) return; 2540 if (IsDeadCheck(isolate, "v8::Date::Cast()")) return;
2540 i::Handle<i::Object> obj = Utils::OpenHandle(that); 2541 i::Handle<i::Object> obj = Utils::OpenHandle(that);
2541 ApiCheck(obj->HasSpecificClassOf(isolate->heap()->Date_symbol()), 2542 ApiCheck(obj->HasSpecificClassOf(isolate->heap()->Date_string()),
2542 "v8::Date::Cast()", 2543 "v8::Date::Cast()",
2543 "Could not convert to date"); 2544 "Could not convert to date");
2544 } 2545 }
2545 2546
2546 2547
2547 void v8::StringObject::CheckCast(v8::Value* that) { 2548 void v8::StringObject::CheckCast(v8::Value* that) {
2548 i::Isolate* isolate = i::Isolate::Current(); 2549 i::Isolate* isolate = i::Isolate::Current();
2549 if (IsDeadCheck(isolate, "v8::StringObject::Cast()")) return; 2550 if (IsDeadCheck(isolate, "v8::StringObject::Cast()")) return;
2550 i::Handle<i::Object> obj = Utils::OpenHandle(that); 2551 i::Handle<i::Object> obj = Utils::OpenHandle(that);
2551 ApiCheck(obj->HasSpecificClassOf(isolate->heap()->String_symbol()), 2552 ApiCheck(obj->HasSpecificClassOf(isolate->heap()->String_string()),
2552 "v8::StringObject::Cast()", 2553 "v8::StringObject::Cast()",
2553 "Could not convert to StringObject"); 2554 "Could not convert to StringObject");
2554 } 2555 }
2555 2556
2556 2557
2557 void v8::NumberObject::CheckCast(v8::Value* that) { 2558 void v8::NumberObject::CheckCast(v8::Value* that) {
2558 i::Isolate* isolate = i::Isolate::Current(); 2559 i::Isolate* isolate = i::Isolate::Current();
2559 if (IsDeadCheck(isolate, "v8::NumberObject::Cast()")) return; 2560 if (IsDeadCheck(isolate, "v8::NumberObject::Cast()")) return;
2560 i::Handle<i::Object> obj = Utils::OpenHandle(that); 2561 i::Handle<i::Object> obj = Utils::OpenHandle(that);
2561 ApiCheck(obj->HasSpecificClassOf(isolate->heap()->Number_symbol()), 2562 ApiCheck(obj->HasSpecificClassOf(isolate->heap()->Number_string()),
2562 "v8::NumberObject::Cast()", 2563 "v8::NumberObject::Cast()",
2563 "Could not convert to NumberObject"); 2564 "Could not convert to NumberObject");
2564 } 2565 }
2565 2566
2566 2567
2567 void v8::BooleanObject::CheckCast(v8::Value* that) { 2568 void v8::BooleanObject::CheckCast(v8::Value* that) {
2568 i::Isolate* isolate = i::Isolate::Current(); 2569 i::Isolate* isolate = i::Isolate::Current();
2569 if (IsDeadCheck(isolate, "v8::BooleanObject::Cast()")) return; 2570 if (IsDeadCheck(isolate, "v8::BooleanObject::Cast()")) return;
2570 i::Handle<i::Object> obj = Utils::OpenHandle(that); 2571 i::Handle<i::Object> obj = Utils::OpenHandle(that);
2571 ApiCheck(obj->HasSpecificClassOf(isolate->heap()->Boolean_symbol()), 2572 ApiCheck(obj->HasSpecificClassOf(isolate->heap()->Boolean_string()),
2572 "v8::BooleanObject::Cast()", 2573 "v8::BooleanObject::Cast()",
2573 "Could not convert to BooleanObject"); 2574 "Could not convert to BooleanObject");
2574 } 2575 }
2575 2576
2576 2577
2577 void v8::RegExp::CheckCast(v8::Value* that) { 2578 void v8::RegExp::CheckCast(v8::Value* that) {
2578 if (IsDeadCheck(i::Isolate::Current(), "v8::RegExp::Cast()")) return; 2579 if (IsDeadCheck(i::Isolate::Current(), "v8::RegExp::Cast()")) return;
2579 i::Handle<i::Object> obj = Utils::OpenHandle(that); 2580 i::Handle<i::Object> obj = Utils::OpenHandle(that);
2580 ApiCheck(obj->IsJSRegExp(), 2581 ApiCheck(obj->IsJSRegExp(),
2581 "v8::RegExp::Cast()", 2582 "v8::RegExp::Cast()",
(...skipping 769 matching lines...) Expand 10 before | Expand all | Expand 10 after
3351 3352
3352 bool v8::Object::SetHiddenValue(v8::Handle<v8::String> key, 3353 bool v8::Object::SetHiddenValue(v8::Handle<v8::String> key,
3353 v8::Handle<v8::Value> value) { 3354 v8::Handle<v8::Value> value) {
3354 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); 3355 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
3355 ON_BAILOUT(isolate, "v8::Object::SetHiddenValue()", return false); 3356 ON_BAILOUT(isolate, "v8::Object::SetHiddenValue()", return false);
3356 if (value.IsEmpty()) return DeleteHiddenValue(key); 3357 if (value.IsEmpty()) return DeleteHiddenValue(key);
3357 ENTER_V8(isolate); 3358 ENTER_V8(isolate);
3358 i::HandleScope scope(isolate); 3359 i::HandleScope scope(isolate);
3359 i::Handle<i::JSObject> self = Utils::OpenHandle(this); 3360 i::Handle<i::JSObject> self = Utils::OpenHandle(this);
3360 i::Handle<i::String> key_obj = Utils::OpenHandle(*key); 3361 i::Handle<i::String> key_obj = Utils::OpenHandle(*key);
3361 i::Handle<i::String> key_symbol = FACTORY->LookupSymbol(key_obj); 3362 i::Handle<i::String> key_string = FACTORY->InternalizeString(key_obj);
3362 i::Handle<i::Object> value_obj = Utils::OpenHandle(*value); 3363 i::Handle<i::Object> value_obj = Utils::OpenHandle(*value);
3363 i::Handle<i::Object> result = 3364 i::Handle<i::Object> result =
3364 i::JSObject::SetHiddenProperty(self, key_symbol, value_obj); 3365 i::JSObject::SetHiddenProperty(self, key_string, value_obj);
3365 return *result == *self; 3366 return *result == *self;
3366 } 3367 }
3367 3368
3368 3369
3369 v8::Local<v8::Value> v8::Object::GetHiddenValue(v8::Handle<v8::String> key) { 3370 v8::Local<v8::Value> v8::Object::GetHiddenValue(v8::Handle<v8::String> key) {
3370 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); 3371 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
3371 ON_BAILOUT(isolate, "v8::Object::GetHiddenValue()", 3372 ON_BAILOUT(isolate, "v8::Object::GetHiddenValue()",
3372 return Local<v8::Value>()); 3373 return Local<v8::Value>());
3373 ENTER_V8(isolate); 3374 ENTER_V8(isolate);
3374 i::Handle<i::JSObject> self = Utils::OpenHandle(this); 3375 i::Handle<i::JSObject> self = Utils::OpenHandle(this);
3375 i::Handle<i::String> key_obj = Utils::OpenHandle(*key); 3376 i::Handle<i::String> key_obj = Utils::OpenHandle(*key);
3376 i::Handle<i::String> key_symbol = FACTORY->LookupSymbol(key_obj); 3377 i::Handle<i::String> key_string = FACTORY->InternalizeString(key_obj);
3377 i::Handle<i::Object> result(self->GetHiddenProperty(*key_symbol), isolate); 3378 i::Handle<i::Object> result(self->GetHiddenProperty(*key_string), isolate);
3378 if (result->IsUndefined()) return v8::Local<v8::Value>(); 3379 if (result->IsUndefined()) return v8::Local<v8::Value>();
3379 return Utils::ToLocal(result); 3380 return Utils::ToLocal(result);
3380 } 3381 }
3381 3382
3382 3383
3383 bool v8::Object::DeleteHiddenValue(v8::Handle<v8::String> key) { 3384 bool v8::Object::DeleteHiddenValue(v8::Handle<v8::String> key) {
3384 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate(); 3385 i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
3385 ON_BAILOUT(isolate, "v8::DeleteHiddenValue()", return false); 3386 ON_BAILOUT(isolate, "v8::DeleteHiddenValue()", return false);
3386 ENTER_V8(isolate); 3387 ENTER_V8(isolate);
3387 i::HandleScope scope(isolate); 3388 i::HandleScope scope(isolate);
3388 i::Handle<i::JSObject> self = Utils::OpenHandle(this); 3389 i::Handle<i::JSObject> self = Utils::OpenHandle(this);
3389 i::Handle<i::String> key_obj = Utils::OpenHandle(*key); 3390 i::Handle<i::String> key_obj = Utils::OpenHandle(*key);
3390 i::Handle<i::String> key_symbol = FACTORY->LookupSymbol(key_obj); 3391 i::Handle<i::String> key_string = FACTORY->InternalizeString(key_obj);
3391 self->DeleteHiddenProperty(*key_symbol); 3392 self->DeleteHiddenProperty(*key_string);
3392 return true; 3393 return true;
3393 } 3394 }
3394 3395
3395 3396
3396 namespace { 3397 namespace {
3397 3398
3398 static i::ElementsKind GetElementsKindFromExternalArrayType( 3399 static i::ElementsKind GetElementsKindFromExternalArrayType(
3399 ExternalArrayType array_type) { 3400 ExternalArrayType array_type) {
3400 switch (array_type) { 3401 switch (array_type) {
3401 case kExternalByteArray: 3402 case kExternalByteArray:
(...skipping 1413 matching lines...) Expand 10 before | Expand all | Expand 10 after
4815 return ExternalValue(*Utils::OpenHandle(this)); 4816 return ExternalValue(*Utils::OpenHandle(this));
4816 } 4817 }
4817 4818
4818 4819
4819 Local<String> v8::String::Empty() { 4820 Local<String> v8::String::Empty() {
4820 i::Isolate* isolate = i::Isolate::Current(); 4821 i::Isolate* isolate = i::Isolate::Current();
4821 if (!EnsureInitializedForIsolate(isolate, "v8::String::Empty()")) { 4822 if (!EnsureInitializedForIsolate(isolate, "v8::String::Empty()")) {
4822 return v8::Local<String>(); 4823 return v8::Local<String>();
4823 } 4824 }
4824 LOG_API(isolate, "String::Empty()"); 4825 LOG_API(isolate, "String::Empty()");
4825 return Utils::ToLocal(isolate->factory()->empty_symbol()); 4826 return Utils::ToLocal(isolate->factory()->empty_string());
4826 } 4827 }
4827 4828
4828 4829
4829 Local<String> v8::String::New(const char* data, int length) { 4830 Local<String> v8::String::New(const char* data, int length) {
4830 i::Isolate* isolate = i::Isolate::Current(); 4831 i::Isolate* isolate = i::Isolate::Current();
4831 EnsureInitializedForIsolate(isolate, "v8::String::New()"); 4832 EnsureInitializedForIsolate(isolate, "v8::String::New()");
4832 LOG_API(isolate, "String::New(char)"); 4833 LOG_API(isolate, "String::New(char)");
4833 if (length == 0) return Empty(); 4834 if (length == 0) return Empty();
4834 ENTER_V8(isolate); 4835 ENTER_V8(isolate);
4835 if (length == -1) length = i::StrLength(data); 4836 if (length == -1) length = i::StrLength(data);
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
4940 } 4941 }
4941 ENTER_V8(isolate); 4942 ENTER_V8(isolate);
4942 if (isolate->string_tracker()->IsFreshUnusedString(obj)) { 4943 if (isolate->string_tracker()->IsFreshUnusedString(obj)) {
4943 return false; 4944 return false;
4944 } 4945 }
4945 if (isolate->heap()->IsInGCPostProcessing()) { 4946 if (isolate->heap()->IsInGCPostProcessing()) {
4946 return false; 4947 return false;
4947 } 4948 }
4948 CHECK(resource && resource->data()); 4949 CHECK(resource && resource->data());
4949 bool result = obj->MakeExternal(resource); 4950 bool result = obj->MakeExternal(resource);
4950 if (result && !obj->IsSymbol()) { 4951 if (result && !obj->IsInternalizedString()) {
4951 isolate->heap()->external_string_table()->AddString(*obj); 4952 isolate->heap()->external_string_table()->AddString(*obj);
4952 } 4953 }
4953 return result; 4954 return result;
4954 } 4955 }
4955 4956
4956 4957
4957 Local<String> v8::String::NewExternal( 4958 Local<String> v8::String::NewExternal(
4958 v8::String::ExternalAsciiStringResource* resource) { 4959 v8::String::ExternalAsciiStringResource* resource) {
4959 i::Isolate* isolate = i::Isolate::Current(); 4960 i::Isolate* isolate = i::Isolate::Current();
4960 EnsureInitializedForIsolate(isolate, "v8::String::NewExternal()"); 4961 EnsureInitializedForIsolate(isolate, "v8::String::NewExternal()");
(...skipping 16 matching lines...) Expand all
4977 } 4978 }
4978 ENTER_V8(isolate); 4979 ENTER_V8(isolate);
4979 if (isolate->string_tracker()->IsFreshUnusedString(obj)) { 4980 if (isolate->string_tracker()->IsFreshUnusedString(obj)) {
4980 return false; 4981 return false;
4981 } 4982 }
4982 if (isolate->heap()->IsInGCPostProcessing()) { 4983 if (isolate->heap()->IsInGCPostProcessing()) {
4983 return false; 4984 return false;
4984 } 4985 }
4985 CHECK(resource && resource->data()); 4986 CHECK(resource && resource->data());
4986 bool result = obj->MakeExternal(resource); 4987 bool result = obj->MakeExternal(resource);
4987 if (result && !obj->IsSymbol()) { 4988 if (result && !obj->IsInternalizedString()) {
4988 isolate->heap()->external_string_table()->AddString(*obj); 4989 isolate->heap()->external_string_table()->AddString(*obj);
4989 } 4990 }
4990 return result; 4991 return result;
4991 } 4992 }
4992 4993
4993 4994
4994 bool v8::String::CanMakeExternal() { 4995 bool v8::String::CanMakeExternal() {
4995 if (!internal::FLAG_clever_optimizations) return false; 4996 if (!internal::FLAG_clever_optimizations) return false;
4996 i::Handle<i::String> obj = Utils::OpenHandle(this); 4997 i::Handle<i::String> obj = Utils::OpenHandle(this);
4997 i::Isolate* isolate = obj->GetIsolate(); 4998 i::Isolate* isolate = obj->GetIsolate();
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
5113 i::Isolate* isolate = i::Isolate::Current(); 5114 i::Isolate* isolate = i::Isolate::Current();
5114 ON_BAILOUT(isolate, "v8::Date::DateTimeConfigurationChangeNotification()", 5115 ON_BAILOUT(isolate, "v8::Date::DateTimeConfigurationChangeNotification()",
5115 return); 5116 return);
5116 LOG_API(isolate, "Date::DateTimeConfigurationChangeNotification"); 5117 LOG_API(isolate, "Date::DateTimeConfigurationChangeNotification");
5117 ENTER_V8(isolate); 5118 ENTER_V8(isolate);
5118 5119
5119 isolate->date_cache()->ResetDateCache(); 5120 isolate->date_cache()->ResetDateCache();
5120 5121
5121 i::HandleScope scope(isolate); 5122 i::HandleScope scope(isolate);
5122 // Get the function ResetDateCache (defined in date.js). 5123 // Get the function ResetDateCache (defined in date.js).
5123 i::Handle<i::String> func_name_str = isolate->factory()->LookupOneByteSymbol( 5124 i::Handle<i::String> func_name_str =
5124 STATIC_ASCII_VECTOR("ResetDateCache")); 5125 isolate->factory()->InternalizeOneByteString(
5126 STATIC_ASCII_VECTOR("ResetDateCache"));
5125 i::MaybeObject* result = 5127 i::MaybeObject* result =
5126 isolate->js_builtins_object()->GetProperty(*func_name_str); 5128 isolate->js_builtins_object()->GetProperty(*func_name_str);
5127 i::Object* object_func; 5129 i::Object* object_func;
5128 if (!result->ToObject(&object_func)) { 5130 if (!result->ToObject(&object_func)) {
5129 return; 5131 return;
5130 } 5132 }
5131 5133
5132 if (object_func->IsJSFunction()) { 5134 if (object_func->IsJSFunction()) {
5133 i::Handle<i::JSFunction> func = 5135 i::Handle<i::JSFunction> func =
5134 i::Handle<i::JSFunction>(i::JSFunction::cast(object_func)); 5136 i::Handle<i::JSFunction>(i::JSFunction::cast(object_func));
5135 5137
5136 // Call ResetDateCache(0 but expect no exceptions: 5138 // Call ResetDateCache(0 but expect no exceptions:
5137 bool caught_exception = false; 5139 bool caught_exception = false;
5138 i::Execution::TryCall(func, 5140 i::Execution::TryCall(func,
5139 isolate->js_builtins_object(), 5141 isolate->js_builtins_object(),
5140 0, 5142 0,
5141 NULL, 5143 NULL,
5142 &caught_exception); 5144 &caught_exception);
5143 } 5145 }
5144 } 5146 }
5145 5147
5146 5148
5147 static i::Handle<i::String> RegExpFlagsToString(RegExp::Flags flags) { 5149 static i::Handle<i::String> RegExpFlagsToString(RegExp::Flags flags) {
5148 uint8_t flags_buf[3]; 5150 uint8_t flags_buf[3];
5149 int num_flags = 0; 5151 int num_flags = 0;
5150 if ((flags & RegExp::kGlobal) != 0) flags_buf[num_flags++] = 'g'; 5152 if ((flags & RegExp::kGlobal) != 0) flags_buf[num_flags++] = 'g';
5151 if ((flags & RegExp::kMultiline) != 0) flags_buf[num_flags++] = 'm'; 5153 if ((flags & RegExp::kMultiline) != 0) flags_buf[num_flags++] = 'm';
5152 if ((flags & RegExp::kIgnoreCase) != 0) flags_buf[num_flags++] = 'i'; 5154 if ((flags & RegExp::kIgnoreCase) != 0) flags_buf[num_flags++] = 'i';
5153 ASSERT(num_flags <= static_cast<int>(ARRAY_SIZE(flags_buf))); 5155 ASSERT(num_flags <= static_cast<int>(ARRAY_SIZE(flags_buf)));
5154 return FACTORY->LookupOneByteSymbol( 5156 return FACTORY->InternalizeOneByteString(
5155 i::Vector<const uint8_t>(flags_buf, num_flags)); 5157 i::Vector<const uint8_t>(flags_buf, num_flags));
5156 } 5158 }
5157 5159
5158 5160
5159 Local<v8::RegExp> v8::RegExp::New(Handle<String> pattern, 5161 Local<v8::RegExp> v8::RegExp::New(Handle<String> pattern,
5160 Flags flags) { 5162 Flags flags) {
5161 i::Isolate* isolate = Utils::OpenHandle(*pattern)->GetIsolate(); 5163 i::Isolate* isolate = Utils::OpenHandle(*pattern)->GetIsolate();
5162 EnsureInitializedForIsolate(isolate, "v8::RegExp::New()"); 5164 EnsureInitializedForIsolate(isolate, "v8::RegExp::New()");
5163 LOG_API(isolate, "RegExp::New"); 5165 LOG_API(isolate, "RegExp::New");
5164 ENTER_V8(isolate); 5166 ENTER_V8(isolate);
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
5249 return Utils::ToLocal(result); 5251 return Utils::ToLocal(result);
5250 } 5252 }
5251 5253
5252 5254
5253 Local<String> v8::String::NewSymbol(const char* data, int length) { 5255 Local<String> v8::String::NewSymbol(const char* data, int length) {
5254 i::Isolate* isolate = i::Isolate::Current(); 5256 i::Isolate* isolate = i::Isolate::Current();
5255 EnsureInitializedForIsolate(isolate, "v8::String::NewSymbol()"); 5257 EnsureInitializedForIsolate(isolate, "v8::String::NewSymbol()");
5256 LOG_API(isolate, "String::NewSymbol(char)"); 5258 LOG_API(isolate, "String::NewSymbol(char)");
5257 ENTER_V8(isolate); 5259 ENTER_V8(isolate);
5258 if (length == -1) length = i::StrLength(data); 5260 if (length == -1) length = i::StrLength(data);
5259 i::Handle<i::String> result = isolate->factory()->LookupUtf8Symbol( 5261 i::Handle<i::String> result = isolate->factory()->InternalizeUtf8String(
5260 i::Vector<const char>(data, length)); 5262 i::Vector<const char>(data, length));
5261 return Utils::ToLocal(result); 5263 return Utils::ToLocal(result);
5262 } 5264 }
5263 5265
5264 5266
5265 Local<Number> v8::Number::New(double value) { 5267 Local<Number> v8::Number::New(double value) {
5266 i::Isolate* isolate = i::Isolate::Current(); 5268 i::Isolate* isolate = i::Isolate::Current();
5267 EnsureInitializedForIsolate(isolate, "v8::Number::New()"); 5269 EnsureInitializedForIsolate(isolate, "v8::Number::New()");
5268 if (isnan(value)) { 5270 if (isnan(value)) {
5269 // Introduce only canonical NaN value into the VM, to avoid signaling NaNs. 5271 // Introduce only canonical NaN value into the VM, to avoid signaling NaNs.
(...skipping 674 matching lines...) Expand 10 before | Expand all | Expand 10 after
5944 5946
5945 Local<Value> Debug::GetMirror(v8::Handle<v8::Value> obj) { 5947 Local<Value> Debug::GetMirror(v8::Handle<v8::Value> obj) {
5946 i::Isolate* isolate = i::Isolate::Current(); 5948 i::Isolate* isolate = i::Isolate::Current();
5947 if (!isolate->IsInitialized()) return Local<Value>(); 5949 if (!isolate->IsInitialized()) return Local<Value>();
5948 ON_BAILOUT(isolate, "v8::Debug::GetMirror()", return Local<Value>()); 5950 ON_BAILOUT(isolate, "v8::Debug::GetMirror()", return Local<Value>());
5949 ENTER_V8(isolate); 5951 ENTER_V8(isolate);
5950 v8::HandleScope scope; 5952 v8::HandleScope scope;
5951 i::Debug* isolate_debug = isolate->debug(); 5953 i::Debug* isolate_debug = isolate->debug();
5952 isolate_debug->Load(); 5954 isolate_debug->Load();
5953 i::Handle<i::JSObject> debug(isolate_debug->debug_context()->global_object()); 5955 i::Handle<i::JSObject> debug(isolate_debug->debug_context()->global_object());
5954 i::Handle<i::String> name = isolate->factory()->LookupOneByteSymbol( 5956 i::Handle<i::String> name = isolate->factory()->InternalizeOneByteString(
5955 STATIC_ASCII_VECTOR("MakeMirror")); 5957 STATIC_ASCII_VECTOR("MakeMirror"));
5956 i::Handle<i::Object> fun_obj = i::GetProperty(debug, name); 5958 i::Handle<i::Object> fun_obj = i::GetProperty(debug, name);
5957 i::Handle<i::JSFunction> fun = i::Handle<i::JSFunction>::cast(fun_obj); 5959 i::Handle<i::JSFunction> fun = i::Handle<i::JSFunction>::cast(fun_obj);
5958 v8::Handle<v8::Function> v8_fun = Utils::ToLocal(fun); 5960 v8::Handle<v8::Function> v8_fun = Utils::ToLocal(fun);
5959 const int kArgc = 1; 5961 const int kArgc = 1;
5960 v8::Handle<v8::Value> argv[kArgc] = { obj }; 5962 v8::Handle<v8::Value> argv[kArgc] = { obj };
5961 EXCEPTION_PREAMBLE(isolate); 5963 EXCEPTION_PREAMBLE(isolate);
5962 v8::Handle<v8::Value> result = v8_fun->Call(Utils::ToLocal(debug), 5964 v8::Handle<v8::Value> result = v8_fun->Call(Utils::ToLocal(debug),
5963 kArgc, 5965 kArgc,
5964 argv); 5966 argv);
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
6007 #endif // ENABLE_DEBUGGER_SUPPORT 6009 #endif // ENABLE_DEBUGGER_SUPPORT
6008 6010
6009 6011
6010 Handle<String> CpuProfileNode::GetFunctionName() const { 6012 Handle<String> CpuProfileNode::GetFunctionName() const {
6011 i::Isolate* isolate = i::Isolate::Current(); 6013 i::Isolate* isolate = i::Isolate::Current();
6012 IsDeadCheck(isolate, "v8::CpuProfileNode::GetFunctionName"); 6014 IsDeadCheck(isolate, "v8::CpuProfileNode::GetFunctionName");
6013 const i::ProfileNode* node = reinterpret_cast<const i::ProfileNode*>(this); 6015 const i::ProfileNode* node = reinterpret_cast<const i::ProfileNode*>(this);
6014 const i::CodeEntry* entry = node->entry(); 6016 const i::CodeEntry* entry = node->entry();
6015 if (!entry->has_name_prefix()) { 6017 if (!entry->has_name_prefix()) {
6016 return Handle<String>(ToApi<String>( 6018 return Handle<String>(ToApi<String>(
6017 isolate->factory()->LookupUtf8Symbol(entry->name()))); 6019 isolate->factory()->InternalizeUtf8String(entry->name())));
6018 } else { 6020 } else {
6019 return Handle<String>(ToApi<String>(isolate->factory()->NewConsString( 6021 return Handle<String>(ToApi<String>(isolate->factory()->NewConsString(
6020 isolate->factory()->LookupUtf8Symbol(entry->name_prefix()), 6022 isolate->factory()->InternalizeUtf8String(entry->name_prefix()),
6021 isolate->factory()->LookupUtf8Symbol(entry->name())))); 6023 isolate->factory()->InternalizeUtf8String(entry->name()))));
6022 } 6024 }
6023 } 6025 }
6024 6026
6025 6027
6026 Handle<String> CpuProfileNode::GetScriptResourceName() const { 6028 Handle<String> CpuProfileNode::GetScriptResourceName() const {
6027 i::Isolate* isolate = i::Isolate::Current(); 6029 i::Isolate* isolate = i::Isolate::Current();
6028 IsDeadCheck(isolate, "v8::CpuProfileNode::GetScriptResourceName"); 6030 IsDeadCheck(isolate, "v8::CpuProfileNode::GetScriptResourceName");
6029 const i::ProfileNode* node = reinterpret_cast<const i::ProfileNode*>(this); 6031 const i::ProfileNode* node = reinterpret_cast<const i::ProfileNode*>(this);
6030 return Handle<String>(ToApi<String>(isolate->factory()->LookupUtf8Symbol( 6032 return Handle<String>(ToApi<String>(isolate->factory()->InternalizeUtf8String(
6031 node->entry()->resource_name()))); 6033 node->entry()->resource_name())));
6032 } 6034 }
6033 6035
6034 6036
6035 int CpuProfileNode::GetLineNumber() const { 6037 int CpuProfileNode::GetLineNumber() const {
6036 i::Isolate* isolate = i::Isolate::Current(); 6038 i::Isolate* isolate = i::Isolate::Current();
6037 IsDeadCheck(isolate, "v8::CpuProfileNode::GetLineNumber"); 6039 IsDeadCheck(isolate, "v8::CpuProfileNode::GetLineNumber");
6038 return reinterpret_cast<const i::ProfileNode*>(this)->entry()->line_number(); 6040 return reinterpret_cast<const i::ProfileNode*>(this)->entry()->line_number();
6039 } 6041 }
6040 6042
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
6106 i::Isolate* isolate = i::Isolate::Current(); 6108 i::Isolate* isolate = i::Isolate::Current();
6107 IsDeadCheck(isolate, "v8::CpuProfile::GetUid"); 6109 IsDeadCheck(isolate, "v8::CpuProfile::GetUid");
6108 return reinterpret_cast<const i::CpuProfile*>(this)->uid(); 6110 return reinterpret_cast<const i::CpuProfile*>(this)->uid();
6109 } 6111 }
6110 6112
6111 6113
6112 Handle<String> CpuProfile::GetTitle() const { 6114 Handle<String> CpuProfile::GetTitle() const {
6113 i::Isolate* isolate = i::Isolate::Current(); 6115 i::Isolate* isolate = i::Isolate::Current();
6114 IsDeadCheck(isolate, "v8::CpuProfile::GetTitle"); 6116 IsDeadCheck(isolate, "v8::CpuProfile::GetTitle");
6115 const i::CpuProfile* profile = reinterpret_cast<const i::CpuProfile*>(this); 6117 const i::CpuProfile* profile = reinterpret_cast<const i::CpuProfile*>(this);
6116 return Handle<String>(ToApi<String>(isolate->factory()->LookupUtf8Symbol( 6118 return Handle<String>(ToApi<String>(isolate->factory()->InternalizeUtf8String(
6117 profile->title()))); 6119 profile->title())));
6118 } 6120 }
6119 6121
6120 6122
6121 const CpuProfileNode* CpuProfile::GetBottomUpRoot() const { 6123 const CpuProfileNode* CpuProfile::GetBottomUpRoot() const {
6122 i::Isolate* isolate = i::Isolate::Current(); 6124 i::Isolate* isolate = i::Isolate::Current();
6123 IsDeadCheck(isolate, "v8::CpuProfile::GetBottomUpRoot"); 6125 IsDeadCheck(isolate, "v8::CpuProfile::GetBottomUpRoot");
6124 const i::CpuProfile* profile = reinterpret_cast<const i::CpuProfile*>(this); 6126 const i::CpuProfile* profile = reinterpret_cast<const i::CpuProfile*>(this);
6125 return reinterpret_cast<const CpuProfileNode*>(profile->bottom_up()->root()); 6127 return reinterpret_cast<const CpuProfileNode*>(profile->bottom_up()->root());
6126 } 6128 }
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
6203 6205
6204 Handle<Value> HeapGraphEdge::GetName() const { 6206 Handle<Value> HeapGraphEdge::GetName() const {
6205 i::Isolate* isolate = i::Isolate::Current(); 6207 i::Isolate* isolate = i::Isolate::Current();
6206 IsDeadCheck(isolate, "v8::HeapGraphEdge::GetName"); 6208 IsDeadCheck(isolate, "v8::HeapGraphEdge::GetName");
6207 i::HeapGraphEdge* edge = ToInternal(this); 6209 i::HeapGraphEdge* edge = ToInternal(this);
6208 switch (edge->type()) { 6210 switch (edge->type()) {
6209 case i::HeapGraphEdge::kContextVariable: 6211 case i::HeapGraphEdge::kContextVariable:
6210 case i::HeapGraphEdge::kInternal: 6212 case i::HeapGraphEdge::kInternal:
6211 case i::HeapGraphEdge::kProperty: 6213 case i::HeapGraphEdge::kProperty:
6212 case i::HeapGraphEdge::kShortcut: 6214 case i::HeapGraphEdge::kShortcut:
6213 return Handle<String>(ToApi<String>(isolate->factory()->LookupUtf8Symbol( 6215 return Handle<String>(ToApi<String>(
6214 edge->name()))); 6216 isolate->factory()->InternalizeUtf8String(edge->name())));
6215 case i::HeapGraphEdge::kElement: 6217 case i::HeapGraphEdge::kElement:
6216 case i::HeapGraphEdge::kHidden: 6218 case i::HeapGraphEdge::kHidden:
6217 return Handle<Number>(ToApi<Number>(isolate->factory()->NewNumberFromInt( 6219 return Handle<Number>(ToApi<Number>(
6218 edge->index()))); 6220 isolate->factory()->NewNumberFromInt(edge->index())));
6219 default: UNREACHABLE(); 6221 default: UNREACHABLE();
6220 } 6222 }
6221 return v8::Undefined(); 6223 return v8::Undefined();
6222 } 6224 }
6223 6225
6224 6226
6225 const HeapGraphNode* HeapGraphEdge::GetFromNode() const { 6227 const HeapGraphNode* HeapGraphEdge::GetFromNode() const {
6226 i::Isolate* isolate = i::Isolate::Current(); 6228 i::Isolate* isolate = i::Isolate::Current();
6227 IsDeadCheck(isolate, "v8::HeapGraphEdge::GetFromNode"); 6229 IsDeadCheck(isolate, "v8::HeapGraphEdge::GetFromNode");
6228 const i::HeapEntry* from = ToInternal(this)->from(); 6230 const i::HeapEntry* from = ToInternal(this)->from();
(...skipping 18 matching lines...) Expand all
6247 HeapGraphNode::Type HeapGraphNode::GetType() const { 6249 HeapGraphNode::Type HeapGraphNode::GetType() const {
6248 i::Isolate* isolate = i::Isolate::Current(); 6250 i::Isolate* isolate = i::Isolate::Current();
6249 IsDeadCheck(isolate, "v8::HeapGraphNode::GetType"); 6251 IsDeadCheck(isolate, "v8::HeapGraphNode::GetType");
6250 return static_cast<HeapGraphNode::Type>(ToInternal(this)->type()); 6252 return static_cast<HeapGraphNode::Type>(ToInternal(this)->type());
6251 } 6253 }
6252 6254
6253 6255
6254 Handle<String> HeapGraphNode::GetName() const { 6256 Handle<String> HeapGraphNode::GetName() const {
6255 i::Isolate* isolate = i::Isolate::Current(); 6257 i::Isolate* isolate = i::Isolate::Current();
6256 IsDeadCheck(isolate, "v8::HeapGraphNode::GetName"); 6258 IsDeadCheck(isolate, "v8::HeapGraphNode::GetName");
6257 return Handle<String>(ToApi<String>(isolate->factory()->LookupUtf8Symbol( 6259 return Handle<String>(ToApi<String>(isolate->factory()->InternalizeUtf8String(
6258 ToInternal(this)->name()))); 6260 ToInternal(this)->name())));
6259 } 6261 }
6260 6262
6261 6263
6262 SnapshotObjectId HeapGraphNode::GetId() const { 6264 SnapshotObjectId HeapGraphNode::GetId() const {
6263 i::Isolate* isolate = i::Isolate::Current(); 6265 i::Isolate* isolate = i::Isolate::Current();
6264 IsDeadCheck(isolate, "v8::HeapGraphNode::GetId"); 6266 IsDeadCheck(isolate, "v8::HeapGraphNode::GetId");
6265 return ToInternal(this)->id(); 6267 return ToInternal(this)->id();
6266 } 6268 }
6267 6269
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
6326 unsigned HeapSnapshot::GetUid() const { 6328 unsigned HeapSnapshot::GetUid() const {
6327 i::Isolate* isolate = i::Isolate::Current(); 6329 i::Isolate* isolate = i::Isolate::Current();
6328 IsDeadCheck(isolate, "v8::HeapSnapshot::GetUid"); 6330 IsDeadCheck(isolate, "v8::HeapSnapshot::GetUid");
6329 return ToInternal(this)->uid(); 6331 return ToInternal(this)->uid();
6330 } 6332 }
6331 6333
6332 6334
6333 Handle<String> HeapSnapshot::GetTitle() const { 6335 Handle<String> HeapSnapshot::GetTitle() const {
6334 i::Isolate* isolate = i::Isolate::Current(); 6336 i::Isolate* isolate = i::Isolate::Current();
6335 IsDeadCheck(isolate, "v8::HeapSnapshot::GetTitle"); 6337 IsDeadCheck(isolate, "v8::HeapSnapshot::GetTitle");
6336 return Handle<String>(ToApi<String>(isolate->factory()->LookupUtf8Symbol( 6338 return Handle<String>(ToApi<String>(isolate->factory()->InternalizeUtf8String(
6337 ToInternal(this)->title()))); 6339 ToInternal(this)->title())));
6338 } 6340 }
6339 6341
6340 6342
6341 const HeapGraphNode* HeapSnapshot::GetRoot() const { 6343 const HeapGraphNode* HeapSnapshot::GetRoot() const {
6342 i::Isolate* isolate = i::Isolate::Current(); 6344 i::Isolate* isolate = i::Isolate::Current();
6343 IsDeadCheck(isolate, "v8::HeapSnapshot::GetHead"); 6345 IsDeadCheck(isolate, "v8::HeapSnapshot::GetHead");
6344 return reinterpret_cast<const HeapGraphNode*>(ToInternal(this)->root()); 6346 return reinterpret_cast<const HeapGraphNode*>(ToInternal(this)->root());
6345 } 6347 }
6346 6348
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after
6695 6697
6696 v->VisitPointers(blocks_.first(), first_block_limit_); 6698 v->VisitPointers(blocks_.first(), first_block_limit_);
6697 6699
6698 for (int i = 1; i < blocks_.length(); i++) { 6700 for (int i = 1; i < blocks_.length(); i++) {
6699 v->VisitPointers(blocks_[i], &blocks_[i][kHandleBlockSize]); 6701 v->VisitPointers(blocks_[i], &blocks_[i][kHandleBlockSize]);
6700 } 6702 }
6701 } 6703 }
6702 6704
6703 6705
6704 } } // namespace v8::internal 6706 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/accessors.cc ('k') | src/arm/builtins-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698