Add missing |const| to CXFA_FMExpression classes

These are all immutable objects, so enforce that property prior to
trying to convert them to a garbage-collected representation.

-- move FMAST to bottom to avoid breaking up subclasses.

Change-Id: I21df4b1d6bd25fabde3d4680790c433b9d70c9be
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/73490
Reviewed-by: Daniel Hosseinian <dhoss@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/xfa/fxfa/fm2js/cxfa_fmexpression.h b/xfa/fxfa/fm2js/cxfa_fmexpression.h
index 2761ef5..8b5bd78 100644
--- a/xfa/fxfa/fm2js/cxfa_fmexpression.h
+++ b/xfa/fxfa/fm2js/cxfa_fmexpression.h
@@ -34,21 +34,9 @@
   bool ToJavaScript(CFX_WideTextBuf* js, ReturnType type) override;
 
  private:
-  WideStringView m_wsName;
-  std::vector<WideStringView> m_pArguments;
-  std::vector<std::unique_ptr<CXFA_FMExpression>> m_pExpressions;
-};
-
-class CXFA_FMAST {
- public:
-  explicit CXFA_FMAST(
-      std::vector<std::unique_ptr<CXFA_FMExpression>> expressions);
-  ~CXFA_FMAST();
-
-  bool ToJavaScript(CFX_WideTextBuf* js);
-
- private:
-  std::vector<std::unique_ptr<CXFA_FMExpression>> expressions_;
+  const WideStringView m_wsName;
+  std::vector<WideStringView> const m_pArguments;
+  std::vector<std::unique_ptr<CXFA_FMExpression>> const m_pExpressions;
 };
 
 class CXFA_FMVarExpression final : public CXFA_FMExpression {
@@ -60,8 +48,8 @@
   bool ToJavaScript(CFX_WideTextBuf* js, ReturnType type) override;
 
  private:
-  WideStringView m_wsName;
-  std::unique_ptr<CXFA_FMSimpleExpression> m_pInit;
+  WideStringView const m_wsName;
+  std::unique_ptr<CXFA_FMSimpleExpression> const m_pInit;
 };
 
 class CXFA_FMExpExpression final : public CXFA_FMExpression {
@@ -73,7 +61,7 @@
   bool ToJavaScript(CFX_WideTextBuf* js, ReturnType type) override;
 
  private:
-  std::unique_ptr<CXFA_FMSimpleExpression> m_pExpression;
+  std::unique_ptr<CXFA_FMSimpleExpression> const m_pExpression;
 };
 
 class CXFA_FMBlockExpression final : public CXFA_FMExpression {
@@ -85,7 +73,7 @@
   bool ToJavaScript(CFX_WideTextBuf* js, ReturnType type) override;
 
  private:
-  std::vector<std::unique_ptr<CXFA_FMExpression>> m_ExpressionList;
+  std::vector<std::unique_ptr<CXFA_FMExpression>> const m_ExpressionList;
 };
 
 class CXFA_FMDoExpression final : public CXFA_FMExpression {
@@ -96,7 +84,7 @@
   bool ToJavaScript(CFX_WideTextBuf* js, ReturnType type) override;
 
  private:
-  std::unique_ptr<CXFA_FMExpression> m_pList;
+  std::unique_ptr<CXFA_FMExpression> const m_pList;
 };
 
 class CXFA_FMIfExpression final : public CXFA_FMExpression {
@@ -111,10 +99,10 @@
   bool ToJavaScript(CFX_WideTextBuf* js, ReturnType type) override;
 
  private:
-  std::unique_ptr<CXFA_FMSimpleExpression> m_pExpression;
-  std::unique_ptr<CXFA_FMExpression> m_pIfExpression;
-  std::vector<std::unique_ptr<CXFA_FMIfExpression>> m_pElseIfExpressions;
-  std::unique_ptr<CXFA_FMExpression> m_pElseExpression;
+  std::unique_ptr<CXFA_FMSimpleExpression> const m_pExpression;
+  std::unique_ptr<CXFA_FMExpression> const m_pIfExpression;
+  std::vector<std::unique_ptr<CXFA_FMIfExpression>> const m_pElseIfExpressions;
+  std::unique_ptr<CXFA_FMExpression> const m_pElseExpression;
 };
 
 class CXFA_FMWhileExpression final : public CXFA_FMExpression {
@@ -126,8 +114,8 @@
   bool ToJavaScript(CFX_WideTextBuf* js, ReturnType type) override;
 
  private:
-  std::unique_ptr<CXFA_FMSimpleExpression> m_pCondition;
-  std::unique_ptr<CXFA_FMExpression> m_pExpression;
+  std::unique_ptr<CXFA_FMSimpleExpression> const m_pCondition;
+  std::unique_ptr<CXFA_FMExpression> const m_pExpression;
 };
 
 class CXFA_FMBreakExpression final : public CXFA_FMExpression {
@@ -159,12 +147,12 @@
   bool ToJavaScript(CFX_WideTextBuf* js, ReturnType type) override;
 
  private:
-  WideStringView m_wsVariant;
-  std::unique_ptr<CXFA_FMSimpleExpression> m_pAssignment;
-  std::unique_ptr<CXFA_FMSimpleExpression> m_pAccessor;
+  const WideStringView m_wsVariant;
+  std::unique_ptr<CXFA_FMSimpleExpression> const m_pAssignment;
+  std::unique_ptr<CXFA_FMSimpleExpression> const m_pAccessor;
   const bool m_bDirection;
-  std::unique_ptr<CXFA_FMSimpleExpression> m_pStep;
-  std::unique_ptr<CXFA_FMExpression> m_pList;
+  std::unique_ptr<CXFA_FMSimpleExpression> const m_pStep;
+  std::unique_ptr<CXFA_FMExpression> const m_pList;
 };
 
 class CXFA_FMForeachExpression final : public CXFA_FMExpression {
@@ -179,9 +167,21 @@
   bool ToJavaScript(CFX_WideTextBuf* js, ReturnType type) override;
 
  private:
-  WideStringView m_wsIdentifier;
-  std::vector<std::unique_ptr<CXFA_FMSimpleExpression>> m_pAccessors;
-  std::unique_ptr<CXFA_FMExpression> m_pList;
+  const WideStringView m_wsIdentifier;
+  std::vector<std::unique_ptr<CXFA_FMSimpleExpression>> const m_pAccessors;
+  std::unique_ptr<CXFA_FMExpression> const m_pList;
+};
+
+class CXFA_FMAST {
+ public:
+  explicit CXFA_FMAST(
+      std::vector<std::unique_ptr<CXFA_FMExpression>> expressions);
+  ~CXFA_FMAST();
+
+  bool ToJavaScript(CFX_WideTextBuf* js);
+
+ private:
+  std::vector<std::unique_ptr<CXFA_FMExpression>> const expressions_;
 };
 
 #endif  // XFA_FXFA_FM2JS_CXFA_FMEXPRESSION_H_