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

Side by Side Diff: src/bootstrapper.cc

Issue 11365221: Allow property indexes to refer to slots inside the object header. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 8 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 | Annotate | Revision Log
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 1066 matching lines...) Expand 10 before | Expand all | Expand 10 after
1077 factory->undefined_value(), DONT_ENUM)); 1077 factory->undefined_value(), DONT_ENUM));
1078 CHECK_NOT_EMPTY_HANDLE(isolate, 1078 CHECK_NOT_EMPTY_HANDLE(isolate,
1079 JSObject::SetLocalPropertyIgnoreAttributes( 1079 JSObject::SetLocalPropertyIgnoreAttributes(
1080 result, factory->callee_symbol(), 1080 result, factory->callee_symbol(),
1081 factory->undefined_value(), DONT_ENUM)); 1081 factory->undefined_value(), DONT_ENUM));
1082 1082
1083 #ifdef DEBUG 1083 #ifdef DEBUG
1084 LookupResult lookup(isolate); 1084 LookupResult lookup(isolate);
1085 result->LocalLookup(heap->callee_symbol(), &lookup); 1085 result->LocalLookup(heap->callee_symbol(), &lookup);
1086 ASSERT(lookup.IsField()); 1086 ASSERT(lookup.IsField());
1087 ASSERT(lookup.GetFieldIndex() == Heap::kArgumentsCalleeIndex); 1087 ASSERT(lookup.GetFieldIndex().FieldIndex() == Heap::kArgumentsCalleeIndex);
1088 1088
1089 result->LocalLookup(heap->length_symbol(), &lookup); 1089 result->LocalLookup(heap->length_symbol(), &lookup);
1090 ASSERT(lookup.IsField()); 1090 ASSERT(lookup.IsField());
1091 ASSERT(lookup.GetFieldIndex() == Heap::kArgumentsLengthIndex); 1091 ASSERT(lookup.GetFieldIndex().FieldIndex() == Heap::kArgumentsLengthIndex);
1092 1092
1093 ASSERT(result->map()->inobject_properties() > Heap::kArgumentsCalleeIndex); 1093 ASSERT(result->map()->inobject_properties() > Heap::kArgumentsCalleeIndex);
1094 ASSERT(result->map()->inobject_properties() > Heap::kArgumentsLengthIndex); 1094 ASSERT(result->map()->inobject_properties() > Heap::kArgumentsLengthIndex);
1095 1095
1096 // Check the state of the object. 1096 // Check the state of the object.
1097 ASSERT(result->HasFastProperties()); 1097 ASSERT(result->HasFastProperties());
1098 ASSERT(result->HasFastObjectElements()); 1098 ASSERT(result->HasFastObjectElements());
1099 #endif 1099 #endif
1100 } 1100 }
1101 1101
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
1179 // Add length property only for strict mode boilerplate. 1179 // Add length property only for strict mode boilerplate.
1180 CHECK_NOT_EMPTY_HANDLE(isolate, 1180 CHECK_NOT_EMPTY_HANDLE(isolate,
1181 JSObject::SetLocalPropertyIgnoreAttributes( 1181 JSObject::SetLocalPropertyIgnoreAttributes(
1182 result, factory->length_symbol(), 1182 result, factory->length_symbol(),
1183 factory->undefined_value(), DONT_ENUM)); 1183 factory->undefined_value(), DONT_ENUM));
1184 1184
1185 #ifdef DEBUG 1185 #ifdef DEBUG
1186 LookupResult lookup(isolate); 1186 LookupResult lookup(isolate);
1187 result->LocalLookup(heap->length_symbol(), &lookup); 1187 result->LocalLookup(heap->length_symbol(), &lookup);
1188 ASSERT(lookup.IsField()); 1188 ASSERT(lookup.IsField());
1189 ASSERT(lookup.GetFieldIndex() == Heap::kArgumentsLengthIndex); 1189 ASSERT(lookup.GetFieldIndex().FieldIndex() == Heap::kArgumentsLengthIndex);
1190 1190
1191 ASSERT(result->map()->inobject_properties() > Heap::kArgumentsLengthIndex); 1191 ASSERT(result->map()->inobject_properties() > Heap::kArgumentsLengthIndex);
1192 1192
1193 // Check the state of the object. 1193 // Check the state of the object.
1194 ASSERT(result->HasFastProperties()); 1194 ASSERT(result->HasFastProperties());
1195 ASSERT(result->HasFastObjectElements()); 1195 ASSERT(result->HasFastObjectElements());
1196 #endif 1196 #endif
1197 } 1197 }
1198 1198
1199 { // --- context extension 1199 { // --- context extension
(...skipping 1209 matching lines...) Expand 10 before | Expand all | Expand 10 after
2409 return from + sizeof(NestingCounterType); 2409 return from + sizeof(NestingCounterType);
2410 } 2410 }
2411 2411
2412 2412
2413 // Called when the top-level V8 mutex is destroyed. 2413 // Called when the top-level V8 mutex is destroyed.
2414 void Bootstrapper::FreeThreadResources() { 2414 void Bootstrapper::FreeThreadResources() {
2415 ASSERT(!IsActive()); 2415 ASSERT(!IsActive());
2416 } 2416 }
2417 2417
2418 } } // namespace v8::internal 2418 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/arm/stub-cache-arm.cc ('k') | src/ia32/stub-cache-ia32.cc » ('j') | src/property.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698