| OLD | NEW | 
|---|
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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 #ifndef V8_TYPES_INL_H_ | 5 #ifndef V8_TYPES_INL_H_ | 
| 6 #define V8_TYPES_INL_H_ | 6 #define V8_TYPES_INL_H_ | 
| 7 | 7 | 
| 8 #include "types.h" | 8 #include "types.h" | 
| 9 | 9 | 
| 10 #include "factory.h" | 10 #include "factory.h" | 
| 11 #include "handles-inl.h" | 11 #include "handles-inl.h" | 
| 12 | 12 | 
| 13 namespace v8 { | 13 namespace v8 { | 
| 14 namespace internal { | 14 namespace internal { | 
| 15 | 15 | 
| 16 // static | 16 // static | 
| 17 ZoneTypeConfig::Tagged* ZoneTypeConfig::tagged_create( |  | 
| 18     Tag tag, int size, Zone* zone) { |  | 
| 19   Tagged* tagged = new(zone) Tagged(size + 1, zone); |  | 
| 20   tagged->Add(reinterpret_cast<void*>(tag), zone); |  | 
| 21   tagged->AddBlock(NULL, size, zone); |  | 
| 22   return tagged; |  | 
| 23 } |  | 
| 24 |  | 
| 25 |  | 
| 26 // static |  | 
| 27 void ZoneTypeConfig::tagged_shrink(Tagged* tagged, int size) { |  | 
| 28   tagged->Rewind(size + 1); |  | 
| 29 } |  | 
| 30 |  | 
| 31 |  | 
| 32 // static |  | 
| 33 ZoneTypeConfig::Tag ZoneTypeConfig::tagged_tag(Tagged* tagged) { |  | 
| 34   return static_cast<Tag>(reinterpret_cast<intptr_t>(tagged->at(0))); |  | 
| 35 } |  | 
| 36 |  | 
| 37 |  | 
| 38 // static |  | 
| 39 template<class T> |  | 
| 40 T ZoneTypeConfig::tagged_get(Tagged* tagged, int i) { |  | 
| 41   return reinterpret_cast<T>(tagged->at(i + 1)); |  | 
| 42 } |  | 
| 43 |  | 
| 44 |  | 
| 45 // static |  | 
| 46 template<class T> |  | 
| 47 void ZoneTypeConfig::tagged_set(Tagged* tagged, int i, T value) { |  | 
| 48   tagged->at(i + 1) = reinterpret_cast<void*>(value); |  | 
| 49 } |  | 
| 50 |  | 
| 51 |  | 
| 52 // static |  | 
| 53 int ZoneTypeConfig::tagged_length(Tagged* tagged) { |  | 
| 54   return tagged->length() - 1; |  | 
| 55 } |  | 
| 56 |  | 
| 57 |  | 
| 58 // static |  | 
| 59 Type* ZoneTypeConfig::handle(Type* type) { | 17 Type* ZoneTypeConfig::handle(Type* type) { | 
| 60   return type; | 18   return type; | 
| 61 } | 19 } | 
| 62 | 20 | 
| 63 | 21 | 
| 64 // static | 22 // static | 
| 65 bool ZoneTypeConfig::is(Type* type, Tag tag) { |  | 
| 66   return is_tagged(type) && tagged_tag(as_tagged(type)) == tag; |  | 
| 67 } |  | 
| 68 |  | 
| 69 |  | 
| 70 // static |  | 
| 71 bool ZoneTypeConfig::is_bitset(Type* type) { | 23 bool ZoneTypeConfig::is_bitset(Type* type) { | 
| 72   return reinterpret_cast<intptr_t>(type) & 1; | 24   return reinterpret_cast<intptr_t>(type) & 1; | 
| 73 } | 25 } | 
| 74 | 26 | 
| 75 | 27 | 
| 76 // static | 28 // static | 
| 77 bool ZoneTypeConfig::is_tagged(Type* type) { | 29 bool ZoneTypeConfig::is_struct(Type* type) { | 
| 78   return !is_bitset(type); | 30   return !is_bitset(type); | 
| 79 } | 31 } | 
| 80 | 32 | 
| 81 | 33 | 
| 82 // static | 34 // static | 
| 83 bool ZoneTypeConfig::is_class(Type* type) { | 35 bool ZoneTypeConfig::is_class(Type* type) { | 
| 84   return is(type, kClassTag); | 36   return is_struct(type) && struct_tag(as_struct(type)) == Type::kClassTag; | 
| 85 } | 37 } | 
| 86 | 38 | 
| 87 | 39 | 
| 88 // static | 40 // static | 
| 89 bool ZoneTypeConfig::is_constant(Type* type) { | 41 bool ZoneTypeConfig::is_constant(Type* type) { | 
| 90   return is(type, kConstantTag); | 42   return is_struct(type) && struct_tag(as_struct(type)) == Type::kConstantTag; | 
| 91 } | 43 } | 
| 92 | 44 | 
| 93 | 45 | 
| 94 // static |  | 
| 95 bool ZoneTypeConfig::is_union(Type* type) { |  | 
| 96   return is(type, kUnionTag); |  | 
| 97 } |  | 
| 98 |  | 
| 99 |  | 
| 100 // static |  | 
| 101 bool ZoneTypeConfig::tagged_is_union(Tagged* tagged) { |  | 
| 102   return is(from_tagged(tagged), kUnionTag); |  | 
| 103 } |  | 
| 104 |  | 
| 105 |  | 
| 106 // static | 46 // static | 
| 107 int ZoneTypeConfig::as_bitset(Type* type) { | 47 int ZoneTypeConfig::as_bitset(Type* type) { | 
| 108   ASSERT(is_bitset(type)); | 48   ASSERT(is_bitset(type)); | 
| 109   return static_cast<int>(reinterpret_cast<intptr_t>(type) >> 1); | 49   return static_cast<int>(reinterpret_cast<intptr_t>(type) >> 1); | 
| 110 } | 50 } | 
| 111 | 51 | 
| 112 | 52 | 
| 113 // static | 53 // static | 
| 114 ZoneTypeConfig::Tagged* ZoneTypeConfig::as_tagged(Type* type) { | 54 ZoneTypeConfig::Struct* ZoneTypeConfig::as_struct(Type* type) { | 
| 115   ASSERT(is_tagged(type)); | 55   ASSERT(is_struct(type)); | 
| 116   return reinterpret_cast<Tagged*>(type); | 56   return reinterpret_cast<Struct*>(type); | 
| 117 } | 57 } | 
| 118 | 58 | 
| 119 | 59 | 
| 120 // static | 60 // static | 
| 121 i::Handle<i::Map> ZoneTypeConfig::as_class(Type* type) { | 61 i::Handle<i::Map> ZoneTypeConfig::as_class(Type* type) { | 
| 122   ASSERT(is_class(type)); | 62   ASSERT(is_class(type)); | 
| 123   return i::Handle<i::Map>(tagged_get<i::Map**>(as_tagged(type), 1)); | 63   return i::Handle<i::Map>(static_cast<i::Map**>(as_struct(type)->args[1])); | 
| 124 } | 64 } | 
| 125 | 65 | 
| 126 | 66 | 
| 127 // static | 67 // static | 
| 128 i::Handle<i::Object> ZoneTypeConfig::as_constant(Type* type) { | 68 i::Handle<i::Object> ZoneTypeConfig::as_constant(Type* type) { | 
| 129   ASSERT(is_constant(type)); | 69   ASSERT(is_constant(type)); | 
| 130   return i::Handle<i::Object>(tagged_get<i::Object**>(as_tagged(type), 1)); | 70   return i::Handle<i::Object>( | 
|  | 71       static_cast<i::Object**>(as_struct(type)->args[1])); | 
| 131 } | 72 } | 
| 132 | 73 | 
| 133 | 74 | 
| 134 // static |  | 
| 135 ZoneTypeConfig::Unioned* ZoneTypeConfig::as_union(Type* type) { |  | 
| 136   ASSERT(is_union(type)); |  | 
| 137   return tagged_as_union(as_tagged(type)); |  | 
| 138 } |  | 
| 139 |  | 
| 140 |  | 
| 141 // static |  | 
| 142 ZoneTypeConfig::Unioned* ZoneTypeConfig::tagged_as_union(Tagged* tagged) { |  | 
| 143   ASSERT(tagged_is_union(tagged)); |  | 
| 144   return reinterpret_cast<Unioned*>(tagged); |  | 
| 145 } |  | 
| 146 |  | 
| 147 |  | 
| 148 // static | 75 // static | 
| 149 ZoneTypeConfig::Type* ZoneTypeConfig::from_bitset(int bitset) { | 76 ZoneTypeConfig::Type* ZoneTypeConfig::from_bitset(int bitset) { | 
| 150   return reinterpret_cast<Type*>((bitset << 1) | 1); | 77   return reinterpret_cast<Type*>((bitset << 1) | 1); | 
| 151 } | 78 } | 
| 152 | 79 | 
| 153 | 80 | 
| 154 // static | 81 // static | 
| 155 ZoneTypeConfig::Type* ZoneTypeConfig::from_bitset(int bitset, Zone* Zone) { | 82 ZoneTypeConfig::Type* ZoneTypeConfig::from_bitset(int bitset, Zone* Zone) { | 
| 156   return from_bitset(bitset); | 83   return from_bitset(bitset); | 
| 157 } | 84 } | 
| 158 | 85 | 
| 159 | 86 | 
| 160 // static | 87 // static | 
| 161 ZoneTypeConfig::Type* ZoneTypeConfig::from_tagged(Tagged* tagged) { | 88 ZoneTypeConfig::Type* ZoneTypeConfig::from_struct(Struct* structured) { | 
| 162   return reinterpret_cast<Type*>(tagged); | 89   return reinterpret_cast<Type*>(structured); | 
| 163 } | 90 } | 
| 164 | 91 | 
| 165 | 92 | 
| 166 // static | 93 // static | 
| 167 ZoneTypeConfig::Type* ZoneTypeConfig::from_class( | 94 ZoneTypeConfig::Type* ZoneTypeConfig::from_class( | 
| 168     i::Handle<i::Map> map, int lub, Zone* zone) { | 95     i::Handle<i::Map> map, int lub, Zone* zone) { | 
| 169   Tagged* tagged = tagged_create(kClassTag, 2, zone); | 96   Struct* structured = struct_create(Type::kClassTag, 2, zone); | 
| 170   tagged_set(tagged, 0, lub); | 97   structured->args[0] = from_bitset(lub); | 
| 171   tagged_set(tagged, 1, map.location()); | 98   structured->args[1] = map.location(); | 
| 172   return from_tagged(tagged); | 99   return from_struct(structured); | 
| 173 } | 100 } | 
| 174 | 101 | 
| 175 | 102 | 
| 176 // static | 103 // static | 
| 177 ZoneTypeConfig::Type* ZoneTypeConfig::from_constant( | 104 ZoneTypeConfig::Type* ZoneTypeConfig::from_constant( | 
| 178     i::Handle<i::Object> value, int lub, Zone* zone) { | 105     i::Handle<i::Object> value, int lub, Zone* zone) { | 
| 179   Tagged* tagged = tagged_create(kConstantTag, 2, zone); | 106   Struct* structured = struct_create(Type::kConstantTag, 2, zone); | 
| 180   tagged_set(tagged, 0, lub); | 107   structured->args[0] = from_bitset(lub); | 
| 181   tagged_set(tagged, 1, value.location()); | 108   structured->args[1] = value.location(); | 
| 182   return from_tagged(tagged); | 109   return from_struct(structured); | 
| 183 } | 110 } | 
| 184 | 111 | 
| 185 | 112 | 
| 186 // static | 113 // static | 
| 187 ZoneTypeConfig::Type* ZoneTypeConfig::from_union(Unioned* unioned) { | 114 ZoneTypeConfig::Struct* ZoneTypeConfig::struct_create( | 
| 188   return from_tagged(tagged_from_union(unioned)); | 115     int tag, int length, Zone* zone) { | 
|  | 116   Struct* structured = reinterpret_cast<Struct*>( | 
|  | 117       zone->New(sizeof(Struct) + sizeof(void*) * (length - 1)));  // NOLINT | 
|  | 118   structured->tag = tag; | 
|  | 119   structured->length = length; | 
|  | 120   return structured; | 
| 189 } | 121 } | 
| 190 | 122 | 
| 191 | 123 | 
| 192 // static | 124 // static | 
| 193 ZoneTypeConfig::Tagged* ZoneTypeConfig::tagged_from_union(Unioned* unioned) { | 125 void ZoneTypeConfig::struct_shrink(Struct* structured, int length) { | 
| 194   return reinterpret_cast<Tagged*>(unioned); | 126   ASSERT(0 <= length && length <= structured->length); | 
|  | 127   structured->length = length; | 
| 195 } | 128 } | 
| 196 | 129 | 
| 197 | 130 | 
| 198 // static | 131 // static | 
| 199 ZoneTypeConfig::Unioned* ZoneTypeConfig::union_create(int size, Zone* zone) { | 132 int ZoneTypeConfig::struct_tag(Struct* structured) { | 
| 200   return tagged_as_union(tagged_create(kUnionTag, size, zone)); | 133   return structured->tag; | 
| 201 } | 134 } | 
| 202 | 135 | 
| 203 | 136 | 
| 204 // static | 137 // static | 
| 205 void ZoneTypeConfig::union_shrink(Unioned* unioned, int size) { | 138 Type* ZoneTypeConfig::struct_get(Struct* structured, int i) { | 
| 206   tagged_shrink(tagged_from_union(unioned), size); | 139   ASSERT(0 <= i && i < structured->length); | 
|  | 140   return static_cast<Type*>(structured->args[i]); | 
| 207 } | 141 } | 
| 208 | 142 | 
| 209 | 143 | 
| 210 // static | 144 // static | 
| 211 ZoneTypeConfig::Type* ZoneTypeConfig::union_get(Unioned* unioned, int i) { | 145 void ZoneTypeConfig::struct_set(Struct* structured, int i, Type* type) { | 
| 212   Type* type = tagged_get<Type*>(tagged_from_union(unioned), i); | 146   ASSERT(0 <= i && i < structured->length); | 
| 213   ASSERT(!is_union(type)); | 147   structured->args[i] = type; | 
| 214   return type; |  | 
| 215 } | 148 } | 
| 216 | 149 | 
| 217 | 150 | 
| 218 // static | 151 // static | 
| 219 void ZoneTypeConfig::union_set(Unioned* unioned, int i, Type* type) { | 152 int ZoneTypeConfig::struct_length(Struct* structured) { | 
| 220   ASSERT(!is_union(type)); | 153   return structured->length; | 
| 221   tagged_set(tagged_from_union(unioned), i, type); |  | 
| 222 } |  | 
| 223 |  | 
| 224 |  | 
| 225 // static |  | 
| 226 int ZoneTypeConfig::union_length(Unioned* unioned) { |  | 
| 227   return tagged_length(tagged_from_union(unioned)); |  | 
| 228 } | 154 } | 
| 229 | 155 | 
| 230 | 156 | 
| 231 // static | 157 // static | 
| 232 int ZoneTypeConfig::lub_bitset(Type* type) { | 158 int ZoneTypeConfig::lub_bitset(Type* type) { | 
| 233   ASSERT(is_class(type) || is_constant(type)); | 159   ASSERT(is_class(type) || is_constant(type)); | 
| 234   return static_cast<int>(tagged_get<intptr_t>(as_tagged(type), 0)); | 160   return as_bitset(struct_get(as_struct(type), 0)); | 
| 235 } | 161 } | 
| 236 | 162 | 
| 237 // -------------------------------------------------------------------------- // | 163 // -------------------------------------------------------------------------- // | 
| 238 | 164 | 
| 239 // static | 165 // static | 
| 240 i::Handle<HeapTypeConfig::Type> HeapTypeConfig::handle(Type* type) { | 166 i::Handle<HeapTypeConfig::Type> HeapTypeConfig::handle(Type* type) { | 
| 241   return i::handle(type, i::HeapObject::cast(type)->GetIsolate()); | 167   return i::handle(type, i::HeapObject::cast(type)->GetIsolate()); | 
| 242 } | 168 } | 
| 243 | 169 | 
| 244 | 170 | 
| 245 // static | 171 // static | 
| 246 bool HeapTypeConfig::is_bitset(Type* type) { | 172 bool HeapTypeConfig::is_bitset(Type* type) { | 
| 247   return type->IsSmi(); | 173   return type->IsSmi(); | 
| 248 } | 174 } | 
| 249 | 175 | 
| 250 | 176 | 
| 251 // static | 177 // static | 
| 252 bool HeapTypeConfig::is_class(Type* type) { | 178 bool HeapTypeConfig::is_class(Type* type) { | 
| 253   return type->IsMap(); | 179   return type->IsMap(); | 
| 254 } | 180 } | 
| 255 | 181 | 
| 256 | 182 | 
| 257 // static | 183 // static | 
| 258 bool HeapTypeConfig::is_constant(Type* type) { | 184 bool HeapTypeConfig::is_constant(Type* type) { | 
| 259   return type->IsBox(); | 185   return type->IsBox(); | 
| 260 } | 186 } | 
| 261 | 187 | 
| 262 | 188 | 
| 263 // static | 189 // static | 
| 264 bool HeapTypeConfig::is_union(Type* type) { | 190 bool HeapTypeConfig::is_struct(Type* type) { | 
| 265   return type->IsFixedArray(); | 191   return type->IsFixedArray(); | 
| 266 } | 192 } | 
| 267 | 193 | 
| 268 | 194 | 
| 269 // static | 195 // static | 
| 270 int HeapTypeConfig::as_bitset(Type* type) { | 196 int HeapTypeConfig::as_bitset(Type* type) { | 
| 271   return Smi::cast(type)->value(); | 197   return Smi::cast(type)->value(); | 
| 272 } | 198 } | 
| 273 | 199 | 
| 274 | 200 | 
| 275 // static | 201 // static | 
| 276 i::Handle<i::Map> HeapTypeConfig::as_class(Type* type) { | 202 i::Handle<i::Map> HeapTypeConfig::as_class(Type* type) { | 
| 277   return i::handle(i::Map::cast(type)); | 203   return i::handle(i::Map::cast(type)); | 
| 278 } | 204 } | 
| 279 | 205 | 
| 280 | 206 | 
| 281 // static | 207 // static | 
| 282 i::Handle<i::Object> HeapTypeConfig::as_constant(Type* type) { | 208 i::Handle<i::Object> HeapTypeConfig::as_constant(Type* type) { | 
| 283   i::Box* box = i::Box::cast(type); | 209   i::Box* box = i::Box::cast(type); | 
| 284   return i::handle(box->value(), box->GetIsolate()); | 210   return i::handle(box->value(), box->GetIsolate()); | 
| 285 } | 211 } | 
| 286 | 212 | 
| 287 | 213 | 
| 288 // static | 214 // static | 
| 289 i::Handle<HeapTypeConfig::Unioned> HeapTypeConfig::as_union(Type* type) { | 215 i::Handle<HeapTypeConfig::Struct> HeapTypeConfig::as_struct(Type* type) { | 
| 290   return i::handle(i::FixedArray::cast(type)); | 216   return i::handle(Struct::cast(type)); | 
| 291 } | 217 } | 
| 292 | 218 | 
| 293 | 219 | 
| 294 // static | 220 // static | 
| 295 HeapTypeConfig::Type* HeapTypeConfig::from_bitset(int bitset) { | 221 HeapTypeConfig::Type* HeapTypeConfig::from_bitset(int bitset) { | 
| 296   return Type::cast(i::Smi::FromInt(bitset)); | 222   return Type::cast(i::Smi::FromInt(bitset)); | 
| 297 } | 223 } | 
| 298 | 224 | 
| 299 | 225 | 
| 300 // static | 226 // static | 
| (...skipping 12 matching lines...) Expand all  Loading... | 
| 313 | 239 | 
| 314 // static | 240 // static | 
| 315 i::Handle<HeapTypeConfig::Type> HeapTypeConfig::from_constant( | 241 i::Handle<HeapTypeConfig::Type> HeapTypeConfig::from_constant( | 
| 316     i::Handle<i::Object> value, int lub, Isolate* isolate) { | 242     i::Handle<i::Object> value, int lub, Isolate* isolate) { | 
| 317   i::Handle<Box> box = isolate->factory()->NewBox(value); | 243   i::Handle<Box> box = isolate->factory()->NewBox(value); | 
| 318   return i::Handle<Type>::cast(i::Handle<Object>::cast(box)); | 244   return i::Handle<Type>::cast(i::Handle<Object>::cast(box)); | 
| 319 } | 245 } | 
| 320 | 246 | 
| 321 | 247 | 
| 322 // static | 248 // static | 
| 323 i::Handle<HeapTypeConfig::Type> HeapTypeConfig::from_union( | 249 i::Handle<HeapTypeConfig::Type> HeapTypeConfig::from_struct( | 
| 324     i::Handle<Unioned> unioned) { | 250     i::Handle<Struct> structured) { | 
| 325   return i::Handle<Type>::cast(i::Handle<Object>::cast(unioned)); | 251   return i::Handle<Type>::cast(i::Handle<Object>::cast(structured)); | 
| 326 } | 252 } | 
| 327 | 253 | 
| 328 | 254 | 
| 329 // static | 255 // static | 
| 330 i::Handle<HeapTypeConfig::Unioned> HeapTypeConfig::union_create( | 256 i::Handle<HeapTypeConfig::Struct> HeapTypeConfig::struct_create( | 
| 331     int size, Isolate* isolate) { | 257     int tag, int length, Isolate* isolate) { | 
| 332   return isolate->factory()->NewFixedArray(size); | 258   i::Handle<Struct> structured = isolate->factory()->NewFixedArray(length + 1); | 
|  | 259   structured->set(0, i::Smi::FromInt(tag)); | 
|  | 260   return structured; | 
| 333 } | 261 } | 
| 334 | 262 | 
| 335 | 263 | 
| 336 // static | 264 // static | 
| 337 void HeapTypeConfig::union_shrink(i::Handle<Unioned> unioned, int size) { | 265 void HeapTypeConfig::struct_shrink(i::Handle<Struct> structured, int length) { | 
| 338   unioned->Shrink(size); | 266   structured->Shrink(length + 1); | 
| 339 } | 267 } | 
| 340 | 268 | 
| 341 | 269 | 
| 342 // static | 270 // static | 
| 343 i::Handle<HeapTypeConfig::Type> HeapTypeConfig::union_get( | 271 int HeapTypeConfig::struct_tag(i::Handle<Struct> structured) { | 
| 344     i::Handle<Unioned> unioned, int i) { | 272   return static_cast<i::Smi*>(structured->get(0))->value(); | 
| 345   Type* type = static_cast<Type*>(unioned->get(i)); |  | 
| 346   ASSERT(!is_union(type)); |  | 
| 347   return i::handle(type, unioned->GetIsolate()); |  | 
| 348 } | 273 } | 
| 349 | 274 | 
| 350 | 275 | 
| 351 // static | 276 // static | 
| 352 void HeapTypeConfig::union_set( | 277 i::Handle<HeapTypeConfig::Type> HeapTypeConfig::struct_get( | 
| 353     i::Handle<Unioned> unioned, int i, i::Handle<Type> type) { | 278     i::Handle<Struct> structured, int i) { | 
| 354   ASSERT(!is_union(*type)); | 279   Type* type = static_cast<Type*>(structured->get(i + 1)); | 
| 355   unioned->set(i, *type); | 280   return i::handle(type, structured->GetIsolate()); | 
| 356 } | 281 } | 
| 357 | 282 | 
| 358 | 283 | 
| 359 // static | 284 // static | 
| 360 int HeapTypeConfig::union_length(i::Handle<Unioned> unioned) { | 285 void HeapTypeConfig::struct_set( | 
| 361   return unioned->length(); | 286     i::Handle<Struct> structured, int i, i::Handle<Type> type) { | 
|  | 287   structured->set(i + 1, *type); | 
| 362 } | 288 } | 
| 363 | 289 | 
| 364 | 290 | 
|  | 291 // static | 
|  | 292 int HeapTypeConfig::struct_length(i::Handle<Struct> structured) { | 
|  | 293   return structured->length() - 1; | 
|  | 294 } | 
|  | 295 | 
|  | 296 | 
| 365 // static | 297 // static | 
| 366 int HeapTypeConfig::lub_bitset(Type* type) { | 298 int HeapTypeConfig::lub_bitset(Type* type) { | 
| 367   return 0;  // kNone, which causes recomputation. | 299   return 0;  // kNone, which causes recomputation. | 
| 368 } | 300 } | 
| 369 | 301 | 
| 370 } }  // namespace v8::internal | 302 } }  // namespace v8::internal | 
| 371 | 303 | 
| 372 #endif  // V8_TYPES_INL_H_ | 304 #endif  // V8_TYPES_INL_H_ | 
| OLD | NEW | 
|---|