| Index: src/hydrogen.h
|
| diff --git a/src/hydrogen.h b/src/hydrogen.h
|
| index 07a5270b321345df9cdbabd04bcd6f05d4299ca0..fe2372855ada4a146a9327803d6ca03f29c9ac19 100644
|
| --- a/src/hydrogen.h
|
| +++ b/src/hydrogen.h
|
| @@ -2118,17 +2118,9 @@ class HOptimizedGraphBuilder : public HGraphBuilder, public AstVisitor {
|
| DEFINE_AST_VISITOR_SUBCLASS_MEMBERS();
|
|
|
| protected:
|
| - // Type of a member function that generates inline code for a native function.
|
| - typedef void (HOptimizedGraphBuilder::*InlineFunctionGenerator)
|
| - (CallRuntime* call);
|
| -
|
| - InlineFunctionGenerator FindInlineFunctionGenerator(CallRuntime* expr);
|
| -
|
| // Forward declarations for inner scope classes.
|
| class SubgraphScope;
|
|
|
| - static const InlineFunctionGenerator kInlineFunctionGenerators[];
|
| -
|
| static const int kMaxCallPolymorphism = 4;
|
| static const int kMaxLoadPolymorphism = 4;
|
| static const int kMaxStorePolymorphism = 4;
|
| @@ -2170,13 +2162,86 @@ class HOptimizedGraphBuilder : public HGraphBuilder, public AstVisitor {
|
| return function_state()->compilation_info()->language_mode();
|
| }
|
|
|
| - // Generators for inline runtime functions.
|
| -#define INLINE_FUNCTION_GENERATOR_DECLARATION(Name, argc, ressize) \
|
| - void Generate##Name(CallRuntime* call);
|
| -
|
| - INLINE_FUNCTION_LIST(INLINE_FUNCTION_GENERATOR_DECLARATION)
|
| - INLINE_OPTIMIZED_FUNCTION_LIST(INLINE_FUNCTION_GENERATOR_DECLARATION)
|
| -#undef INLINE_FUNCTION_GENERATOR_DECLARATION
|
| +#define FOR_EACH_HYDROGEN_INTRINSIC(F) \
|
| + F(IsSmi) \
|
| + F(IsNonNegativeSmi) \
|
| + F(IsArray) \
|
| + F(IsRegExp) \
|
| + F(IsJSProxy) \
|
| + F(IsConstructCall) \
|
| + F(CallFunction) \
|
| + F(DefaultConstructorCallSuper) \
|
| + F(ArgumentsLength) \
|
| + F(Arguments) \
|
| + F(ValueOf) \
|
| + F(SetValueOf) \
|
| + F(DateField) \
|
| + F(StringCharFromCode) \
|
| + F(StringCharAt) \
|
| + F(OneByteSeqStringSetChar) \
|
| + F(TwoByteSeqStringSetChar) \
|
| + F(ObjectEquals) \
|
| + F(IsObject) \
|
| + F(IsFunction) \
|
| + F(IsUndetectableObject) \
|
| + F(IsSpecObject) \
|
| + F(IsStringWrapperSafeForDefaultValueOf) \
|
| + F(MathPow) \
|
| + F(IsMinusZero) \
|
| + F(HasCachedArrayIndex) \
|
| + F(GetCachedArrayIndex) \
|
| + F(FastOneByteArrayJoin) \
|
| + F(GeneratorNext) \
|
| + F(GeneratorThrow) \
|
| + F(DebugBreakInOptimizedCode) \
|
| + F(ClassOf) \
|
| + F(StringCharCodeAt) \
|
| + F(StringAdd) \
|
| + F(SubString) \
|
| + F(StringCompare) \
|
| + F(RegExpExec) \
|
| + F(RegExpConstructResult) \
|
| + F(GetFromCache) \
|
| + F(NumberToString) \
|
| + F(DebugIsActive) \
|
| + /* Typed Arrays */ \
|
| + F(TypedArrayInitialize) \
|
| + F(DataViewInitialize) \
|
| + F(MaxSmi) \
|
| + F(TypedArrayMaxSizeInHeap) \
|
| + F(ArrayBufferViewGetByteLength) \
|
| + F(ArrayBufferViewGetByteOffset) \
|
| + F(TypedArrayGetLength) \
|
| + /* ArrayBuffer */ \
|
| + F(ArrayBufferGetByteLength) \
|
| + /* Maths */ \
|
| + F(ConstructDouble) \
|
| + F(DoubleHi) \
|
| + F(DoubleLo) \
|
| + F(MathFloor) \
|
| + F(MathSqrtRT) \
|
| + F(MathLogRT) \
|
| + /* ES6 Collections */ \
|
| + F(MapClear) \
|
| + F(MapDelete) \
|
| + F(MapGet) \
|
| + F(MapGetSize) \
|
| + F(MapHas) \
|
| + F(MapInitialize) \
|
| + F(MapSet) \
|
| + F(SetAdd) \
|
| + F(SetClear) \
|
| + F(SetDelete) \
|
| + F(SetGetSize) \
|
| + F(SetHas) \
|
| + F(SetInitialize) \
|
| + /* Arrays */ \
|
| + F(HasFastPackedElements) \
|
| + F(GetPrototype)
|
| +
|
| +#define GENERATOR_DECLARATION(Name) void Generate##Name(CallRuntime* call);
|
| + FOR_EACH_HYDROGEN_INTRINSIC(GENERATOR_DECLARATION)
|
| +#undef GENERATOR_DECLARATION
|
|
|
| void VisitDelete(UnaryOperation* expr);
|
| void VisitVoid(UnaryOperation* expr);
|
|
|