| OLD | NEW |
| 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 2156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2167 RUNTIME_FUNCTION(Runtime_DisableAccessChecks) { | 2167 RUNTIME_FUNCTION(Runtime_DisableAccessChecks) { |
| 2168 HandleScope scope(isolate); | 2168 HandleScope scope(isolate); |
| 2169 ASSERT(args.length() == 1); | 2169 ASSERT(args.length() == 1); |
| 2170 CONVERT_ARG_HANDLE_CHECKED(HeapObject, object, 0); | 2170 CONVERT_ARG_HANDLE_CHECKED(HeapObject, object, 0); |
| 2171 Handle<Map> old_map(object->map()); | 2171 Handle<Map> old_map(object->map()); |
| 2172 bool needs_access_checks = old_map->is_access_check_needed(); | 2172 bool needs_access_checks = old_map->is_access_check_needed(); |
| 2173 if (needs_access_checks) { | 2173 if (needs_access_checks) { |
| 2174 // Copy map so it won't interfere constructor's initial map. | 2174 // Copy map so it won't interfere constructor's initial map. |
| 2175 Handle<Map> new_map = Map::Copy(old_map); | 2175 Handle<Map> new_map = Map::Copy(old_map); |
| 2176 new_map->set_is_access_check_needed(false); | 2176 new_map->set_is_access_check_needed(false); |
| 2177 if (object->IsJSObject()) { | 2177 JSObject::MigrateToMap(Handle<JSObject>::cast(object), new_map); |
| 2178 JSObject::MigrateToMap(Handle<JSObject>::cast(object), new_map); | |
| 2179 } else { | |
| 2180 object->set_map(*new_map); | |
| 2181 } | |
| 2182 } | 2178 } |
| 2183 return isolate->heap()->ToBoolean(needs_access_checks); | 2179 return isolate->heap()->ToBoolean(needs_access_checks); |
| 2184 } | 2180 } |
| 2185 | 2181 |
| 2186 | 2182 |
| 2187 RUNTIME_FUNCTION(Runtime_EnableAccessChecks) { | 2183 RUNTIME_FUNCTION(Runtime_EnableAccessChecks) { |
| 2188 HandleScope scope(isolate); | 2184 HandleScope scope(isolate); |
| 2189 ASSERT(args.length() == 1); | 2185 ASSERT(args.length() == 1); |
| 2190 CONVERT_ARG_HANDLE_CHECKED(HeapObject, object, 0); | 2186 CONVERT_ARG_HANDLE_CHECKED(HeapObject, object, 0); |
| 2191 Handle<Map> old_map(object->map()); | 2187 Handle<Map> old_map(object->map()); |
| 2192 if (!old_map->is_access_check_needed()) { | 2188 ASSERT(!old_map->is_access_check_needed()); |
| 2193 // Copy map so it won't interfere constructor's initial map. | 2189 // Copy map so it won't interfere constructor's initial map. |
| 2194 Handle<Map> new_map = Map::Copy(old_map); | 2190 Handle<Map> new_map = Map::Copy(old_map); |
| 2195 new_map->set_is_access_check_needed(true); | 2191 new_map->set_is_access_check_needed(true); |
| 2196 if (object->IsJSObject()) { | 2192 JSObject::MigrateToMap(Handle<JSObject>::cast(object), new_map); |
| 2197 JSObject::MigrateToMap(Handle<JSObject>::cast(object), new_map); | |
| 2198 } else { | |
| 2199 object->set_map(*new_map); | |
| 2200 } | |
| 2201 } | |
| 2202 return isolate->heap()->undefined_value(); | 2193 return isolate->heap()->undefined_value(); |
| 2203 } | 2194 } |
| 2204 | 2195 |
| 2205 | 2196 |
| 2206 // Transform getter or setter into something DefineAccessor can handle. | 2197 // Transform getter or setter into something DefineAccessor can handle. |
| 2207 static Handle<Object> InstantiateAccessorComponent(Isolate* isolate, | 2198 static Handle<Object> InstantiateAccessorComponent(Isolate* isolate, |
| 2208 Handle<Object> component) { | 2199 Handle<Object> component) { |
| 2209 if (component->IsUndefined()) return isolate->factory()->null_value(); | 2200 if (component->IsUndefined()) return isolate->factory()->null_value(); |
| 2210 Handle<FunctionTemplateInfo> info = | 2201 Handle<FunctionTemplateInfo> info = |
| 2211 Handle<FunctionTemplateInfo>::cast(component); | 2202 Handle<FunctionTemplateInfo>::cast(component); |
| (...skipping 12999 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 15211 } | 15202 } |
| 15212 return NULL; | 15203 return NULL; |
| 15213 } | 15204 } |
| 15214 | 15205 |
| 15215 | 15206 |
| 15216 const Runtime::Function* Runtime::FunctionForId(Runtime::FunctionId id) { | 15207 const Runtime::Function* Runtime::FunctionForId(Runtime::FunctionId id) { |
| 15217 return &(kIntrinsicFunctions[static_cast<int>(id)]); | 15208 return &(kIntrinsicFunctions[static_cast<int>(id)]); |
| 15218 } | 15209 } |
| 15219 | 15210 |
| 15220 } } // namespace v8::internal | 15211 } } // namespace v8::internal |
| OLD | NEW |