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 "src/bailout-reason.h" | 7 #include "src/bailout-reason.h" |
8 #include "src/crankshaft/hydrogen.h" | 8 #include "src/crankshaft/hydrogen.h" |
9 #include "src/crankshaft/lithium.h" | 9 #include "src/crankshaft/lithium.h" |
10 #include "src/field-index.h" | 10 #include "src/field-index.h" |
(...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
389 is_##type.If<HCompareObjectEqAndBranch>( \ | 389 is_##type.If<HCompareObjectEqAndBranch>( \ |
390 map, Add<HConstant>(factory->type##_map())); \ | 390 map, Add<HConstant>(factory->type##_map())); \ |
391 is_##type.Then(); \ | 391 is_##type.Then(); \ |
392 { Push(Add<HConstant>(factory->type##_string())); } \ | 392 { Push(Add<HConstant>(factory->type##_string())); } \ |
393 is_##type.Else(); { | 393 is_##type.Else(); { |
394 SIMD128_TYPES(SIMD128_BUILDER_OPEN) | 394 SIMD128_TYPES(SIMD128_BUILDER_OPEN) |
395 #undef SIMD128_BUILDER_OPEN | 395 #undef SIMD128_BUILDER_OPEN |
396 // Is it an undetectable object? | 396 // Is it an undetectable object? |
397 IfBuilder is_undetectable(this); | 397 IfBuilder is_undetectable(this); |
398 is_undetectable.If<HCompareNumericAndBranch>( | 398 is_undetectable.If<HCompareNumericAndBranch>( |
399 bit_field_masked, Add<HConstant>(1 << Map::kIsUndetectable), | 399 bit_field_masked, graph()->GetConstant0(), Token::NE); |
400 Token::EQ); | |
401 is_undetectable.Then(); | 400 is_undetectable.Then(); |
402 { | 401 { |
403 // typeof an undetectable object is 'undefined'. | 402 // typeof an undetectable object is 'undefined'. |
404 Push(Add<HConstant>(factory->undefined_string())); | 403 Push(Add<HConstant>(factory->undefined_string())); |
405 } | 404 } |
406 is_undetectable.Else(); | 405 is_undetectable.Else(); |
407 { | 406 { |
408 // For any kind of object not handled above, the spec rule for | 407 // For any kind of object not handled above, the spec rule for |
409 // host objects gives that it is okay to return "object". | 408 // host objects gives that it is okay to return "object". |
410 Push(object_string); | 409 Push(object_string); |
(...skipping 2016 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2427 return Pop(); | 2426 return Pop(); |
2428 } | 2427 } |
2429 | 2428 |
2430 | 2429 |
2431 Handle<Code> KeyedLoadGenericStub::GenerateCode() { | 2430 Handle<Code> KeyedLoadGenericStub::GenerateCode() { |
2432 return DoGenerateCode(this); | 2431 return DoGenerateCode(this); |
2433 } | 2432 } |
2434 | 2433 |
2435 } // namespace internal | 2434 } // namespace internal |
2436 } // namespace v8 | 2435 } // namespace v8 |
OLD | NEW |