diff options
Diffstat (limited to 'Source/JavaScriptCore/llint/LLIntSlowPaths.h')
-rw-r--r-- | Source/JavaScriptCore/llint/LLIntSlowPaths.h | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/Source/JavaScriptCore/llint/LLIntSlowPaths.h b/Source/JavaScriptCore/llint/LLIntSlowPaths.h index 334070a07..a91cf797e 100644 --- a/Source/JavaScriptCore/llint/LLIntSlowPaths.h +++ b/Source/JavaScriptCore/llint/LLIntSlowPaths.h @@ -39,20 +39,20 @@ struct Instruction; namespace LLInt { #if USE(JSVALUE64) +// According to C++ rules, a type used for the return signature of function with C linkage (i.e. +// 'extern "C"') needs to be POD; hence putting any constructors into it could cause either compiler +// warnings, or worse, a change in the ABI used to return these types. struct SlowPathReturnType { void* a; void* b; - - SlowPathReturnType(void* a, void* b) - : a(a) - , b(b) - { - } }; inline SlowPathReturnType encodeResult(void* a, void* b) { - return SlowPathReturnType(a, b); + SlowPathReturnType result; + result.a = a; + result.b = b; + return result; } #else typedef int64_t SlowPathReturnType; @@ -132,10 +132,6 @@ LLINT_SLOW_PATH_DECL(slow_path_bitxor); LLINT_SLOW_PATH_DECL(slow_path_check_has_instance); LLINT_SLOW_PATH_DECL(slow_path_instanceof); LLINT_SLOW_PATH_DECL(slow_path_typeof); -LLINT_SLOW_PATH_DECL(slow_path_is_undefined); -LLINT_SLOW_PATH_DECL(slow_path_is_boolean); -LLINT_SLOW_PATH_DECL(slow_path_is_number); -LLINT_SLOW_PATH_DECL(slow_path_is_string); LLINT_SLOW_PATH_DECL(slow_path_is_object); LLINT_SLOW_PATH_DECL(slow_path_is_function); LLINT_SLOW_PATH_DECL(slow_path_in); |