| OLD | NEW | 
|    1 // Copyright 2012 the V8 project authors. All rights reserved. |    1 // Copyright 2012 the V8 project authors. All rights reserved. | 
|    2 // Use of this source code is governed by a BSD-style license that can be |    2 // Use of this source code is governed by a BSD-style license that can be | 
|    3 // found in the LICENSE file. |    3 // found in the LICENSE file. | 
|    4  |    4  | 
|    5 #ifndef V8_RUNTIME_H_ |    5 #ifndef V8_RUNTIME_H_ | 
|    6 #define V8_RUNTIME_H_ |    6 #define V8_RUNTIME_H_ | 
|    7  |    7  | 
|    8 #include "src/allocation.h" |    8 #include "src/allocation.h" | 
|    9 #include "src/zone.h" |    9 #include "src/zone.h" | 
|   10  |   10  | 
|   11 namespace v8 { |   11 namespace v8 { | 
|   12 namespace internal { |   12 namespace internal { | 
|   13  |   13  | 
|   14 // The interface to C++ runtime functions. |   14 // The interface to C++ runtime functions. | 
|   15  |   15  | 
|   16 // ---------------------------------------------------------------------------- |   16 // ---------------------------------------------------------------------------- | 
|   17 // RUNTIME_FUNCTION_LIST_ALWAYS defines runtime calls available in both |   17 // RUNTIME_FUNCTION_LIST_ALWAYS defines runtime calls available in both | 
|   18 // release and debug mode. |   18 // release and debug mode. | 
|   19 // This macro should only be used by the macro RUNTIME_FUNCTION_LIST. |   19 // This macro should only be used by the macro RUNTIME_FUNCTION_LIST. | 
|   20  |   20  | 
|   21 // WARNING: RUNTIME_FUNCTION_LIST_ALWAYS_* is a very large macro that caused |   21 // WARNING: RUNTIME_FUNCTION_LIST_ALWAYS_* is a very large macro that caused | 
|   22 // MSVC Intellisense to crash.  It was broken into two macros to work around |   22 // MSVC Intellisense to crash.  It was broken into two macros to work around | 
|   23 // this problem. Please avoid large recursive macros whenever possible. |   23 // this problem. Please avoid large recursive macros whenever possible. | 
|   24 #define RUNTIME_FUNCTION_LIST_ALWAYS_1(F) \ |   24 #define RUNTIME_FUNCTION_LIST_ALWAYS_1(F)                   \ | 
|   25   /* Property access */ \ |   25   /* Property access */                                     \ | 
|   26   F(GetProperty, 2, 1) \ |   26   F(GetProperty, 2, 1)                                      \ | 
|   27   F(KeyedGetProperty, 2, 1) \ |   27   F(KeyedGetProperty, 2, 1)                                 \ | 
|   28   F(DeleteProperty, 3, 1) \ |   28   F(DeleteProperty, 3, 1)                                   \ | 
|   29   F(HasOwnProperty, 2, 1) \ |   29   F(HasOwnProperty, 2, 1)                                   \ | 
|   30   F(HasProperty, 2, 1) \ |   30   F(HasProperty, 2, 1)                                      \ | 
|   31   F(HasElement, 2, 1) \ |   31   F(HasElement, 2, 1)                                       \ | 
|   32   F(IsPropertyEnumerable, 2, 1) \ |   32   F(IsPropertyEnumerable, 2, 1)                             \ | 
|   33   F(GetPropertyNames, 1, 1) \ |   33   F(GetPropertyNames, 1, 1)                                 \ | 
|   34   F(GetPropertyNamesFast, 1, 1) \ |   34   F(GetPropertyNamesFast, 1, 1)                             \ | 
|   35   F(GetOwnPropertyNames, 2, 1) \ |   35   F(GetOwnPropertyNames, 2, 1)                              \ | 
|   36   F(GetOwnElementNames, 1, 1) \ |   36   F(GetOwnElementNames, 1, 1)                               \ | 
|   37   F(GetInterceptorInfo, 1, 1) \ |   37   F(GetInterceptorInfo, 1, 1)                               \ | 
|   38   F(GetNamedInterceptorPropertyNames, 1, 1) \ |   38   F(GetNamedInterceptorPropertyNames, 1, 1)                 \ | 
|   39   F(GetIndexedInterceptorElementNames, 1, 1) \ |   39   F(GetIndexedInterceptorElementNames, 1, 1)                \ | 
|   40   F(GetArgumentsProperty, 1, 1) \ |   40   F(GetArgumentsProperty, 1, 1)                             \ | 
|   41   F(ToFastProperties, 1, 1) \ |   41   F(ToFastProperties, 1, 1)                                 \ | 
|   42   F(FinishArrayPrototypeSetup, 1, 1) \ |   42   F(FinishArrayPrototypeSetup, 1, 1)                        \ | 
|   43   F(SpecialArrayFunctions, 0, 1) \ |   43   F(SpecialArrayFunctions, 0, 1)                            \ | 
|   44   F(IsSloppyModeFunction, 1, 1) \ |   44   F(IsSloppyModeFunction, 1, 1)                             \ | 
|   45   F(GetDefaultReceiver, 1, 1) \ |   45   F(GetDefaultReceiver, 1, 1)                               \ | 
|   46   \ |   46                                                             \ | 
|   47   F(GetPrototype, 1, 1) \ |   47   F(GetPrototype, 1, 1)                                     \ | 
|   48   F(SetPrototype, 2, 1) \ |   48   F(SetPrototype, 2, 1)                                     \ | 
|   49   F(IsInPrototypeChain, 2, 1) \ |   49   F(IsInPrototypeChain, 2, 1)                               \ | 
|   50   \ |   50                                                             \ | 
|   51   F(GetOwnProperty, 2, 1) \ |   51   F(GetOwnProperty, 2, 1)                                   \ | 
|   52   \ |   52                                                             \ | 
|   53   F(IsExtensible, 1, 1) \ |   53   F(IsExtensible, 1, 1)                                     \ | 
|   54   F(PreventExtensions, 1, 1)\ |   54   F(PreventExtensions, 1, 1)                                \ | 
|   55   \ |   55                                                             \ | 
|   56   /* Utilities */ \ |   56   /* Utilities */                                           \ | 
|   57   F(CheckIsBootstrapping, 0, 1) \ |   57   F(CheckIsBootstrapping, 0, 1)                             \ | 
|   58   F(GetRootNaN, 0, 1) \ |   58   F(GetRootNaN, 0, 1)                                       \ | 
|   59   F(Call, -1 /* >= 2 */, 1) \ |   59   F(Call, -1 /* >= 2 */, 1)                                 \ | 
|   60   F(Apply, 5, 1) \ |   60   F(Apply, 5, 1)                                            \ | 
|   61   F(GetFunctionDelegate, 1, 1) \ |   61   F(GetFunctionDelegate, 1, 1)                              \ | 
|   62   F(GetConstructorDelegate, 1, 1) \ |   62   F(GetConstructorDelegate, 1, 1)                           \ | 
|   63   F(DeoptimizeFunction, 1, 1) \ |   63   F(DeoptimizeFunction, 1, 1)                               \ | 
|   64   F(ClearFunctionTypeFeedback, 1, 1) \ |   64   F(ClearFunctionTypeFeedback, 1, 1)                        \ | 
|   65   F(RunningInSimulator, 0, 1) \ |   65   F(RunningInSimulator, 0, 1)                               \ | 
|   66   F(IsConcurrentRecompilationSupported, 0, 1) \ |   66   F(IsConcurrentRecompilationSupported, 0, 1)               \ | 
|   67   F(OptimizeFunctionOnNextCall, -1, 1) \ |   67   F(OptimizeFunctionOnNextCall, -1, 1)                      \ | 
|   68   F(NeverOptimizeFunction, 1, 1) \ |   68   F(NeverOptimizeFunction, 1, 1)                            \ | 
|   69   F(GetOptimizationStatus, -1, 1) \ |   69   F(GetOptimizationStatus, -1, 1)                           \ | 
|   70   F(GetOptimizationCount, 1, 1) \ |   70   F(IsOptimized, 0, 1) /* TODO(turbofan): Only temporary */ \ | 
|   71   F(UnblockConcurrentRecompilation, 0, 1) \ |   71   F(GetOptimizationCount, 1, 1)                             \ | 
|   72   F(CompileForOnStackReplacement, 1, 1) \ |   72   F(UnblockConcurrentRecompilation, 0, 1)                   \ | 
|   73   F(SetAllocationTimeout, -1 /* 2 || 3 */, 1) \ |   73   F(CompileForOnStackReplacement, 1, 1)                     \ | 
|   74   F(SetNativeFlag, 1, 1) \ |   74   F(SetAllocationTimeout, -1 /* 2 || 3 */, 1)               \ | 
|   75   F(SetInlineBuiltinFlag, 1, 1) \ |   75   F(SetNativeFlag, 1, 1)                                    \ | 
|   76   F(StoreArrayLiteralElement, 5, 1) \ |   76   F(SetInlineBuiltinFlag, 1, 1)                             \ | 
|   77   F(DebugPrepareStepInIfStepping, 1, 1) \ |   77   F(StoreArrayLiteralElement, 5, 1)                         \ | 
|   78   F(DebugPromiseHandlePrologue, 1, 1) \ |   78   F(DebugPrepareStepInIfStepping, 1, 1)                     \ | 
|   79   F(DebugPromiseHandleEpilogue, 0, 1) \ |   79   F(DebugPromiseHandlePrologue, 1, 1)                       \ | 
|   80   F(DebugPromiseEvent, 1, 1) \ |   80   F(DebugPromiseHandleEpilogue, 0, 1)                       \ | 
|   81   F(DebugAsyncTaskEvent, 1, 1) \ |   81   F(DebugPromiseEvent, 1, 1)                                \ | 
|   82   F(FlattenString, 1, 1) \ |   82   F(DebugAsyncTaskEvent, 1, 1)                              \ | 
|   83   F(LoadMutableDouble, 2, 1) \ |   83   F(FlattenString, 1, 1)                                    \ | 
|   84   F(TryMigrateInstance, 1, 1) \ |   84   F(LoadMutableDouble, 2, 1)                                \ | 
|   85   F(NotifyContextDisposed, 0, 1) \ |   85   F(TryMigrateInstance, 1, 1)                               \ | 
|   86   \ |   86   F(NotifyContextDisposed, 0, 1)                            \ | 
|   87   /* Array join support */ \ |   87                                                             \ | 
|   88   F(PushIfAbsent, 2, 1) \ |   88   /* Array join support */                                  \ | 
|   89   F(ArrayConcat, 1, 1) \ |   89   F(PushIfAbsent, 2, 1)                                     \ | 
|   90   \ |   90   F(ArrayConcat, 1, 1)                                      \ | 
|   91   /* Conversions */ \ |   91                                                             \ | 
|   92   F(ToBool, 1, 1) \ |   92   /* Conversions */                                         \ | 
|   93   F(Typeof, 1, 1) \ |   93   F(ToBool, 1, 1)                                           \ | 
|   94   \ |   94   F(Typeof, 1, 1)                                           \ | 
|   95   F(StringToNumber, 1, 1) \ |   95                                                             \ | 
|   96   F(StringParseInt, 2, 1) \ |   96   F(Booleanize, 2, 1) /* TODO(turbofan): Only temporary */  \ | 
|   97   F(StringParseFloat, 1, 1) \ |   97                                                             \ | 
|   98   F(StringToLowerCase, 1, 1) \ |   98   F(StringToNumber, 1, 1)                                   \ | 
|   99   F(StringToUpperCase, 1, 1) \ |   99   F(StringParseInt, 2, 1)                                   \ | 
|  100   F(StringSplit, 3, 1) \ |  100   F(StringParseFloat, 1, 1)                                 \ | 
|  101   F(CharFromCode, 1, 1) \ |  101   F(StringToLowerCase, 1, 1)                                \ | 
|  102   F(URIEscape, 1, 1) \ |  102   F(StringToUpperCase, 1, 1)                                \ | 
|  103   F(URIUnescape, 1, 1) \ |  103   F(StringSplit, 3, 1)                                      \ | 
|  104   \ |  104   F(CharFromCode, 1, 1)                                     \ | 
|  105   F(NumberToInteger, 1, 1) \ |  105   F(URIEscape, 1, 1)                                        \ | 
|  106   F(NumberToIntegerMapMinusZero, 1, 1) \ |  106   F(URIUnescape, 1, 1)                                      \ | 
|  107   F(NumberToJSUint32, 1, 1) \ |  107                                                             \ | 
|  108   F(NumberToJSInt32, 1, 1) \ |  108   F(NumberToInteger, 1, 1)                                  \ | 
|  109   \ |  109   F(NumberToIntegerMapMinusZero, 1, 1)                      \ | 
|  110   /* Arithmetic operations */ \ |  110   F(NumberToJSUint32, 1, 1)                                 \ | 
|  111   F(NumberAdd, 2, 1) \ |  111   F(NumberToJSInt32, 1, 1)                                  \ | 
|  112   F(NumberSub, 2, 1) \ |  112                                                             \ | 
|  113   F(NumberMul, 2, 1) \ |  113   /* Arithmetic operations */                               \ | 
|  114   F(NumberDiv, 2, 1) \ |  114   F(NumberAdd, 2, 1)                                        \ | 
|  115   F(NumberMod, 2, 1) \ |  115   F(NumberSub, 2, 1)                                        \ | 
|  116   F(NumberUnaryMinus, 1, 1) \ |  116   F(NumberMul, 2, 1)                                        \ | 
|  117   F(NumberImul, 2, 1) \ |  117   F(NumberDiv, 2, 1)                                        \ | 
|  118   \ |  118   F(NumberMod, 2, 1)                                        \ | 
|  119   F(StringBuilderConcat, 3, 1) \ |  119   F(NumberUnaryMinus, 1, 1)                                 \ | 
|  120   F(StringBuilderJoin, 3, 1) \ |  120   F(NumberImul, 2, 1)                                       \ | 
|  121   F(SparseJoinWithSeparator, 3, 1) \ |  121                                                             \ | 
|  122   \ |  122   F(StringBuilderConcat, 3, 1)                              \ | 
|  123   /* Bit operations */ \ |  123   F(StringBuilderJoin, 3, 1)                                \ | 
|  124   F(NumberOr, 2, 1) \ |  124   F(SparseJoinWithSeparator, 3, 1)                          \ | 
|  125   F(NumberAnd, 2, 1) \ |  125                                                             \ | 
|  126   F(NumberXor, 2, 1) \ |  126   /* Bit operations */                                      \ | 
|  127   \ |  127   F(NumberOr, 2, 1)                                         \ | 
|  128   F(NumberShl, 2, 1) \ |  128   F(NumberAnd, 2, 1)                                        \ | 
|  129   F(NumberShr, 2, 1) \ |  129   F(NumberXor, 2, 1)                                        \ | 
|  130   F(NumberSar, 2, 1) \ |  130                                                             \ | 
|  131   \ |  131   F(NumberShl, 2, 1)                                        \ | 
|  132   /* Comparisons */ \ |  132   F(NumberShr, 2, 1)                                        \ | 
|  133   F(NumberEquals, 2, 1) \ |  133   F(NumberSar, 2, 1)                                        \ | 
|  134   F(StringEquals, 2, 1) \ |  134                                                             \ | 
|  135   \ |  135   /* Comparisons */                                         \ | 
|  136   F(NumberCompare, 3, 1) \ |  136   F(NumberEquals, 2, 1)                                     \ | 
|  137   F(SmiLexicographicCompare, 2, 1) \ |  137   F(StringEquals, 2, 1)                                     \ | 
|  138   \ |  138                                                             \ | 
|  139   /* Math */ \ |  139   F(NumberCompare, 3, 1)                                    \ | 
|  140   F(MathAcos, 1, 1) \ |  140   F(SmiLexicographicCompare, 2, 1)                          \ | 
|  141   F(MathAsin, 1, 1) \ |  141                                                             \ | 
|  142   F(MathAtan, 1, 1) \ |  142   /* Math */                                                \ | 
|  143   F(MathFloorRT, 1, 1) \ |  143   F(MathAcos, 1, 1)                                         \ | 
|  144   F(MathAtan2, 2, 1) \ |  144   F(MathAsin, 1, 1)                                         \ | 
|  145   F(MathExpRT, 1, 1) \ |  145   F(MathAtan, 1, 1)                                         \ | 
|  146   F(RoundNumber, 1, 1) \ |  146   F(MathFloorRT, 1, 1)                                      \ | 
|  147   F(MathFround, 1, 1) \ |  147   F(MathAtan2, 2, 1)                                        \ | 
|  148   \ |  148   F(MathExpRT, 1, 1)                                        \ | 
|  149   /* Regular expressions */ \ |  149   F(RoundNumber, 1, 1)                                      \ | 
|  150   F(RegExpCompile, 3, 1) \ |  150   F(MathFround, 1, 1)                                       \ | 
|  151   F(RegExpExecMultiple, 4, 1) \ |  151                                                             \ | 
|  152   F(RegExpInitializeObject, 5, 1) \ |  152   /* Regular expressions */                                 \ | 
|  153   \ |  153   F(RegExpCompile, 3, 1)                                    \ | 
|  154   /* JSON */ \ |  154   F(RegExpExecMultiple, 4, 1)                               \ | 
|  155   F(ParseJson, 1, 1) \ |  155   F(RegExpInitializeObject, 5, 1)                           \ | 
|  156   F(BasicJSONStringify, 1, 1) \ |  156                                                             \ | 
|  157   F(QuoteJSONString, 1, 1) \ |  157   /* JSON */                                                \ | 
|  158   \ |  158   F(ParseJson, 1, 1)                                        \ | 
|  159   /* Strings */ \ |  159   F(BasicJSONStringify, 1, 1)                               \ | 
|  160   F(StringIndexOf, 3, 1) \ |  160   F(QuoteJSONString, 1, 1)                                  \ | 
|  161   F(StringLastIndexOf, 3, 1) \ |  161                                                             \ | 
|  162   F(StringLocaleCompare, 2, 1) \ |  162   /* Strings */                                             \ | 
|  163   F(StringReplaceGlobalRegExpWithString, 4, 1) \ |  163   F(StringIndexOf, 3, 1)                                    \ | 
|  164   F(StringReplaceOneCharWithString, 3, 1) \ |  164   F(StringLastIndexOf, 3, 1)                                \ | 
|  165   F(StringMatch, 3, 1) \ |  165   F(StringLocaleCompare, 2, 1)                              \ | 
|  166   F(StringTrim, 3, 1) \ |  166   F(StringReplaceGlobalRegExpWithString, 4, 1)              \ | 
|  167   F(StringToArray, 2, 1) \ |  167   F(StringReplaceOneCharWithString, 3, 1)                   \ | 
|  168   F(NewStringWrapper, 1, 1) \ |  168   F(StringMatch, 3, 1)                                      \ | 
|  169   F(NewString, 2, 1) \ |  169   F(StringTrim, 3, 1)                                       \ | 
|  170   F(TruncateString, 2, 1) \ |  170   F(StringToArray, 2, 1)                                    \ | 
|  171   \ |  171   F(NewStringWrapper, 1, 1)                                 \ | 
|  172   /* Numbers */ \ |  172   F(NewString, 2, 1)                                        \ | 
|  173   F(NumberToRadixString, 2, 1) \ |  173   F(TruncateString, 2, 1)                                   \ | 
|  174   F(NumberToFixed, 2, 1) \ |  174                                                             \ | 
|  175   F(NumberToExponential, 2, 1) \ |  175   /* Numbers */                                             \ | 
|  176   F(NumberToPrecision, 2, 1) \ |  176   F(NumberToRadixString, 2, 1)                              \ | 
 |  177   F(NumberToFixed, 2, 1)                                    \ | 
 |  178   F(NumberToExponential, 2, 1)                              \ | 
 |  179   F(NumberToPrecision, 2, 1)                                \ | 
|  177   F(IsValidSmi, 1, 1) |  180   F(IsValidSmi, 1, 1) | 
|  178  |  181  | 
|  179  |  182  | 
|  180 #define RUNTIME_FUNCTION_LIST_ALWAYS_2(F)              \ |  183 #define RUNTIME_FUNCTION_LIST_ALWAYS_2(F)                             \ | 
|  181   /* Reflection */                                     \ |  184   /* Reflection */                                                    \ | 
|  182   F(FunctionSetInstanceClassName, 2, 1)                \ |  185   F(FunctionSetInstanceClassName, 2, 1)                               \ | 
|  183   F(FunctionSetLength, 2, 1)                           \ |  186   F(FunctionSetLength, 2, 1)                                          \ | 
|  184   F(FunctionSetPrototype, 2, 1)                        \ |  187   F(FunctionSetPrototype, 2, 1)                                       \ | 
|  185   F(FunctionGetName, 1, 1)                             \ |  188   F(FunctionGetName, 1, 1)                                            \ | 
|  186   F(FunctionSetName, 2, 1)                             \ |  189   F(FunctionSetName, 2, 1)                                            \ | 
|  187   F(FunctionNameShouldPrintAsAnonymous, 1, 1)          \ |  190   F(FunctionNameShouldPrintAsAnonymous, 1, 1)                         \ | 
|  188   F(FunctionMarkNameShouldPrintAsAnonymous, 1, 1)      \ |  191   F(FunctionMarkNameShouldPrintAsAnonymous, 1, 1)                     \ | 
|  189   F(FunctionIsGenerator, 1, 1)                         \ |  192   F(FunctionIsGenerator, 1, 1)                                        \ | 
|  190   F(FunctionIsArrow, 1, 1)                             \ |  193   F(FunctionIsArrow, 1, 1)                                            \ | 
|  191   F(FunctionBindArguments, 4, 1)                       \ |  194   F(FunctionBindArguments, 4, 1)                                      \ | 
|  192   F(BoundFunctionGetBindings, 1, 1)                    \ |  195   F(BoundFunctionGetBindings, 1, 1)                                   \ | 
|  193   F(FunctionRemovePrototype, 1, 1)                     \ |  196   F(FunctionRemovePrototype, 1, 1)                                    \ | 
|  194   F(FunctionGetSourceCode, 1, 1)                       \ |  197   F(FunctionGetSourceCode, 1, 1)                                      \ | 
|  195   F(FunctionGetScript, 1, 1)                           \ |  198   F(FunctionGetScript, 1, 1)                                          \ | 
|  196   F(FunctionGetScriptSourcePosition, 1, 1)             \ |  199   F(FunctionGetScriptSourcePosition, 1, 1)                            \ | 
|  197   F(FunctionGetPositionForOffset, 2, 1)                \ |  200   F(FunctionGetPositionForOffset, 2, 1)                               \ | 
|  198   F(FunctionIsAPIFunction, 1, 1)                       \ |  201   F(FunctionIsAPIFunction, 1, 1)                                      \ | 
|  199   F(FunctionIsBuiltin, 1, 1)                           \ |  202   F(FunctionIsBuiltin, 1, 1)                                          \ | 
|  200   F(GetScript, 1, 1)                                   \ |  203   F(GetScript, 1, 1)                                                  \ | 
|  201   F(CollectStackTrace, 2, 1)                           \ |  204   F(CollectStackTrace, 2, 1)                                          \ | 
|  202   F(GetV8Version, 0, 1)                                \ |  205   F(GetV8Version, 0, 1)                                               \ | 
|  203                                                        \ |  206                                                                       \ | 
|  204   F(SetCode, 2, 1)                                     \ |  207   F(SetCode, 2, 1)                                                    \ | 
|  205                                                        \ |  208                                                                       \ | 
|  206   F(CreateApiFunction, 2, 1)                           \ |  209   F(CreateApiFunction, 2, 1)                                          \ | 
|  207   F(IsTemplate, 1, 1)                                  \ |  210   F(IsTemplate, 1, 1)                                                 \ | 
|  208   F(GetTemplateField, 2, 1)                            \ |  211   F(GetTemplateField, 2, 1)                                           \ | 
|  209   F(DisableAccessChecks, 1, 1)                         \ |  212   F(DisableAccessChecks, 1, 1)                                        \ | 
|  210   F(EnableAccessChecks, 1, 1)                          \ |  213   F(EnableAccessChecks, 1, 1)                                         \ | 
|  211                                                        \ |  214                                                                       \ | 
|  212   /* Dates */                                          \ |  215   /* Dates */                                                         \ | 
|  213   F(DateCurrentTime, 0, 1)                             \ |  216   F(DateCurrentTime, 0, 1)                                            \ | 
|  214   F(DateParseString, 2, 1)                             \ |  217   F(DateParseString, 2, 1)                                            \ | 
|  215   F(DateLocalTimezone, 1, 1)                           \ |  218   F(DateLocalTimezone, 1, 1)                                          \ | 
|  216   F(DateToUTC, 1, 1)                                   \ |  219   F(DateToUTC, 1, 1)                                                  \ | 
|  217   F(DateMakeDay, 2, 1)                                 \ |  220   F(DateMakeDay, 2, 1)                                                \ | 
|  218   F(DateSetValue, 3, 1)                                \ |  221   F(DateSetValue, 3, 1)                                               \ | 
|  219   F(DateCacheVersion, 0, 1)                            \ |  222   F(DateCacheVersion, 0, 1)                                           \ | 
|  220                                                        \ |  223                                                                       \ | 
|  221   /* Globals */                                        \ |  224   /* Globals */                                                       \ | 
|  222   F(CompileString, 2, 1)                               \ |  225   F(CompileString, 2, 1)                                              \ | 
|  223                                                        \ |  226                                                                       \ | 
|  224   /* Eval */                                           \ |  227   /* Eval */                                                          \ | 
|  225   F(GlobalProxy, 1, 1)                                 \ |  228   F(GlobalProxy, 1, 1)                                                \ | 
|  226   F(IsAttachedGlobal, 1, 1)                            \ |  229   F(IsAttachedGlobal, 1, 1)                                           \ | 
|  227                                                        \ |  230                                                                       \ | 
|  228   F(AddNamedProperty, 4, 1)                            \ |  231   F(AddNamedProperty, 4, 1)                                           \ | 
|  229   F(AddPropertyForTemplate, 4, 1)                      \ |  232   F(AddPropertyForTemplate, 4, 1)                                     \ | 
|  230   F(SetProperty, 4, 1)                                 \ |  233   F(SetProperty, 4, 1)                                                \ | 
|  231   F(DefineApiAccessorProperty, 5, 1)                   \ |  234   F(DefineApiAccessorProperty, 5, 1)                                  \ | 
|  232   F(DefineDataPropertyUnchecked, 4, 1)                 \ |  235   F(DefineDataPropertyUnchecked, 4, 1)                                \ | 
|  233   F(DefineAccessorPropertyUnchecked, 5, 1)             \ |  236   F(DefineAccessorPropertyUnchecked, 5, 1)                            \ | 
|  234   F(GetDataProperty, 2, 1)                             \ |  237   F(GetDataProperty, 2, 1)                                            \ | 
|  235   F(SetHiddenProperty, 3, 1)                           \ |  238   F(SetHiddenProperty, 3, 1)                                          \ | 
|  236                                                        \ |  239                                                                       \ | 
|  237   /* Arrays */                                         \ |  240   /* Arrays */                                                        \ | 
|  238   F(RemoveArrayHoles, 2, 1)                            \ |  241   F(RemoveArrayHoles, 2, 1)                                           \ | 
|  239   F(GetArrayKeys, 2, 1)                                \ |  242   F(GetArrayKeys, 2, 1)                                               \ | 
|  240   F(MoveArrayContents, 2, 1)                           \ |  243   F(MoveArrayContents, 2, 1)                                          \ | 
|  241   F(EstimateNumberOfElements, 1, 1)                    \ |  244   F(EstimateNumberOfElements, 1, 1)                                   \ | 
|  242   F(NormalizeElements, 1, 1)                           \ |  245   F(NormalizeElements, 1, 1)                                          \ | 
|  243                                                        \ |  246                                                                       \ | 
|  244   /* Getters and Setters */                            \ |  247   /* Getters and Setters */                                           \ | 
|  245   F(LookupAccessor, 3, 1)                              \ |  248   F(LookupAccessor, 3, 1)                                             \ | 
|  246                                                        \ |  249                                                                       \ | 
|  247   /* ES5 */                                            \ |  250   /* ES5 */                                                           \ | 
|  248   F(ObjectFreeze, 1, 1)                                \ |  251   F(ObjectFreeze, 1, 1)                                               \ | 
|  249                                                        \ |  252                                                                       \ | 
|  250   /* Harmony modules */                                \ |  253   /* Harmony modules */                                               \ | 
|  251   F(IsJSModule, 1, 1)                                  \ |  254   F(IsJSModule, 1, 1)                                                 \ | 
|  252                                                        \ |  255                                                                       \ | 
|  253   /* Harmony symbols */                                \ |  256   /* Harmony symbols */                                               \ | 
|  254   F(CreateSymbol, 1, 1)                                \ |  257   F(CreateSymbol, 1, 1)                                               \ | 
|  255   F(CreatePrivateSymbol, 1, 1)                         \ |  258   F(CreatePrivateSymbol, 1, 1)                                        \ | 
|  256   F(CreateGlobalPrivateSymbol, 1, 1)                   \ |  259   F(CreateGlobalPrivateSymbol, 1, 1)                                  \ | 
|  257   F(NewSymbolWrapper, 1, 1)                            \ |  260   F(NewSymbolWrapper, 1, 1)                                           \ | 
|  258   F(SymbolDescription, 1, 1)                           \ |  261   F(SymbolDescription, 1, 1)                                          \ | 
|  259   F(SymbolRegistry, 0, 1)                              \ |  262   F(SymbolRegistry, 0, 1)                                             \ | 
|  260   F(SymbolIsPrivate, 1, 1)                             \ |  263   F(SymbolIsPrivate, 1, 1)                                            \ | 
|  261                                                        \ |  264                                                                       \ | 
|  262   /* Harmony proxies */                                \ |  265   /* Harmony proxies */                                               \ | 
|  263   F(CreateJSProxy, 2, 1)                               \ |  266   F(CreateJSProxy, 2, 1)                                              \ | 
|  264   F(CreateJSFunctionProxy, 4, 1)                       \ |  267   F(CreateJSFunctionProxy, 4, 1)                                      \ | 
|  265   F(IsJSProxy, 1, 1)                                   \ |  268   F(IsJSProxy, 1, 1)                                                  \ | 
|  266   F(IsJSFunctionProxy, 1, 1)                           \ |  269   F(IsJSFunctionProxy, 1, 1)                                          \ | 
|  267   F(GetHandler, 1, 1)                                  \ |  270   F(GetHandler, 1, 1)                                                 \ | 
|  268   F(GetCallTrap, 1, 1)                                 \ |  271   F(GetCallTrap, 1, 1)                                                \ | 
|  269   F(GetConstructTrap, 1, 1)                            \ |  272   F(GetConstructTrap, 1, 1)                                           \ | 
|  270   F(Fix, 1, 1)                                         \ |  273   F(Fix, 1, 1)                                                        \ | 
|  271                                                        \ |  274                                                                       \ | 
|  272   /* Harmony sets */                                   \ |  275   /* Harmony sets */                                                  \ | 
|  273   F(SetInitialize, 1, 1)                               \ |  276   F(SetInitialize, 1, 1)                                              \ | 
|  274   F(SetAdd, 2, 1)                                      \ |  277   F(SetAdd, 2, 1)                                                     \ | 
|  275   F(SetHas, 2, 1)                                      \ |  278   F(SetHas, 2, 1)                                                     \ | 
|  276   F(SetDelete, 2, 1)                                   \ |  279   F(SetDelete, 2, 1)                                                  \ | 
|  277   F(SetClear, 1, 1)                                    \ |  280   F(SetClear, 1, 1)                                                   \ | 
|  278   F(SetGetSize, 1, 1)                                  \ |  281   F(SetGetSize, 1, 1)                                                 \ | 
|  279                                                        \ |  282                                                                       \ | 
|  280   F(SetIteratorInitialize, 3, 1)                       \ |  283   F(SetIteratorInitialize, 3, 1)                                      \ | 
|  281   F(SetIteratorNext, 2, 1)                             \ |  284   F(SetIteratorNext, 2, 1)                                            \ | 
|  282                                                        \ |  285                                                                       \ | 
|  283   /* Harmony maps */                                   \ |  286   /* Harmony maps */                                                  \ | 
|  284   F(MapInitialize, 1, 1)                               \ |  287   F(MapInitialize, 1, 1)                                              \ | 
|  285   F(MapGet, 2, 1)                                      \ |  288   F(MapGet, 2, 1)                                                     \ | 
|  286   F(MapHas, 2, 1)                                      \ |  289   F(MapHas, 2, 1)                                                     \ | 
|  287   F(MapDelete, 2, 1)                                   \ |  290   F(MapDelete, 2, 1)                                                  \ | 
|  288   F(MapClear, 1, 1)                                    \ |  291   F(MapClear, 1, 1)                                                   \ | 
|  289   F(MapSet, 3, 1)                                      \ |  292   F(MapSet, 3, 1)                                                     \ | 
|  290   F(MapGetSize, 1, 1)                                  \ |  293   F(MapGetSize, 1, 1)                                                 \ | 
|  291                                                        \ |  294                                                                       \ | 
|  292   F(MapIteratorInitialize, 3, 1)                       \ |  295   F(MapIteratorInitialize, 3, 1)                                      \ | 
|  293   F(MapIteratorNext, 2, 1)                             \ |  296   F(MapIteratorNext, 2, 1)                                            \ | 
|  294                                                        \ |  297                                                                       \ | 
|  295   /* Harmony weak maps and sets */                     \ |  298   /* Harmony weak maps and sets */                                    \ | 
|  296   F(WeakCollectionInitialize, 1, 1)                    \ |  299   F(WeakCollectionInitialize, 1, 1)                                   \ | 
|  297   F(WeakCollectionGet, 2, 1)                           \ |  300   F(WeakCollectionGet, 2, 1)                                          \ | 
|  298   F(WeakCollectionHas, 2, 1)                           \ |  301   F(WeakCollectionHas, 2, 1)                                          \ | 
|  299   F(WeakCollectionDelete, 2, 1)                        \ |  302   F(WeakCollectionDelete, 2, 1)                                       \ | 
|  300   F(WeakCollectionSet, 3, 1)                           \ |  303   F(WeakCollectionSet, 3, 1)                                          \ | 
|  301                                                        \ |  304                                                                       \ | 
|  302   F(GetWeakMapEntries, 1, 1)                           \ |  305   F(GetWeakMapEntries, 1, 1)                                          \ | 
|  303   F(GetWeakSetValues, 1, 1)                            \ |  306   F(GetWeakSetValues, 1, 1)                                           \ | 
|  304                                                        \ |  307                                                                       \ | 
|  305   /* Harmony events */                                 \ |  308   /* Harmony events */                                                \ | 
|  306   F(EnqueueMicrotask, 1, 1)                            \ |  309   F(EnqueueMicrotask, 1, 1)                                           \ | 
|  307   F(RunMicrotasks, 0, 1)                               \ |  310   F(RunMicrotasks, 0, 1)                                              \ | 
|  308                                                        \ |  311                                                                       \ | 
|  309   /* Harmony observe */                                \ |  312   /* Harmony observe */                                               \ | 
|  310   F(IsObserved, 1, 1)                                  \ |  313   F(IsObserved, 1, 1)                                                 \ | 
|  311   F(SetIsObserved, 1, 1)                               \ |  314   F(SetIsObserved, 1, 1)                                              \ | 
|  312   F(GetObservationState, 0, 1)                         \ |  315   F(GetObservationState, 0, 1)                                        \ | 
|  313   F(ObservationWeakMapCreate, 0, 1)                    \ |  316   F(ObservationWeakMapCreate, 0, 1)                                   \ | 
|  314   F(ObserverObjectAndRecordHaveSameOrigin, 3, 1)       \ |  317   F(ObserverObjectAndRecordHaveSameOrigin, 3, 1)                      \ | 
|  315   F(ObjectWasCreatedInCurrentOrigin, 1, 1)             \ |  318   F(ObjectWasCreatedInCurrentOrigin, 1, 1)                            \ | 
|  316   F(GetObjectContextObjectObserve, 1, 1)               \ |  319   F(GetObjectContextObjectObserve, 1, 1)                              \ | 
|  317   F(GetObjectContextObjectGetNotifier, 1, 1)           \ |  320   F(GetObjectContextObjectGetNotifier, 1, 1)                          \ | 
|  318   F(GetObjectContextNotifierPerformChange, 1, 1)       \ |  321   F(GetObjectContextNotifierPerformChange, 1, 1)                      \ | 
|  319                                                        \ |  322                                                                       \ | 
|  320   /* Harmony typed arrays */                           \ |  323   /* Harmony typed arrays */                                          \ | 
|  321   F(ArrayBufferInitialize, 2, 1)                       \ |  324   F(ArrayBufferInitialize, 2, 1)                                      \ | 
|  322   F(ArrayBufferSliceImpl, 3, 1)                        \ |  325   F(ArrayBufferSliceImpl, 3, 1)                                       \ | 
|  323   F(ArrayBufferIsView, 1, 1)                           \ |  326   F(ArrayBufferIsView, 1, 1)                                          \ | 
|  324   F(ArrayBufferNeuter, 1, 1)                           \ |  327   F(ArrayBufferNeuter, 1, 1)                                          \ | 
|  325                                                        \ |  328                                                                       \ | 
|  326   F(TypedArrayInitializeFromArrayLike, 4, 1)           \ |  329   F(TypedArrayInitializeFromArrayLike, 4, 1)                          \ | 
|  327   F(TypedArrayGetBuffer, 1, 1)                         \ |  330   F(TypedArrayGetBuffer, 1, 1)                                        \ | 
|  328   F(TypedArraySetFastCases, 3, 1)                      \ |  331   F(TypedArraySetFastCases, 3, 1)                                     \ | 
|  329                                                        \ |  332                                                                       \ | 
|  330   F(DataViewGetBuffer, 1, 1)                           \ |  333   F(DataViewGetBuffer, 1, 1)                                          \ | 
|  331   F(DataViewGetInt8, 3, 1)                             \ |  334   F(DataViewGetInt8, 3, 1)                                            \ | 
|  332   F(DataViewGetUint8, 3, 1)                            \ |  335   F(DataViewGetUint8, 3, 1)                                           \ | 
|  333   F(DataViewGetInt16, 3, 1)                            \ |  336   F(DataViewGetInt16, 3, 1)                                           \ | 
|  334   F(DataViewGetUint16, 3, 1)                           \ |  337   F(DataViewGetUint16, 3, 1)                                          \ | 
|  335   F(DataViewGetInt32, 3, 1)                            \ |  338   F(DataViewGetInt32, 3, 1)                                           \ | 
|  336   F(DataViewGetUint32, 3, 1)                           \ |  339   F(DataViewGetUint32, 3, 1)                                          \ | 
|  337   F(DataViewGetFloat32, 3, 1)                          \ |  340   F(DataViewGetFloat32, 3, 1)                                         \ | 
|  338   F(DataViewGetFloat64, 3, 1)                          \ |  341   F(DataViewGetFloat64, 3, 1)                                         \ | 
|  339                                                        \ |  342                                                                       \ | 
|  340   F(DataViewSetInt8, 4, 1)                             \ |  343   F(DataViewSetInt8, 4, 1)                                            \ | 
|  341   F(DataViewSetUint8, 4, 1)                            \ |  344   F(DataViewSetUint8, 4, 1)                                           \ | 
|  342   F(DataViewSetInt16, 4, 1)                            \ |  345   F(DataViewSetInt16, 4, 1)                                           \ | 
|  343   F(DataViewSetUint16, 4, 1)                           \ |  346   F(DataViewSetUint16, 4, 1)                                          \ | 
|  344   F(DataViewSetInt32, 4, 1)                            \ |  347   F(DataViewSetInt32, 4, 1)                                           \ | 
|  345   F(DataViewSetUint32, 4, 1)                           \ |  348   F(DataViewSetUint32, 4, 1)                                          \ | 
|  346   F(DataViewSetFloat32, 4, 1)                          \ |  349   F(DataViewSetFloat32, 4, 1)                                         \ | 
|  347   F(DataViewSetFloat64, 4, 1)                          \ |  350   F(DataViewSetFloat64, 4, 1)                                         \ | 
|  348                                                        \ |  351                                                                       \ | 
|  349   /* Statements */                                     \ |  352   /* Statements */                                                    \ | 
|  350   F(NewObjectFromBound, 1, 1)                          \ |  353   F(NewObjectFromBound, 1, 1)                                         \ | 
|  351                                                        \ |  354                                                                       \ | 
|  352   /* Declarations and initialization */                \ |  355   /* Declarations and initialization */                               \ | 
|  353   F(InitializeVarGlobal, 3, 1)                         \ |  356   F(InitializeVarGlobal, 3, 1)                                        \ | 
|  354   F(OptimizeObjectForAddingMultipleProperties, 2, 1)   \ |  357   F(OptimizeObjectForAddingMultipleProperties, 2, 1)                  \ | 
|  355                                                        \ |  358                                                                       \ | 
|  356   /* Debugging */                                      \ |  359   /* Debugging */                                                     \ | 
|  357   F(DebugPrint, 1, 1)                                  \ |  360   F(DebugPrint, 1, 1)                                                 \ | 
|  358   F(GlobalPrint, 1, 1)                                 \ |  361   F(GlobalPrint, 1, 1)                                                \ | 
|  359   F(DebugTrace, 0, 1)                                  \ |  362   F(DebugTrace, 0, 1)                                                 \ | 
|  360   F(TraceEnter, 0, 1)                                  \ |  363   F(TraceEnter, 0, 1)                                                 \ | 
|  361   F(TraceExit, 1, 1)                                   \ |  364   F(TraceExit, 1, 1)                                                  \ | 
|  362   F(Abort, 1, 1)                                       \ |  365   F(Abort, 1, 1)                                                      \ | 
|  363   F(AbortJS, 1, 1)                                     \ |  366   F(AbortJS, 1, 1)                                                    \ | 
|  364   /* ES5 */                                            \ |  367   /* ES5 */                                                           \ | 
|  365   F(OwnKeys, 1, 1)                                     \ |  368   F(OwnKeys, 1, 1)                                                    \ | 
|  366                                                        \ |  369                                                                       \ | 
|  367   /* Message objects */                                \ |  370   /* Message objects */                                               \ | 
|  368   F(MessageGetStartPosition, 1, 1)                     \ |  371   F(MessageGetStartPosition, 1, 1)                                    \ | 
|  369   F(MessageGetScript, 1, 1)                            \ |  372   F(MessageGetScript, 1, 1)                                           \ | 
|  370                                                        \ |  373                                                                       \ | 
|  371   /* Pseudo functions - handled as macros by parser */ \ |  374   /* Pseudo functions - handled as macros by parser */                \ | 
|  372   F(IS_VAR, 1, 1)                                      \ |  375   F(IS_VAR, 1, 1)                                                     \ | 
|  373                                                        \ |  376                                                                       \ | 
|  374   /* expose boolean functions from objects-inl.h */    \ |  377   /* expose boolean functions from objects-inl.h */                   \ | 
|  375   F(HasFastSmiElements, 1, 1)                          \ |  378   F(HasFastSmiElements, 1, 1)                                         \ | 
|  376   F(HasFastSmiOrObjectElements, 1, 1)                  \ |  379   F(HasFastSmiOrObjectElements, 1, 1)                                 \ | 
|  377   F(HasFastObjectElements, 1, 1)                       \ |  380   F(HasFastObjectElements, 1, 1)                                      \ | 
|  378   F(HasFastDoubleElements, 1, 1)                       \ |  381   F(HasFastDoubleElements, 1, 1)                                      \ | 
|  379   F(HasFastHoleyElements, 1, 1)                        \ |  382   F(HasFastHoleyElements, 1, 1)                                       \ | 
|  380   F(HasDictionaryElements, 1, 1)                       \ |  383   F(HasDictionaryElements, 1, 1)                                      \ | 
|  381   F(HasSloppyArgumentsElements, 1, 1)                  \ |  384   F(HasSloppyArgumentsElements, 1, 1)                                 \ | 
|  382   F(HasExternalUint8ClampedElements, 1, 1)             \ |  385   F(HasExternalUint8ClampedElements, 1, 1)                            \ | 
|  383   F(HasExternalArrayElements, 1, 1)                    \ |  386   F(HasExternalArrayElements, 1, 1)                                   \ | 
|  384   F(HasExternalInt8Elements, 1, 1)                     \ |  387   F(HasExternalInt8Elements, 1, 1)                                    \ | 
|  385   F(HasExternalUint8Elements, 1, 1)                    \ |  388   F(HasExternalUint8Elements, 1, 1)                                   \ | 
|  386   F(HasExternalInt16Elements, 1, 1)                    \ |  389   F(HasExternalInt16Elements, 1, 1)                                   \ | 
|  387   F(HasExternalUint16Elements, 1, 1)                   \ |  390   F(HasExternalUint16Elements, 1, 1)                                  \ | 
|  388   F(HasExternalInt32Elements, 1, 1)                    \ |  391   F(HasExternalInt32Elements, 1, 1)                                   \ | 
|  389   F(HasExternalUint32Elements, 1, 1)                   \ |  392   F(HasExternalUint32Elements, 1, 1)                                  \ | 
|  390   F(HasExternalFloat32Elements, 1, 1)                  \ |  393   F(HasExternalFloat32Elements, 1, 1)                                 \ | 
|  391   F(HasExternalFloat64Elements, 1, 1)                  \ |  394   F(HasExternalFloat64Elements, 1, 1)                                 \ | 
|  392   F(HasFixedUint8ClampedElements, 1, 1)                \ |  395   F(HasFixedUint8ClampedElements, 1, 1)                               \ | 
|  393   F(HasFixedInt8Elements, 1, 1)                        \ |  396   F(HasFixedInt8Elements, 1, 1)                                       \ | 
|  394   F(HasFixedUint8Elements, 1, 1)                       \ |  397   F(HasFixedUint8Elements, 1, 1)                                      \ | 
|  395   F(HasFixedInt16Elements, 1, 1)                       \ |  398   F(HasFixedInt16Elements, 1, 1)                                      \ | 
|  396   F(HasFixedUint16Elements, 1, 1)                      \ |  399   F(HasFixedUint16Elements, 1, 1)                                     \ | 
|  397   F(HasFixedInt32Elements, 1, 1)                       \ |  400   F(HasFixedInt32Elements, 1, 1)                                      \ | 
|  398   F(HasFixedUint32Elements, 1, 1)                      \ |  401   F(HasFixedUint32Elements, 1, 1)                                     \ | 
|  399   F(HasFixedFloat32Elements, 1, 1)                     \ |  402   F(HasFixedFloat32Elements, 1, 1)                                    \ | 
|  400   F(HasFixedFloat64Elements, 1, 1)                     \ |  403   F(HasFixedFloat64Elements, 1, 1)                                    \ | 
|  401   F(HasFastProperties, 1, 1)                           \ |  404   F(HasFastProperties, 1, 1)                                          \ | 
|  402   F(TransitionElementsKind, 2, 1)                      \ |  405   F(TransitionElementsKind, 2, 1)                                     \ | 
|  403   F(HaveSameMap, 2, 1)                                 \ |  406   F(HaveSameMap, 2, 1)                                                \ | 
|  404   F(IsJSGlobalProxy, 1, 1) |  407   F(IsJSGlobalProxy, 1, 1)                                            \ | 
|  405  |  408   F(ForInInit, 2, 2)             /* TODO(turbofan): Only temporary */ \ | 
|  406  |  409   F(ForInNext, 4, 2)             /* TODO(turbofan): Only temporary */ \ | 
|  407 #define RUNTIME_FUNCTION_LIST_ALWAYS_3(F)  \ |  410   F(ForInCacheArrayLength, 2, 1) /* TODO(turbofan): Only temporary */ | 
|  408   /* String and Regexp */                  \ |  411  | 
|  409   F(NumberToStringRT, 1, 1)                \ |  412  | 
|  410   F(RegExpConstructResult, 3, 1)           \ |  413 #define RUNTIME_FUNCTION_LIST_ALWAYS_3(F)                            \ | 
|  411   F(RegExpExecRT, 4, 1)                    \ |  414   /* String and Regexp */                                            \ | 
|  412   F(StringAdd, 2, 1)                       \ |  415   F(NumberToStringRT, 1, 1)                                          \ | 
|  413   F(SubString, 3, 1)                       \ |  416   F(RegExpConstructResult, 3, 1)                                     \ | 
|  414   F(InternalizeString, 1, 1)               \ |  417   F(RegExpExecRT, 4, 1)                                              \ | 
|  415   F(StringCompare, 2, 1)                   \ |  418   F(StringAdd, 2, 1)                                                 \ | 
|  416   F(StringCharCodeAtRT, 2, 1)              \ |  419   F(SubString, 3, 1)                                                 \ | 
|  417   F(GetFromCache, 2, 1)                    \ |  420   F(InternalizeString, 1, 1)                                         \ | 
|  418                                            \ |  421   F(StringCompare, 2, 1)                                             \ | 
|  419   /* Compilation */                        \ |  422   F(StringCharCodeAtRT, 2, 1)                                        \ | 
|  420   F(CompileUnoptimized, 1, 1)              \ |  423   F(GetFromCache, 2, 1)                                              \ | 
|  421   F(CompileOptimized, 2, 1)                \ |  424                                                                      \ | 
|  422   F(TryInstallOptimizedCode, 1, 1)         \ |  425   /* Compilation */                                                  \ | 
|  423   F(NotifyDeoptimized, 1, 1)               \ |  426   F(CompileUnoptimized, 1, 1)                                        \ | 
|  424   F(NotifyStubFailure, 0, 1)               \ |  427   F(CompileOptimized, 2, 1)                                          \ | 
|  425                                            \ |  428   F(TryInstallOptimizedCode, 1, 1)                                   \ | 
|  426   /* Utilities */                          \ |  429   F(NotifyDeoptimized, 1, 1)                                         \ | 
|  427   F(AllocateInNewSpace, 1, 1)              \ |  430   F(NotifyStubFailure, 0, 1)                                         \ | 
|  428   F(AllocateInTargetSpace, 2, 1)           \ |  431                                                                      \ | 
|  429   F(AllocateHeapNumber, 0, 1)              \ |  432   /* Utilities */                                                    \ | 
|  430   F(NumberToSmi, 1, 1)                     \ |  433   F(AllocateInNewSpace, 1, 1)                                        \ | 
|  431   F(NumberToStringSkipCache, 1, 1)         \ |  434   F(AllocateInTargetSpace, 2, 1)                                     \ | 
|  432                                            \ |  435   F(AllocateHeapNumber, 0, 1)                                        \ | 
|  433   F(NewSloppyArguments, 3, 1)              \ |  436   F(NumberToSmi, 1, 1)                                               \ | 
|  434   F(NewStrictArguments, 3, 1)              \ |  437   F(NumberToStringSkipCache, 1, 1)                                   \ | 
|  435                                            \ |  438                                                                      \ | 
|  436   /* Harmony generators */                 \ |  439   F(NewArguments, 1, 1) /* TODO(turbofan): Only temporary */         \ | 
|  437   F(CreateJSGeneratorObject, 0, 1)         \ |  440   F(NewSloppyArguments, 3, 1)                                        \ | 
|  438   F(SuspendJSGeneratorObject, 1, 1)        \ |  441   F(NewStrictArguments, 3, 1)                                        \ | 
|  439   F(ResumeJSGeneratorObject, 3, 1)         \ |  442                                                                      \ | 
|  440   F(ThrowGeneratorStateError, 1, 1)        \ |  443   /* Harmony generators */                                           \ | 
|  441                                            \ |  444   F(CreateJSGeneratorObject, 0, 1)                                   \ | 
|  442   /* Arrays */                             \ |  445   F(SuspendJSGeneratorObject, 1, 1)                                  \ | 
|  443   F(ArrayConstructor, -1, 1)               \ |  446   F(ResumeJSGeneratorObject, 3, 1)                                   \ | 
|  444   F(InternalArrayConstructor, -1, 1)       \ |  447   F(ThrowGeneratorStateError, 1, 1)                                  \ | 
|  445                                            \ |  448                                                                      \ | 
|  446   /* Literals */                           \ |  449   /* Arrays */                                                       \ | 
|  447   F(MaterializeRegExpLiteral, 4, 1)        \ |  450   F(ArrayConstructor, -1, 1)                                         \ | 
|  448   F(CreateObjectLiteral, 4, 1)             \ |  451   F(InternalArrayConstructor, -1, 1)                                 \ | 
|  449   F(CreateArrayLiteral, 4, 1)              \ |  452                                                                      \ | 
|  450   F(CreateArrayLiteralStubBailout, 3, 1)   \ |  453   /* Literals */                                                     \ | 
|  451                                            \ |  454   F(MaterializeRegExpLiteral, 4, 1)                                  \ | 
|  452   /* Statements */                         \ |  455   F(CreateObjectLiteral, 4, 1)                                       \ | 
|  453   F(NewClosure, 3, 1)                      \ |  456   F(CreateArrayLiteral, 4, 1)                                        \ | 
|  454   F(NewClosureFromStubFailure, 1, 1)       \ |  457   F(CreateArrayLiteralStubBailout, 3, 1)                             \ | 
|  455   F(NewObject, 1, 1)                       \ |  458                                                                      \ | 
|  456   F(NewObjectWithAllocationSite, 2, 1)     \ |  459   /* Statements */                                                   \ | 
|  457   F(FinalizeInstanceSize, 1, 1)            \ |  460   F(NewClosure, 3, 1)                                                \ | 
|  458   F(Throw, 1, 1)                           \ |  461   F(NewClosureFromStubFailure, 1, 1)                                 \ | 
|  459   F(ReThrow, 1, 1)                         \ |  462   F(NewObject, 1, 1)                                                 \ | 
|  460   F(ThrowReferenceError, 1, 1)             \ |  463   F(NewObjectWithAllocationSite, 2, 1)                               \ | 
|  461   F(ThrowNotDateError, 0, 1)               \ |  464   F(FinalizeInstanceSize, 1, 1)                                      \ | 
|  462   F(StackGuard, 0, 1)                      \ |  465   F(Throw, 1, 1)                                                     \ | 
|  463   F(Interrupt, 0, 1)                       \ |  466   F(ReThrow, 1, 1)                                                   \ | 
|  464   F(PromoteScheduledException, 0, 1)       \ |  467   F(ThrowReferenceError, 1, 1)                                       \ | 
|  465                                            \ |  468   F(ThrowNotDateError, 0, 1)                                         \ | 
|  466   /* Contexts */                           \ |  469   F(StackGuard, 0, 1)                                                \ | 
|  467   F(NewGlobalContext, 2, 1)                \ |  470   F(Interrupt, 0, 1)                                                 \ | 
|  468   F(NewFunctionContext, 1, 1)              \ |  471   F(PromoteScheduledException, 0, 1)                                 \ | 
|  469   F(PushWithContext, 2, 1)                 \ |  472                                                                      \ | 
|  470   F(PushCatchContext, 3, 1)                \ |  473   /* Contexts */                                                     \ | 
|  471   F(PushBlockContext, 2, 1)                \ |  474   F(NewGlobalContext, 2, 1)                                          \ | 
|  472   F(PushModuleContext, 2, 1)               \ |  475   F(NewFunctionContext, 1, 1)                                        \ | 
|  473   F(DeleteLookupSlot, 2, 1)                \ |  476   F(PushWithContext, 2, 1)                                           \ | 
|  474   F(LoadLookupSlot, 2, 2)                  \ |  477   F(PushCatchContext, 3, 1)                                          \ | 
|  475   F(LoadLookupSlotNoReferenceError, 2, 2)  \ |  478   F(PushBlockContext, 2, 1)                                          \ | 
|  476   F(StoreLookupSlot, 4, 1)                 \ |  479   F(PushModuleContext, 2, 1)                                         \ | 
|  477                                            \ |  480   F(DeleteLookupSlot, 2, 1)                                          \ | 
|  478   /* Declarations and initialization */    \ |  481   F(LoadLookupSlot, 2, 2)                                            \ | 
|  479   F(DeclareGlobals, 3, 1)                  \ |  482   F(LoadContextRelative, 3, 1) /* TODO(turbofan): Only temporary */  \ | 
|  480   F(DeclareModules, 1, 1)                  \ |  483   F(LoadLookupSlotNoReferenceError, 2, 2)                            \ | 
|  481   F(DeclareLookupSlot, 4, 1)               \ |  484   F(StoreLookupSlot, 4, 1)                                           \ | 
|  482   F(InitializeConstGlobal, 2, 1)           \ |  485   F(StoreContextRelative, 4, 1) /* TODO(turbofan): Only temporary */ \ | 
|  483   F(InitializeLegacyConstLookupSlot, 3, 1) \ |  486                                                                      \ | 
|  484                                            \ |  487   /* Declarations and initialization */                              \ | 
|  485   /* Eval */                               \ |  488   F(DeclareGlobals, 3, 1)                                            \ | 
|  486   F(ResolvePossiblyDirectEval, 5, 2)       \ |  489   F(DeclareModules, 1, 1)                                            \ | 
|  487                                            \ |  490   F(DeclareLookupSlot, 4, 1)                                         \ | 
|  488   /* Maths */                              \ |  491   F(InitializeConstGlobal, 2, 1)                                     \ | 
|  489   F(MathPowSlow, 2, 1)                     \ |  492   F(InitializeLegacyConstLookupSlot, 3, 1)                           \ | 
 |  493                                                                      \ | 
 |  494   /* Eval */                                                         \ | 
 |  495   F(ResolvePossiblyDirectEval, 5, 2)                                 \ | 
 |  496                                                                      \ | 
 |  497   /* Maths */                                                        \ | 
 |  498   F(MathPowSlow, 2, 1)                                               \ | 
|  490   F(MathPowRT, 2, 1) |  499   F(MathPowRT, 2, 1) | 
|  491  |  500  | 
|  492  |  501  | 
|  493 #define RUNTIME_FUNCTION_LIST_DEBUGGER(F) \ |  502 #define RUNTIME_FUNCTION_LIST_DEBUGGER(F) \ | 
|  494   /* Debugger support*/ \ |  503   /* Debugger support*/ \ | 
|  495   F(DebugBreak, 0, 1) \ |  504   F(DebugBreak, 0, 1) \ | 
|  496   F(SetDebugEventListener, 2, 1) \ |  505   F(SetDebugEventListener, 2, 1) \ | 
|  497   F(Break, 0, 1) \ |  506   F(Break, 0, 1) \ | 
|  498   F(DebugGetPropertyDetails, 2, 1) \ |  507   F(DebugGetPropertyDetails, 2, 1) \ | 
|  499   F(DebugGetProperty, 2, 1) \ |  508   F(DebugGetProperty, 2, 1) \ | 
| (...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  783   // StringDictionary. |  792   // StringDictionary. | 
|  784   static void InitializeIntrinsicFunctionNames(Isolate* isolate, |  793   static void InitializeIntrinsicFunctionNames(Isolate* isolate, | 
|  785                                                Handle<NameDictionary> dict); |  794                                                Handle<NameDictionary> dict); | 
|  786  |  795  | 
|  787   // Get the intrinsic function with the given name, which must be internalized. |  796   // Get the intrinsic function with the given name, which must be internalized. | 
|  788   static const Function* FunctionForName(Handle<String> name); |  797   static const Function* FunctionForName(Handle<String> name); | 
|  789  |  798  | 
|  790   // Get the intrinsic function with the given FunctionId. |  799   // Get the intrinsic function with the given FunctionId. | 
|  791   static const Function* FunctionForId(FunctionId id); |  800   static const Function* FunctionForId(FunctionId id); | 
|  792  |  801  | 
 |  802   // Get the intrinsic function with the given function entry address. | 
 |  803   static const Function* FunctionForEntry(Address ref); | 
 |  804  | 
|  793   // General-purpose helper functions for runtime system. |  805   // General-purpose helper functions for runtime system. | 
|  794   static int StringMatch(Isolate* isolate, |  806   static int StringMatch(Isolate* isolate, | 
|  795                          Handle<String> sub, |  807                          Handle<String> sub, | 
|  796                          Handle<String> pat, |  808                          Handle<String> pat, | 
|  797                          int index); |  809                          int index); | 
|  798  |  810  | 
|  799   static bool IsUpperCaseChar(RuntimeState* runtime_state, uint16_t ch); |  811   static bool IsUpperCaseChar(RuntimeState* runtime_state, uint16_t ch); | 
|  800  |  812  | 
|  801   // TODO(1240886): Some of the following methods are *not* handle safe, but |  813   // TODO(1240886): Some of the following methods are *not* handle safe, but | 
|  802   // accept handle arguments. This seems fragile. |  814   // accept handle arguments. This seems fragile. | 
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  890 class AllocateDoubleAlignFlag:  public BitField<bool,            0, 1> {}; |  902 class AllocateDoubleAlignFlag:  public BitField<bool,            0, 1> {}; | 
|  891 class AllocateTargetSpace:      public BitField<AllocationSpace, 1, 3> {}; |  903 class AllocateTargetSpace:      public BitField<AllocationSpace, 1, 3> {}; | 
|  892  |  904  | 
|  893 class DeclareGlobalsEvalFlag:   public BitField<bool,       0, 1> {}; |  905 class DeclareGlobalsEvalFlag:   public BitField<bool,       0, 1> {}; | 
|  894 class DeclareGlobalsNativeFlag: public BitField<bool,       1, 1> {}; |  906 class DeclareGlobalsNativeFlag: public BitField<bool,       1, 1> {}; | 
|  895 class DeclareGlobalsStrictMode: public BitField<StrictMode, 2, 1> {}; |  907 class DeclareGlobalsStrictMode: public BitField<StrictMode, 2, 1> {}; | 
|  896  |  908  | 
|  897 } }  // namespace v8::internal |  909 } }  // namespace v8::internal | 
|  898  |  910  | 
|  899 #endif  // V8_RUNTIME_H_ |  911 #endif  // V8_RUNTIME_H_ | 
| OLD | NEW |