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

Side by Side Diff: src/runtime.cc

Issue 350023002: More Map methods moved to private part. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Addressed comment and rebased Created 6 years, 5 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/objects.cc ('k') | no next file » | 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 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <stdlib.h> 5 #include <stdlib.h>
6 #include <limits> 6 #include <limits>
7 7
8 #include "src/v8.h" 8 #include "src/v8.h"
9 9
10 #include "src/accessors.h" 10 #include "src/accessors.h"
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 // the handle based operations. In that case, we need to 303 // the handle based operations. In that case, we need to
304 // convert back to an exception. 304 // convert back to an exception.
305 RETURN_ON_EXCEPTION(isolate, maybe_result, Object); 305 RETURN_ON_EXCEPTION(isolate, maybe_result, Object);
306 } 306 }
307 307
308 // Transform to fast properties if necessary. For object literals with 308 // Transform to fast properties if necessary. For object literals with
309 // containing function literals we defer this operation until after all 309 // containing function literals we defer this operation until after all
310 // computed properties have been assigned so that we can generate 310 // computed properties have been assigned so that we can generate
311 // constant function properties. 311 // constant function properties.
312 if (should_transform && !has_function_literal) { 312 if (should_transform && !has_function_literal) {
313 JSObject::TransformToFastProperties( 313 JSObject::MigrateSlowToFast(
314 boilerplate, boilerplate->map()->unused_property_fields()); 314 boilerplate, boilerplate->map()->unused_property_fields());
315 } 315 }
316 316
317 return boilerplate; 317 return boilerplate;
318 } 318 }
319 319
320 320
321 MUST_USE_RESULT static MaybeHandle<Object> TransitionElements( 321 MUST_USE_RESULT static MaybeHandle<Object> TransitionElements(
322 Handle<Object> object, 322 Handle<Object> object,
323 ElementsKind to_kind, 323 ElementsKind to_kind,
(...skipping 4724 matching lines...) Expand 10 before | Expand all | Expand 10 after
5048 CONVERT_ARG_HANDLE_CHECKED(Object, setter, 3); 5048 CONVERT_ARG_HANDLE_CHECKED(Object, setter, 3);
5049 RUNTIME_ASSERT(IsValidAccessor(setter)); 5049 RUNTIME_ASSERT(IsValidAccessor(setter));
5050 CONVERT_SMI_ARG_CHECKED(unchecked, 4); 5050 CONVERT_SMI_ARG_CHECKED(unchecked, 4);
5051 RUNTIME_ASSERT((unchecked & ~(READ_ONLY | DONT_ENUM | DONT_DELETE)) == 0); 5051 RUNTIME_ASSERT((unchecked & ~(READ_ONLY | DONT_ENUM | DONT_DELETE)) == 0);
5052 PropertyAttributes attr = static_cast<PropertyAttributes>(unchecked); 5052 PropertyAttributes attr = static_cast<PropertyAttributes>(unchecked);
5053 5053
5054 bool fast = obj->HasFastProperties(); 5054 bool fast = obj->HasFastProperties();
5055 // DefineAccessor checks access rights. 5055 // DefineAccessor checks access rights.
5056 JSObject::DefineAccessor(obj, name, getter, setter, attr); 5056 JSObject::DefineAccessor(obj, name, getter, setter, attr);
5057 RETURN_FAILURE_IF_SCHEDULED_EXCEPTION(isolate); 5057 RETURN_FAILURE_IF_SCHEDULED_EXCEPTION(isolate);
5058 if (fast) JSObject::TransformToFastProperties(obj, 0); 5058 if (fast) JSObject::MigrateSlowToFast(obj, 0);
5059 return isolate->heap()->undefined_value(); 5059 return isolate->heap()->undefined_value();
5060 } 5060 }
5061 5061
5062 5062
5063 // Implements part of 8.12.9 DefineOwnProperty. 5063 // Implements part of 8.12.9 DefineOwnProperty.
5064 // There are 3 cases that lead here: 5064 // There are 3 cases that lead here:
5065 // Step 4a - define a new data property. 5065 // Step 4a - define a new data property.
5066 // Steps 9b & 12 - replace an existing accessor property with a data property. 5066 // Steps 9b & 12 - replace an existing accessor property with a data property.
5067 // Step 12 - update an existing data property with a data or generic 5067 // Step 12 - update an existing data property with a data or generic
5068 // descriptor. 5068 // descriptor.
(...skipping 960 matching lines...) Expand 10 before | Expand all | Expand 10 after
6029 Object::GetProperty(isolate->initial_object_prototype(), key)); 6029 Object::GetProperty(isolate->initial_object_prototype(), key));
6030 return *result; 6030 return *result;
6031 } 6031 }
6032 6032
6033 6033
6034 RUNTIME_FUNCTION(Runtime_ToFastProperties) { 6034 RUNTIME_FUNCTION(Runtime_ToFastProperties) {
6035 HandleScope scope(isolate); 6035 HandleScope scope(isolate);
6036 ASSERT(args.length() == 1); 6036 ASSERT(args.length() == 1);
6037 CONVERT_ARG_HANDLE_CHECKED(Object, object, 0); 6037 CONVERT_ARG_HANDLE_CHECKED(Object, object, 0);
6038 if (object->IsJSObject() && !object->IsGlobalObject()) { 6038 if (object->IsJSObject() && !object->IsGlobalObject()) {
6039 JSObject::TransformToFastProperties(Handle<JSObject>::cast(object), 0); 6039 JSObject::MigrateSlowToFast(Handle<JSObject>::cast(object), 0);
6040 } 6040 }
6041 return *object; 6041 return *object;
6042 } 6042 }
6043 6043
6044 6044
6045 RUNTIME_FUNCTION(Runtime_ToBool) { 6045 RUNTIME_FUNCTION(Runtime_ToBool) {
6046 SealHandleScope shs(isolate); 6046 SealHandleScope shs(isolate);
6047 ASSERT(args.length() == 1); 6047 ASSERT(args.length() == 1);
6048 CONVERT_ARG_CHECKED(Object, object, 0); 6048 CONVERT_ARG_CHECKED(Object, object, 0);
6049 6049
(...skipping 9071 matching lines...) Expand 10 before | Expand all | Expand 10 after
15121 } 15121 }
15122 return NULL; 15122 return NULL;
15123 } 15123 }
15124 15124
15125 15125
15126 const Runtime::Function* Runtime::FunctionForId(Runtime::FunctionId id) { 15126 const Runtime::Function* Runtime::FunctionForId(Runtime::FunctionId id) {
15127 return &(kIntrinsicFunctions[static_cast<int>(id)]); 15127 return &(kIntrinsicFunctions[static_cast<int>(id)]);
15128 } 15128 }
15129 15129
15130 } } // namespace v8::internal 15130 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/objects.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698