diff options
Diffstat (limited to 'Source/JavaScriptCore/llint')
-rw-r--r-- | Source/JavaScriptCore/llint/LLIntSlowPaths.cpp | 7 | ||||
-rw-r--r-- | Source/JavaScriptCore/llint/LLIntSlowPaths.h | 1 | ||||
-rw-r--r-- | Source/JavaScriptCore/llint/LowLevelInterpreter.asm | 6 |
3 files changed, 14 insertions, 0 deletions
diff --git a/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp b/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp index 5a9b41da7..fbf5b8598 100644 --- a/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp +++ b/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp @@ -29,6 +29,7 @@ #if ENABLE(LLINT) #include "Arguments.h" +#include "ArrayConstructor.h" #include "CallFrame.h" #include "CommonSlowPaths.h" #include "GetterSetter.h" @@ -504,6 +505,12 @@ LLINT_SLOW_PATH_DECL(slow_path_new_array) LLINT_RETURN(constructArray(exec, bitwise_cast<JSValue*>(&LLINT_OP(2)), pc[3].u.operand)); } +LLINT_SLOW_PATH_DECL(slow_path_new_array_with_size) +{ + LLINT_BEGIN(); + LLINT_RETURN(constructArrayWithSizeQuirk(exec, exec->lexicalGlobalObject(), LLINT_OP_C(2).jsValue())); +} + LLINT_SLOW_PATH_DECL(slow_path_new_array_buffer) { LLINT_BEGIN(); diff --git a/Source/JavaScriptCore/llint/LLIntSlowPaths.h b/Source/JavaScriptCore/llint/LLIntSlowPaths.h index 5bfb0ccdf..3d770f3c5 100644 --- a/Source/JavaScriptCore/llint/LLIntSlowPaths.h +++ b/Source/JavaScriptCore/llint/LLIntSlowPaths.h @@ -121,6 +121,7 @@ LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_create_this); LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_convert_this); LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_new_object); LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_new_array); +LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_new_array_with_size); LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_new_array_buffer); LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_new_regexp); LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_not); diff --git a/Source/JavaScriptCore/llint/LowLevelInterpreter.asm b/Source/JavaScriptCore/llint/LowLevelInterpreter.asm index a971abf4f..ad509e05d 100644 --- a/Source/JavaScriptCore/llint/LowLevelInterpreter.asm +++ b/Source/JavaScriptCore/llint/LowLevelInterpreter.asm @@ -428,6 +428,12 @@ _llint_op_new_array: dispatch(4) +_llint_op_new_array_with_size: + traceExecution() + callSlowPath(_llint_slow_path_new_array_with_size) + dispatch(3) + + _llint_op_new_array_buffer: traceExecution() callSlowPath(_llint_slow_path_new_array_buffer) |