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 #ifndef V8_FACTORY_H_ | 5 #ifndef V8_FACTORY_H_ |
6 #define V8_FACTORY_H_ | 6 #define V8_FACTORY_H_ |
7 | 7 |
8 #include "isolate.h" | 8 #include "isolate.h" |
9 | 9 |
10 namespace v8 { | 10 namespace v8 { |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
74 | 74 |
75 // Create a new boxed value. | 75 // Create a new boxed value. |
76 Handle<Box> NewBox(Handle<Object> value); | 76 Handle<Box> NewBox(Handle<Object> value); |
77 | 77 |
78 // Create a pre-tenured empty AccessorPair. | 78 // Create a pre-tenured empty AccessorPair. |
79 Handle<AccessorPair> NewAccessorPair(); | 79 Handle<AccessorPair> NewAccessorPair(); |
80 | 80 |
81 // Create an empty TypeFeedbackInfo. | 81 // Create an empty TypeFeedbackInfo. |
82 Handle<TypeFeedbackInfo> NewTypeFeedbackInfo(); | 82 Handle<TypeFeedbackInfo> NewTypeFeedbackInfo(); |
83 | 83 |
| 84 // Finds the internalized copy for string in the string table. |
| 85 // If not found, a new string is added to the table and returned. |
84 Handle<String> InternalizeUtf8String(Vector<const char> str); | 86 Handle<String> InternalizeUtf8String(Vector<const char> str); |
85 Handle<String> InternalizeUtf8String(const char* str) { | 87 Handle<String> InternalizeUtf8String(const char* str) { |
86 return InternalizeUtf8String(CStrVector(str)); | 88 return InternalizeUtf8String(CStrVector(str)); |
87 } | 89 } |
88 Handle<String> InternalizeString(Handle<String> str); | 90 Handle<String> InternalizeString(Handle<String> str); |
89 Handle<String> InternalizeOneByteString(Vector<const uint8_t> str); | 91 Handle<String> InternalizeOneByteString(Vector<const uint8_t> str); |
90 Handle<String> InternalizeOneByteString( | 92 Handle<String> InternalizeOneByteString( |
91 Handle<SeqOneByteString>, int from, int length); | 93 Handle<SeqOneByteString>, int from, int length); |
92 | 94 |
93 Handle<String> InternalizeTwoByteString(Vector<const uc16> str); | 95 Handle<String> InternalizeTwoByteString(Vector<const uc16> str); |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
158 // Allocates and partially initializes an ASCII or TwoByte String. The | 160 // Allocates and partially initializes an ASCII or TwoByte String. The |
159 // characters of the string are uninitialized. Currently used in regexp code | 161 // characters of the string are uninitialized. Currently used in regexp code |
160 // only, where they are pretenured. | 162 // only, where they are pretenured. |
161 MUST_USE_RESULT MaybeHandle<SeqOneByteString> NewRawOneByteString( | 163 MUST_USE_RESULT MaybeHandle<SeqOneByteString> NewRawOneByteString( |
162 int length, | 164 int length, |
163 PretenureFlag pretenure = NOT_TENURED); | 165 PretenureFlag pretenure = NOT_TENURED); |
164 MUST_USE_RESULT MaybeHandle<SeqTwoByteString> NewRawTwoByteString( | 166 MUST_USE_RESULT MaybeHandle<SeqTwoByteString> NewRawTwoByteString( |
165 int length, | 167 int length, |
166 PretenureFlag pretenure = NOT_TENURED); | 168 PretenureFlag pretenure = NOT_TENURED); |
167 | 169 |
168 Handle<String> LookupSingleCharacterStringFromCode(uint32_t index); | 170 // Creates a single character string where the character has given code. |
| 171 // A cache is used for ASCII codes. |
| 172 Handle<String> LookupSingleCharacterStringFromCode(uint32_t code); |
169 | 173 |
170 // Create a new cons string object which consists of a pair of strings. | 174 // Create a new cons string object which consists of a pair of strings. |
171 MUST_USE_RESULT MaybeHandle<String> NewConsString(Handle<String> left, | 175 MUST_USE_RESULT MaybeHandle<String> NewConsString(Handle<String> left, |
172 Handle<String> right); | 176 Handle<String> right); |
173 | 177 |
174 Handle<ConsString> NewRawConsString(String::Encoding encoding); | 178 Handle<ConsString> NewRawConsString(String::Encoding encoding); |
175 | 179 |
176 // Create a new sequential string containing the concatenation of the inputs. | 180 // Create a new sequential string containing the concatenation of the inputs. |
177 Handle<String> NewFlatConcatString(Handle<String> first, | 181 Handle<String> NewFlatConcatString(Handle<String> first, |
178 Handle<String> second); | 182 Handle<String> second); |
(...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
568 #undef STRUCT_MAP_ACCESSOR | 572 #undef STRUCT_MAP_ACCESSOR |
569 | 573 |
570 #define STRING_ACCESSOR(name, str) \ | 574 #define STRING_ACCESSOR(name, str) \ |
571 inline Handle<String> name() { \ | 575 inline Handle<String> name() { \ |
572 return Handle<String>(BitCast<String**>( \ | 576 return Handle<String>(BitCast<String**>( \ |
573 &isolate()->heap()->roots_[Heap::k##name##RootIndex])); \ | 577 &isolate()->heap()->roots_[Heap::k##name##RootIndex])); \ |
574 } | 578 } |
575 INTERNALIZED_STRING_LIST(STRING_ACCESSOR) | 579 INTERNALIZED_STRING_LIST(STRING_ACCESSOR) |
576 #undef STRING_ACCESSOR | 580 #undef STRING_ACCESSOR |
577 | 581 |
| 582 inline void set_string_table(Handle<StringTable> table) { |
| 583 isolate()->heap()->set_string_table(*table); |
| 584 } |
| 585 |
578 Handle<String> hidden_string() { | 586 Handle<String> hidden_string() { |
579 return Handle<String>(&isolate()->heap()->hidden_string_); | 587 return Handle<String>(&isolate()->heap()->hidden_string_); |
580 } | 588 } |
581 | 589 |
582 // Allocates a new SharedFunctionInfo object. | 590 // Allocates a new SharedFunctionInfo object. |
583 Handle<SharedFunctionInfo> NewSharedFunctionInfo( | 591 Handle<SharedFunctionInfo> NewSharedFunctionInfo( |
584 Handle<String> name, | 592 Handle<String> name, |
585 int number_of_literals, | 593 int number_of_literals, |
586 bool is_generator, | 594 bool is_generator, |
587 Handle<Code> code, | 595 Handle<Code> code, |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
681 // the string representation of the number. Otherwise return undefined. | 689 // the string representation of the number. Otherwise return undefined. |
682 Handle<Object> GetNumberStringCache(Handle<Object> number); | 690 Handle<Object> GetNumberStringCache(Handle<Object> number); |
683 | 691 |
684 // Update the cache with a new number-string pair. | 692 // Update the cache with a new number-string pair. |
685 void SetNumberStringCache(Handle<Object> number, Handle<String> string); | 693 void SetNumberStringCache(Handle<Object> number, Handle<String> string); |
686 }; | 694 }; |
687 | 695 |
688 } } // namespace v8::internal | 696 } } // namespace v8::internal |
689 | 697 |
690 #endif // V8_FACTORY_H_ | 698 #endif // V8_FACTORY_H_ |
OLD | NEW |