Index: src/hydrogen.h |
diff --git a/src/hydrogen.h b/src/hydrogen.h |
index 6dea1a6807479cc66e6970d070b1e51361626c7f..3f2841d3a3f47997a4b33cdcfb66ecf66ea29962 100644 |
--- a/src/hydrogen.h |
+++ b/src/hydrogen.h |
@@ -1183,6 +1183,11 @@ class HOptimizedGraphBuilder: public HGraphBuilder, public AstVisitor { |
static const int kUnlimitedMaxInlinedNodes = 10000; |
static const int kUnlimitedMaxInlinedNodesCumulative = 10000; |
+ // Maximum depth and total number of elements and properties for literal |
+ // graphs to be considered for fast deep-copying. |
+ static const int kMaxLiteralDepth = 3; |
Michael Starzinger
2013/04/03 09:23:23
We should name this "kMaxFastLiteralDepth" and "kM
Hannes Payer (out of office)
2013/04/08 11:03:00
Done.
|
+ static const int kMaxLiteralProperties = 8; |
+ |
// Simple accessors. |
void set_function_state(FunctionState* state) { function_state_ = state; } |
@@ -1453,6 +1458,19 @@ class HOptimizedGraphBuilder: public HGraphBuilder, public AstVisitor { |
HInstruction* BuildThisFunction(); |
+ HInstruction* BuildFastLiteral(HValue* context, |
+ Handle<JSObject> boilerplate_object, |
+ int size, |
+ AllocationSiteMode mode, |
+ BailoutId id); |
+ |
+ void BuildEmitDeepCopy(Handle<JSObject> object, |
+ HInstruction* result, |
+ HInstruction* source, |
+ int* offset, |
+ AllocationSiteMode mode, |
+ BailoutId id); |
+ |
void AddCheckPrototypeMaps(Handle<JSObject> holder, |
Handle<Map> receiver_map); |