| 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-constructor.h" |
| 5 #include "src/builtins/builtins-utils.h" | 6 #include "src/builtins/builtins-utils.h" |
| 6 #include "src/builtins/builtins.h" | 7 #include "src/builtins/builtins.h" |
| 7 #include "src/code-factory.h" | 8 #include "src/code-factory.h" |
| 8 #include "src/code-stub-assembler.h" | 9 #include "src/code-stub-assembler.h" |
| 9 #include "src/regexp/jsregexp.h" | 10 #include "src/regexp/jsregexp.h" |
| 10 #include "src/regexp/regexp-utils.h" | 11 #include "src/regexp/regexp-utils.h" |
| 11 #include "src/string-builder.h" | 12 #include "src/string-builder.h" |
| 12 | 13 |
| 13 namespace v8 { | 14 namespace v8 { |
| 14 namespace internal { | 15 namespace internal { |
| (...skipping 764 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 779 { | 780 { |
| 780 Node* const initial_map = LoadObjectField( | 781 Node* const initial_map = LoadObjectField( |
| 781 regexp_function, JSFunction::kPrototypeOrInitialMapOffset); | 782 regexp_function, JSFunction::kPrototypeOrInitialMapOffset); |
| 782 Node* const regexp = AllocateJSObjectFromMap(initial_map); | 783 Node* const regexp = AllocateJSObjectFromMap(initial_map); |
| 783 var_regexp.Bind(regexp); | 784 var_regexp.Bind(regexp); |
| 784 Goto(&next); | 785 Goto(&next); |
| 785 } | 786 } |
| 786 | 787 |
| 787 Bind(&allocate_generic); | 788 Bind(&allocate_generic); |
| 788 { | 789 { |
| 789 Callable fastnewobject_callable = CodeFactory::FastNewObject(isolate); | 790 ConstructorBuiltinsAssembler constructor_assembler(this->state()); |
| 790 Node* const regexp = CallStub(fastnewobject_callable, context, | 791 Node* const regexp = constructor_assembler.EmitFastNewObject( |
| 791 regexp_function, var_new_target.value()); | 792 context, regexp_function, var_new_target.value()); |
| 792 var_regexp.Bind(regexp); | 793 var_regexp.Bind(regexp); |
| 793 Goto(&next); | 794 Goto(&next); |
| 794 } | 795 } |
| 795 | 796 |
| 796 Bind(&next); | 797 Bind(&next); |
| 797 } | 798 } |
| 798 | 799 |
| 799 Node* const result = RegExpInitialize(context, var_regexp.value(), | 800 Node* const result = RegExpInitialize(context, var_regexp.value(), |
| 800 var_pattern.value(), var_flags.value()); | 801 var_pattern.value(), var_flags.value()); |
| 801 Return(result); | 802 Return(result); |
| (...skipping 1719 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2521 Bind(&if_matched); | 2522 Bind(&if_matched); |
| 2522 { | 2523 { |
| 2523 Node* result = | 2524 Node* result = |
| 2524 ConstructNewResultFromMatchInfo(context, match_indices, string); | 2525 ConstructNewResultFromMatchInfo(context, match_indices, string); |
| 2525 Return(result); | 2526 Return(result); |
| 2526 } | 2527 } |
| 2527 } | 2528 } |
| 2528 | 2529 |
| 2529 } // namespace internal | 2530 } // namespace internal |
| 2530 } // namespace v8 | 2531 } // namespace v8 |
| OLD | NEW |