| 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 #include "src/factory.h" | 5 #include "src/factory.h" |
| 6 | 6 |
| 7 #include "src/accessors.h" | 7 #include "src/accessors.h" |
| 8 #include "src/allocation-site-scopes.h" | 8 #include "src/allocation-site-scopes.h" |
| 9 #include "src/ast/ast.h" | 9 #include "src/ast/ast.h" |
| 10 #include "src/base/bits.h" | 10 #include "src/base/bits.h" |
| (...skipping 693 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 704 return result; | 704 return result; |
| 705 } | 705 } |
| 706 | 706 |
| 707 return (is_one_byte_data_in_two_byte_string) | 707 return (is_one_byte_data_in_two_byte_string) |
| 708 ? ConcatStringContent<uint8_t>( | 708 ? ConcatStringContent<uint8_t>( |
| 709 NewRawOneByteString(length).ToHandleChecked(), left, right) | 709 NewRawOneByteString(length).ToHandleChecked(), left, right) |
| 710 : ConcatStringContent<uc16>( | 710 : ConcatStringContent<uc16>( |
| 711 NewRawTwoByteString(length).ToHandleChecked(), left, right); | 711 NewRawTwoByteString(length).ToHandleChecked(), left, right); |
| 712 } | 712 } |
| 713 | 713 |
| 714 bool one_byte = (is_one_byte || is_one_byte_data_in_two_byte_string); |
| 715 return NewConsString(left, right, length, one_byte); |
| 716 } |
| 717 |
| 718 Handle<String> Factory::NewConsString(Handle<String> left, Handle<String> right, |
| 719 int length, bool one_byte) { |
| 720 DCHECK(!left->IsThinString()); |
| 721 DCHECK(!right->IsThinString()); |
| 722 DCHECK_GE(length, ConsString::kMinLength); |
| 723 DCHECK_LE(length, String::kMaxLength); |
| 724 |
| 714 Handle<ConsString> result = | 725 Handle<ConsString> result = |
| 715 (is_one_byte || is_one_byte_data_in_two_byte_string) | 726 one_byte ? New<ConsString>(cons_one_byte_string_map(), NEW_SPACE) |
| 716 ? New<ConsString>(cons_one_byte_string_map(), NEW_SPACE) | 727 : New<ConsString>(cons_string_map(), NEW_SPACE); |
| 717 : New<ConsString>(cons_string_map(), NEW_SPACE); | |
| 718 | 728 |
| 719 DisallowHeapAllocation no_gc; | 729 DisallowHeapAllocation no_gc; |
| 720 WriteBarrierMode mode = result->GetWriteBarrierMode(no_gc); | 730 WriteBarrierMode mode = result->GetWriteBarrierMode(no_gc); |
| 721 | 731 |
| 722 result->set_hash_field(String::kEmptyHashField); | 732 result->set_hash_field(String::kEmptyHashField); |
| 723 result->set_length(length); | 733 result->set_length(length); |
| 724 result->set_first(*left, mode); | 734 result->set_first(*left, mode); |
| 725 result->set_second(*right, mode); | 735 result->set_second(*right, mode); |
| 726 return result; | 736 return result; |
| 727 } | 737 } |
| (...skipping 2136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2864 Handle<AccessorInfo> prototype = | 2874 Handle<AccessorInfo> prototype = |
| 2865 Accessors::FunctionPrototypeInfo(isolate(), rw_attribs); | 2875 Accessors::FunctionPrototypeInfo(isolate(), rw_attribs); |
| 2866 Descriptor d = Descriptor::AccessorConstant( | 2876 Descriptor d = Descriptor::AccessorConstant( |
| 2867 Handle<Name>(Name::cast(prototype->name())), prototype, rw_attribs); | 2877 Handle<Name>(Name::cast(prototype->name())), prototype, rw_attribs); |
| 2868 map->AppendDescriptor(&d); | 2878 map->AppendDescriptor(&d); |
| 2869 } | 2879 } |
| 2870 } | 2880 } |
| 2871 | 2881 |
| 2872 } // namespace internal | 2882 } // namespace internal |
| 2873 } // namespace v8 | 2883 } // namespace v8 |
| OLD | NEW |