| Index: runtime/vm/symbols.h
|
| diff --git a/runtime/vm/symbols.h b/runtime/vm/symbols.h
|
| index d5f34987fdbd9c0699ac6e4565a8171601164d4b..f20aa44c9ad136248b021fcd295a091ae1d84313 100644
|
| --- a/runtime/vm/symbols.h
|
| +++ b/runtime/vm/symbols.h
|
| @@ -33,6 +33,7 @@ class ObjectPointerVisitor;
|
| V(DefaultLabel, ":L") \
|
| V(Other, "other") \
|
| V(Call, "call") \
|
| + V(GetCall, "get:call") \
|
| V(Current, "current") \
|
| V(_current, "_current") \
|
| V(MoveNext, "moveNext") \
|
| @@ -55,6 +56,7 @@ class ObjectPointerVisitor;
|
| V(Values, "values") \
|
| V(_EnumNames, "_enum_names") \
|
| V(ExprTemp, ":expr_temp") \
|
| + V(FinallyRetVal, ":finally_ret_val") \
|
| V(AnonymousClosure, "<anonymous closure>") \
|
| V(AnonymousSignature, "<anonymous signature>") \
|
| V(ImplicitClosure, "<implicit closure>") \
|
| @@ -406,12 +408,13 @@ class Symbols : public AllStatic {
|
| PREDEFINED_SYMBOLS_LIST(DEFINE_SYMBOL_INDEX)
|
| #undef DEFINE_SYMBOL_INDEX
|
|
|
| - kKwTableStart, // First keyword at kKwTableStart + 1.
|
| + kTokenTableStart, // First token at kTokenTableStart + 1.
|
|
|
| -#define DEFINE_KEYWORD_SYMBOL_INDEX(t, s, p, a) \
|
| +#define DEFINE_TOKEN_SYMBOL_INDEX(t, s, p, a) \
|
| t##Id,
|
| - DART_KEYWORD_LIST(DEFINE_KEYWORD_SYMBOL_INDEX)
|
| -#undef DEFINE_KEYWORD_SYMBOL_INDEX
|
| + DART_TOKEN_LIST(DEFINE_TOKEN_SYMBOL_INDEX)
|
| + DART_KEYWORD_LIST(DEFINE_TOKEN_SYMBOL_INDEX)
|
| +#undef DEFINE_TOKEN_SYMBOL_INDEX
|
|
|
| kNullCharId, // One char code symbol starts here and takes up 256 entries.
|
| kMaxPredefinedId = kNullCharId + kMaxOneCharCodeSymbol + 1,
|
| @@ -524,7 +527,7 @@ class Symbols : public AllStatic {
|
| return *(symbol_handles_[kNullCharId + '~']);
|
| }
|
|
|
| - static const String& Empty() { return *(symbol_handles_[kKwTableStart]); }
|
| + static const String& Empty() { return *(symbol_handles_[kTokenTableStart]); }
|
| static const String& False() { return *(symbol_handles_[kFALSEId]); }
|
| static const String& Library() { return *(symbol_handles_[kLIBRARYId]); }
|
| static const String& Super() { return *(symbol_handles_[kSUPERId]); }
|
| @@ -542,11 +545,12 @@ class Symbols : public AllStatic {
|
| // Access methods for symbol handles stored in the vm isolate for keywords.
|
| #define DEFINE_SYMBOL_HANDLE_ACCESSOR(t, s, p, a) \
|
| static const String& t() { return *(symbol_handles_[t##Id]); }
|
| + DART_TOKEN_LIST(DEFINE_SYMBOL_HANDLE_ACCESSOR)
|
| DART_KEYWORD_LIST(DEFINE_SYMBOL_HANDLE_ACCESSOR)
|
| #undef DEFINE_SYMBOL_HANDLE_ACCESSOR
|
|
|
| - // Get symbol for scanner keyword.
|
| - static const String& Keyword(Token::Kind keyword);
|
| + // Get symbol for scanner token.
|
| + static const String& Token(Token::Kind token);
|
|
|
| // Initialize frequently used symbols in the vm isolate.
|
| static void InitOnce(Isolate* isolate);
|
| @@ -569,41 +573,58 @@ class Symbols : public AllStatic {
|
| // Creates a Symbol given a C string that is assumed to contain
|
| // UTF-8 encoded characters and '\0' is considered a termination character.
|
| // TODO(7123) - Rename this to FromCString(....).
|
| - static RawString* New(const char* cstr) {
|
| - return New(cstr, strlen(cstr));
|
| + static RawString* New(Thread* thread, const char* cstr) {
|
| + return New(thread, cstr, strlen(cstr));
|
| }
|
| - static RawString* New(const char* cstr, intptr_t length);
|
| + static RawString* New(Thread* thread, const char* cstr, intptr_t length);
|
|
|
| // Creates a new Symbol from an array of UTF-8 encoded characters.
|
| - static RawString* FromUTF8(const uint8_t* utf8_array, intptr_t len);
|
| + static RawString* FromUTF8(Thread* thread,
|
| + const uint8_t* utf8_array,
|
| + intptr_t len);
|
|
|
| // Creates a new Symbol from an array of Latin-1 encoded characters.
|
| - static RawString* FromLatin1(const uint8_t* latin1_array, intptr_t len);
|
| + static RawString* FromLatin1(Thread* thread,
|
| + const uint8_t* latin1_array,
|
| + intptr_t len);
|
|
|
| // Creates a new Symbol from an array of UTF-16 encoded characters.
|
| - static RawString* FromUTF16(const uint16_t* utf16_array, intptr_t len);
|
| + static RawString* FromUTF16(Thread* thread,
|
| + const uint16_t* utf16_array,
|
| + intptr_t len);
|
|
|
| // Creates a new Symbol from an array of UTF-32 encoded characters.
|
| - static RawString* FromUTF32(const int32_t* utf32_array, intptr_t len);
|
| + static RawString* FromUTF32(Thread* thread,
|
| + const int32_t* utf32_array,
|
| + intptr_t len);
|
|
|
| - static RawString* New(const String& str);
|
| - static RawString* New(const String& str,
|
| + static RawString* New(Thread* thread, const String& str);
|
| + static RawString* New(Thread* thread,
|
| + const String& str,
|
| intptr_t begin_index,
|
| intptr_t length);
|
|
|
| - static RawString* NewFormatted(const char* format, ...)
|
| - PRINTF_ATTRIBUTE(1, 2);
|
| - static RawString* NewFormattedV(const char* format, va_list args);
|
| + static RawString* NewFormatted(Thread* thread, const char* format, ...)
|
| + PRINTF_ATTRIBUTE(2, 3);
|
| + static RawString* NewFormattedV(Thread* thread,
|
| + const char* format,
|
| + va_list args);
|
|
|
| - static RawString* FromConcat(const String& str1, const String& str2);
|
| + static RawString* FromConcat(Thread* thread,
|
| + const String& str1,
|
| + const String& str2);
|
|
|
| - static RawString* FromConcatAll(
|
| + static RawString* FromConcatAll(Thread* thread,
|
| const GrowableHandlePtrArray<const String>& strs);
|
|
|
| + static RawString* FromGet(Thread* thread, const String& str);
|
| + static RawString* FromSet(Thread* thread, const String& str);
|
| + static RawString* FromDot(Thread* thread, const String& str);
|
| +
|
| // Returns char* of predefined symbol.
|
| static const char* Name(SymbolId symbol);
|
|
|
| - static RawString* FromCharCode(int32_t char_code);
|
| + static RawString* FromCharCode(Thread* thread, int32_t char_code);
|
|
|
| static RawString** PredefinedAddress() {
|
| return reinterpret_cast<RawString**>(&predefined_);
|
| @@ -613,10 +634,16 @@ class Symbols : public AllStatic {
|
|
|
| // Returns Symbol::Null if no symbol is found.
|
| template<typename StringType>
|
| - static RawString* Lookup(const StringType& str);
|
| + static RawString* Lookup(Thread* thread, const StringType& str);
|
|
|
| // Returns Symbol::Null if no symbol is found.
|
| - static RawString* LookupFromConcat(const String& str1, const String& str2);
|
| + static RawString* LookupFromConcat(Thread* thread,
|
| + const String& str1,
|
| + const String& str2);
|
| +
|
| + static RawString* LookupFromGet(Thread* thread, const String& str);
|
| + static RawString* LookupFromSet(Thread* thread, const String& str);
|
| + static RawString* LookupFromDot(Thread* thread, const String& str);
|
|
|
| private:
|
| enum {
|
| @@ -629,7 +656,7 @@ class Symbols : public AllStatic {
|
| intptr_t* capacity);
|
|
|
| template<typename StringType>
|
| - static RawString* NewSymbol(const StringType& str);
|
| + static RawString* NewSymbol(Thread* thread, const StringType& str);
|
|
|
| static intptr_t LookupVMSymbol(RawObject* obj);
|
| static RawObject* GetVMSymbol(intptr_t object_id);
|
|
|