Index: src/full-codegen/full-codegen.h |
diff --git a/src/full-codegen/full-codegen.h b/src/full-codegen/full-codegen.h |
index cb2edaf157ea4d08de1d6a510522ea4bc57431e8..876ce6c0b977bc74e60aa79ea7533d6a2d781919 100644 |
--- a/src/full-codegen/full-codegen.h |
+++ b/src/full-codegen/full-codegen.h |
@@ -199,6 +199,23 @@ |
} |
return previous_; |
} |
+ }; |
+ |
+ // A class literal expression |
+ class NestedClassLiteral : public NestedStatement { |
+ public: |
+ NestedClassLiteral(FullCodeGenerator* codegen, ClassLiteral* lit) |
+ : NestedStatement(codegen), |
+ needs_context_(lit->scope() != nullptr && |
+ lit->scope()->NeedsContext()) {} |
+ |
+ NestedStatement* Exit(int* context_length) override { |
+ if (needs_context_) ++(*context_length); |
+ return previous_; |
+ } |
+ |
+ private: |
+ const bool needs_context_; |
}; |
class DeferredCommands { |