Index: src/hydrogen.h |
diff --git a/src/hydrogen.h b/src/hydrogen.h |
index b3cb8ffc75dc3796ae288967b29c9c46f21a2e3e..7987a97a51dd8eb221cd39871164ecd289bd28de 100644 |
--- a/src/hydrogen.h |
+++ b/src/hydrogen.h |
@@ -1585,9 +1585,16 @@ class HGraphBuilder { |
ElementsKind kind, |
HValue* constructor_function); |
+ enum FillMode { |
+ DONT_FILL_WITH_HOLE, |
+ FILL_WITH_HOLE |
+ }; |
+ |
+ ElementsKind kind() { return kind_; } |
+ |
HValue* AllocateEmptyArray(); |
HValue* AllocateArray(HValue* capacity, HValue* length_field, |
- bool fill_with_hole); |
+ FillMode fill_mode = FILL_WITH_HOLE); |
HValue* GetElementsLocation() { return elements_location_; } |
private: |
@@ -1607,7 +1614,8 @@ class HGraphBuilder { |
HValue* EstablishEmptyArrayAllocationSize(); |
HValue* EstablishAllocationSize(HValue* length_node); |
HValue* AllocateArray(HValue* size_in_bytes, HValue* capacity, |
- HValue* length_field, bool fill_with_hole); |
+ HValue* length_field, |
+ FillMode fill_mode = FILL_WITH_HOLE); |
HGraphBuilder* builder_; |
ElementsKind kind_; |
@@ -1617,6 +1625,9 @@ class HGraphBuilder { |
HInnerAllocatedObject* elements_location_; |
}; |
+ HValue* BuildAllocateArrayFromLength(JSArrayBuilder* array_builder, |
+ HValue* length_argument); |
+ |
HValue* BuildAllocateElements(ElementsKind kind, |
HValue* capacity); |
@@ -2101,6 +2112,9 @@ class HOptimizedGraphBuilder : public HGraphBuilder, public AstVisitor { |
SmallMapList* types, |
Handle<String> name); |
+ bool IsCallNewArrayInlineable(CallNew* expr); |
+ void BuildInlinedCallNewArray(CallNew* expr); |
+ |
class PropertyAccessInfo { |
public: |
PropertyAccessInfo(Isolate* isolate, Handle<Map> map, Handle<String> name) |