OLD | NEW |
1 // Copyright 2016 the V8 project authors. All rights reserved. | 1 // Copyright 2016 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/builtins/builtins-utils.h" | 5 #include "src/builtins/builtins-utils.h" |
6 #include "src/builtins/builtins.h" | 6 #include "src/builtins/builtins.h" |
7 #include "src/code-factory.h" | 7 #include "src/code-factory.h" |
8 #include "src/code-stub-assembler.h" | 8 #include "src/code-stub-assembler.h" |
9 | 9 |
10 namespace v8 { | 10 namespace v8 { |
(...skipping 456 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
467 assembler.Bind(&if_noconstructor); | 467 assembler.Bind(&if_noconstructor); |
468 assembler.TailCallRuntime( | 468 assembler.TailCallRuntime( |
469 Runtime::kThrowUndefinedOrNullToObject, context, | 469 Runtime::kThrowUndefinedOrNullToObject, context, |
470 assembler.HeapConstant( | 470 assembler.HeapConstant( |
471 assembler.factory()->NewStringFromAsciiChecked("ToObject", TENURED))); | 471 assembler.factory()->NewStringFromAsciiChecked("ToObject", TENURED))); |
472 | 472 |
473 assembler.Bind(&if_jsreceiver); | 473 assembler.Bind(&if_jsreceiver); |
474 assembler.Return(object); | 474 assembler.Return(object); |
475 } | 475 } |
476 | 476 |
| 477 // Deprecated ES5 [[Class]] internal property (used to implement %_ClassOf). |
| 478 void Builtins::Generate_ClassOf(compiler::CodeAssemblerState* state) { |
| 479 typedef compiler::Node Node; |
| 480 typedef TypeofDescriptor Descriptor; |
| 481 CodeStubAssembler assembler(state); |
| 482 |
| 483 Node* object = assembler.Parameter(Descriptor::kObject); |
| 484 |
| 485 assembler.Return(assembler.ClassOf(object)); |
| 486 } |
| 487 |
477 // ES6 section 12.5.5 typeof operator | 488 // ES6 section 12.5.5 typeof operator |
478 void Builtins::Generate_Typeof(compiler::CodeAssemblerState* state) { | 489 void Builtins::Generate_Typeof(compiler::CodeAssemblerState* state) { |
479 typedef compiler::Node Node; | 490 typedef compiler::Node Node; |
480 typedef TypeofDescriptor Descriptor; | 491 typedef TypeofDescriptor Descriptor; |
481 CodeStubAssembler assembler(state); | 492 CodeStubAssembler assembler(state); |
482 | 493 |
483 Node* object = assembler.Parameter(Descriptor::kObject); | 494 Node* object = assembler.Parameter(Descriptor::kObject); |
484 Node* context = assembler.Parameter(Descriptor::kContext); | 495 Node* context = assembler.Parameter(Descriptor::kContext); |
485 | 496 |
486 assembler.Return(assembler.Typeof(object, context)); | 497 assembler.Return(assembler.Typeof(object, context)); |
487 } | 498 } |
488 | 499 |
489 } // namespace internal | 500 } // namespace internal |
490 } // namespace v8 | 501 } // namespace v8 |
OLD | NEW |