diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-05-11 09:43:24 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-05-11 09:43:24 +0200 |
commit | 1b914638db989aaa98631a1c1e02c7b2d44805d8 (patch) | |
tree | 87f4fd2c7b38db320079a5de8877890d2ca3c485 /Source/JavaScriptCore/llint/LLIntSlowPaths.cpp | |
parent | 2cf6c8816a73e0132bd8fa3b509d62d7c51b6e47 (diff) | |
download | qtwebkit-1b914638db989aaa98631a1c1e02c7b2d44805d8.tar.gz |
Imported WebKit commit 9a52e27980f47e8b0d8f8b7cc0fd7b5741bceb92 (http://svn.webkit.org/repository/webkit/trunk@116736)
New snapshot to include QDeclarative* -> QQml* build fixes
Diffstat (limited to 'Source/JavaScriptCore/llint/LLIntSlowPaths.cpp')
-rw-r--r-- | Source/JavaScriptCore/llint/LLIntSlowPaths.cpp | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp b/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp index 2b5161f7b..d184b6e62 100644 --- a/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp +++ b/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp @@ -458,13 +458,7 @@ LLINT_SLOW_PATH_DECL(slow_path_create_this) ASSERT(constructor->methodTable()->getConstructData(constructor, constructData) == ConstructTypeJS); #endif - Structure* structure; - JSValue proto = LLINT_OP(2).jsValue(); - if (proto.isObject()) - structure = asObject(proto)->inheritorID(globalData); - else - structure = constructor->scope()->globalObject->emptyObjectStructure(); - + Structure* structure = constructor->cachedInheritorID(exec); LLINT_RETURN(constructEmptyObject(exec, structure)); } @@ -1167,6 +1161,20 @@ LLINT_SLOW_PATH_DECL(slow_path_switch_imm) LLINT_END(); } +LLINT_SLOW_PATH_DECL(slow_path_switch_char) +{ + LLINT_BEGIN(); + JSValue scrutinee = LLINT_OP_C(3).jsValue(); + ASSERT(scrutinee.isString()); + JSString* string = asString(scrutinee); + ASSERT(string->length() == 1); + int defaultOffset = pc[2].u.operand; + StringImpl* impl = string->value(exec).impl(); + CodeBlock* codeBlock = exec->codeBlock(); + pc += codeBlock->characterSwitchJumpTable(pc[1].u.operand).offsetForValue((*impl)[0], defaultOffset); + LLINT_END(); +} + LLINT_SLOW_PATH_DECL(slow_path_switch_string) { LLINT_BEGIN(); |