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 "src/code-stubs.h" | 5 #include "src/code-stubs.h" |
6 | 6 |
7 #include <sstream> | 7 #include <sstream> |
8 | 8 |
9 #include "src/bootstrapper.h" | 9 #include "src/bootstrapper.h" |
10 #include "src/code-factory.h" | 10 #include "src/code-factory.h" |
(...skipping 4325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4336 | 4336 |
4337 Variable* merged_variables[] = {&var_object, &var_map, &var_instance_type}; | 4337 Variable* merged_variables[] = {&var_object, &var_map, &var_instance_type}; |
4338 Label loop(assembler, arraysize(merged_variables), merged_variables); | 4338 Label loop(assembler, arraysize(merged_variables), merged_variables); |
4339 var_object.Bind(object); | 4339 var_object.Bind(object); |
4340 var_map.Bind(map); | 4340 var_map.Bind(map); |
4341 var_instance_type.Bind(instance_type); | 4341 var_instance_type.Bind(instance_type); |
4342 assembler->Goto(&loop); | 4342 assembler->Goto(&loop); |
4343 assembler->Bind(&loop); | 4343 assembler->Bind(&loop); |
4344 { | 4344 { |
4345 Label next_proto(assembler); | 4345 Label next_proto(assembler); |
4346 assembler->TryLookupProperty(var_object.value(), var_map.value(), | 4346 assembler->TryHasOwnProperty(var_object.value(), var_map.value(), |
4347 var_instance_type.value(), key, &return_true, | 4347 var_instance_type.value(), key, &return_true, |
4348 &next_proto, &call_runtime); | 4348 &next_proto, &call_runtime); |
4349 assembler->Bind(&next_proto); | 4349 assembler->Bind(&next_proto); |
4350 | 4350 |
4351 Node* proto = assembler->LoadMapPrototype(var_map.value()); | 4351 Node* proto = assembler->LoadMapPrototype(var_map.value()); |
4352 | 4352 |
4353 Label if_not_null(assembler); | 4353 Label if_not_null(assembler); |
4354 assembler->Branch(assembler->WordEqual(proto, assembler->NullConstant()), | 4354 assembler->Branch(assembler->WordEqual(proto, assembler->NullConstant()), |
4355 &return_false, &if_not_null); | 4355 &return_false, &if_not_null); |
4356 assembler->Bind(&if_not_null); | 4356 assembler->Bind(&if_not_null); |
(...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4730 if (type->Is(Type::UntaggedPointer())) { | 4730 if (type->Is(Type::UntaggedPointer())) { |
4731 return Representation::External(); | 4731 return Representation::External(); |
4732 } | 4732 } |
4733 | 4733 |
4734 DCHECK(!type->Is(Type::Untagged())); | 4734 DCHECK(!type->Is(Type::Untagged())); |
4735 return Representation::Tagged(); | 4735 return Representation::Tagged(); |
4736 } | 4736 } |
4737 | 4737 |
4738 } // namespace internal | 4738 } // namespace internal |
4739 } // namespace v8 | 4739 } // namespace v8 |
OLD | NEW |