Tree Transformations
Constant Folding Output

{
  "type": "Program",
  "start": 1,
  "end": 77,
  "body": [
    {
      "type": "VariableDeclaration",
      "start": 1,
      "end": 16,
      "declarations": [
        {
          "type": "VariableDeclarator",
          "start": 5,
          "end": 15,
          "id": {
            "type": "Identifier",
            "start": 5,
            "end": 6,
            "name": "f"
          },
          "init": {
            "type": "Literal",
            "start": 9,
            "end": 15,
            "operator": "+",
            "value": 3,
            "raw": "3"
          }
        }
      ],
      "kind": "var"
    },
    {
      "type": "VariableDeclaration",
      "start": 17,
      "end": 31,
      "declarations": [
        {
          "type": "VariableDeclarator",
          "start": 21,
          "end": 30,
          "id": {
            "type": "Identifier",
            "start": 21,
            "end": 22,
            "name": "e"
          },
          "init": {
            "type": "Literal",
            "start": 25,
            "end": 30,
            "operator": "|",
            "value": 7,
            "raw": "7"
          }
        }
      ],
      "kind": "var"
    },
    {
      "type": "VariableDeclaration",
      "start": 32,
      "end": 46,
      "declarations": [
        {
          "type": "VariableDeclarator",
          "start": 36,
          "end": 45,
          "id": {
            "type": "Identifier",
            "start": 36,
            "end": 37,
            "name": "d"
          },
          "init": {
            "type": "Literal",
            "start": 40,
            "end": 45,
            "operator": "+",
            "value": "3c",
            "raw": "3c"
          }
        }
      ],
      "kind": "var"
    },
    {
      "type": "VariableDeclaration",
      "start": 47,
      "end": 60,
      "declarations": [
        {
          "type": "VariableDeclarator",
          "start": 51,
          "end": 59,
          "id": {
            "type": "Identifier",
            "start": 51,
            "end": 52,
            "name": "b"
          },
          "init": {
            "type": "Literal",
            "start": 55,
            "end": 59,
            "operator": "+",
            "value": 10,
            "raw": "10"
          }
        }
      ],
      "kind": "var"
    },
    {
      "type": "VariableDeclaration",
      "start": 61,
      "end": 77,
      "declarations": [
        {
          "type": "VariableDeclarator",
          "start": 65,
          "end": 76,
          "id": {
            "type": "Identifier",
            "start": 65,
            "end": 66,
            "name": "a"
          },
          "init": {
            "type": "BinaryExpression",
            "start": 69,
            "end": 76,
            "left": {
              "type": "Literal",
              "start": 69,
              "end": 74,
              "operator": "+",
              "value": 17,
              "raw": "17"
            },
            "operator": "+",
            "right": {
              "type": "Identifier",
              "start": 75,
              "end": 76,
              "name": "b"
            }
          }
        }
      ],
      "kind": "var"
    }
  ],
  "sourceType": "script"
}