Upstream version 11.39.250.0
[platform/framework/web/crosswalk.git] / src / v8 / src / runtime.h
index 93185cc..477f8bd 100644 (file)
@@ -21,166 +21,243 @@ namespace internal {
 // WARNING: RUNTIME_FUNCTION_LIST_ALWAYS_* is a very large macro that caused
 // MSVC Intellisense to crash.  It was broken into two macros to work around
 // this problem. Please avoid large recursive macros whenever possible.
-#define RUNTIME_FUNCTION_LIST_ALWAYS_1(F)                   \
-  /* Property access */                                     \
-  F(GetProperty, 2, 1)                                      \
-  F(KeyedGetProperty, 2, 1)                                 \
-  F(DeleteProperty, 3, 1)                                   \
-  F(HasOwnProperty, 2, 1)                                   \
-  F(HasProperty, 2, 1)                                      \
-  F(HasElement, 2, 1)                                       \
-  F(IsPropertyEnumerable, 2, 1)                             \
-  F(GetPropertyNames, 1, 1)                                 \
-  F(GetPropertyNamesFast, 1, 1)                             \
-  F(GetOwnPropertyNames, 2, 1)                              \
-  F(GetOwnElementNames, 1, 1)                               \
-  F(GetInterceptorInfo, 1, 1)                               \
-  F(GetNamedInterceptorPropertyNames, 1, 1)                 \
-  F(GetIndexedInterceptorElementNames, 1, 1)                \
-  F(GetArgumentsProperty, 1, 1)                             \
-  F(ToFastProperties, 1, 1)                                 \
-  F(FinishArrayPrototypeSetup, 1, 1)                        \
-  F(SpecialArrayFunctions, 0, 1)                            \
-  F(IsSloppyModeFunction, 1, 1)                             \
-  F(GetDefaultReceiver, 1, 1)                               \
-                                                            \
-  F(GetPrototype, 1, 1)                                     \
-  F(SetPrototype, 2, 1)                                     \
-  F(InternalSetPrototype, 2, 1)                             \
-  F(IsInPrototypeChain, 2, 1)                               \
-                                                            \
-  F(GetOwnProperty, 2, 1)                                   \
-                                                            \
-  F(IsExtensible, 1, 1)                                     \
-  F(PreventExtensions, 1, 1)                                \
-                                                            \
-  /* Utilities */                                           \
-  F(CheckIsBootstrapping, 0, 1)                             \
-  F(GetRootNaN, 0, 1)                                       \
-  F(Call, -1 /* >= 2 */, 1)                                 \
-  F(Apply, 5, 1)                                            \
-  F(GetFunctionDelegate, 1, 1)                              \
-  F(GetConstructorDelegate, 1, 1)                           \
-  F(DeoptimizeFunction, 1, 1)                               \
-  F(ClearFunctionTypeFeedback, 1, 1)                        \
-  F(RunningInSimulator, 0, 1)                               \
-  F(IsConcurrentRecompilationSupported, 0, 1)               \
-  F(OptimizeFunctionOnNextCall, -1, 1)                      \
-  F(NeverOptimizeFunction, 1, 1)                            \
-  F(GetOptimizationStatus, -1, 1)                           \
-  F(IsOptimized, 0, 1) /* TODO(turbofan): Only temporary */ \
-  F(GetOptimizationCount, 1, 1)                             \
-  F(UnblockConcurrentRecompilation, 0, 1)                   \
-  F(CompileForOnStackReplacement, 1, 1)                     \
-  F(SetAllocationTimeout, -1 /* 2 || 3 */, 1)               \
-  F(SetNativeFlag, 1, 1)                                    \
-  F(SetInlineBuiltinFlag, 1, 1)                             \
-  F(StoreArrayLiteralElement, 5, 1)                         \
-  F(DebugPrepareStepInIfStepping, 1, 1)                     \
-  F(DebugPushPromise, 1, 1)                                 \
-  F(DebugPopPromise, 0, 1)                                  \
-  F(DebugPromiseEvent, 1, 1)                                \
-  F(DebugPromiseRejectEvent, 2, 1)                          \
-  F(DebugAsyncTaskEvent, 1, 1)                              \
-  F(FlattenString, 1, 1)                                    \
-  F(LoadMutableDouble, 2, 1)                                \
-  F(TryMigrateInstance, 1, 1)                               \
-  F(NotifyContextDisposed, 0, 1)                            \
-                                                            \
-  /* Array join support */                                  \
-  F(PushIfAbsent, 2, 1)                                     \
-  F(ArrayConcat, 1, 1)                                      \
-                                                            \
-  /* Conversions */                                         \
-  F(ToBool, 1, 1)                                           \
-  F(Typeof, 1, 1)                                           \
-                                                            \
-  F(Booleanize, 2, 1) /* TODO(turbofan): Only temporary */  \
-                                                            \
-  F(StringToNumber, 1, 1)                                   \
-  F(StringParseInt, 2, 1)                                   \
-  F(StringParseFloat, 1, 1)                                 \
-  F(StringToLowerCase, 1, 1)                                \
-  F(StringToUpperCase, 1, 1)                                \
-  F(StringSplit, 3, 1)                                      \
-  F(CharFromCode, 1, 1)                                     \
-  F(URIEscape, 1, 1)                                        \
-  F(URIUnescape, 1, 1)                                      \
-                                                            \
-  F(NumberToInteger, 1, 1)                                  \
-  F(NumberToIntegerMapMinusZero, 1, 1)                      \
-  F(NumberToJSUint32, 1, 1)                                 \
-  F(NumberToJSInt32, 1, 1)                                  \
-                                                            \
-  /* Arithmetic operations */                               \
-  F(NumberAdd, 2, 1)                                        \
-  F(NumberSub, 2, 1)                                        \
-  F(NumberMul, 2, 1)                                        \
-  F(NumberDiv, 2, 1)                                        \
-  F(NumberMod, 2, 1)                                        \
-  F(NumberUnaryMinus, 1, 1)                                 \
-  F(NumberImul, 2, 1)                                       \
-                                                            \
-  F(StringBuilderConcat, 3, 1)                              \
-  F(StringBuilderJoin, 3, 1)                                \
-  F(SparseJoinWithSeparator, 3, 1)                          \
-                                                            \
-  /* Bit operations */                                      \
-  F(NumberOr, 2, 1)                                         \
-  F(NumberAnd, 2, 1)                                        \
-  F(NumberXor, 2, 1)                                        \
-                                                            \
-  F(NumberShl, 2, 1)                                        \
-  F(NumberShr, 2, 1)                                        \
-  F(NumberSar, 2, 1)                                        \
-                                                            \
-  /* Comparisons */                                         \
-  F(NumberEquals, 2, 1)                                     \
-  F(StringEquals, 2, 1)                                     \
-                                                            \
-  F(NumberCompare, 3, 1)                                    \
-  F(SmiLexicographicCompare, 2, 1)                          \
-                                                            \
-  /* Math */                                                \
-  F(MathAcos, 1, 1)                                         \
-  F(MathAsin, 1, 1)                                         \
-  F(MathAtan, 1, 1)                                         \
-  F(MathFloorRT, 1, 1)                                      \
-  F(MathAtan2, 2, 1)                                        \
-  F(MathExpRT, 1, 1)                                        \
-  F(RoundNumber, 1, 1)                                      \
-  F(MathFround, 1, 1)                                       \
-  F(RemPiO2, 1, 1)                                          \
-                                                            \
-  /* Regular expressions */                                 \
-  F(RegExpCompile, 3, 1)                                    \
-  F(RegExpExecMultiple, 4, 1)                               \
-  F(RegExpInitializeObject, 5, 1)                           \
-                                                            \
-  /* JSON */                                                \
-  F(ParseJson, 1, 1)                                        \
-  F(BasicJSONStringify, 1, 1)                               \
-  F(QuoteJSONString, 1, 1)                                  \
-                                                            \
-  /* Strings */                                             \
-  F(StringIndexOf, 3, 1)                                    \
-  F(StringLastIndexOf, 3, 1)                                \
-  F(StringLocaleCompare, 2, 1)                              \
-  F(StringReplaceGlobalRegExpWithString, 4, 1)              \
-  F(StringReplaceOneCharWithString, 3, 1)                   \
-  F(StringMatch, 3, 1)                                      \
-  F(StringTrim, 3, 1)                                       \
-  F(StringToArray, 2, 1)                                    \
-  F(NewStringWrapper, 1, 1)                                 \
-  F(NewString, 2, 1)                                        \
-  F(TruncateString, 2, 1)                                   \
-                                                            \
-  /* Numbers */                                             \
-  F(NumberToRadixString, 2, 1)                              \
-  F(NumberToFixed, 2, 1)                                    \
-  F(NumberToExponential, 2, 1)                              \
-  F(NumberToPrecision, 2, 1)                                \
-  F(IsValidSmi, 1, 1)
+#define RUNTIME_FUNCTION_LIST_ALWAYS_1(F)                  \
+  /* Property access */                                    \
+  F(GetProperty, 2, 1)                                     \
+  F(KeyedGetProperty, 2, 1)                                \
+  F(DeleteProperty, 3, 1)                                  \
+  F(HasOwnProperty, 2, 1)                                  \
+  F(HasProperty, 2, 1)                                     \
+  F(HasElement, 2, 1)                                      \
+  F(IsPropertyEnumerable, 2, 1)                            \
+  F(GetPropertyNames, 1, 1)                                \
+  F(GetPropertyNamesFast, 1, 1)                            \
+  F(GetOwnPropertyNames, 2, 1)                             \
+  F(GetOwnElementNames, 1, 1)                              \
+  F(GetInterceptorInfo, 1, 1)                              \
+  F(GetNamedInterceptorPropertyNames, 1, 1)                \
+  F(GetIndexedInterceptorElementNames, 1, 1)               \
+  F(GetArgumentsProperty, 1, 1)                            \
+  F(ToFastProperties, 1, 1)                                \
+  F(FinishArrayPrototypeSetup, 1, 1)                       \
+  F(SpecialArrayFunctions, 0, 1)                           \
+  F(IsSloppyModeFunction, 1, 1)                            \
+  F(GetDefaultReceiver, 1, 1)                              \
+                                                           \
+  F(GetPrototype, 1, 1)                                    \
+  F(SetPrototype, 2, 1)                                    \
+  F(InternalSetPrototype, 2, 1)                            \
+  F(IsInPrototypeChain, 2, 1)                              \
+                                                           \
+  F(GetOwnProperty, 2, 1)                                  \
+                                                           \
+  F(IsExtensible, 1, 1)                                    \
+  F(PreventExtensions, 1, 1)                               \
+                                                           \
+  /* Utilities */                                          \
+  F(CheckIsBootstrapping, 0, 1)                            \
+  F(GetRootNaN, 0, 1)                                      \
+  F(Call, -1 /* >= 2 */, 1)                                \
+  F(Apply, 5, 1)                                           \
+  F(GetFunctionDelegate, 1, 1)                             \
+  F(GetConstructorDelegate, 1, 1)                          \
+  F(DeoptimizeFunction, 1, 1)                              \
+  F(ClearFunctionTypeFeedback, 1, 1)                       \
+  F(RunningInSimulator, 0, 1)                              \
+  F(IsConcurrentRecompilationSupported, 0, 1)              \
+  F(OptimizeFunctionOnNextCall, -1, 1)                     \
+  F(NeverOptimizeFunction, 1, 1)                           \
+  F(GetOptimizationStatus, -1, 1)                          \
+  F(GetOptimizationCount, 1, 1)                            \
+  F(UnblockConcurrentRecompilation, 0, 1)                  \
+  F(CompileForOnStackReplacement, 1, 1)                    \
+  F(SetAllocationTimeout, -1 /* 2 || 3 */, 1)              \
+  F(SetNativeFlag, 1, 1)                                   \
+  F(SetInlineBuiltinFlag, 1, 1)                            \
+  F(StoreArrayLiteralElement, 5, 1)                        \
+  F(DebugPrepareStepInIfStepping, 1, 1)                    \
+  F(DebugPushPromise, 1, 1)                                \
+  F(DebugPopPromise, 0, 1)                                 \
+  F(DebugPromiseEvent, 1, 1)                               \
+  F(DebugPromiseRejectEvent, 2, 1)                         \
+  F(DebugAsyncTaskEvent, 1, 1)                             \
+  F(FlattenString, 1, 1)                                   \
+  F(LoadMutableDouble, 2, 1)                               \
+  F(TryMigrateInstance, 1, 1)                              \
+  F(NotifyContextDisposed, 0, 1)                           \
+                                                           \
+  /* Array join support */                                 \
+  F(PushIfAbsent, 2, 1)                                    \
+  F(ArrayConcat, 1, 1)                                     \
+                                                           \
+  /* Conversions */                                        \
+  F(ToBool, 1, 1)                                          \
+  F(Typeof, 1, 1)                                          \
+                                                           \
+  F(Booleanize, 2, 1) /* TODO(turbofan): Only temporary */ \
+                                                           \
+  F(StringToNumber, 1, 1)                                  \
+  F(StringParseInt, 2, 1)                                  \
+  F(StringParseFloat, 1, 1)                                \
+  F(StringToLowerCase, 1, 1)                               \
+  F(StringToUpperCase, 1, 1)                               \
+  F(StringSplit, 3, 1)                                     \
+  F(CharFromCode, 1, 1)                                    \
+  F(URIEscape, 1, 1)                                       \
+  F(URIUnescape, 1, 1)                                     \
+                                                           \
+  F(NumberToInteger, 1, 1)                                 \
+  F(NumberToIntegerMapMinusZero, 1, 1)                     \
+  F(NumberToJSUint32, 1, 1)                                \
+  F(NumberToJSInt32, 1, 1)                                 \
+                                                           \
+  /* Arithmetic operations */                              \
+  F(NumberAdd, 2, 1)                                       \
+  F(NumberSub, 2, 1)                                       \
+  F(NumberMul, 2, 1)                                       \
+  F(NumberDiv, 2, 1)                                       \
+  F(NumberMod, 2, 1)                                       \
+  F(NumberUnaryMinus, 1, 1)                                \
+  F(NumberImul, 2, 1)                                      \
+                                                           \
+  F(StringBuilderConcat, 3, 1)                             \
+  F(StringBuilderJoin, 3, 1)                               \
+  F(SparseJoinWithSeparator, 3, 1)                         \
+                                                           \
+  /* Bit operations */                                     \
+  F(NumberOr, 2, 1)                                        \
+  F(NumberAnd, 2, 1)                                       \
+  F(NumberXor, 2, 1)                                       \
+                                                           \
+  F(NumberShl, 2, 1)                                       \
+  F(NumberShr, 2, 1)                                       \
+  F(NumberSar, 2, 1)                                       \
+                                                           \
+  /* Comparisons */                                        \
+  F(NumberEquals, 2, 1)                                    \
+  F(StringEquals, 2, 1)                                    \
+                                                           \
+  F(NumberCompare, 3, 1)                                   \
+  F(SmiLexicographicCompare, 2, 1)                         \
+                                                           \
+  /* Math */                                               \
+  F(MathAcos, 1, 1)                                        \
+  F(MathAsin, 1, 1)                                        \
+  F(MathAtan, 1, 1)                                        \
+  F(MathFloorRT, 1, 1)                                     \
+  F(MathAtan2, 2, 1)                                       \
+  F(MathExpRT, 1, 1)                                       \
+  F(RoundNumber, 1, 1)                                     \
+  F(MathFround, 1, 1)                                      \
+  F(RemPiO2, 1, 1)                                         \
+                                                           \
+  /* Float32x4 and Int32x4 */                              \
+  F(AllocateFloat32x4, 0, 1)                               \
+  F(AllocateFloat64x2, 0, 1)                               \
+  F(AllocateInt32x4, 0, 1)                                 \
+                                                           \
+  /* SIMD */                                               \
+  F(Float32x4Abs, 1, 1)                                    \
+  F(Float32x4BitsToInt32x4, 1, 1)                          \
+  F(Float32x4Neg, 1, 1)                                    \
+  F(Float32x4Reciprocal, 1, 1)                             \
+  F(Float32x4ReciprocalSqrt, 1, 1)                         \
+  F(Float32x4Sqrt, 1, 1)                                   \
+  F(Float32x4ToInt32x4, 1, 1)                              \
+  F(Float32x4Add, 2, 1)                                    \
+  F(Float32x4Div, 2, 1)                                    \
+  F(Float32x4Max, 2, 1)                                    \
+  F(Float32x4Min, 2, 1)                                    \
+  F(Float32x4Mul, 2, 1)                                    \
+  F(Float32x4Sub, 2, 1)                                    \
+  F(Float32x4Equal, 2, 1)                                  \
+  F(Float32x4NotEqual, 2, 1)                               \
+  F(Float32x4GreaterThanOrEqual, 2, 1)                     \
+  F(Float32x4GreaterThan, 2, 1)                            \
+  F(Float32x4LessThan, 2, 1)                               \
+  F(Float32x4LessThanOrEqual, 2, 1)                        \
+  F(Float32x4Shuffle, 2, 1)                                \
+  F(Float32x4Scale, 2, 1)                                  \
+  F(Float32x4WithX, 2, 1)                                  \
+  F(Float32x4WithY, 2, 1)                                  \
+  F(Float32x4WithZ, 2, 1)                                  \
+  F(Float32x4WithW, 2, 1)                                  \
+  F(Float32x4Clamp, 3, 1)                                  \
+  F(Float32x4ShuffleMix, 3, 1)                             \
+  F(Float32x4Select, 3, 1)                                 \
+  F(Float64x2Abs, 1, 1)                                    \
+  F(Float64x2Neg, 1, 1)                                    \
+  F(Float64x2Sqrt, 1, 1)                                   \
+  F(Float64x2Add, 2, 1)                                    \
+  F(Float64x2Div, 2, 1)                                    \
+  F(Float64x2Max, 2, 1)                                    \
+  F(Float64x2Min, 2, 1)                                    \
+  F(Float64x2Mul, 2, 1)                                    \
+  F(Float64x2Sub, 2, 1)                                    \
+  F(Float64x2Scale, 2, 1)                                  \
+  F(Float64x2WithX, 2, 1)                                  \
+  F(Float64x2WithY, 2, 1)                                  \
+  F(Float64x2Clamp, 3, 1)                                  \
+  F(Int32x4BitsToFloat32x4, 1, 1)                          \
+  F(Int32x4Neg, 1, 1)                                      \
+  F(Int32x4Not, 1, 1)                                      \
+  F(Int32x4ToFloat32x4, 1, 1)                              \
+  F(Int32x4And, 2, 1)                                      \
+  F(Int32x4Or, 2, 1)                                       \
+  F(Int32x4Xor, 2, 1)                                      \
+  F(Int32x4Add, 2, 1)                                      \
+  F(Int32x4Sub, 2, 1)                                      \
+  F(Int32x4Mul, 2, 1)                                      \
+  F(Int32x4Shuffle, 2, 1)                                  \
+  F(Int32x4WithX, 2, 1)                                    \
+  F(Int32x4WithY, 2, 1)                                    \
+  F(Int32x4WithZ, 2, 1)                                    \
+  F(Int32x4WithW, 2, 1)                                    \
+  F(Int32x4WithFlagX, 2, 1)                                \
+  F(Int32x4WithFlagY, 2, 1)                                \
+  F(Int32x4WithFlagZ, 2, 1)                                \
+  F(Int32x4WithFlagW, 2, 1)                                \
+  F(Int32x4GreaterThan, 2, 1)                              \
+  F(Int32x4Equal, 2, 1)                                    \
+  F(Int32x4LessThan, 2, 1)                                 \
+  F(Int32x4Select, 3, 1)                                   \
+                                                           \
+  /* Regular expressions */                                \
+  F(RegExpCompile, 3, 1)                                   \
+  F(RegExpExecMultiple, 4, 1)                              \
+  F(RegExpInitializeObject, 6, 1)                          \
+                                                           \
+  /* JSON */                                               \
+  F(ParseJson, 1, 1)                                       \
+  F(BasicJSONStringify, 1, 1)                              \
+  F(QuoteJSONString, 1, 1)                                 \
+                                                           \
+  /* Strings */                                            \
+  F(StringIndexOf, 3, 1)                                   \
+  F(StringLastIndexOf, 3, 1)                               \
+  F(StringLocaleCompare, 2, 1)                             \
+  F(StringReplaceGlobalRegExpWithString, 4, 1)             \
+  F(StringReplaceOneCharWithString, 3, 1)                  \
+  F(StringMatch, 3, 1)                                     \
+  F(StringTrim, 3, 1)                                      \
+  F(StringToArray, 2, 1)                                   \
+  F(NewStringWrapper, 1, 1)                                \
+  F(NewString, 2, 1)                                       \
+  F(TruncateString, 2, 1)                                  \
+                                                           \
+  /* Numbers */                                            \
+  F(NumberToRadixString, 2, 1)                             \
+  F(NumberToFixed, 2, 1)                                   \
+  F(NumberToExponential, 2, 1)                             \
+  F(NumberToPrecision, 2, 1)                               \
+  F(IsValidSmi, 1, 1)                                      \
+                                                           \
+  /* Classes support */                                    \
+  F(ToMethod, 2, 1)                                        \
+  F(HomeObjectSymbol, 0, 1)                                \
+  F(ThrowNonMethodError, 0, 1)                             \
+  F(ThrowUnsupportedSuperError, 0, 1)                      \
+  F(LoadFromSuper, 3, 1)
 
 
 #define RUNTIME_FUNCTION_LIST_ALWAYS_2(F)                             \
@@ -194,6 +271,7 @@ namespace internal {
   F(FunctionMarkNameShouldPrintAsAnonymous, 1, 1)                     \
   F(FunctionIsGenerator, 1, 1)                                        \
   F(FunctionIsArrow, 1, 1)                                            \
+  F(FunctionIsConciseMethod, 1, 1)                                    \
   F(FunctionBindArguments, 4, 1)                                      \
   F(BoundFunctionGetBindings, 1, 1)                                   \
   F(FunctionRemovePrototype, 1, 1)                                    \
@@ -206,6 +284,11 @@ namespace internal {
   F(GetScript, 1, 1)                                                  \
   F(CollectStackTrace, 2, 1)                                          \
   F(GetV8Version, 0, 1)                                               \
+  F(GeneratorGetFunction, 1, 1)                                       \
+  F(GeneratorGetContext, 1, 1)                                        \
+  F(GeneratorGetReceiver, 1, 1)                                       \
+  F(GeneratorGetContinuation, 1, 1)                                   \
+  F(GeneratorGetSourcePosition, 1, 1)                                 \
                                                                       \
   F(SetCode, 2, 1)                                                    \
                                                                       \
@@ -224,6 +307,28 @@ namespace internal {
   F(DateSetValue, 3, 1)                                               \
   F(DateCacheVersion, 0, 1)                                           \
                                                                       \
+  /* Float32x4, Float64x2 and Int32x4 */                              \
+  F(CreateFloat32x4, 4, 1)                                            \
+  F(Float32x4GetX, 1, 1)                                              \
+  F(Float32x4GetY, 1, 1)                                              \
+  F(Float32x4GetZ, 1, 1)                                              \
+  F(Float32x4GetW, 1, 1)                                              \
+  F(Float32x4GetSignMask, 1, 1)                                       \
+  F(CreateFloat64x2, 2, 1)                                            \
+  F(Float64x2GetX, 1, 1)                                              \
+  F(Float64x2GetY, 1, 1)                                              \
+  F(Float64x2GetSignMask, 1, 1)                                       \
+  F(CreateInt32x4, 4, 1)                                              \
+  F(Int32x4GetX, 1, 1)                                                \
+  F(Int32x4GetY, 1, 1)                                                \
+  F(Int32x4GetZ, 1, 1)                                                \
+  F(Int32x4GetW, 1, 1)                                                \
+  F(Int32x4GetFlagX, 1, 1)                                            \
+  F(Int32x4GetFlagY, 1, 1)                                            \
+  F(Int32x4GetFlagZ, 1, 1)                                            \
+  F(Int32x4GetFlagW, 1, 1)                                            \
+  F(Int32x4GetSignMask, 1, 1)                                         \
+                                                                      \
   /* Globals */                                                       \
   F(CompileString, 2, 1)                                              \
                                                                       \
@@ -234,6 +339,7 @@ namespace internal {
   F(AddNamedProperty, 4, 1)                                           \
   F(AddPropertyForTemplate, 4, 1)                                     \
   F(SetProperty, 4, 1)                                                \
+  F(AddElement, 4, 1)                                                 \
   F(DefineApiAccessorProperty, 5, 1)                                  \
   F(DefineDataPropertyUnchecked, 4, 1)                                \
   F(DefineAccessorPropertyUnchecked, 5, 1)                            \
@@ -259,7 +365,8 @@ namespace internal {
   /* Harmony symbols */                                               \
   F(CreateSymbol, 1, 1)                                               \
   F(CreatePrivateSymbol, 1, 1)                                        \
-  F(CreateGlobalPrivateSymbol, 1, 1)                                  \
+  F(CreateGlobalPrivateOwnSymbol, 1, 1)                               \
+  F(CreatePrivateOwnSymbol, 1, 1)                                     \
   F(NewSymbolWrapper, 1, 1)                                           \
   F(SymbolDescription, 1, 1)                                          \
   F(SymbolRegistry, 0, 1)                                             \
@@ -394,7 +501,10 @@ namespace internal {
   F(HasExternalInt32Elements, 1, 1)                                   \
   F(HasExternalUint32Elements, 1, 1)                                  \
   F(HasExternalFloat32Elements, 1, 1)                                 \
+  F(HasExternalFloat32x4Elements, 1, 1)                               \
+  F(HasExternalInt32x4Elements, 1, 1)                                 \
   F(HasExternalFloat64Elements, 1, 1)                                 \
+  F(HasExternalFloat64x2Elements, 1, 1)                               \
   F(HasFixedUint8ClampedElements, 1, 1)                               \
   F(HasFixedInt8Elements, 1, 1)                                       \
   F(HasFixedUint8Elements, 1, 1)                                      \
@@ -413,90 +523,90 @@ namespace internal {
   F(ForInCacheArrayLength, 2, 1) /* TODO(turbofan): Only temporary */
 
 
-#define RUNTIME_FUNCTION_LIST_ALWAYS_3(F)                            \
-  /* String and Regexp */                                            \
-  F(NumberToStringRT, 1, 1)                                          \
-  F(RegExpConstructResult, 3, 1)                                     \
-  F(RegExpExecRT, 4, 1)                                              \
-  F(StringAdd, 2, 1)                                                 \
-  F(SubString, 3, 1)                                                 \
-  F(InternalizeString, 1, 1)                                         \
-  F(StringCompare, 2, 1)                                             \
-  F(StringCharCodeAtRT, 2, 1)                                        \
-  F(GetFromCache, 2, 1)                                              \
-                                                                     \
-  /* Compilation */                                                  \
-  F(CompileUnoptimized, 1, 1)                                        \
-  F(CompileOptimized, 2, 1)                                          \
-  F(TryInstallOptimizedCode, 1, 1)                                   \
-  F(NotifyDeoptimized, 1, 1)                                         \
-  F(NotifyStubFailure, 0, 1)                                         \
-                                                                     \
-  /* Utilities */                                                    \
-  F(AllocateInNewSpace, 1, 1)                                        \
-  F(AllocateInTargetSpace, 2, 1)                                     \
-  F(AllocateHeapNumber, 0, 1)                                        \
-  F(NumberToSmi, 1, 1)                                               \
-  F(NumberToStringSkipCache, 1, 1)                                   \
-                                                                     \
-  F(NewArguments, 1, 1) /* TODO(turbofan): Only temporary */         \
-  F(NewSloppyArguments, 3, 1)                                        \
-  F(NewStrictArguments, 3, 1)                                        \
-                                                                     \
-  /* Harmony generators */                                           \
-  F(CreateJSGeneratorObject, 0, 1)                                   \
-  F(SuspendJSGeneratorObject, 1, 1)                                  \
-  F(ResumeJSGeneratorObject, 3, 1)                                   \
-  F(ThrowGeneratorStateError, 1, 1)                                  \
-                                                                     \
-  /* Arrays */                                                       \
-  F(ArrayConstructor, -1, 1)                                         \
-  F(InternalArrayConstructor, -1, 1)                                 \
-                                                                     \
-  /* Literals */                                                     \
-  F(MaterializeRegExpLiteral, 4, 1)                                  \
-  F(CreateObjectLiteral, 4, 1)                                       \
-  F(CreateArrayLiteral, 4, 1)                                        \
-  F(CreateArrayLiteralStubBailout, 3, 1)                             \
-                                                                     \
-  /* Statements */                                                   \
-  F(NewClosure, 3, 1)                                                \
-  F(NewClosureFromStubFailure, 1, 1)                                 \
-  F(NewObject, 1, 1)                                                 \
-  F(NewObjectWithAllocationSite, 2, 1)                               \
-  F(FinalizeInstanceSize, 1, 1)                                      \
-  F(Throw, 1, 1)                                                     \
-  F(ReThrow, 1, 1)                                                   \
-  F(ThrowReferenceError, 1, 1)                                       \
-  F(ThrowNotDateError, 0, 1)                                         \
-  F(StackGuard, 0, 1)                                                \
-  F(Interrupt, 0, 1)                                                 \
-  F(PromoteScheduledException, 0, 1)                                 \
-                                                                     \
-  /* Contexts */                                                     \
-  F(NewGlobalContext, 2, 1)                                          \
-  F(NewFunctionContext, 1, 1)                                        \
-  F(PushWithContext, 2, 1)                                           \
-  F(PushCatchContext, 3, 1)                                          \
-  F(PushBlockContext, 2, 1)                                          \
-  F(PushModuleContext, 2, 1)                                         \
-  F(DeleteLookupSlot, 2, 1)                                          \
-  F(LoadLookupSlot, 2, 2)                                            \
-  F(LoadLookupSlotNoReferenceError, 2, 2)                            \
-  F(StoreLookupSlot, 4, 1)                                           \
-                                                                     \
-  /* Declarations and initialization */                              \
-  F(DeclareGlobals, 3, 1)                                            \
-  F(DeclareModules, 1, 1)                                            \
-  F(DeclareLookupSlot, 4, 1)                                         \
-  F(InitializeConstGlobal, 2, 1)                                     \
-  F(InitializeLegacyConstLookupSlot, 3, 1)                           \
-                                                                     \
-  /* Eval */                                                         \
-  F(ResolvePossiblyDirectEval, 5, 2)                                 \
-                                                                     \
-  /* Maths */                                                        \
-  F(MathPowSlow, 2, 1)                                               \
+#define RUNTIME_FUNCTION_LIST_ALWAYS_3(F)                    \
+  /* String and Regexp */                                    \
+  F(NumberToStringRT, 1, 1)                                  \
+  F(RegExpConstructResult, 3, 1)                             \
+  F(RegExpExecRT, 4, 1)                                      \
+  F(StringAdd, 2, 1)                                         \
+  F(SubString, 3, 1)                                         \
+  F(InternalizeString, 1, 1)                                 \
+  F(StringCompare, 2, 1)                                     \
+  F(StringCharCodeAtRT, 2, 1)                                \
+  F(GetFromCache, 2, 1)                                      \
+                                                             \
+  /* Compilation */                                          \
+  F(CompileLazy, 1, 1)                                       \
+  F(CompileOptimized, 2, 1)                                  \
+  F(TryInstallOptimizedCode, 1, 1)                           \
+  F(NotifyDeoptimized, 1, 1)                                 \
+  F(NotifyStubFailure, 0, 1)                                 \
+                                                             \
+  /* Utilities */                                            \
+  F(AllocateInNewSpace, 1, 1)                                \
+  F(AllocateInTargetSpace, 2, 1)                             \
+  F(AllocateHeapNumber, 0, 1)                                \
+  F(NumberToSmi, 1, 1)                                       \
+  F(NumberToStringSkipCache, 1, 1)                           \
+                                                             \
+  F(NewArguments, 1, 1) /* TODO(turbofan): Only temporary */ \
+  F(NewSloppyArguments, 3, 1)                                \
+  F(NewStrictArguments, 3, 1)                                \
+                                                             \
+  /* Harmony generators */                                   \
+  F(CreateJSGeneratorObject, 0, 1)                           \
+  F(SuspendJSGeneratorObject, 1, 1)                          \
+  F(ResumeJSGeneratorObject, 3, 1)                           \
+  F(ThrowGeneratorStateError, 1, 1)                          \
+                                                             \
+  /* Arrays */                                               \
+  F(ArrayConstructor, -1, 1)                                 \
+  F(InternalArrayConstructor, -1, 1)                         \
+                                                             \
+  /* Literals */                                             \
+  F(MaterializeRegExpLiteral, 4, 1)                          \
+  F(CreateObjectLiteral, 4, 1)                               \
+  F(CreateArrayLiteral, 4, 1)                                \
+  F(CreateArrayLiteralStubBailout, 3, 1)                     \
+                                                             \
+  /* Statements */                                           \
+  F(NewClosure, 3, 1)                                        \
+  F(NewClosureFromStubFailure, 1, 1)                         \
+  F(NewObject, 1, 1)                                         \
+  F(NewObjectWithAllocationSite, 2, 1)                       \
+  F(FinalizeInstanceSize, 1, 1)                              \
+  F(Throw, 1, 1)                                             \
+  F(ReThrow, 1, 1)                                           \
+  F(ThrowReferenceError, 1, 1)                               \
+  F(ThrowNotDateError, 0, 1)                                 \
+  F(StackGuard, 0, 1)                                        \
+  F(Interrupt, 0, 1)                                         \
+  F(PromoteScheduledException, 0, 1)                         \
+                                                             \
+  /* Contexts */                                             \
+  F(NewGlobalContext, 2, 1)                                  \
+  F(NewFunctionContext, 1, 1)                                \
+  F(PushWithContext, 2, 1)                                   \
+  F(PushCatchContext, 3, 1)                                  \
+  F(PushBlockContext, 2, 1)                                  \
+  F(PushModuleContext, 2, 1)                                 \
+  F(DeleteLookupSlot, 2, 1)                                  \
+  F(LoadLookupSlot, 2, 2)                                    \
+  F(LoadLookupSlotNoReferenceError, 2, 2)                    \
+  F(StoreLookupSlot, 4, 1)                                   \
+                                                             \
+  /* Declarations and initialization */                      \
+  F(DeclareGlobals, 3, 1)                                    \
+  F(DeclareModules, 1, 1)                                    \
+  F(DeclareLookupSlot, 4, 1)                                 \
+  F(InitializeConstGlobal, 2, 1)                             \
+  F(InitializeLegacyConstLookupSlot, 3, 1)                   \
+                                                             \
+  /* Eval */                                                 \
+  F(ResolvePossiblyDirectEval, 6, 2)                         \
+                                                             \
+  /* Maths */                                                \
+  F(MathPowSlow, 2, 1)                                       \
   F(MathPowRT, 2, 1)
 
 
@@ -634,45 +744,45 @@ namespace internal {
 // INLINE_FUNCTION_LIST defines all inlined functions accessed
 // with a native call of the form %_name from within JS code.
 // Entries have the form F(name, number of arguments, number of return values).
-#define INLINE_FUNCTION_LIST(F) \
-  F(IsSmi, 1, 1)                                                             \
-  F(IsNonNegativeSmi, 1, 1)                                                  \
-  F(IsArray, 1, 1)                                                           \
-  F(IsRegExp, 1, 1)                                                          \
-  F(IsConstructCall, 0, 1)                                                   \
-  F(CallFunction, -1 /* receiver + n args + function */, 1)                  \
-  F(ArgumentsLength, 0, 1)                                                   \
-  F(Arguments, 1, 1)                                                         \
-  F(ValueOf, 1, 1)                                                           \
-  F(SetValueOf, 2, 1)                                                        \
-  F(DateField, 2 /* date object, field index */, 1)                          \
-  F(StringCharFromCode, 1, 1)                                                \
-  F(StringCharAt, 2, 1)                                                      \
-  F(OneByteSeqStringSetChar, 3, 1)                                           \
-  F(TwoByteSeqStringSetChar, 3, 1)                                           \
-  F(ObjectEquals, 2, 1)                                                      \
-  F(IsObject, 1, 1)                                                          \
-  F(IsFunction, 1, 1)                                                        \
-  F(IsUndetectableObject, 1, 1)                                              \
-  F(IsSpecObject, 1, 1)                                                      \
-  F(IsStringWrapperSafeForDefaultValueOf, 1, 1)                              \
-  F(MathPow, 2, 1)                                                           \
-  F(IsMinusZero, 1, 1)                                                       \
-  F(HasCachedArrayIndex, 1, 1)                                               \
-  F(GetCachedArrayIndex, 1, 1)                                               \
-  F(FastAsciiArrayJoin, 2, 1)                                                \
-  F(GeneratorNext, 2, 1)                                                     \
-  F(GeneratorThrow, 2, 1)                                                    \
-  F(DebugBreakInOptimizedCode, 0, 1)                                         \
-  F(ClassOf, 1, 1)                                                           \
-  F(StringCharCodeAt, 2, 1)                                                  \
-  F(StringAdd, 2, 1)                                                         \
-  F(SubString, 3, 1)                                                         \
-  F(StringCompare, 2, 1)                                                     \
-  F(RegExpExec, 4, 1)                                                        \
-  F(RegExpConstructResult, 3, 1)                                             \
-  F(GetFromCache, 2, 1)                                                      \
-  F(NumberToString, 1, 1)                                                    \
+#define INLINE_FUNCTION_LIST(F)                             \
+  F(IsSmi, 1, 1)                                            \
+  F(IsNonNegativeSmi, 1, 1)                                 \
+  F(IsArray, 1, 1)                                          \
+  F(IsRegExp, 1, 1)                                         \
+  F(IsConstructCall, 0, 1)                                  \
+  F(CallFunction, -1 /* receiver + n args + function */, 1) \
+  F(ArgumentsLength, 0, 1)                                  \
+  F(Arguments, 1, 1)                                        \
+  F(ValueOf, 1, 1)                                          \
+  F(SetValueOf, 2, 1)                                       \
+  F(DateField, 2 /* date object, field index */, 1)         \
+  F(StringCharFromCode, 1, 1)                               \
+  F(StringCharAt, 2, 1)                                     \
+  F(OneByteSeqStringSetChar, 3, 1)                          \
+  F(TwoByteSeqStringSetChar, 3, 1)                          \
+  F(ObjectEquals, 2, 1)                                     \
+  F(IsObject, 1, 1)                                         \
+  F(IsFunction, 1, 1)                                       \
+  F(IsUndetectableObject, 1, 1)                             \
+  F(IsSpecObject, 1, 1)                                     \
+  F(IsStringWrapperSafeForDefaultValueOf, 1, 1)             \
+  F(MathPow, 2, 1)                                          \
+  F(IsMinusZero, 1, 1)                                      \
+  F(HasCachedArrayIndex, 1, 1)                              \
+  F(GetCachedArrayIndex, 1, 1)                              \
+  F(FastOneByteArrayJoin, 2, 1)                             \
+  F(GeneratorNext, 2, 1)                                    \
+  F(GeneratorThrow, 2, 1)                                   \
+  F(DebugBreakInOptimizedCode, 0, 1)                        \
+  F(ClassOf, 1, 1)                                          \
+  F(StringCharCodeAt, 2, 1)                                 \
+  F(StringAdd, 2, 1)                                        \
+  F(SubString, 3, 1)                                        \
+  F(StringCompare, 2, 1)                                    \
+  F(RegExpExec, 4, 1)                                       \
+  F(RegExpConstructResult, 3, 1)                            \
+  F(GetFromCache, 2, 1)                                     \
+  F(NumberToString, 1, 1)                                   \
   F(DebugIsActive, 0, 1)
 
 
@@ -826,12 +936,8 @@ class Runtime : public AllStatic {
       Handle<Object> value, StrictMode strict_mode);
 
   MUST_USE_RESULT static MaybeHandle<Object> DefineObjectProperty(
-      Handle<JSObject> object,
-      Handle<Object> key,
-      Handle<Object> value,
-      PropertyAttributes attr,
-      JSReceiver::StoreFromKeyed store_from_keyed =
-          JSReceiver::MAY_BE_STORE_FROM_KEYED);
+      Handle<JSObject> object, Handle<Object> key, Handle<Object> value,
+      PropertyAttributes attr);
 
   MUST_USE_RESULT static MaybeHandle<Object> DeleteObjectProperty(
       Isolate* isolate,
@@ -878,9 +984,11 @@ class Runtime : public AllStatic {
     ARRAY_ID_FLOAT32 = 7,
     ARRAY_ID_FLOAT64 = 8,
     ARRAY_ID_UINT8_CLAMPED = 9,
-
+    ARRAY_ID_FLOAT32x4 = 10,
+    ARRAY_ID_FLOAT64x2 = 11,
+    ARRAY_ID_INT32x4 = 12,
     ARRAY_ID_FIRST = ARRAY_ID_UINT8,
-    ARRAY_ID_LAST = ARRAY_ID_UINT8_CLAMPED
+    ARRAY_ID_LAST = ARRAY_ID_INT32x4
   };
 
   static void ArrayIdToTypeAndSize(int array_id,