blob: 6e126833d6493b90ba06c815ab96a7d71661a5c2 [file] [log] [blame]
// This file was generated by KeywordLookupGenerator.py. Do not edit.
#if CPU(NEEDS_ALIGNED_ACCESS)
#define COMPARE_2CHARS(address, char1, char2) \
(((address)[0] == char1) && ((address)[1] == char2))
#define COMPARE_4CHARS(address, char1, char2, char3, char4) \
(COMPARE_2CHARS(address, char1, char2) && COMPARE_2CHARS((address) + 2, char3, char4))
#define COMPARE_2UCHARS(address, char1, char2) \
(((address)[0] == char1) && ((address)[1] == char2))
#define COMPARE_4UCHARS(address, char1, char2, char3, char4) \
(COMPARE_2UCHARS(address, char1, char2) && COMPARE_2UCHARS((address) + 2, char3, char4))
#else // CPU(NEEDS_ALIGNED_ACCESS)
#if CPU(BIG_ENDIAN)
#define CHARPAIR_TOUINT16(a, b) \
((((uint16_t)(a)) << 8) + (uint16_t)(b))
#define CHARQUAD_TOUINT32(a, b, c, d) \
((((uint32_t)(CHARPAIR_TOUINT16(a, b))) << 16) + CHARPAIR_TOUINT16(c, d))
#define UCHARPAIR_TOUINT32(a, b) \
((((uint32_t)(a)) << 16) + (uint32_t)(b))
#define UCHARQUAD_TOUINT64(a, b, c, d) \
((((uint64_t)(UCHARQUAD_TOUINT64(a, b))) << 32) + UCHARPAIR_TOUINT32(c, d))
#else // CPU(BIG_ENDIAN)
#define CHARPAIR_TOUINT16(a, b) \
((((uint16_t)(b)) << 8) + (uint16_t)(a))
#define CHARQUAD_TOUINT32(a, b, c, d) \
((((uint32_t)(CHARPAIR_TOUINT16(c, d))) << 16) + CHARPAIR_TOUINT16(a, b))
#define UCHARPAIR_TOUINT32(a, b) \
((((uint32_t)(b)) << 16) + (uint32_t)(a))
#define UCHARQUAD_TOUINT64(a, b, c, d) \
((((uint64_t)(UCHARPAIR_TOUINT32(c, d))) << 32) + UCHARPAIR_TOUINT32(a, b))
#endif // CPU(BIG_ENDIAN)
#define COMPARE_2CHARS(address, char1, char2) \
((reinterpret_cast<const uint16_t*>(address))[0] == CHARPAIR_TOUINT16(char1, char2))
#define COMPARE_2UCHARS(address, char1, char2) \
((reinterpret_cast<const uint32_t*>(address))[0] == UCHARPAIR_TOUINT32(char1, char2))
#if CPU(X86_64)
#define COMPARE_4CHARS(address, char1, char2, char3, char4) \
((reinterpret_cast<const uint32_t*>(address))[0] == CHARQUAD_TOUINT32(char1, char2, char3, char4))
#define COMPARE_4UCHARS(address, char1, char2, char3, char4) \
((reinterpret_cast<const uint64_t*>(address))[0] == UCHARQUAD_TOUINT64(char1, char2, char3, char4))
#else // CPU(X86_64)
#define COMPARE_4CHARS(address, char1, char2, char3, char4) \
(COMPARE_2CHARS(address, char1, char2) && COMPARE_2CHARS((address) + 2, char3, char4))
#define COMPARE_4UCHARS(address, char1, char2, char3, char4) \
(COMPARE_2UCHARS(address, char1, char2) && COMPARE_2UCHARS((address) + 2, char3, char4))
#endif // CPU(X86_64)
#endif // CPU(NEEDS_ALIGNED_ACCESS)
#define COMPARE_3CHARS(address, char1, char2, char3) \
(COMPARE_2CHARS(address, char1, char2) && ((address)[2] == (char3)))
#define COMPARE_3UCHARS(address, char1, char2, char3) \
(COMPARE_2UCHARS(address, char1, char2) && ((address)[2] == (char3)))
#define COMPARE_5CHARS(address, char1, char2, char3, char4, char5) \
(COMPARE_4CHARS(address, char1, char2, char3, char4) && ((address)[4] == (char5)))
#define COMPARE_5UCHARS(address, char1, char2, char3, char4, char5) \
(COMPARE_4UCHARS(address, char1, char2, char3, char4) && ((address)[4] == (char5)))
#define COMPARE_6CHARS(address, char1, char2, char3, char4, char5, char6) \
(COMPARE_4CHARS(address, char1, char2, char3, char4) && COMPARE_2CHARS(address + 4, char5, char6))
#define COMPARE_6UCHARS(address, char1, char2, char3, char4, char5, char6) \
(COMPARE_4UCHARS(address, char1, char2, char3, char4) && COMPARE_2UCHARS(address + 4, char5, char6))
#define COMPARE_7CHARS(address, char1, char2, char3, char4, char5, char6, char7) \
(COMPARE_4CHARS(address, char1, char2, char3, char4) && COMPARE_4CHARS(address + 3, char4, char5, char6, char7))
#define COMPARE_7UCHARS(address, char1, char2, char3, char4, char5, char6, char7) \
(COMPARE_4UCHARS(address, char1, char2, char3, char4) && COMPARE_4UCHARS(address + 3, char4, char5, char6, char7))
#define COMPARE_8CHARS(address, char1, char2, char3, char4, char5, char6, char7, char8) \
(COMPARE_4CHARS(address, char1, char2, char3, char4) && COMPARE_4CHARS(address + 4, char5, char6, char7, char8))
#define COMPARE_8UCHARS(address, char1, char2, char3, char4, char5, char6, char7, char8) \
(COMPARE_4UCHARS(address, char1, char2, char3, char4) && COMPARE_4UCHARS(address + 4, char5, char6, char7, char8))
namespace JSC {
static ALWAYS_INLINE bool isIdentPartIncludingEscape(const LChar* code, const LChar* codeEnd);
static ALWAYS_INLINE bool isIdentPartIncludingEscape(const UChar* code, const UChar* codeEnd);
static const int maxTokenLength = 11;
template <>
template <bool shouldCreateIdentifier> ALWAYS_INLINE JSTokenType Lexer<UChar>::parseKeyword(JSTokenData* data)
{
ASSERT(m_codeEnd - m_code >= maxTokenLength);
const UChar* code = m_code;
if (code[0] == 'f') {
if (COMPARE_7UCHARS(code + 1, 'u', 'n', 'c', 't', 'i', 'o', 'n')) {
if (!isIdentPartIncludingEscape(code+8, m_codeEnd)) {
internalShift<8>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->functionKeyword;
return FUNCTION;
}
} else if (COMPARE_2UCHARS(code + 1, 'o', 'r')) {
if (!isIdentPartIncludingEscape(code+3, m_codeEnd)) {
internalShift<3>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->forKeyword;
return FOR;
}
} else if (COMPARE_4UCHARS(code + 1, 'a', 'l', 's', 'e')) {
if (!isIdentPartIncludingEscape(code+5, m_codeEnd)) {
internalShift<5>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->falseKeyword;
return FALSETOKEN;
}
} else if (COMPARE_6UCHARS(code + 1, 'i', 'n', 'a', 'l', 'l', 'y')) {
if (!isIdentPartIncludingEscape(code+7, m_codeEnd)) {
internalShift<7>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->finallyKeyword;
return FINALLY;
}
}
} else if (code[0] == 't') {
if (code[1] == 'h') {
if (COMPARE_2UCHARS(code + 2, 'i', 's')) {
if (!isIdentPartIncludingEscape(code+4, m_codeEnd)) {
internalShift<4>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->thisKeyword;
return THISTOKEN;
}
} else if (COMPARE_4UCHARS(code + 1, 'h', 'r', 'o', 'w')) {
if (!isIdentPartIncludingEscape(code+5, m_codeEnd)) {
internalShift<5>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->throwKeyword;
return THROW;
}
}
} else if (code[1] == 'r') {
if (COMPARE_2UCHARS(code + 2, 'u', 'e')) {
if (!isIdentPartIncludingEscape(code+4, m_codeEnd)) {
internalShift<4>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->trueKeyword;
return TRUETOKEN;
}
} else if (code[2] == 'y') {
if (!isIdentPartIncludingEscape(code+3, m_codeEnd)) {
internalShift<3>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->tryKeyword;
return TRY;
}
}
} else if (COMPARE_5UCHARS(code + 1, 'y', 'p', 'e', 'o', 'f')) {
if (!isIdentPartIncludingEscape(code+6, m_codeEnd)) {
internalShift<6>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->typeofKeyword;
return TYPEOF;
}
}
} else if (code[0] == 'i') {
if (code[1] == 'f') {
if (!isIdentPartIncludingEscape(code+2, m_codeEnd)) {
internalShift<2>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->ifKeyword;
return IF;
}
} else if (code[1] == 'n') {
if (!isIdentPartIncludingEscape(code+2, m_codeEnd)) {
internalShift<2>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->inKeyword;
return INTOKEN;
}
if (COMPARE_7UCHARS(code + 2, 't', 'e', 'r', 'f', 'a', 'c', 'e')) {
if (!isIdentPartIncludingEscape(code+9, m_codeEnd)) {
internalShift<9>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->interfaceKeyword;
return RESERVED_IF_STRICT;
}
} else if (COMPARE_8UCHARS(code + 2, 's', 't', 'a', 'n', 'c', 'e', 'o', 'f')) {
if (!isIdentPartIncludingEscape(code+10, m_codeEnd)) {
internalShift<10>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->instanceofKeyword;
return INSTANCEOF;
}
}
} else if (COMPARE_2UCHARS(code + 1, 'm', 'p')) {
if (COMPARE_4UCHARS(code + 2, 'p', 'o', 'r', 't')) {
if (!isIdentPartIncludingEscape(code+6, m_codeEnd)) {
internalShift<6>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->importKeyword;
return IMPORT;
}
} else if (COMPARE_7UCHARS(code + 3, 'l', 'e', 'm', 'e', 'n', 't', 's')) {
if (!isIdentPartIncludingEscape(code+10, m_codeEnd)) {
internalShift<10>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->implementsKeyword;
return RESERVED_IF_STRICT;
}
}
}
} else if (code[0] == 'v') {
if (COMPARE_2UCHARS(code + 1, 'a', 'r')) {
if (!isIdentPartIncludingEscape(code+3, m_codeEnd)) {
internalShift<3>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->varKeyword;
return VAR;
}
} else if (COMPARE_4UCHARS(code, 'v', 'o', 'i', 'd')) {
if (!isIdentPartIncludingEscape(code+4, m_codeEnd)) {
internalShift<4>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->voidKeyword;
return VOIDTOKEN;
}
}
} else if (COMPARE_6UCHARS(code, 'r', 'e', 't', 'u', 'r', 'n')) {
if (!isIdentPartIncludingEscape(code+6, m_codeEnd)) {
internalShift<6>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->returnKeyword;
return RETURN;
}
} else if (code[0] == 'n') {
if (COMPARE_4UCHARS(code, 'n', 'u', 'l', 'l')) {
if (!isIdentPartIncludingEscape(code+4, m_codeEnd)) {
internalShift<4>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->nullKeyword;
return NULLTOKEN;
}
} else if (COMPARE_2UCHARS(code + 1, 'e', 'w')) {
if (!isIdentPartIncludingEscape(code+3, m_codeEnd)) {
internalShift<3>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->newKeyword;
return NEW;
}
}
} else if (code[0] == 'e') {
if (COMPARE_4UCHARS(code, 'e', 'l', 's', 'e')) {
if (!isIdentPartIncludingEscape(code+4, m_codeEnd)) {
internalShift<4>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->elseKeyword;
return ELSE;
}
} else if (code[1] == 'x') {
if (COMPARE_4UCHARS(code + 2, 'p', 'o', 'r', 't')) {
if (!isIdentPartIncludingEscape(code+6, m_codeEnd)) {
internalShift<6>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->exportKeyword;
return EXPORT;
}
} else if (COMPARE_5UCHARS(code + 2, 't', 'e', 'n', 'd', 's')) {
if (!isIdentPartIncludingEscape(code+7, m_codeEnd)) {
internalShift<7>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->extendsKeyword;
return EXTENDS;
}
}
} else if (COMPARE_4UCHARS(code, 'e', 'n', 'u', 'm')) {
if (!isIdentPartIncludingEscape(code+4, m_codeEnd)) {
internalShift<4>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->enumKeyword;
return RESERVED;
}
}
} else if (code[0] == 'c') {
if (code[1] == 'a') {
if (COMPARE_4UCHARS(code + 1, 'a', 't', 'c', 'h')) {
if (!isIdentPartIncludingEscape(code+5, m_codeEnd)) {
internalShift<5>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->catchKeyword;
return CATCH;
}
} else if (COMPARE_2UCHARS(code + 2, 's', 'e')) {
if (!isIdentPartIncludingEscape(code+4, m_codeEnd)) {
internalShift<4>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->caseKeyword;
return CASE;
}
}
} else if (COMPARE_2UCHARS(code + 1, 'o', 'n')) {
if (COMPARE_5UCHARS(code + 3, 't', 'i', 'n', 'u', 'e')) {
if (!isIdentPartIncludingEscape(code+8, m_codeEnd)) {
internalShift<8>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->continueKeyword;
return CONTINUE;
}
} else if (COMPARE_2UCHARS(code + 3, 's', 't')) {
if (!isIdentPartIncludingEscape(code+5, m_codeEnd)) {
internalShift<5>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->constKeyword;
return CONSTTOKEN;
}
}
} else if (COMPARE_4UCHARS(code + 1, 'l', 'a', 's', 's')) {
if (!isIdentPartIncludingEscape(code+5, m_codeEnd)) {
internalShift<5>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->classKeyword;
return CLASSTOKEN;
}
}
} else if (COMPARE_5UCHARS(code, 'b', 'r', 'e', 'a', 'k')) {
if (!isIdentPartIncludingEscape(code+5, m_codeEnd)) {
internalShift<5>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->breakKeyword;
return BREAK;
}
} else if (code[0] == 'w') {
if (COMPARE_4UCHARS(code + 1, 'h', 'i', 'l', 'e')) {
if (!isIdentPartIncludingEscape(code+5, m_codeEnd)) {
internalShift<5>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->whileKeyword;
return WHILE;
}
} else if (COMPARE_4UCHARS(code, 'w', 'i', 't', 'h')) {
if (!isIdentPartIncludingEscape(code+4, m_codeEnd)) {
internalShift<4>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->withKeyword;
return WITH;
}
}
} else if (code[0] == 'd') {
if (code[1] == 'e') {
if (COMPARE_5UCHARS(code + 2, 'f', 'a', 'u', 'l', 't')) {
if (!isIdentPartIncludingEscape(code+7, m_codeEnd)) {
internalShift<7>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->defaultKeyword;
return DEFAULT;
}
} else if (COMPARE_6UCHARS(code + 2, 'b', 'u', 'g', 'g', 'e', 'r')) {
if (!isIdentPartIncludingEscape(code+8, m_codeEnd)) {
internalShift<8>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->debuggerKeyword;
return DEBUGGER;
}
} else if (COMPARE_4UCHARS(code + 2, 'l', 'e', 't', 'e')) {
if (!isIdentPartIncludingEscape(code+6, m_codeEnd)) {
internalShift<6>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->deleteKeyword;
return DELETETOKEN;
}
}
} else if (code[1] == 'o') {
if (!isIdentPartIncludingEscape(code+2, m_codeEnd)) {
internalShift<2>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->doKeyword;
return DO;
}
}
} else if (COMPARE_5UCHARS(code, 'a', 'w', 'a', 'i', 't')) {
if (!isIdentPartIncludingEscape(code+5, m_codeEnd)) {
internalShift<5>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->awaitKeyword;
return AWAIT;
}
} else if (COMPARE_5UCHARS(code, 'y', 'i', 'e', 'l', 'd')) {
if (!isIdentPartIncludingEscape(code+5, m_codeEnd)) {
internalShift<5>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->yieldKeyword;
return YIELD;
}
} else if (code[0] == 'p') {
if (code[1] == 'r') {
if (COMPARE_5UCHARS(code + 2, 'i', 'v', 'a', 't', 'e')) {
if (!isIdentPartIncludingEscape(code+7, m_codeEnd)) {
internalShift<7>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->privateKeyword;
return RESERVED_IF_STRICT;
}
} else if (COMPARE_7UCHARS(code + 2, 'o', 't', 'e', 'c', 't', 'e', 'd')) {
if (!isIdentPartIncludingEscape(code+9, m_codeEnd)) {
internalShift<9>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->protectedKeyword;
return RESERVED_IF_STRICT;
}
}
} else if (COMPARE_5UCHARS(code + 1, 'u', 'b', 'l', 'i', 'c')) {
if (!isIdentPartIncludingEscape(code+6, m_codeEnd)) {
internalShift<6>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->publicKeyword;
return RESERVED_IF_STRICT;
}
} else if (COMPARE_6UCHARS(code + 1, 'a', 'c', 'k', 'a', 'g', 'e')) {
if (!isIdentPartIncludingEscape(code+7, m_codeEnd)) {
internalShift<7>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->packageKeyword;
return RESERVED_IF_STRICT;
}
}
} else if (code[0] == 's') {
if (COMPARE_5UCHARS(code + 1, 'w', 'i', 't', 'c', 'h')) {
if (!isIdentPartIncludingEscape(code+6, m_codeEnd)) {
internalShift<6>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->switchKeyword;
return SWITCH;
}
} else if (COMPARE_5UCHARS(code + 1, 't', 'a', 't', 'i', 'c')) {
if (!isIdentPartIncludingEscape(code+6, m_codeEnd)) {
internalShift<6>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->staticKeyword;
return RESERVED_IF_STRICT;
}
} else if (COMPARE_4UCHARS(code + 1, 'u', 'p', 'e', 'r')) {
if (!isIdentPartIncludingEscape(code+5, m_codeEnd)) {
internalShift<5>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->superKeyword;
return SUPER;
}
}
} else if (COMPARE_3UCHARS(code, 'l', 'e', 't')) {
if (!isIdentPartIncludingEscape(code+3, m_codeEnd)) {
internalShift<3>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->letKeyword;
return LET;
}
}
return IDENT;
}
template <>
template <bool shouldCreateIdentifier> ALWAYS_INLINE JSTokenType Lexer<LChar>::parseKeyword(JSTokenData* data)
{
ASSERT(m_codeEnd - m_code >= maxTokenLength);
const LChar* code = m_code;
if (code[0] == 'f') {
if (COMPARE_7CHARS(code + 1, 'u', 'n', 'c', 't', 'i', 'o', 'n')) {
if (!isIdentPartIncludingEscape(code+8, m_codeEnd)) {
internalShift<8>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->functionKeyword;
return FUNCTION;
}
} else if (COMPARE_2CHARS(code + 1, 'o', 'r')) {
if (!isIdentPartIncludingEscape(code+3, m_codeEnd)) {
internalShift<3>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->forKeyword;
return FOR;
}
} else if (COMPARE_4CHARS(code + 1, 'a', 'l', 's', 'e')) {
if (!isIdentPartIncludingEscape(code+5, m_codeEnd)) {
internalShift<5>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->falseKeyword;
return FALSETOKEN;
}
} else if (COMPARE_6CHARS(code + 1, 'i', 'n', 'a', 'l', 'l', 'y')) {
if (!isIdentPartIncludingEscape(code+7, m_codeEnd)) {
internalShift<7>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->finallyKeyword;
return FINALLY;
}
}
} else if (code[0] == 't') {
if (code[1] == 'h') {
if (COMPARE_2CHARS(code + 2, 'i', 's')) {
if (!isIdentPartIncludingEscape(code+4, m_codeEnd)) {
internalShift<4>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->thisKeyword;
return THISTOKEN;
}
} else if (COMPARE_4CHARS(code + 1, 'h', 'r', 'o', 'w')) {
if (!isIdentPartIncludingEscape(code+5, m_codeEnd)) {
internalShift<5>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->throwKeyword;
return THROW;
}
}
} else if (code[1] == 'r') {
if (COMPARE_2CHARS(code + 2, 'u', 'e')) {
if (!isIdentPartIncludingEscape(code+4, m_codeEnd)) {
internalShift<4>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->trueKeyword;
return TRUETOKEN;
}
} else if (code[2] == 'y') {
if (!isIdentPartIncludingEscape(code+3, m_codeEnd)) {
internalShift<3>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->tryKeyword;
return TRY;
}
}
} else if (COMPARE_5CHARS(code + 1, 'y', 'p', 'e', 'o', 'f')) {
if (!isIdentPartIncludingEscape(code+6, m_codeEnd)) {
internalShift<6>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->typeofKeyword;
return TYPEOF;
}
}
} else if (code[0] == 'i') {
if (code[1] == 'f') {
if (!isIdentPartIncludingEscape(code+2, m_codeEnd)) {
internalShift<2>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->ifKeyword;
return IF;
}
} else if (code[1] == 'n') {
if (!isIdentPartIncludingEscape(code+2, m_codeEnd)) {
internalShift<2>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->inKeyword;
return INTOKEN;
}
if (COMPARE_7CHARS(code + 2, 't', 'e', 'r', 'f', 'a', 'c', 'e')) {
if (!isIdentPartIncludingEscape(code+9, m_codeEnd)) {
internalShift<9>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->interfaceKeyword;
return RESERVED_IF_STRICT;
}
} else if (COMPARE_8CHARS(code + 2, 's', 't', 'a', 'n', 'c', 'e', 'o', 'f')) {
if (!isIdentPartIncludingEscape(code+10, m_codeEnd)) {
internalShift<10>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->instanceofKeyword;
return INSTANCEOF;
}
}
} else if (COMPARE_2CHARS(code + 1, 'm', 'p')) {
if (COMPARE_4CHARS(code + 2, 'p', 'o', 'r', 't')) {
if (!isIdentPartIncludingEscape(code+6, m_codeEnd)) {
internalShift<6>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->importKeyword;
return IMPORT;
}
} else if (COMPARE_7CHARS(code + 3, 'l', 'e', 'm', 'e', 'n', 't', 's')) {
if (!isIdentPartIncludingEscape(code+10, m_codeEnd)) {
internalShift<10>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->implementsKeyword;
return RESERVED_IF_STRICT;
}
}
}
} else if (code[0] == 'v') {
if (COMPARE_2CHARS(code + 1, 'a', 'r')) {
if (!isIdentPartIncludingEscape(code+3, m_codeEnd)) {
internalShift<3>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->varKeyword;
return VAR;
}
} else if (COMPARE_4CHARS(code, 'v', 'o', 'i', 'd')) {
if (!isIdentPartIncludingEscape(code+4, m_codeEnd)) {
internalShift<4>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->voidKeyword;
return VOIDTOKEN;
}
}
} else if (COMPARE_6CHARS(code, 'r', 'e', 't', 'u', 'r', 'n')) {
if (!isIdentPartIncludingEscape(code+6, m_codeEnd)) {
internalShift<6>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->returnKeyword;
return RETURN;
}
} else if (code[0] == 'n') {
if (COMPARE_4CHARS(code, 'n', 'u', 'l', 'l')) {
if (!isIdentPartIncludingEscape(code+4, m_codeEnd)) {
internalShift<4>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->nullKeyword;
return NULLTOKEN;
}
} else if (COMPARE_2CHARS(code + 1, 'e', 'w')) {
if (!isIdentPartIncludingEscape(code+3, m_codeEnd)) {
internalShift<3>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->newKeyword;
return NEW;
}
}
} else if (code[0] == 'e') {
if (COMPARE_4CHARS(code, 'e', 'l', 's', 'e')) {
if (!isIdentPartIncludingEscape(code+4, m_codeEnd)) {
internalShift<4>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->elseKeyword;
return ELSE;
}
} else if (code[1] == 'x') {
if (COMPARE_4CHARS(code + 2, 'p', 'o', 'r', 't')) {
if (!isIdentPartIncludingEscape(code+6, m_codeEnd)) {
internalShift<6>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->exportKeyword;
return EXPORT;
}
} else if (COMPARE_5CHARS(code + 2, 't', 'e', 'n', 'd', 's')) {
if (!isIdentPartIncludingEscape(code+7, m_codeEnd)) {
internalShift<7>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->extendsKeyword;
return EXTENDS;
}
}
} else if (COMPARE_4CHARS(code, 'e', 'n', 'u', 'm')) {
if (!isIdentPartIncludingEscape(code+4, m_codeEnd)) {
internalShift<4>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->enumKeyword;
return RESERVED;
}
}
} else if (code[0] == 'c') {
if (code[1] == 'a') {
if (COMPARE_4CHARS(code + 1, 'a', 't', 'c', 'h')) {
if (!isIdentPartIncludingEscape(code+5, m_codeEnd)) {
internalShift<5>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->catchKeyword;
return CATCH;
}
} else if (COMPARE_2CHARS(code + 2, 's', 'e')) {
if (!isIdentPartIncludingEscape(code+4, m_codeEnd)) {
internalShift<4>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->caseKeyword;
return CASE;
}
}
} else if (COMPARE_2CHARS(code + 1, 'o', 'n')) {
if (COMPARE_5CHARS(code + 3, 't', 'i', 'n', 'u', 'e')) {
if (!isIdentPartIncludingEscape(code+8, m_codeEnd)) {
internalShift<8>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->continueKeyword;
return CONTINUE;
}
} else if (COMPARE_2CHARS(code + 3, 's', 't')) {
if (!isIdentPartIncludingEscape(code+5, m_codeEnd)) {
internalShift<5>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->constKeyword;
return CONSTTOKEN;
}
}
} else if (COMPARE_4CHARS(code + 1, 'l', 'a', 's', 's')) {
if (!isIdentPartIncludingEscape(code+5, m_codeEnd)) {
internalShift<5>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->classKeyword;
return CLASSTOKEN;
}
}
} else if (COMPARE_5CHARS(code, 'b', 'r', 'e', 'a', 'k')) {
if (!isIdentPartIncludingEscape(code+5, m_codeEnd)) {
internalShift<5>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->breakKeyword;
return BREAK;
}
} else if (code[0] == 'w') {
if (COMPARE_4CHARS(code + 1, 'h', 'i', 'l', 'e')) {
if (!isIdentPartIncludingEscape(code+5, m_codeEnd)) {
internalShift<5>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->whileKeyword;
return WHILE;
}
} else if (COMPARE_4CHARS(code, 'w', 'i', 't', 'h')) {
if (!isIdentPartIncludingEscape(code+4, m_codeEnd)) {
internalShift<4>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->withKeyword;
return WITH;
}
}
} else if (code[0] == 'd') {
if (code[1] == 'e') {
if (COMPARE_5CHARS(code + 2, 'f', 'a', 'u', 'l', 't')) {
if (!isIdentPartIncludingEscape(code+7, m_codeEnd)) {
internalShift<7>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->defaultKeyword;
return DEFAULT;
}
} else if (COMPARE_6CHARS(code + 2, 'b', 'u', 'g', 'g', 'e', 'r')) {
if (!isIdentPartIncludingEscape(code+8, m_codeEnd)) {
internalShift<8>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->debuggerKeyword;
return DEBUGGER;
}
} else if (COMPARE_4CHARS(code + 2, 'l', 'e', 't', 'e')) {
if (!isIdentPartIncludingEscape(code+6, m_codeEnd)) {
internalShift<6>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->deleteKeyword;
return DELETETOKEN;
}
}
} else if (code[1] == 'o') {
if (!isIdentPartIncludingEscape(code+2, m_codeEnd)) {
internalShift<2>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->doKeyword;
return DO;
}
}
} else if (COMPARE_5CHARS(code, 'a', 'w', 'a', 'i', 't')) {
if (!isIdentPartIncludingEscape(code+5, m_codeEnd)) {
internalShift<5>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->awaitKeyword;
return AWAIT;
}
} else if (COMPARE_5CHARS(code, 'y', 'i', 'e', 'l', 'd')) {
if (!isIdentPartIncludingEscape(code+5, m_codeEnd)) {
internalShift<5>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->yieldKeyword;
return YIELD;
}
} else if (code[0] == 'p') {
if (code[1] == 'r') {
if (COMPARE_5CHARS(code + 2, 'i', 'v', 'a', 't', 'e')) {
if (!isIdentPartIncludingEscape(code+7, m_codeEnd)) {
internalShift<7>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->privateKeyword;
return RESERVED_IF_STRICT;
}
} else if (COMPARE_7CHARS(code + 2, 'o', 't', 'e', 'c', 't', 'e', 'd')) {
if (!isIdentPartIncludingEscape(code+9, m_codeEnd)) {
internalShift<9>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->protectedKeyword;
return RESERVED_IF_STRICT;
}
}
} else if (COMPARE_5CHARS(code + 1, 'u', 'b', 'l', 'i', 'c')) {
if (!isIdentPartIncludingEscape(code+6, m_codeEnd)) {
internalShift<6>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->publicKeyword;
return RESERVED_IF_STRICT;
}
} else if (COMPARE_6CHARS(code + 1, 'a', 'c', 'k', 'a', 'g', 'e')) {
if (!isIdentPartIncludingEscape(code+7, m_codeEnd)) {
internalShift<7>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->packageKeyword;
return RESERVED_IF_STRICT;
}
}
} else if (code[0] == 's') {
if (COMPARE_5CHARS(code + 1, 'w', 'i', 't', 'c', 'h')) {
if (!isIdentPartIncludingEscape(code+6, m_codeEnd)) {
internalShift<6>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->switchKeyword;
return SWITCH;
}
} else if (COMPARE_5CHARS(code + 1, 't', 'a', 't', 'i', 'c')) {
if (!isIdentPartIncludingEscape(code+6, m_codeEnd)) {
internalShift<6>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->staticKeyword;
return RESERVED_IF_STRICT;
}
} else if (COMPARE_4CHARS(code + 1, 'u', 'p', 'e', 'r')) {
if (!isIdentPartIncludingEscape(code+5, m_codeEnd)) {
internalShift<5>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->superKeyword;
return SUPER;
}
}
} else if (COMPARE_3CHARS(code, 'l', 'e', 't')) {
if (!isIdentPartIncludingEscape(code+3, m_codeEnd)) {
internalShift<3>();
if (shouldCreateIdentifier)
data->ident = &m_vm->propertyNames->letKeyword;
return LET;
}
}
return IDENT;
}
} // namespace JSC