| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 <iomanip> | 5 #include <iomanip> |
| 6 #include <sstream> | 6 #include <sstream> |
| 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 10108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10119 // static | 10119 // static |
| 10120 Handle<Cell> Map::GetOrCreatePrototypeChainValidityCell(Handle<Map> map, | 10120 Handle<Cell> Map::GetOrCreatePrototypeChainValidityCell(Handle<Map> map, |
| 10121 Isolate* isolate) { | 10121 Isolate* isolate) { |
| 10122 Handle<Object> maybe_prototype(map->prototype(), isolate); | 10122 Handle<Object> maybe_prototype(map->prototype(), isolate); |
| 10123 if (!maybe_prototype->IsJSObject()) return Handle<Cell>::null(); | 10123 if (!maybe_prototype->IsJSObject()) return Handle<Cell>::null(); |
| 10124 Handle<JSObject> prototype = Handle<JSObject>::cast(maybe_prototype); | 10124 Handle<JSObject> prototype = Handle<JSObject>::cast(maybe_prototype); |
| 10125 if (prototype->IsJSGlobalProxy()) { | 10125 if (prototype->IsJSGlobalProxy()) { |
| 10126 PrototypeIterator iter(isolate, prototype); | 10126 PrototypeIterator iter(isolate, prototype); |
| 10127 prototype = Handle<JSObject>::cast(PrototypeIterator::GetCurrent(iter)); | 10127 prototype = Handle<JSObject>::cast(PrototypeIterator::GetCurrent(iter)); |
| 10128 } | 10128 } |
| 10129 PrototypeInfo* proto_info = | 10129 Handle<PrototypeInfo> proto_info( |
| 10130 PrototypeInfo::cast(prototype->map()->prototype_info()); | 10130 PrototypeInfo::cast(prototype->map()->prototype_info())); |
| 10131 Object* maybe_cell = proto_info->validity_cell(); | 10131 Object* maybe_cell = proto_info->validity_cell(); |
| 10132 // Return existing cell if it's still valid. | 10132 // Return existing cell if it's still valid. |
| 10133 if (maybe_cell->IsCell()) { | 10133 if (maybe_cell->IsCell()) { |
| 10134 Handle<Cell> cell(Cell::cast(maybe_cell), isolate); | 10134 Handle<Cell> cell(Cell::cast(maybe_cell), isolate); |
| 10135 if (cell->value() == Smi::FromInt(Map::kPrototypeChainValid)) { | 10135 if (cell->value() == Smi::FromInt(Map::kPrototypeChainValid)) { |
| 10136 return handle(Cell::cast(maybe_cell), isolate); | 10136 return handle(Cell::cast(maybe_cell), isolate); |
| 10137 } | 10137 } |
| 10138 } | 10138 } |
| 10139 // Otherwise create a new cell. | 10139 // Otherwise create a new cell. |
| 10140 Handle<Cell> cell = isolate->factory()->NewCell( | 10140 Handle<Cell> cell = isolate->factory()->NewCell( |
| (...skipping 7005 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 17146 CompilationInfo* info) { | 17146 CompilationInfo* info) { |
| 17147 Handle<DependentCode> codes = DependentCode::InsertCompilationInfo( | 17147 Handle<DependentCode> codes = DependentCode::InsertCompilationInfo( |
| 17148 handle(cell->dependent_code(), info->isolate()), | 17148 handle(cell->dependent_code(), info->isolate()), |
| 17149 DependentCode::kPropertyCellChangedGroup, info->object_wrapper()); | 17149 DependentCode::kPropertyCellChangedGroup, info->object_wrapper()); |
| 17150 if (*codes != cell->dependent_code()) cell->set_dependent_code(*codes); | 17150 if (*codes != cell->dependent_code()) cell->set_dependent_code(*codes); |
| 17151 info->dependencies(DependentCode::kPropertyCellChangedGroup)->Add( | 17151 info->dependencies(DependentCode::kPropertyCellChangedGroup)->Add( |
| 17152 cell, info->zone()); | 17152 cell, info->zone()); |
| 17153 } | 17153 } |
| 17154 | 17154 |
| 17155 } } // namespace v8::internal | 17155 } } // namespace v8::internal |
| OLD | NEW |