Chromium Code Reviews| Index: src/builtins.h |
| diff --git a/src/builtins.h b/src/builtins.h |
| index 83b31bcb994457adf99da7ad1c1979145bec89c7..912c3c15c222e133e806065027bbaa49362e99f2 100644 |
| --- a/src/builtins.h |
| +++ b/src/builtins.h |
| @@ -38,144 +38,144 @@ class CodeStubAssembler; |
| V(Make##C##CodeYoungAgainEvenMarking, BUILTIN, kNoExtraICState) |
| // Define list of builtins implemented in C++. |
| -#define BUILTIN_LIST_C(V) \ |
| - V(Illegal) \ |
| - \ |
| - V(EmptyFunction) \ |
| - \ |
| - V(ArrayConcat) \ |
| - V(ArrayPop) \ |
| - V(ArrayPush) \ |
| - V(ArrayShift) \ |
| - V(ArraySlice) \ |
| - V(ArraySplice) \ |
| - V(ArrayUnshift) \ |
| - \ |
| - V(ArrayBufferConstructor) \ |
| - V(ArrayBufferConstructor_ConstructStub) \ |
| - V(ArrayBufferIsView) \ |
| - \ |
| - V(BooleanConstructor) \ |
| - V(BooleanConstructor_ConstructStub) \ |
| - V(BooleanPrototypeToString) \ |
| - V(BooleanPrototypeValueOf) \ |
| - \ |
| - V(DataViewConstructor) \ |
| - V(DataViewConstructor_ConstructStub) \ |
| - V(DataViewPrototypeGetBuffer) \ |
| - V(DataViewPrototypeGetByteLength) \ |
| - V(DataViewPrototypeGetByteOffset) \ |
| - \ |
| - V(DateConstructor) \ |
| - V(DateConstructor_ConstructStub) \ |
| - V(DateNow) \ |
| - V(DateParse) \ |
| - V(DateUTC) \ |
| - V(DatePrototypeSetDate) \ |
| - V(DatePrototypeSetFullYear) \ |
| - V(DatePrototypeSetHours) \ |
| - V(DatePrototypeSetMilliseconds) \ |
| - V(DatePrototypeSetMinutes) \ |
| - V(DatePrototypeSetMonth) \ |
| - V(DatePrototypeSetSeconds) \ |
| - V(DatePrototypeSetTime) \ |
| - V(DatePrototypeSetUTCDate) \ |
| - V(DatePrototypeSetUTCFullYear) \ |
| - V(DatePrototypeSetUTCHours) \ |
| - V(DatePrototypeSetUTCMilliseconds) \ |
| - V(DatePrototypeSetUTCMinutes) \ |
| - V(DatePrototypeSetUTCMonth) \ |
| - V(DatePrototypeSetUTCSeconds) \ |
| - V(DatePrototypeToDateString) \ |
| - V(DatePrototypeToISOString) \ |
| - V(DatePrototypeToPrimitive) \ |
| - V(DatePrototypeToUTCString) \ |
| - V(DatePrototypeToString) \ |
| - V(DatePrototypeToTimeString) \ |
| - V(DatePrototypeValueOf) \ |
| - V(DatePrototypeGetYear) \ |
| - V(DatePrototypeSetYear) \ |
| - V(DatePrototypeToJson) \ |
| - \ |
| - V(FunctionConstructor) \ |
| - V(FunctionPrototypeBind) \ |
| - V(FunctionPrototypeToString) \ |
| - \ |
| - V(GeneratorFunctionConstructor) \ |
| - V(AsyncFunctionConstructor) \ |
| - \ |
| - V(GlobalDecodeURI) \ |
| - V(GlobalDecodeURIComponent) \ |
| - V(GlobalEncodeURI) \ |
| - V(GlobalEncodeURIComponent) \ |
| - V(GlobalEscape) \ |
| - V(GlobalUnescape) \ |
| - \ |
| - V(GlobalEval) \ |
| - \ |
| - V(JsonParse) \ |
| - V(JsonStringify) \ |
| - \ |
| - V(MathAcos) \ |
| - V(MathAsin) \ |
| - V(MathFround) \ |
| - V(MathImul) \ |
| - \ |
| - V(ObjectAssign) \ |
| - V(ObjectCreate) \ |
| - V(ObjectDefineGetter) \ |
| - V(ObjectDefineProperties) \ |
| - V(ObjectDefineProperty) \ |
| - V(ObjectDefineSetter) \ |
| - V(ObjectEntries) \ |
| - V(ObjectFreeze) \ |
| - V(ObjectGetOwnPropertyDescriptor) \ |
| - V(ObjectGetOwnPropertyDescriptors) \ |
| - V(ObjectGetOwnPropertyNames) \ |
| - V(ObjectGetOwnPropertySymbols) \ |
| - V(ObjectGetPrototypeOf) \ |
| - V(ObjectIs) \ |
| - V(ObjectIsExtensible) \ |
| - V(ObjectIsFrozen) \ |
| - V(ObjectIsSealed) \ |
| - V(ObjectKeys) \ |
| - V(ObjectLookupGetter) \ |
| - V(ObjectLookupSetter) \ |
| - V(ObjectPreventExtensions) \ |
| - V(ObjectProtoToString) \ |
| - V(ObjectSeal) \ |
| - V(ObjectValues) \ |
| - \ |
| - V(ProxyConstructor) \ |
| - V(ProxyConstructor_ConstructStub) \ |
| - \ |
| - V(ReflectDefineProperty) \ |
| - V(ReflectDeleteProperty) \ |
| - V(ReflectGet) \ |
| - V(ReflectGetOwnPropertyDescriptor) \ |
| - V(ReflectGetPrototypeOf) \ |
| - V(ReflectHas) \ |
| - V(ReflectIsExtensible) \ |
| - V(ReflectOwnKeys) \ |
| - V(ReflectPreventExtensions) \ |
| - V(ReflectSet) \ |
| - V(ReflectSetPrototypeOf) \ |
| - \ |
| - V(StringPrototypeTrim) \ |
| - V(StringPrototypeTrimLeft) \ |
| - V(StringPrototypeTrimRight) \ |
| - \ |
| - V(SymbolConstructor) \ |
| - V(SymbolConstructor_ConstructStub) \ |
| - \ |
| - V(TypedArrayPrototypeBuffer) \ |
| - \ |
| - V(HandleApiCall) \ |
| - V(HandleApiCallAsFunction) \ |
| - V(HandleApiCallAsConstructor) \ |
| - \ |
| - V(RestrictedFunctionPropertiesThrower) \ |
| - V(RestrictedStrictArgumentsPropertiesThrower) |
| +#define BUILTIN_LIST_C(V) \ |
| + V(Illegal, true) \ |
|
Yang
2016/06/27 08:30:02
Might be nicer to have an enum instead of a boolea
|
| + \ |
| + V(EmptyFunction, true) \ |
| + \ |
| + V(ArrayConcat, true) \ |
| + V(ArrayPop, true) \ |
| + V(ArrayPush, true) \ |
| + V(ArrayShift, true) \ |
| + V(ArraySlice, true) \ |
| + V(ArraySplice, true) \ |
| + V(ArrayUnshift, true) \ |
| + \ |
| + V(ArrayBufferConstructor, true) \ |
| + V(ArrayBufferConstructor_ConstructStub, true) \ |
| + V(ArrayBufferIsView, true) \ |
| + \ |
| + V(BooleanConstructor, true) \ |
| + V(BooleanConstructor_ConstructStub, true) \ |
| + V(BooleanPrototypeToString, true) \ |
| + V(BooleanPrototypeValueOf, true) \ |
| + \ |
| + V(DataViewConstructor, true) \ |
| + V(DataViewConstructor_ConstructStub, true) \ |
| + V(DataViewPrototypeGetBuffer, true) \ |
| + V(DataViewPrototypeGetByteLength, true) \ |
| + V(DataViewPrototypeGetByteOffset, true) \ |
| + \ |
| + V(DateConstructor, true) \ |
| + V(DateConstructor_ConstructStub, true) \ |
| + V(DateNow, true) \ |
| + V(DateParse, true) \ |
| + V(DateUTC, true) \ |
| + V(DatePrototypeSetDate, true) \ |
| + V(DatePrototypeSetFullYear, true) \ |
| + V(DatePrototypeSetHours, true) \ |
| + V(DatePrototypeSetMilliseconds, true) \ |
| + V(DatePrototypeSetMinutes, true) \ |
| + V(DatePrototypeSetMonth, true) \ |
| + V(DatePrototypeSetSeconds, true) \ |
| + V(DatePrototypeSetTime, true) \ |
| + V(DatePrototypeSetUTCDate, true) \ |
| + V(DatePrototypeSetUTCFullYear, true) \ |
| + V(DatePrototypeSetUTCHours, true) \ |
| + V(DatePrototypeSetUTCMilliseconds, true) \ |
| + V(DatePrototypeSetUTCMinutes, true) \ |
| + V(DatePrototypeSetUTCMonth, true) \ |
| + V(DatePrototypeSetUTCSeconds, true) \ |
| + V(DatePrototypeToDateString, true) \ |
| + V(DatePrototypeToISOString, true) \ |
| + V(DatePrototypeToPrimitive, true) \ |
| + V(DatePrototypeToUTCString, true) \ |
| + V(DatePrototypeToString, true) \ |
| + V(DatePrototypeToTimeString, true) \ |
| + V(DatePrototypeValueOf, true) \ |
| + V(DatePrototypeGetYear, true) \ |
| + V(DatePrototypeSetYear, true) \ |
| + V(DatePrototypeToJson, true) \ |
| + \ |
| + V(FunctionConstructor, true) \ |
| + V(FunctionPrototypeBind, true) \ |
| + V(FunctionPrototypeToString, true) \ |
| + \ |
| + V(GeneratorFunctionConstructor, true) \ |
| + V(AsyncFunctionConstructor, true) \ |
| + \ |
| + V(GlobalDecodeURI, true) \ |
| + V(GlobalDecodeURIComponent, true) \ |
| + V(GlobalEncodeURI, true) \ |
| + V(GlobalEncodeURIComponent, true) \ |
| + V(GlobalEscape, true) \ |
| + V(GlobalUnescape, true) \ |
| + \ |
| + V(GlobalEval, true) \ |
| + \ |
| + V(JsonParse, true) \ |
| + V(JsonStringify, true) \ |
| + \ |
| + V(MathAcos, true) \ |
| + V(MathAsin, true) \ |
| + V(MathFround, true) \ |
| + V(MathImul, true) \ |
| + \ |
| + V(ObjectAssign, true) \ |
| + V(ObjectCreate, true) \ |
| + V(ObjectDefineGetter, true) \ |
| + V(ObjectDefineProperties, true) \ |
| + V(ObjectDefineProperty, true) \ |
| + V(ObjectDefineSetter, true) \ |
| + V(ObjectEntries, true) \ |
| + V(ObjectFreeze, true) \ |
| + V(ObjectGetOwnPropertyDescriptor, true) \ |
| + V(ObjectGetOwnPropertyDescriptors, true) \ |
| + V(ObjectGetOwnPropertyNames, true) \ |
| + V(ObjectGetOwnPropertySymbols, true) \ |
| + V(ObjectGetPrototypeOf, true) \ |
| + V(ObjectIs, true) \ |
| + V(ObjectIsExtensible, true) \ |
| + V(ObjectIsFrozen, true) \ |
| + V(ObjectIsSealed, true) \ |
| + V(ObjectKeys, true) \ |
| + V(ObjectLookupGetter, true) \ |
| + V(ObjectLookupSetter, true) \ |
| + V(ObjectPreventExtensions, true) \ |
| + V(ObjectProtoToString, true) \ |
| + V(ObjectSeal, true) \ |
| + V(ObjectValues, true) \ |
| + \ |
| + V(ProxyConstructor, true) \ |
| + V(ProxyConstructor_ConstructStub, true) \ |
| + \ |
| + V(ReflectDefineProperty, true) \ |
| + V(ReflectDeleteProperty, true) \ |
| + V(ReflectGet, true) \ |
| + V(ReflectGetOwnPropertyDescriptor, true) \ |
| + V(ReflectGetPrototypeOf, true) \ |
| + V(ReflectHas, true) \ |
| + V(ReflectIsExtensible, true) \ |
| + V(ReflectOwnKeys, true) \ |
| + V(ReflectPreventExtensions, true) \ |
| + V(ReflectSet, true) \ |
| + V(ReflectSetPrototypeOf, true) \ |
| + \ |
| + V(StringPrototypeTrim, true) \ |
| + V(StringPrototypeTrimLeft, true) \ |
| + V(StringPrototypeTrimRight, true) \ |
| + \ |
| + V(SymbolConstructor, true) \ |
| + V(SymbolConstructor_ConstructStub, true) \ |
| + \ |
| + V(TypedArrayPrototypeBuffer, true) \ |
| + \ |
| + V(HandleApiCall, false) \ |
| + V(HandleApiCallAsFunction, false) \ |
| + V(HandleApiCallAsConstructor, false) \ |
| + \ |
| + V(RestrictedFunctionPropertiesThrower, true) \ |
| + V(RestrictedStrictArgumentsPropertiesThrower, true) |
| // Define list of builtins implemented in assembly. |
| #define BUILTIN_LIST_A(V) \ |
| @@ -374,7 +374,7 @@ class Builtins { |
| const char* Lookup(byte* pc); |
| enum Name { |
| -#define DEF_ENUM_C(name) k##name, |
| +#define DEF_ENUM_C(name, ignore) k##name, |
| #define DEF_ENUM_A(name, kind, extra) k##name, |
| #define DEF_ENUM_T(name, argc) k##name, |
| #define DEF_ENUM_S(name, kind, extra, interface_descriptor) k##name, |
| @@ -391,13 +391,13 @@ class Builtins { |
| }; |
| enum CFunctionId { |
| -#define DEF_ENUM_C(name) c_##name, |
| +#define DEF_ENUM_C(name, ignore) c_##name, |
| BUILTIN_LIST_C(DEF_ENUM_C) |
| #undef DEF_ENUM_C |
| - cfunction_count |
| + cfunction_count |
| }; |
| -#define DECLARE_BUILTIN_ACCESSOR_C(name) Handle<Code> name(); |
| +#define DECLARE_BUILTIN_ACCESSOR_C(name, ignore) Handle<Code> name(); |
| #define DECLARE_BUILTIN_ACCESSOR_A(name, kind, extra) Handle<Code> name(); |
| #define DECLARE_BUILTIN_ACCESSOR_T(name, argc) Handle<Code> name(); |
| #define DECLARE_BUILTIN_ACCESSOR_S(name, kind, extra, interface_descriptor) \ |
| @@ -462,7 +462,8 @@ class Builtins { |
| Object* builtins_[builtin_count]; |
| const char* names_[builtin_count]; |
| - static void Generate_Adaptor(MacroAssembler* masm, CFunctionId id); |
| + static void Generate_Adaptor(MacroAssembler* masm, CFunctionId id, |
| + bool builtin_exit_frame); |
| static void Generate_AllocateInNewSpace(MacroAssembler* masm); |
| static void Generate_AllocateInOldSpace(MacroAssembler* masm); |
| static void Generate_ConstructedNonConstructable(MacroAssembler* masm); |