Index: src/builtins.h |
diff --git a/src/builtins.h b/src/builtins.h |
index 2db0b1048a102b83123f4e3fd3e3208498bb9052..1c84ec5496b1ce3a9ee94858d4e467a88d3e31d4 100644 |
--- a/src/builtins.h |
+++ b/src/builtins.h |
@@ -39,146 +39,146 @@ 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(StringFromCodePoint) \ |
- \ |
- 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, BUILTIN_EXIT) \ |
+ \ |
+ V(EmptyFunction, BUILTIN_EXIT) \ |
+ \ |
+ V(ArrayConcat, BUILTIN_EXIT) \ |
+ V(ArrayPop, BUILTIN_EXIT) \ |
+ V(ArrayPush, BUILTIN_EXIT) \ |
+ V(ArrayShift, BUILTIN_EXIT) \ |
+ V(ArraySlice, BUILTIN_EXIT) \ |
+ V(ArraySplice, BUILTIN_EXIT) \ |
+ V(ArrayUnshift, BUILTIN_EXIT) \ |
+ \ |
+ V(ArrayBufferConstructor, BUILTIN_EXIT) \ |
+ V(ArrayBufferConstructor_ConstructStub, BUILTIN_EXIT) \ |
+ V(ArrayBufferIsView, BUILTIN_EXIT) \ |
+ \ |
+ V(BooleanConstructor, BUILTIN_EXIT) \ |
+ V(BooleanConstructor_ConstructStub, BUILTIN_EXIT) \ |
+ V(BooleanPrototypeToString, BUILTIN_EXIT) \ |
+ V(BooleanPrototypeValueOf, BUILTIN_EXIT) \ |
+ \ |
+ V(DataViewConstructor, BUILTIN_EXIT) \ |
+ V(DataViewConstructor_ConstructStub, BUILTIN_EXIT) \ |
+ V(DataViewPrototypeGetBuffer, BUILTIN_EXIT) \ |
+ V(DataViewPrototypeGetByteLength, BUILTIN_EXIT) \ |
+ V(DataViewPrototypeGetByteOffset, BUILTIN_EXIT) \ |
+ \ |
+ V(DateConstructor, BUILTIN_EXIT) \ |
+ V(DateConstructor_ConstructStub, BUILTIN_EXIT) \ |
+ V(DateNow, BUILTIN_EXIT) \ |
+ V(DateParse, BUILTIN_EXIT) \ |
+ V(DateUTC, BUILTIN_EXIT) \ |
+ V(DatePrototypeSetDate, BUILTIN_EXIT) \ |
+ V(DatePrototypeSetFullYear, BUILTIN_EXIT) \ |
+ V(DatePrototypeSetHours, BUILTIN_EXIT) \ |
+ V(DatePrototypeSetMilliseconds, BUILTIN_EXIT) \ |
+ V(DatePrototypeSetMinutes, BUILTIN_EXIT) \ |
+ V(DatePrototypeSetMonth, BUILTIN_EXIT) \ |
+ V(DatePrototypeSetSeconds, BUILTIN_EXIT) \ |
+ V(DatePrototypeSetTime, BUILTIN_EXIT) \ |
+ V(DatePrototypeSetUTCDate, BUILTIN_EXIT) \ |
+ V(DatePrototypeSetUTCFullYear, BUILTIN_EXIT) \ |
+ V(DatePrototypeSetUTCHours, BUILTIN_EXIT) \ |
+ V(DatePrototypeSetUTCMilliseconds, BUILTIN_EXIT) \ |
+ V(DatePrototypeSetUTCMinutes, BUILTIN_EXIT) \ |
+ V(DatePrototypeSetUTCMonth, BUILTIN_EXIT) \ |
+ V(DatePrototypeSetUTCSeconds, BUILTIN_EXIT) \ |
+ V(DatePrototypeToDateString, BUILTIN_EXIT) \ |
+ V(DatePrototypeToISOString, BUILTIN_EXIT) \ |
+ V(DatePrototypeToPrimitive, BUILTIN_EXIT) \ |
+ V(DatePrototypeToUTCString, BUILTIN_EXIT) \ |
+ V(DatePrototypeToString, BUILTIN_EXIT) \ |
+ V(DatePrototypeToTimeString, BUILTIN_EXIT) \ |
+ V(DatePrototypeValueOf, BUILTIN_EXIT) \ |
+ V(DatePrototypeGetYear, BUILTIN_EXIT) \ |
+ V(DatePrototypeSetYear, BUILTIN_EXIT) \ |
+ V(DatePrototypeToJson, BUILTIN_EXIT) \ |
+ \ |
+ V(FunctionConstructor, BUILTIN_EXIT) \ |
+ V(FunctionPrototypeBind, BUILTIN_EXIT) \ |
+ V(FunctionPrototypeToString, BUILTIN_EXIT) \ |
+ \ |
+ V(GeneratorFunctionConstructor, BUILTIN_EXIT) \ |
+ V(AsyncFunctionConstructor, BUILTIN_EXIT) \ |
+ \ |
+ V(GlobalDecodeURI, BUILTIN_EXIT) \ |
+ V(GlobalDecodeURIComponent, BUILTIN_EXIT) \ |
+ V(GlobalEncodeURI, BUILTIN_EXIT) \ |
+ V(GlobalEncodeURIComponent, BUILTIN_EXIT) \ |
+ V(GlobalEscape, BUILTIN_EXIT) \ |
+ V(GlobalUnescape, BUILTIN_EXIT) \ |
+ \ |
+ V(GlobalEval, BUILTIN_EXIT) \ |
+ \ |
+ V(JsonParse, BUILTIN_EXIT) \ |
+ V(JsonStringify, BUILTIN_EXIT) \ |
+ \ |
+ V(MathAcos, BUILTIN_EXIT) \ |
+ V(MathAsin, BUILTIN_EXIT) \ |
+ V(MathFround, BUILTIN_EXIT) \ |
+ V(MathImul, BUILTIN_EXIT) \ |
+ \ |
+ V(ObjectAssign, BUILTIN_EXIT) \ |
+ V(ObjectCreate, BUILTIN_EXIT) \ |
+ V(ObjectDefineGetter, BUILTIN_EXIT) \ |
+ V(ObjectDefineProperties, BUILTIN_EXIT) \ |
+ V(ObjectDefineProperty, BUILTIN_EXIT) \ |
+ V(ObjectDefineSetter, BUILTIN_EXIT) \ |
+ V(ObjectEntries, BUILTIN_EXIT) \ |
+ V(ObjectFreeze, BUILTIN_EXIT) \ |
+ V(ObjectGetOwnPropertyDescriptor, BUILTIN_EXIT) \ |
+ V(ObjectGetOwnPropertyDescriptors, BUILTIN_EXIT) \ |
+ V(ObjectGetOwnPropertyNames, BUILTIN_EXIT) \ |
+ V(ObjectGetOwnPropertySymbols, BUILTIN_EXIT) \ |
+ V(ObjectGetPrototypeOf, BUILTIN_EXIT) \ |
+ V(ObjectIs, BUILTIN_EXIT) \ |
+ V(ObjectIsExtensible, BUILTIN_EXIT) \ |
+ V(ObjectIsFrozen, BUILTIN_EXIT) \ |
+ V(ObjectIsSealed, BUILTIN_EXIT) \ |
+ V(ObjectKeys, BUILTIN_EXIT) \ |
+ V(ObjectLookupGetter, BUILTIN_EXIT) \ |
+ V(ObjectLookupSetter, BUILTIN_EXIT) \ |
+ V(ObjectPreventExtensions, BUILTIN_EXIT) \ |
+ V(ObjectProtoToString, BUILTIN_EXIT) \ |
+ V(ObjectSeal, BUILTIN_EXIT) \ |
+ V(ObjectValues, BUILTIN_EXIT) \ |
+ \ |
+ V(ProxyConstructor, BUILTIN_EXIT) \ |
+ V(ProxyConstructor_ConstructStub, BUILTIN_EXIT) \ |
+ \ |
+ V(ReflectDefineProperty, BUILTIN_EXIT) \ |
+ V(ReflectDeleteProperty, BUILTIN_EXIT) \ |
+ V(ReflectGet, BUILTIN_EXIT) \ |
+ V(ReflectGetOwnPropertyDescriptor, BUILTIN_EXIT) \ |
+ V(ReflectGetPrototypeOf, BUILTIN_EXIT) \ |
+ V(ReflectHas, BUILTIN_EXIT) \ |
+ V(ReflectIsExtensible, BUILTIN_EXIT) \ |
+ V(ReflectOwnKeys, BUILTIN_EXIT) \ |
+ V(ReflectPreventExtensions, BUILTIN_EXIT) \ |
+ V(ReflectSet, BUILTIN_EXIT) \ |
+ V(ReflectSetPrototypeOf, BUILTIN_EXIT) \ |
+ \ |
+ V(StringFromCodePoint, BUILTIN_EXIT) \ |
+ \ |
+ V(StringPrototypeTrim, BUILTIN_EXIT) \ |
+ V(StringPrototypeTrimLeft, BUILTIN_EXIT) \ |
+ V(StringPrototypeTrimRight, BUILTIN_EXIT) \ |
+ \ |
+ V(SymbolConstructor, BUILTIN_EXIT) \ |
+ V(SymbolConstructor_ConstructStub, BUILTIN_EXIT) \ |
+ \ |
+ V(TypedArrayPrototypeBuffer, BUILTIN_EXIT) \ |
+ \ |
+ V(HandleApiCall, EXIT) \ |
+ V(HandleApiCallAsFunction, EXIT) \ |
+ V(HandleApiCallAsConstructor, EXIT) \ |
+ \ |
+ V(RestrictedFunctionPropertiesThrower, BUILTIN_EXIT) \ |
+ V(RestrictedStrictArgumentsPropertiesThrower, BUILTIN_EXIT) |
// Define list of builtins implemented in assembly. |
#define BUILTIN_LIST_A(V) \ |
@@ -381,7 +381,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, |
@@ -398,13 +398,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) \ |
@@ -457,6 +457,8 @@ class Builtins { |
Isolate* isolate, Handle<HeapObject> function, Handle<Object> receiver, |
int argc, Handle<Object> args[]); |
+ enum ExitFrameType { EXIT, BUILTIN_EXIT }; |
+ |
private: |
Builtins(); |
@@ -469,7 +471,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, |
+ ExitFrameType exit_frame_type); |
static void Generate_AllocateInNewSpace(MacroAssembler* masm); |
static void Generate_AllocateInOldSpace(MacroAssembler* masm); |
static void Generate_ConstructedNonConstructable(MacroAssembler* masm); |