{
  "type": "Program",
  "start": 0,
  "end": 6101,
  "loc": {
    "start": {
      "line": 1,
      "column": 0
    },
    "end": {
      "line": 164,
      "column": 0
    }
  },
  "sourceType": "module",
  "body": [
    {
      "type": "ImportDeclaration",
      "start": 0,
      "end": 26,
      "loc": {
        "start": {
          "line": 1,
          "column": 0
        },
        "end": {
          "line": 1,
          "column": 26
        }
      },
      "specifiers": [
        {
          "type": "ImportDefaultSpecifier",
          "start": 7,
          "end": 12,
          "loc": {
            "start": {
              "line": 1,
              "column": 7
            },
            "end": {
              "line": 1,
              "column": 12
            }
          },
          "local": {
            "type": "Identifier",
            "start": 7,
            "end": 12,
            "loc": {
              "start": {
                "line": 1,
                "column": 7
              },
              "end": {
                "line": 1,
                "column": 12
              }
            },
            "name": "THREE"
          }
        }
      ],
      "importKind": "value",
      "source": {
        "type": "Literal",
        "start": 18,
        "end": 25,
        "loc": {
          "start": {
            "line": 1,
            "column": 18
          },
          "end": {
            "line": 1,
            "column": 25
          }
        },
        "value": "three",
        "rawValue": "three",
        "raw": "'three'"
      }
    },
    {
      "type": "ImportDeclaration",
      "start": 28,
      "end": 45,
      "loc": {
        "start": {
          "line": 2,
          "column": 0
        },
        "end": {
          "line": 2,
          "column": 17
        }
      },
      "specifiers": [],
      "source": {
        "type": "Literal",
        "start": 35,
        "end": 44,
        "loc": {
          "start": {
            "line": 2,
            "column": 7
          },
          "end": {
            "line": 2,
            "column": 16
          }
        },
        "value": "perfnow",
        "rawValue": "perfnow",
        "raw": "'perfnow'"
      }
    },
    {
      "type": "ImportDeclaration",
      "start": 47,
      "end": 90,
      "loc": {
        "start": {
          "line": 3,
          "column": 0
        },
        "end": {
          "line": 3,
          "column": 43
        }
      },
      "specifiers": [
        {
          "type": "ImportNamespaceSpecifier",
          "start": 54,
          "end": 66,
          "loc": {
            "start": {
              "line": 3,
              "column": 7
            },
            "end": {
              "line": 3,
              "column": 19
            }
          },
          "local": {
            "type": "Identifier",
            "start": 59,
            "end": 66,
            "loc": {
              "start": {
                "line": 3,
                "column": 12
              },
              "end": {
                "line": 3,
                "column": 19
              }
            },
            "name": "Helpers"
          }
        }
      ],
      "importKind": "value",
      "source": {
        "type": "Literal",
        "start": 72,
        "end": 89,
        "loc": {
          "start": {
            "line": 3,
            "column": 25
          },
          "end": {
            "line": 3,
            "column": 42
          }
        },
        "value": "../core/helpers",
        "rawValue": "../core/helpers",
        "raw": "'../core/helpers'"
      }
    },
    {
      "type": "ImportDeclaration",
      "start": 92,
      "end": 131,
      "loc": {
        "start": {
          "line": 4,
          "column": 0
        },
        "end": {
          "line": 4,
          "column": 39
        }
      },
      "specifiers": [
        {
          "type": "ImportDefaultSpecifier",
          "start": 99,
          "end": 104,
          "loc": {
            "start": {
              "line": 4,
              "column": 7
            },
            "end": {
              "line": 4,
              "column": 12
            }
          },
          "local": {
            "type": "Identifier",
            "start": 99,
            "end": 104,
            "loc": {
              "start": {
                "line": 4,
                "column": 7
              },
              "end": {
                "line": 4,
                "column": 12
              }
            },
            "name": "Tween"
          }
        }
      ],
      "importKind": "value",
      "source": {
        "type": "Literal",
        "start": 110,
        "end": 130,
        "loc": {
          "start": {
            "line": 4,
            "column": 18
          },
          "end": {
            "line": 4,
            "column": 38
          }
        },
        "value": "../animation/tween",
        "rawValue": "../animation/tween",
        "raw": "'../animation/tween'"
      }
    },
    {
      "type": "ExportDefaultDeclaration",
      "start": 135,
      "end": 6099,
      "loc": {
        "start": {
          "line": 6,
          "column": 0
        },
        "end": {
          "line": 163,
          "column": 1
        }
      },
      "declaration": {
        "type": "ClassDeclaration",
        "start": 150,
        "end": 6099,
        "loc": {
          "start": {
            "line": 6,
            "column": 15
          },
          "end": {
            "line": 163,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 156,
          "end": 164,
          "loc": {
            "start": {
              "line": 6,
              "column": 21
            },
            "end": {
              "line": 6,
              "column": 29
            }
          },
          "name": "Renderer"
        },
        "superClass": null,
        "body": {
          "type": "ClassBody",
          "start": 165,
          "end": 6099,
          "loc": {
            "start": {
              "line": 6,
              "column": 30
            },
            "end": {
              "line": 163,
              "column": 1
            }
          },
          "body": [
            {
              "type": "MethodDefinition",
              "start": 172,
              "end": 5221,
              "loc": {
                "start": {
                  "line": 7,
                  "column": 4
                },
                "end": {
                  "line": 131,
                  "column": 5
                }
              },
              "computed": false,
              "key": {
                "type": "Identifier",
                "start": 172,
                "end": 183,
                "loc": {
                  "start": {
                    "line": 7,
                    "column": 4
                  },
                  "end": {
                    "line": 7,
                    "column": 15
                  }
                },
                "name": "constructor"
              },
              "static": false,
              "kind": "constructor",
              "value": {
                "type": "FunctionExpression",
                "start": 183,
                "end": 5221,
                "loc": {
                  "start": {
                    "line": 7,
                    "column": 15
                  },
                  "end": {
                    "line": 131,
                    "column": 5
                  }
                },
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "AssignmentPattern",
                    "start": 184,
                    "end": 244,
                    "loc": {
                      "start": {
                        "line": 7,
                        "column": 16
                      },
                      "end": {
                        "line": 7,
                        "column": 76
                      }
                    },
                    "operator": "=",
                    "left": {
                      "type": "Identifier",
                      "start": 184,
                      "end": 190,
                      "loc": {
                        "start": {
                          "line": 7,
                          "column": 16
                        },
                        "end": {
                          "line": 7,
                          "column": 22
                        }
                      },
                      "name": "canvas"
                    },
                    "right": {
                      "type": "CallExpression",
                      "start": 193,
                      "end": 244,
                      "loc": {
                        "start": {
                          "line": 7,
                          "column": 25
                        },
                        "end": {
                          "line": 7,
                          "column": 76
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 193,
                        "end": 202,
                        "loc": {
                          "start": {
                            "line": 7,
                            "column": 25
                          },
                          "end": {
                            "line": 7,
                            "column": 34
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 193,
                          "end": 198,
                          "loc": {
                            "start": {
                              "line": 7,
                              "column": 25
                            },
                            "end": {
                              "line": 7,
                              "column": 30
                            }
                          },
                          "name": "Error"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 199,
                          "end": 202,
                          "loc": {
                            "start": {
                              "line": 7,
                              "column": 31
                            },
                            "end": {
                              "line": 7,
                              "column": 34
                            }
                          },
                          "name": "log"
                        },
                        "computed": false
                      },
                      "arguments": [
                        {
                          "type": "Literal",
                          "start": 203,
                          "end": 243,
                          "loc": {
                            "start": {
                              "line": 7,
                              "column": 35
                            },
                            "end": {
                              "line": 7,
                              "column": 75
                            }
                          },
                          "value": "Factory was initialized without canvas",
                          "rawValue": "Factory was initialized without canvas",
                          "raw": "'Factory was initialized without canvas'"
                        }
                      ]
                    }
                  },
                  {
                    "type": "AssignmentPattern",
                    "start": 246,
                    "end": 258,
                    "loc": {
                      "start": {
                        "line": 7,
                        "column": 78
                      },
                      "end": {
                        "line": 7,
                        "column": 90
                      }
                    },
                    "operator": "=",
                    "left": {
                      "type": "Identifier",
                      "start": 246,
                      "end": 253,
                      "loc": {
                        "start": {
                          "line": 7,
                          "column": 78
                        },
                        "end": {
                          "line": 7,
                          "column": 85
                        }
                      },
                      "name": "options"
                    },
                    "right": {
                      "type": "ObjectExpression",
                      "start": 256,
                      "end": 258,
                      "loc": {
                        "start": {
                          "line": 7,
                          "column": 88
                        },
                        "end": {
                          "line": 7,
                          "column": 90
                        }
                      },
                      "properties": []
                    }
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 260,
                  "end": 5221,
                  "loc": {
                    "start": {
                      "line": 7,
                      "column": 92
                    },
                    "end": {
                      "line": 131,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "start": 273,
                      "end": 1223,
                      "loc": {
                        "start": {
                          "line": 9,
                          "column": 8
                        },
                        "end": {
                          "line": 29,
                          "column": 10
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 273,
                        "end": 1222,
                        "loc": {
                          "start": {
                            "line": 9,
                            "column": 8
                          },
                          "end": {
                            "line": 29,
                            "column": 9
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "Identifier",
                          "start": 273,
                          "end": 280,
                          "loc": {
                            "start": {
                              "line": 9,
                              "column": 8
                            },
                            "end": {
                              "line": 9,
                              "column": 15
                            }
                          },
                          "name": "options"
                        },
                        "right": {
                          "type": "ObjectExpression",
                          "start": 283,
                          "end": 1222,
                          "loc": {
                            "start": {
                              "line": 9,
                              "column": 18
                            },
                            "end": {
                              "line": 29,
                              "column": 9
                            }
                          },
                          "properties": [
                            {
                              "type": "Property",
                              "start": 298,
                              "end": 352,
                              "loc": {
                                "start": {
                                  "line": 10,
                                  "column": 12
                                },
                                "end": {
                                  "line": 10,
                                  "column": 66
                                }
                              },
                              "method": false,
                              "shorthand": false,
                              "computed": false,
                              "key": {
                                "type": "Identifier",
                                "start": 298,
                                "end": 308,
                                "loc": {
                                  "start": {
                                    "line": 10,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 10,
                                    "column": 22
                                  }
                                },
                                "name": "resolution"
                              },
                              "value": {
                                "type": "LogicalExpression",
                                "start": 310,
                                "end": 352,
                                "loc": {
                                  "start": {
                                    "line": 10,
                                    "column": 24
                                  },
                                  "end": {
                                    "line": 10,
                                    "column": 66
                                  }
                                },
                                "left": {
                                  "type": "CallExpression",
                                  "start": 310,
                                  "end": 347,
                                  "loc": {
                                    "start": {
                                      "line": 10,
                                      "column": 24
                                    },
                                    "end": {
                                      "line": 10,
                                      "column": 61
                                    }
                                  },
                                  "callee": {
                                    "type": "Identifier",
                                    "start": 310,
                                    "end": 320,
                                    "loc": {
                                      "start": {
                                        "line": 10,
                                        "column": 24
                                      },
                                      "end": {
                                        "line": 10,
                                        "column": 34
                                      }
                                    },
                                    "name": "parseFloat"
                                  },
                                  "arguments": [
                                    {
                                      "type": "CallExpression",
                                      "start": 321,
                                      "end": 346,
                                      "loc": {
                                        "start": {
                                          "line": 10,
                                          "column": 35
                                        },
                                        "end": {
                                          "line": 10,
                                          "column": 60
                                        }
                                      },
                                      "callee": {
                                        "type": "MemberExpression",
                                        "start": 321,
                                        "end": 332,
                                        "loc": {
                                          "start": {
                                            "line": 10,
                                            "column": 35
                                          },
                                          "end": {
                                            "line": 10,
                                            "column": 46
                                          }
                                        },
                                        "object": {
                                          "type": "Identifier",
                                          "start": 321,
                                          "end": 328,
                                          "loc": {
                                            "start": {
                                              "line": 10,
                                              "column": 35
                                            },
                                            "end": {
                                              "line": 10,
                                              "column": 42
                                            }
                                          },
                                          "name": "Helpers"
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "start": 329,
                                          "end": 332,
                                          "loc": {
                                            "start": {
                                              "line": 10,
                                              "column": 43
                                            },
                                            "end": {
                                              "line": 10,
                                              "column": 46
                                            }
                                          },
                                          "name": "url"
                                        },
                                        "computed": false
                                      },
                                      "arguments": [
                                        {
                                          "type": "Literal",
                                          "start": 333,
                                          "end": 345,
                                          "loc": {
                                            "start": {
                                              "line": 10,
                                              "column": 47
                                            },
                                            "end": {
                                              "line": 10,
                                              "column": 59
                                            }
                                          },
                                          "value": "resolution",
                                          "rawValue": "resolution",
                                          "raw": "'resolution'"
                                        }
                                      ]
                                    }
                                  ]
                                },
                                "operator": "||",
                                "right": {
                                  "type": "Literal",
                                  "start": 351,
                                  "end": 352,
                                  "loc": {
                                    "start": {
                                      "line": 10,
                                      "column": 65
                                    },
                                    "end": {
                                      "line": 10,
                                      "column": 66
                                    }
                                  },
                                  "value": 1,
                                  "rawValue": 1,
                                  "raw": "1"
                                }
                              },
                              "kind": "init"
                            },
                            {
                              "type": "Property",
                              "start": 367,
                              "end": 411,
                              "loc": {
                                "start": {
                                  "line": 11,
                                  "column": 12
                                },
                                "end": {
                                  "line": 11,
                                  "column": 56
                                }
                              },
                              "method": false,
                              "shorthand": false,
                              "computed": false,
                              "key": {
                                "type": "Identifier",
                                "start": 367,
                                "end": 376,
                                "loc": {
                                  "start": {
                                    "line": 11,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 11,
                                    "column": 21
                                  }
                                },
                                "name": "pixelated"
                              },
                              "value": {
                                "type": "LogicalExpression",
                                "start": 378,
                                "end": 411,
                                "loc": {
                                  "start": {
                                    "line": 11,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 11,
                                    "column": 56
                                  }
                                },
                                "left": {
                                  "type": "CallExpression",
                                  "start": 378,
                                  "end": 402,
                                  "loc": {
                                    "start": {
                                      "line": 11,
                                      "column": 23
                                    },
                                    "end": {
                                      "line": 11,
                                      "column": 47
                                    }
                                  },
                                  "callee": {
                                    "type": "MemberExpression",
                                    "start": 378,
                                    "end": 389,
                                    "loc": {
                                      "start": {
                                        "line": 11,
                                        "column": 23
                                      },
                                      "end": {
                                        "line": 11,
                                        "column": 34
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 378,
                                      "end": 385,
                                      "loc": {
                                        "start": {
                                          "line": 11,
                                          "column": 23
                                        },
                                        "end": {
                                          "line": 11,
                                          "column": 30
                                        }
                                      },
                                      "name": "Helpers"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 386,
                                      "end": 389,
                                      "loc": {
                                        "start": {
                                          "line": 11,
                                          "column": 31
                                        },
                                        "end": {
                                          "line": 11,
                                          "column": 34
                                        }
                                      },
                                      "name": "url"
                                    },
                                    "computed": false
                                  },
                                  "arguments": [
                                    {
                                      "type": "Literal",
                                      "start": 390,
                                      "end": 401,
                                      "loc": {
                                        "start": {
                                          "line": 11,
                                          "column": 35
                                        },
                                        "end": {
                                          "line": 11,
                                          "column": 46
                                        }
                                      },
                                      "value": "pixelated",
                                      "rawValue": "pixelated",
                                      "raw": "'pixelated'"
                                    }
                                  ]
                                },
                                "operator": "||",
                                "right": {
                                  "type": "Literal",
                                  "start": 406,
                                  "end": 411,
                                  "loc": {
                                    "start": {
                                      "line": 11,
                                      "column": 51
                                    },
                                    "end": {
                                      "line": 11,
                                      "column": 56
                                    }
                                  },
                                  "value": false,
                                  "rawValue": false,
                                  "raw": "false"
                                }
                              },
                              "kind": "init"
                            },
                            {
                              "type": "Property",
                              "start": 426,
                              "end": 456,
                              "loc": {
                                "start": {
                                  "line": 12,
                                  "column": 12
                                },
                                "end": {
                                  "line": 12,
                                  "column": 42
                                }
                              },
                              "method": false,
                              "shorthand": false,
                              "computed": false,
                              "key": {
                                "type": "Identifier",
                                "start": 426,
                                "end": 436,
                                "loc": {
                                  "start": {
                                    "line": 12,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 12,
                                    "column": 22
                                  }
                                },
                                "name": "clearColor"
                              },
                              "value": {
                                "type": "NewExpression",
                                "start": 438,
                                "end": 456,
                                "loc": {
                                  "start": {
                                    "line": 12,
                                    "column": 24
                                  },
                                  "end": {
                                    "line": 12,
                                    "column": 42
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 442,
                                  "end": 453,
                                  "loc": {
                                    "start": {
                                      "line": 12,
                                      "column": 28
                                    },
                                    "end": {
                                      "line": 12,
                                      "column": 39
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 442,
                                    "end": 447,
                                    "loc": {
                                      "start": {
                                        "line": 12,
                                        "column": 28
                                      },
                                      "end": {
                                        "line": 12,
                                        "column": 33
                                      }
                                    },
                                    "name": "THREE"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 448,
                                    "end": 453,
                                    "loc": {
                                      "start": {
                                        "line": 12,
                                        "column": 34
                                      },
                                      "end": {
                                        "line": 12,
                                        "column": 39
                                      }
                                    },
                                    "name": "Color"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "Literal",
                                    "start": 454,
                                    "end": 455,
                                    "loc": {
                                      "start": {
                                        "line": 12,
                                        "column": 40
                                      },
                                      "end": {
                                        "line": 12,
                                        "column": 41
                                      }
                                    },
                                    "value": 0,
                                    "rawValue": 0,
                                    "raw": "0"
                                  }
                                ]
                              },
                              "kind": "init"
                            },
                            {
                              "type": "Property",
                              "start": 471,
                              "end": 485,
                              "loc": {
                                "start": {
                                  "line": 13,
                                  "column": 12
                                },
                                "end": {
                                  "line": 13,
                                  "column": 26
                                }
                              },
                              "method": false,
                              "shorthand": false,
                              "computed": false,
                              "key": {
                                "type": "Identifier",
                                "start": 471,
                                "end": 476,
                                "loc": {
                                  "start": {
                                    "line": 13,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 13,
                                    "column": 17
                                  }
                                },
                                "name": "place"
                              },
                              "value": {
                                "type": "Literal",
                                "start": 478,
                                "end": 485,
                                "loc": {
                                  "start": {
                                    "line": 13,
                                    "column": 19
                                  },
                                  "end": {
                                    "line": 13,
                                    "column": 26
                                  }
                                },
                                "value": "first",
                                "rawValue": "first",
                                "raw": "'first'"
                              },
                              "kind": "init"
                            },
                            {
                              "type": "Property",
                              "start": 500,
                              "end": 522,
                              "loc": {
                                "start": {
                                  "line": 14,
                                  "column": 12
                                },
                                "end": {
                                  "line": 14,
                                  "column": 34
                                }
                              },
                              "method": false,
                              "shorthand": false,
                              "computed": false,
                              "key": {
                                "type": "Identifier",
                                "start": 500,
                                "end": 516,
                                "loc": {
                                  "start": {
                                    "line": 14,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 14,
                                    "column": 28
                                  }
                                },
                                "name": "startImmediately"
                              },
                              "value": {
                                "type": "Literal",
                                "start": 518,
                                "end": 522,
                                "loc": {
                                  "start": {
                                    "line": 14,
                                    "column": 30
                                  },
                                  "end": {
                                    "line": 14,
                                    "column": 34
                                  }
                                },
                                "value": true,
                                "rawValue": true,
                                "raw": "true"
                              },
                              "kind": "init"
                            },
                            {
                              "type": "Property",
                              "start": 537,
                              "end": 555,
                              "loc": {
                                "start": {
                                  "line": 15,
                                  "column": 12
                                },
                                "end": {
                                  "line": 15,
                                  "column": 30
                                }
                              },
                              "method": false,
                              "shorthand": false,
                              "computed": false,
                              "key": {
                                "type": "Identifier",
                                "start": 537,
                                "end": 546,
                                "loc": {
                                  "start": {
                                    "line": 15,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 15,
                                    "column": 21
                                  }
                                },
                                "name": "precision"
                              },
                              "value": {
                                "type": "Literal",
                                "start": 548,
                                "end": 555,
                                "loc": {
                                  "start": {
                                    "line": 15,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 15,
                                    "column": 30
                                  }
                                },
                                "value": "highp",
                                "rawValue": "highp",
                                "raw": "'highp'"
                              },
                              "kind": "init"
                            },
                            {
                              "type": "Property",
                              "start": 570,
                              "end": 594,
                              "loc": {
                                "start": {
                                  "line": 16,
                                  "column": 12
                                },
                                "end": {
                                  "line": 16,
                                  "column": 36
                                }
                              },
                              "method": false,
                              "shorthand": false,
                              "computed": false,
                              "key": {
                                "type": "Identifier",
                                "start": 570,
                                "end": 588,
                                "loc": {
                                  "start": {
                                    "line": 16,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 16,
                                    "column": 30
                                  }
                                },
                                "name": "premultipliedAlpha"
                              },
                              "value": {
                                "type": "Literal",
                                "start": 590,
                                "end": 594,
                                "loc": {
                                  "start": {
                                    "line": 16,
                                    "column": 32
                                  },
                                  "end": {
                                    "line": 16,
                                    "column": 36
                                  }
                                },
                                "value": true,
                                "rawValue": true,
                                "raw": "true"
                              },
                              "kind": "init"
                            },
                            {
                              "type": "Property",
                              "start": 609,
                              "end": 622,
                              "loc": {
                                "start": {
                                  "line": 17,
                                  "column": 12
                                },
                                "end": {
                                  "line": 17,
                                  "column": 25
                                }
                              },
                              "method": false,
                              "shorthand": false,
                              "computed": false,
                              "key": {
                                "type": "Identifier",
                                "start": 609,
                                "end": 616,
                                "loc": {
                                  "start": {
                                    "line": 17,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 17,
                                    "column": 19
                                  }
                                },
                                "name": "stencil"
                              },
                              "value": {
                                "type": "Literal",
                                "start": 618,
                                "end": 622,
                                "loc": {
                                  "start": {
                                    "line": 17,
                                    "column": 21
                                  },
                                  "end": {
                                    "line": 17,
                                    "column": 25
                                  }
                                },
                                "value": true,
                                "rawValue": true,
                                "raw": "true"
                              },
                              "kind": "init"
                            },
                            {
                              "type": "Property",
                              "start": 637,
                              "end": 648,
                              "loc": {
                                "start": {
                                  "line": 18,
                                  "column": 12
                                },
                                "end": {
                                  "line": 18,
                                  "column": 23
                                }
                              },
                              "method": false,
                              "shorthand": false,
                              "computed": false,
                              "key": {
                                "type": "Identifier",
                                "start": 637,
                                "end": 642,
                                "loc": {
                                  "start": {
                                    "line": 18,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 18,
                                    "column": 17
                                  }
                                },
                                "name": "depth"
                              },
                              "value": {
                                "type": "Literal",
                                "start": 644,
                                "end": 648,
                                "loc": {
                                  "start": {
                                    "line": 18,
                                    "column": 19
                                  },
                                  "end": {
                                    "line": 18,
                                    "column": 23
                                  }
                                },
                                "value": true,
                                "rawValue": true,
                                "raw": "true"
                              },
                              "kind": "init"
                            },
                            {
                              "type": "Property",
                              "start": 663,
                              "end": 690,
                              "loc": {
                                "start": {
                                  "line": 19,
                                  "column": 12
                                },
                                "end": {
                                  "line": 19,
                                  "column": 39
                                }
                              },
                              "method": false,
                              "shorthand": false,
                              "computed": false,
                              "key": {
                                "type": "Identifier",
                                "start": 663,
                                "end": 684,
                                "loc": {
                                  "start": {
                                    "line": 19,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 19,
                                    "column": 33
                                  }
                                },
                                "name": "preserveDrawingBuffer"
                              },
                              "value": {
                                "type": "Literal",
                                "start": 686,
                                "end": 690,
                                "loc": {
                                  "start": {
                                    "line": 19,
                                    "column": 35
                                  },
                                  "end": {
                                    "line": 19,
                                    "column": 39
                                  }
                                },
                                "value": true,
                                "rawValue": true,
                                "raw": "true"
                              },
                              "kind": "init"
                            },
                            {
                              "type": "Property",
                              "start": 705,
                              "end": 716,
                              "loc": {
                                "start": {
                                  "line": 20,
                                  "column": 12
                                },
                                "end": {
                                  "line": 20,
                                  "column": 23
                                }
                              },
                              "method": false,
                              "shorthand": false,
                              "computed": false,
                              "key": {
                                "type": "Identifier",
                                "start": 705,
                                "end": 710,
                                "loc": {
                                  "start": {
                                    "line": 20,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 20,
                                    "column": 17
                                  }
                                },
                                "name": "alpha"
                              },
                              "value": {
                                "type": "Literal",
                                "start": 712,
                                "end": 716,
                                "loc": {
                                  "start": {
                                    "line": 20,
                                    "column": 19
                                  },
                                  "end": {
                                    "line": 20,
                                    "column": 23
                                  }
                                },
                                "value": true,
                                "rawValue": true,
                                "raw": "true"
                              },
                              "kind": "init"
                            },
                            {
                              "type": "Property",
                              "start": 731,
                              "end": 746,
                              "loc": {
                                "start": {
                                  "line": 21,
                                  "column": 12
                                },
                                "end": {
                                  "line": 21,
                                  "column": 27
                                }
                              },
                              "method": false,
                              "shorthand": false,
                              "computed": false,
                              "key": {
                                "type": "Identifier",
                                "start": 731,
                                "end": 740,
                                "loc": {
                                  "start": {
                                    "line": 21,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 21,
                                    "column": 21
                                  }
                                },
                                "name": "antialias"
                              },
                              "value": {
                                "type": "Literal",
                                "start": 742,
                                "end": 746,
                                "loc": {
                                  "start": {
                                    "line": 21,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 21,
                                    "column": 27
                                  }
                                },
                                "value": true,
                                "rawValue": true,
                                "raw": "true"
                              },
                              "kind": "init"
                            },
                            {
                              "type": "Property",
                              "start": 761,
                              "end": 790,
                              "loc": {
                                "start": {
                                  "line": 22,
                                  "column": 12
                                },
                                "end": {
                                  "line": 22,
                                  "column": 41
                                }
                              },
                              "method": false,
                              "shorthand": false,
                              "computed": false,
                              "key": {
                                "type": "Identifier",
                                "start": 761,
                                "end": 783,
                                "loc": {
                                  "start": {
                                    "line": 22,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 22,
                                    "column": 34
                                  }
                                },
                                "name": "logarithmicDepthBuffer"
                              },
                              "value": {
                                "type": "Literal",
                                "start": 785,
                                "end": 790,
                                "loc": {
                                  "start": {
                                    "line": 22,
                                    "column": 36
                                  },
                                  "end": {
                                    "line": 22,
                                    "column": 41
                                  }
                                },
                                "value": false,
                                "rawValue": false,
                                "raw": "false"
                              },
                              "kind": "init"
                            },
                            {
                              "type": "Property",
                              "start": 805,
                              "end": 822,
                              "loc": {
                                "start": {
                                  "line": 23,
                                  "column": 12
                                },
                                "end": {
                                  "line": 23,
                                  "column": 29
                                }
                              },
                              "method": false,
                              "shorthand": false,
                              "computed": false,
                              "key": {
                                "type": "Identifier",
                                "start": 805,
                                "end": 816,
                                "loc": {
                                  "start": {
                                    "line": 23,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 23,
                                    "column": 23
                                  }
                                },
                                "name": "sortObjects"
                              },
                              "value": {
                                "type": "Literal",
                                "start": 818,
                                "end": 822,
                                "loc": {
                                  "start": {
                                    "line": 23,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 23,
                                    "column": 29
                                  }
                                },
                                "value": true,
                                "rawValue": true,
                                "raw": "true"
                              },
                              "kind": "init"
                            },
                            {
                              "type": "Property",
                              "start": 837,
                              "end": 853,
                              "loc": {
                                "start": {
                                  "line": 24,
                                  "column": 12
                                },
                                "end": {
                                  "line": 24,
                                  "column": 28
                                }
                              },
                              "method": false,
                              "shorthand": false,
                              "computed": false,
                              "key": {
                                "type": "Identifier",
                                "start": 837,
                                "end": 846,
                                "loc": {
                                  "start": {
                                    "line": 24,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 24,
                                    "column": 21
                                  }
                                },
                                "name": "autoClear"
                              },
                              "value": {
                                "type": "Literal",
                                "start": 848,
                                "end": 853,
                                "loc": {
                                  "start": {
                                    "line": 24,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 24,
                                    "column": 28
                                  }
                                },
                                "value": false,
                                "rawValue": false,
                                "raw": "false"
                              },
                              "kind": "init"
                            },
                            {
                              "type": "Property",
                              "start": 868,
                              "end": 1101,
                              "loc": {
                                "start": {
                                  "line": 25,
                                  "column": 12
                                },
                                "end": {
                                  "line": 25,
                                  "column": 245
                                }
                              },
                              "method": false,
                              "shorthand": false,
                              "computed": false,
                              "key": {
                                "type": "Identifier",
                                "start": 868,
                                "end": 879,
                                "loc": {
                                  "start": {
                                    "line": 25,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 25,
                                    "column": 23
                                  }
                                },
                                "name": "canvasStyle"
                              },
                              "value": {
                                "type": "Literal",
                                "start": 881,
                                "end": 1101,
                                "loc": {
                                  "start": {
                                    "line": 25,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 25,
                                    "column": 245
                                  }
                                },
                                "value": "position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; overflow: hidden; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; -o-user-select: none; user-select: none;",
                                "rawValue": "position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; overflow: hidden; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; -o-user-select: none; user-select: none;",
                                "raw": "'position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; overflow: hidden; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; -o-user-select: none; user-select: none;'"
                              },
                              "kind": "init"
                            },
                            {
                              "type": "Property",
                              "start": 1116,
                              "end": 1138,
                              "loc": {
                                "start": {
                                  "line": 26,
                                  "column": 12
                                },
                                "end": {
                                  "line": 26,
                                  "column": 34
                                }
                              },
                              "method": false,
                              "shorthand": false,
                              "computed": false,
                              "key": {
                                "type": "Identifier",
                                "start": 1116,
                                "end": 1132,
                                "loc": {
                                  "start": {
                                    "line": 26,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 26,
                                    "column": 28
                                  }
                                },
                                "name": "shadowMapEnabled"
                              },
                              "value": {
                                "type": "Literal",
                                "start": 1134,
                                "end": 1138,
                                "loc": {
                                  "start": {
                                    "line": 26,
                                    "column": 30
                                  },
                                  "end": {
                                    "line": 26,
                                    "column": 34
                                  }
                                },
                                "value": true,
                                "rawValue": true,
                                "raw": "true"
                              },
                              "kind": "init"
                            },
                            {
                              "type": "Property",
                              "start": 1153,
                              "end": 1186,
                              "loc": {
                                "start": {
                                  "line": 27,
                                  "column": 12
                                },
                                "end": {
                                  "line": 27,
                                  "column": 45
                                }
                              },
                              "method": false,
                              "shorthand": false,
                              "computed": false,
                              "key": {
                                "type": "Identifier",
                                "start": 1153,
                                "end": 1166,
                                "loc": {
                                  "start": {
                                    "line": 27,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 27,
                                    "column": 25
                                  }
                                },
                                "name": "shadowMapType"
                              },
                              "value": {
                                "type": "MemberExpression",
                                "start": 1168,
                                "end": 1186,
                                "loc": {
                                  "start": {
                                    "line": 27,
                                    "column": 27
                                  },
                                  "end": {
                                    "line": 27,
                                    "column": 45
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 1168,
                                  "end": 1173,
                                  "loc": {
                                    "start": {
                                      "line": 27,
                                      "column": 27
                                    },
                                    "end": {
                                      "line": 27,
                                      "column": 32
                                    }
                                  },
                                  "name": "THREE"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 1174,
                                  "end": 1186,
                                  "loc": {
                                    "start": {
                                      "line": 27,
                                      "column": 33
                                    },
                                    "end": {
                                      "line": 27,
                                      "column": 45
                                    }
                                  },
                                  "name": "PCFShadowMap"
                                },
                                "computed": false
                              },
                              "kind": "init"
                            },
                            {
                              "type": "SpreadProperty",
                              "start": 1201,
                              "end": 1211,
                              "loc": {
                                "start": {
                                  "line": 28,
                                  "column": 12
                                },
                                "end": {
                                  "line": 28,
                                  "column": 22
                                }
                              },
                              "argument": {
                                "type": "Identifier",
                                "start": 1204,
                                "end": 1211,
                                "loc": {
                                  "start": {
                                    "line": 28,
                                    "column": 15
                                  },
                                  "end": {
                                    "line": 28,
                                    "column": 22
                                  }
                                },
                                "name": "options"
                              }
                            }
                          ]
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 1235,
                      "end": 1256,
                      "loc": {
                        "start": {
                          "line": 31,
                          "column": 8
                        },
                        "end": {
                          "line": 31,
                          "column": 29
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 1235,
                        "end": 1255,
                        "loc": {
                          "start": {
                            "line": 31,
                            "column": 8
                          },
                          "end": {
                            "line": 31,
                            "column": 28
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 1235,
                          "end": 1246,
                          "loc": {
                            "start": {
                              "line": 31,
                              "column": 8
                            },
                            "end": {
                              "line": 31,
                              "column": 19
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 1235,
                            "end": 1239,
                            "loc": {
                              "start": {
                                "line": 31,
                                "column": 8
                              },
                              "end": {
                                "line": 31,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1240,
                            "end": 1246,
                            "loc": {
                              "start": {
                                "line": 31,
                                "column": 13
                              },
                              "end": {
                                "line": 31,
                                "column": 19
                              }
                            },
                            "name": "canvas"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "Identifier",
                          "start": 1249,
                          "end": 1255,
                          "loc": {
                            "start": {
                              "line": 31,
                              "column": 22
                            },
                            "end": {
                              "line": 31,
                              "column": 28
                            }
                          },
                          "name": "canvas"
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 1266,
                      "end": 1303,
                      "loc": {
                        "start": {
                          "line": 32,
                          "column": 8
                        },
                        "end": {
                          "line": 32,
                          "column": 45
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 1266,
                        "end": 1302,
                        "loc": {
                          "start": {
                            "line": 32,
                            "column": 8
                          },
                          "end": {
                            "line": 32,
                            "column": 44
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 1266,
                          "end": 1281,
                          "loc": {
                            "start": {
                              "line": 32,
                              "column": 8
                            },
                            "end": {
                              "line": 32,
                              "column": 23
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 1266,
                            "end": 1270,
                            "loc": {
                              "start": {
                                "line": 32,
                                "column": 8
                              },
                              "end": {
                                "line": 32,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1271,
                            "end": 1281,
                            "loc": {
                              "start": {
                                "line": 32,
                                "column": 13
                              },
                              "end": {
                                "line": 32,
                                "column": 23
                              }
                            },
                            "name": "resolution"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "MemberExpression",
                          "start": 1284,
                          "end": 1302,
                          "loc": {
                            "start": {
                              "line": 32,
                              "column": 26
                            },
                            "end": {
                              "line": 32,
                              "column": 44
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 1284,
                            "end": 1291,
                            "loc": {
                              "start": {
                                "line": 32,
                                "column": 26
                              },
                              "end": {
                                "line": 32,
                                "column": 33
                              }
                            },
                            "name": "options"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1292,
                            "end": 1302,
                            "loc": {
                              "start": {
                                "line": 32,
                                "column": 34
                              },
                              "end": {
                                "line": 32,
                                "column": 44
                              }
                            },
                            "name": "resolution"
                          },
                          "computed": false
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 1313,
                      "end": 1350,
                      "loc": {
                        "start": {
                          "line": 33,
                          "column": 8
                        },
                        "end": {
                          "line": 33,
                          "column": 45
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 1313,
                        "end": 1349,
                        "loc": {
                          "start": {
                            "line": 33,
                            "column": 8
                          },
                          "end": {
                            "line": 33,
                            "column": 44
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 1313,
                          "end": 1328,
                          "loc": {
                            "start": {
                              "line": 33,
                              "column": 8
                            },
                            "end": {
                              "line": 33,
                              "column": 23
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 1313,
                            "end": 1317,
                            "loc": {
                              "start": {
                                "line": 33,
                                "column": 8
                              },
                              "end": {
                                "line": 33,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1318,
                            "end": 1328,
                            "loc": {
                              "start": {
                                "line": 33,
                                "column": 13
                              },
                              "end": {
                                "line": 33,
                                "column": 23
                              }
                            },
                            "name": "clearColor"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "MemberExpression",
                          "start": 1331,
                          "end": 1349,
                          "loc": {
                            "start": {
                              "line": 33,
                              "column": 26
                            },
                            "end": {
                              "line": 33,
                              "column": 44
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 1331,
                            "end": 1338,
                            "loc": {
                              "start": {
                                "line": 33,
                                "column": 26
                              },
                              "end": {
                                "line": 33,
                                "column": 33
                              }
                            },
                            "name": "options"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1339,
                            "end": 1349,
                            "loc": {
                              "start": {
                                "line": 33,
                                "column": 34
                              },
                              "end": {
                                "line": 33,
                                "column": 44
                              }
                            },
                            "name": "clearColor"
                          },
                          "computed": false
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 1362,
                      "end": 1838,
                      "loc": {
                        "start": {
                          "line": 35,
                          "column": 8
                        },
                        "end": {
                          "line": 45,
                          "column": 11
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 1362,
                        "end": 1837,
                        "loc": {
                          "start": {
                            "line": 35,
                            "column": 8
                          },
                          "end": {
                            "line": 45,
                            "column": 10
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 1362,
                          "end": 1369,
                          "loc": {
                            "start": {
                              "line": 35,
                              "column": 8
                            },
                            "end": {
                              "line": 35,
                              "column": 15
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 1362,
                            "end": 1366,
                            "loc": {
                              "start": {
                                "line": 35,
                                "column": 8
                              },
                              "end": {
                                "line": 35,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1367,
                            "end": 1369,
                            "loc": {
                              "start": {
                                "line": 35,
                                "column": 13
                              },
                              "end": {
                                "line": 35,
                                "column": 15
                              }
                            },
                            "name": "gl"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "NewExpression",
                          "start": 1372,
                          "end": 1837,
                          "loc": {
                            "start": {
                              "line": 35,
                              "column": 18
                            },
                            "end": {
                              "line": 45,
                              "column": 10
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 1376,
                            "end": 1395,
                            "loc": {
                              "start": {
                                "line": 35,
                                "column": 22
                              },
                              "end": {
                                "line": 35,
                                "column": 41
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 1376,
                              "end": 1381,
                              "loc": {
                                "start": {
                                  "line": 35,
                                  "column": 22
                                },
                                "end": {
                                  "line": 35,
                                  "column": 27
                                }
                              },
                              "name": "THREE"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1382,
                              "end": 1395,
                              "loc": {
                                "start": {
                                  "line": 35,
                                  "column": 28
                                },
                                "end": {
                                  "line": 35,
                                  "column": 41
                                }
                              },
                              "name": "WebGLRenderer"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "ObjectExpression",
                              "start": 1396,
                              "end": 1836,
                              "loc": {
                                "start": {
                                  "line": 35,
                                  "column": 42
                                },
                                "end": {
                                  "line": 45,
                                  "column": 9
                                }
                              },
                              "properties": [
                                {
                                  "type": "Property",
                                  "start": 1411,
                                  "end": 1433,
                                  "loc": {
                                    "start": {
                                      "line": 36,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 36,
                                      "column": 34
                                    }
                                  },
                                  "method": false,
                                  "shorthand": false,
                                  "computed": false,
                                  "key": {
                                    "type": "Identifier",
                                    "start": 1411,
                                    "end": 1417,
                                    "loc": {
                                      "start": {
                                        "line": 36,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 36,
                                        "column": 18
                                      }
                                    },
                                    "name": "canvas"
                                  },
                                  "value": {
                                    "type": "MemberExpression",
                                    "start": 1419,
                                    "end": 1433,
                                    "loc": {
                                      "start": {
                                        "line": 36,
                                        "column": 20
                                      },
                                      "end": {
                                        "line": 36,
                                        "column": 34
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 1419,
                                      "end": 1426,
                                      "loc": {
                                        "start": {
                                          "line": 36,
                                          "column": 20
                                        },
                                        "end": {
                                          "line": 36,
                                          "column": 27
                                        }
                                      },
                                      "name": "options"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 1427,
                                      "end": 1433,
                                      "loc": {
                                        "start": {
                                          "line": 36,
                                          "column": 28
                                        },
                                        "end": {
                                          "line": 36,
                                          "column": 34
                                        }
                                      },
                                      "name": "canvas"
                                    },
                                    "computed": false
                                  },
                                  "kind": "init"
                                },
                                {
                                  "type": "Property",
                                  "start": 1448,
                                  "end": 1476,
                                  "loc": {
                                    "start": {
                                      "line": 37,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 37,
                                      "column": 40
                                    }
                                  },
                                  "method": false,
                                  "shorthand": false,
                                  "computed": false,
                                  "key": {
                                    "type": "Identifier",
                                    "start": 1448,
                                    "end": 1457,
                                    "loc": {
                                      "start": {
                                        "line": 37,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 37,
                                        "column": 21
                                      }
                                    },
                                    "name": "precision"
                                  },
                                  "value": {
                                    "type": "MemberExpression",
                                    "start": 1459,
                                    "end": 1476,
                                    "loc": {
                                      "start": {
                                        "line": 37,
                                        "column": 23
                                      },
                                      "end": {
                                        "line": 37,
                                        "column": 40
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 1459,
                                      "end": 1466,
                                      "loc": {
                                        "start": {
                                          "line": 37,
                                          "column": 23
                                        },
                                        "end": {
                                          "line": 37,
                                          "column": 30
                                        }
                                      },
                                      "name": "options"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 1467,
                                      "end": 1476,
                                      "loc": {
                                        "start": {
                                          "line": 37,
                                          "column": 31
                                        },
                                        "end": {
                                          "line": 37,
                                          "column": 40
                                        }
                                      },
                                      "name": "precision"
                                    },
                                    "computed": false
                                  },
                                  "kind": "init"
                                },
                                {
                                  "type": "Property",
                                  "start": 1491,
                                  "end": 1537,
                                  "loc": {
                                    "start": {
                                      "line": 38,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 38,
                                      "column": 58
                                    }
                                  },
                                  "method": false,
                                  "shorthand": false,
                                  "computed": false,
                                  "key": {
                                    "type": "Identifier",
                                    "start": 1491,
                                    "end": 1509,
                                    "loc": {
                                      "start": {
                                        "line": 38,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 38,
                                        "column": 30
                                      }
                                    },
                                    "name": "premultipliedAlpha"
                                  },
                                  "value": {
                                    "type": "MemberExpression",
                                    "start": 1511,
                                    "end": 1537,
                                    "loc": {
                                      "start": {
                                        "line": 38,
                                        "column": 32
                                      },
                                      "end": {
                                        "line": 38,
                                        "column": 58
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 1511,
                                      "end": 1518,
                                      "loc": {
                                        "start": {
                                          "line": 38,
                                          "column": 32
                                        },
                                        "end": {
                                          "line": 38,
                                          "column": 39
                                        }
                                      },
                                      "name": "options"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 1519,
                                      "end": 1537,
                                      "loc": {
                                        "start": {
                                          "line": 38,
                                          "column": 40
                                        },
                                        "end": {
                                          "line": 38,
                                          "column": 58
                                        }
                                      },
                                      "name": "premultipliedAlpha"
                                    },
                                    "computed": false
                                  },
                                  "kind": "init"
                                },
                                {
                                  "type": "Property",
                                  "start": 1552,
                                  "end": 1576,
                                  "loc": {
                                    "start": {
                                      "line": 39,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 39,
                                      "column": 36
                                    }
                                  },
                                  "method": false,
                                  "shorthand": false,
                                  "computed": false,
                                  "key": {
                                    "type": "Identifier",
                                    "start": 1552,
                                    "end": 1559,
                                    "loc": {
                                      "start": {
                                        "line": 39,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 39,
                                        "column": 19
                                      }
                                    },
                                    "name": "stencil"
                                  },
                                  "value": {
                                    "type": "MemberExpression",
                                    "start": 1561,
                                    "end": 1576,
                                    "loc": {
                                      "start": {
                                        "line": 39,
                                        "column": 21
                                      },
                                      "end": {
                                        "line": 39,
                                        "column": 36
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 1561,
                                      "end": 1568,
                                      "loc": {
                                        "start": {
                                          "line": 39,
                                          "column": 21
                                        },
                                        "end": {
                                          "line": 39,
                                          "column": 28
                                        }
                                      },
                                      "name": "options"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 1569,
                                      "end": 1576,
                                      "loc": {
                                        "start": {
                                          "line": 39,
                                          "column": 29
                                        },
                                        "end": {
                                          "line": 39,
                                          "column": 36
                                        }
                                      },
                                      "name": "stencil"
                                    },
                                    "computed": false
                                  },
                                  "kind": "init"
                                },
                                {
                                  "type": "Property",
                                  "start": 1591,
                                  "end": 1611,
                                  "loc": {
                                    "start": {
                                      "line": 40,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 40,
                                      "column": 32
                                    }
                                  },
                                  "method": false,
                                  "shorthand": false,
                                  "computed": false,
                                  "key": {
                                    "type": "Identifier",
                                    "start": 1591,
                                    "end": 1596,
                                    "loc": {
                                      "start": {
                                        "line": 40,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 40,
                                        "column": 17
                                      }
                                    },
                                    "name": "depth"
                                  },
                                  "value": {
                                    "type": "MemberExpression",
                                    "start": 1598,
                                    "end": 1611,
                                    "loc": {
                                      "start": {
                                        "line": 40,
                                        "column": 19
                                      },
                                      "end": {
                                        "line": 40,
                                        "column": 32
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 1598,
                                      "end": 1605,
                                      "loc": {
                                        "start": {
                                          "line": 40,
                                          "column": 19
                                        },
                                        "end": {
                                          "line": 40,
                                          "column": 26
                                        }
                                      },
                                      "name": "options"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 1606,
                                      "end": 1611,
                                      "loc": {
                                        "start": {
                                          "line": 40,
                                          "column": 27
                                        },
                                        "end": {
                                          "line": 40,
                                          "column": 32
                                        }
                                      },
                                      "name": "depth"
                                    },
                                    "computed": false
                                  },
                                  "kind": "init"
                                },
                                {
                                  "type": "Property",
                                  "start": 1626,
                                  "end": 1678,
                                  "loc": {
                                    "start": {
                                      "line": 41,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 41,
                                      "column": 64
                                    }
                                  },
                                  "method": false,
                                  "shorthand": false,
                                  "computed": false,
                                  "key": {
                                    "type": "Identifier",
                                    "start": 1626,
                                    "end": 1647,
                                    "loc": {
                                      "start": {
                                        "line": 41,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 41,
                                        "column": 33
                                      }
                                    },
                                    "name": "preserveDrawingBuffer"
                                  },
                                  "value": {
                                    "type": "MemberExpression",
                                    "start": 1649,
                                    "end": 1678,
                                    "loc": {
                                      "start": {
                                        "line": 41,
                                        "column": 35
                                      },
                                      "end": {
                                        "line": 41,
                                        "column": 64
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 1649,
                                      "end": 1656,
                                      "loc": {
                                        "start": {
                                          "line": 41,
                                          "column": 35
                                        },
                                        "end": {
                                          "line": 41,
                                          "column": 42
                                        }
                                      },
                                      "name": "options"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 1657,
                                      "end": 1678,
                                      "loc": {
                                        "start": {
                                          "line": 41,
                                          "column": 43
                                        },
                                        "end": {
                                          "line": 41,
                                          "column": 64
                                        }
                                      },
                                      "name": "preserveDrawingBuffer"
                                    },
                                    "computed": false
                                  },
                                  "kind": "init"
                                },
                                {
                                  "type": "Property",
                                  "start": 1693,
                                  "end": 1713,
                                  "loc": {
                                    "start": {
                                      "line": 42,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 42,
                                      "column": 32
                                    }
                                  },
                                  "method": false,
                                  "shorthand": false,
                                  "computed": false,
                                  "key": {
                                    "type": "Identifier",
                                    "start": 1693,
                                    "end": 1698,
                                    "loc": {
                                      "start": {
                                        "line": 42,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 42,
                                        "column": 17
                                      }
                                    },
                                    "name": "alpha"
                                  },
                                  "value": {
                                    "type": "MemberExpression",
                                    "start": 1700,
                                    "end": 1713,
                                    "loc": {
                                      "start": {
                                        "line": 42,
                                        "column": 19
                                      },
                                      "end": {
                                        "line": 42,
                                        "column": 32
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 1700,
                                      "end": 1707,
                                      "loc": {
                                        "start": {
                                          "line": 42,
                                          "column": 19
                                        },
                                        "end": {
                                          "line": 42,
                                          "column": 26
                                        }
                                      },
                                      "name": "options"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 1708,
                                      "end": 1713,
                                      "loc": {
                                        "start": {
                                          "line": 42,
                                          "column": 27
                                        },
                                        "end": {
                                          "line": 42,
                                          "column": 32
                                        }
                                      },
                                      "name": "alpha"
                                    },
                                    "computed": false
                                  },
                                  "kind": "init"
                                },
                                {
                                  "type": "Property",
                                  "start": 1728,
                                  "end": 1756,
                                  "loc": {
                                    "start": {
                                      "line": 43,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 43,
                                      "column": 40
                                    }
                                  },
                                  "method": false,
                                  "shorthand": false,
                                  "computed": false,
                                  "key": {
                                    "type": "Identifier",
                                    "start": 1728,
                                    "end": 1737,
                                    "loc": {
                                      "start": {
                                        "line": 43,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 43,
                                        "column": 21
                                      }
                                    },
                                    "name": "antialias"
                                  },
                                  "value": {
                                    "type": "MemberExpression",
                                    "start": 1739,
                                    "end": 1756,
                                    "loc": {
                                      "start": {
                                        "line": 43,
                                        "column": 23
                                      },
                                      "end": {
                                        "line": 43,
                                        "column": 40
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 1739,
                                      "end": 1746,
                                      "loc": {
                                        "start": {
                                          "line": 43,
                                          "column": 23
                                        },
                                        "end": {
                                          "line": 43,
                                          "column": 30
                                        }
                                      },
                                      "name": "options"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 1747,
                                      "end": 1756,
                                      "loc": {
                                        "start": {
                                          "line": 43,
                                          "column": 31
                                        },
                                        "end": {
                                          "line": 43,
                                          "column": 40
                                        }
                                      },
                                      "name": "antialias"
                                    },
                                    "computed": false
                                  },
                                  "kind": "init"
                                },
                                {
                                  "type": "Property",
                                  "start": 1771,
                                  "end": 1825,
                                  "loc": {
                                    "start": {
                                      "line": 44,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 44,
                                      "column": 66
                                    }
                                  },
                                  "method": false,
                                  "shorthand": false,
                                  "computed": false,
                                  "key": {
                                    "type": "Identifier",
                                    "start": 1771,
                                    "end": 1793,
                                    "loc": {
                                      "start": {
                                        "line": 44,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 44,
                                        "column": 34
                                      }
                                    },
                                    "name": "logarithmicDepthBuffer"
                                  },
                                  "value": {
                                    "type": "MemberExpression",
                                    "start": 1795,
                                    "end": 1825,
                                    "loc": {
                                      "start": {
                                        "line": 44,
                                        "column": 36
                                      },
                                      "end": {
                                        "line": 44,
                                        "column": 66
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 1795,
                                      "end": 1802,
                                      "loc": {
                                        "start": {
                                          "line": 44,
                                          "column": 36
                                        },
                                        "end": {
                                          "line": 44,
                                          "column": 43
                                        }
                                      },
                                      "name": "options"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 1803,
                                      "end": 1825,
                                      "loc": {
                                        "start": {
                                          "line": 44,
                                          "column": 44
                                        },
                                        "end": {
                                          "line": 44,
                                          "column": 66
                                        }
                                      },
                                      "name": "logarithmicDepthBuffer"
                                    },
                                    "computed": false
                                  },
                                  "kind": "init"
                                }
                              ]
                            }
                          ]
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 1850,
                      "end": 1884,
                      "loc": {
                        "start": {
                          "line": 47,
                          "column": 8
                        },
                        "end": {
                          "line": 47,
                          "column": 42
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 1850,
                        "end": 1883,
                        "loc": {
                          "start": {
                            "line": 47,
                            "column": 8
                          },
                          "end": {
                            "line": 47,
                            "column": 41
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 1850,
                          "end": 1862,
                          "loc": {
                            "start": {
                              "line": 47,
                              "column": 8
                            },
                            "end": {
                              "line": 47,
                              "column": 20
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 1850,
                            "end": 1854,
                            "loc": {
                              "start": {
                                "line": 47,
                                "column": 8
                              },
                              "end": {
                                "line": 47,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1855,
                            "end": 1862,
                            "loc": {
                              "start": {
                                "line": 47,
                                "column": 13
                              },
                              "end": {
                                "line": 47,
                                "column": 20
                              }
                            },
                            "name": "context"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "MemberExpression",
                          "start": 1865,
                          "end": 1883,
                          "loc": {
                            "start": {
                              "line": 47,
                              "column": 23
                            },
                            "end": {
                              "line": 47,
                              "column": 41
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 1865,
                            "end": 1872,
                            "loc": {
                              "start": {
                                "line": 47,
                                "column": 23
                              },
                              "end": {
                                "line": 47,
                                "column": 30
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 1865,
                              "end": 1869,
                              "loc": {
                                "start": {
                                  "line": 47,
                                  "column": 23
                                },
                                "end": {
                                  "line": 47,
                                  "column": 27
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1870,
                              "end": 1872,
                              "loc": {
                                "start": {
                                  "line": 47,
                                  "column": 28
                                },
                                "end": {
                                  "line": 47,
                                  "column": 30
                                }
                              },
                              "name": "gl"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1873,
                            "end": 1883,
                            "loc": {
                              "start": {
                                "line": 47,
                                "column": 31
                              },
                              "end": {
                                "line": 47,
                                "column": 41
                              }
                            },
                            "name": "domElement"
                          },
                          "computed": false
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 1894,
                      "end": 1950,
                      "loc": {
                        "start": {
                          "line": 48,
                          "column": 8
                        },
                        "end": {
                          "line": 48,
                          "column": 64
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 1894,
                        "end": 1949,
                        "loc": {
                          "start": {
                            "line": 48,
                            "column": 8
                          },
                          "end": {
                            "line": 48,
                            "column": 63
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 1894,
                          "end": 1919,
                          "loc": {
                            "start": {
                              "line": 48,
                              "column": 8
                            },
                            "end": {
                              "line": 48,
                              "column": 33
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 1894,
                            "end": 1906,
                            "loc": {
                              "start": {
                                "line": 48,
                                "column": 8
                              },
                              "end": {
                                "line": 48,
                                "column": 20
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 1894,
                              "end": 1898,
                              "loc": {
                                "start": {
                                  "line": 48,
                                  "column": 8
                                },
                                "end": {
                                  "line": 48,
                                  "column": 12
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1899,
                              "end": 1906,
                              "loc": {
                                "start": {
                                  "line": 48,
                                  "column": 13
                                },
                                "end": {
                                  "line": 48,
                                  "column": 20
                                }
                              },
                              "name": "context"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1907,
                            "end": 1919,
                            "loc": {
                              "start": {
                                "line": 48,
                                "column": 21
                              },
                              "end": {
                                "line": 48,
                                "column": 33
                              }
                            },
                            "name": "setAttribute"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Literal",
                            "start": 1920,
                            "end": 1927,
                            "loc": {
                              "start": {
                                "line": 48,
                                "column": 34
                              },
                              "end": {
                                "line": 48,
                                "column": 41
                              }
                            },
                            "value": "style",
                            "rawValue": "style",
                            "raw": "'style'"
                          },
                          {
                            "type": "MemberExpression",
                            "start": 1929,
                            "end": 1948,
                            "loc": {
                              "start": {
                                "line": 48,
                                "column": 43
                              },
                              "end": {
                                "line": 48,
                                "column": 62
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 1929,
                              "end": 1936,
                              "loc": {
                                "start": {
                                  "line": 48,
                                  "column": 43
                                },
                                "end": {
                                  "line": 48,
                                  "column": 50
                                }
                              },
                              "name": "options"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1937,
                              "end": 1948,
                              "loc": {
                                "start": {
                                  "line": 48,
                                  "column": 51
                                },
                                "end": {
                                  "line": 48,
                                  "column": 62
                                }
                              },
                              "name": "canvasStyle"
                            },
                            "computed": false
                          }
                        ]
                      }
                    },
                    {
                      "type": "IfStatement",
                      "start": 1962,
                      "end": 2048,
                      "loc": {
                        "start": {
                          "line": 50,
                          "column": 8
                        },
                        "end": {
                          "line": 51,
                          "column": 60
                        }
                      },
                      "test": {
                        "type": "UnaryExpression",
                        "start": 1966,
                        "end": 1985,
                        "loc": {
                          "start": {
                            "line": 50,
                            "column": 12
                          },
                          "end": {
                            "line": 50,
                            "column": 31
                          }
                        },
                        "operator": "!",
                        "prefix": true,
                        "argument": {
                          "type": "UnaryExpression",
                          "start": 1967,
                          "end": 1985,
                          "loc": {
                            "start": {
                              "line": 50,
                              "column": 13
                            },
                            "end": {
                              "line": 50,
                              "column": 31
                            }
                          },
                          "operator": "!",
                          "prefix": true,
                          "argument": {
                            "type": "MemberExpression",
                            "start": 1968,
                            "end": 1985,
                            "loc": {
                              "start": {
                                "line": 50,
                                "column": 14
                              },
                              "end": {
                                "line": 50,
                                "column": 31
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 1968,
                              "end": 1975,
                              "loc": {
                                "start": {
                                  "line": 50,
                                  "column": 14
                                },
                                "end": {
                                  "line": 50,
                                  "column": 21
                                }
                              },
                              "name": "options"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1976,
                              "end": 1985,
                              "loc": {
                                "start": {
                                  "line": 50,
                                  "column": 22
                                },
                                "end": {
                                  "line": 50,
                                  "column": 31
                                }
                              },
                              "name": "pixelated"
                            },
                            "computed": false
                          }
                        }
                      },
                      "consequent": {
                        "type": "ExpressionStatement",
                        "start": 2000,
                        "end": 2048,
                        "loc": {
                          "start": {
                            "line": 51,
                            "column": 12
                          },
                          "end": {
                            "line": 51,
                            "column": 60
                          }
                        },
                        "expression": {
                          "type": "AssignmentExpression",
                          "start": 2000,
                          "end": 2047,
                          "loc": {
                            "start": {
                              "line": 51,
                              "column": 12
                            },
                            "end": {
                              "line": 51,
                              "column": 59
                            }
                          },
                          "operator": "=",
                          "left": {
                            "type": "MemberExpression",
                            "start": 2000,
                            "end": 2033,
                            "loc": {
                              "start": {
                                "line": 51,
                                "column": 12
                              },
                              "end": {
                                "line": 51,
                                "column": 45
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 2000,
                              "end": 2018,
                              "loc": {
                                "start": {
                                  "line": 51,
                                  "column": 12
                                },
                                "end": {
                                  "line": 51,
                                  "column": 30
                                }
                              },
                              "object": {
                                "type": "MemberExpression",
                                "start": 2000,
                                "end": 2012,
                                "loc": {
                                  "start": {
                                    "line": 51,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 51,
                                    "column": 24
                                  }
                                },
                                "object": {
                                  "type": "ThisExpression",
                                  "start": 2000,
                                  "end": 2004,
                                  "loc": {
                                    "start": {
                                      "line": 51,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 51,
                                      "column": 16
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 2005,
                                  "end": 2012,
                                  "loc": {
                                    "start": {
                                      "line": 51,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 51,
                                      "column": 24
                                    }
                                  },
                                  "name": "context"
                                },
                                "computed": false
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 2013,
                                "end": 2018,
                                "loc": {
                                  "start": {
                                    "line": 51,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 51,
                                    "column": 30
                                  }
                                },
                                "name": "style"
                              },
                              "computed": false
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2019,
                              "end": 2033,
                              "loc": {
                                "start": {
                                  "line": 51,
                                  "column": 31
                                },
                                "end": {
                                  "line": 51,
                                  "column": 45
                                }
                              },
                              "name": "imageRendering"
                            },
                            "computed": false
                          },
                          "right": {
                            "type": "Literal",
                            "start": 2036,
                            "end": 2047,
                            "loc": {
                              "start": {
                                "line": 51,
                                "column": 48
                              },
                              "end": {
                                "line": 51,
                                "column": 59
                              }
                            },
                            "value": "pixelated",
                            "rawValue": "pixelated",
                            "raw": "'pixelated'"
                          }
                        }
                      },
                      "alternate": null
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 2060,
                      "end": 2102,
                      "loc": {
                        "start": {
                          "line": 53,
                          "column": 8
                        },
                        "end": {
                          "line": 53,
                          "column": 50
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 2060,
                        "end": 2101,
                        "loc": {
                          "start": {
                            "line": 53,
                            "column": 8
                          },
                          "end": {
                            "line": 53,
                            "column": 49
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 2060,
                          "end": 2079,
                          "loc": {
                            "start": {
                              "line": 53,
                              "column": 8
                            },
                            "end": {
                              "line": 53,
                              "column": 27
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 2060,
                            "end": 2067,
                            "loc": {
                              "start": {
                                "line": 53,
                                "column": 8
                              },
                              "end": {
                                "line": 53,
                                "column": 15
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 2060,
                              "end": 2064,
                              "loc": {
                                "start": {
                                  "line": 53,
                                  "column": 8
                                },
                                "end": {
                                  "line": 53,
                                  "column": 12
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2065,
                              "end": 2067,
                              "loc": {
                                "start": {
                                  "line": 53,
                                  "column": 13
                                },
                                "end": {
                                  "line": 53,
                                  "column": 15
                                }
                              },
                              "name": "gl"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2068,
                            "end": 2079,
                            "loc": {
                              "start": {
                                "line": 53,
                                "column": 16
                              },
                              "end": {
                                "line": 53,
                                "column": 27
                              }
                            },
                            "name": "sortObjects"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "MemberExpression",
                          "start": 2082,
                          "end": 2101,
                          "loc": {
                            "start": {
                              "line": 53,
                              "column": 30
                            },
                            "end": {
                              "line": 53,
                              "column": 49
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 2082,
                            "end": 2089,
                            "loc": {
                              "start": {
                                "line": 53,
                                "column": 30
                              },
                              "end": {
                                "line": 53,
                                "column": 37
                              }
                            },
                            "name": "options"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2090,
                            "end": 2101,
                            "loc": {
                              "start": {
                                "line": 53,
                                "column": 38
                              },
                              "end": {
                                "line": 53,
                                "column": 49
                              }
                            },
                            "name": "sortObjects"
                          },
                          "computed": false
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 2112,
                      "end": 2150,
                      "loc": {
                        "start": {
                          "line": 54,
                          "column": 8
                        },
                        "end": {
                          "line": 54,
                          "column": 46
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 2112,
                        "end": 2149,
                        "loc": {
                          "start": {
                            "line": 54,
                            "column": 8
                          },
                          "end": {
                            "line": 54,
                            "column": 45
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 2112,
                          "end": 2129,
                          "loc": {
                            "start": {
                              "line": 54,
                              "column": 8
                            },
                            "end": {
                              "line": 54,
                              "column": 25
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 2112,
                            "end": 2119,
                            "loc": {
                              "start": {
                                "line": 54,
                                "column": 8
                              },
                              "end": {
                                "line": 54,
                                "column": 15
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 2112,
                              "end": 2116,
                              "loc": {
                                "start": {
                                  "line": 54,
                                  "column": 8
                                },
                                "end": {
                                  "line": 54,
                                  "column": 12
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2117,
                              "end": 2119,
                              "loc": {
                                "start": {
                                  "line": 54,
                                  "column": 13
                                },
                                "end": {
                                  "line": 54,
                                  "column": 15
                                }
                              },
                              "name": "gl"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2120,
                            "end": 2129,
                            "loc": {
                              "start": {
                                "line": 54,
                                "column": 16
                              },
                              "end": {
                                "line": 54,
                                "column": 25
                              }
                            },
                            "name": "autoClear"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "MemberExpression",
                          "start": 2132,
                          "end": 2149,
                          "loc": {
                            "start": {
                              "line": 54,
                              "column": 28
                            },
                            "end": {
                              "line": 54,
                              "column": 45
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 2132,
                            "end": 2139,
                            "loc": {
                              "start": {
                                "line": 54,
                                "column": 28
                              },
                              "end": {
                                "line": 54,
                                "column": 35
                              }
                            },
                            "name": "options"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2140,
                            "end": 2149,
                            "loc": {
                              "start": {
                                "line": 54,
                                "column": 36
                              },
                              "end": {
                                "line": 54,
                                "column": 45
                              }
                            },
                            "name": "autoClear"
                          },
                          "computed": false
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 2160,
                      "end": 2213,
                      "loc": {
                        "start": {
                          "line": 55,
                          "column": 8
                        },
                        "end": {
                          "line": 55,
                          "column": 61
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 2160,
                        "end": 2212,
                        "loc": {
                          "start": {
                            "line": 55,
                            "column": 8
                          },
                          "end": {
                            "line": 55,
                            "column": 60
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 2160,
                          "end": 2185,
                          "loc": {
                            "start": {
                              "line": 55,
                              "column": 8
                            },
                            "end": {
                              "line": 55,
                              "column": 33
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 2160,
                            "end": 2177,
                            "loc": {
                              "start": {
                                "line": 55,
                                "column": 8
                              },
                              "end": {
                                "line": 55,
                                "column": 25
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 2160,
                              "end": 2167,
                              "loc": {
                                "start": {
                                  "line": 55,
                                  "column": 8
                                },
                                "end": {
                                  "line": 55,
                                  "column": 15
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 2160,
                                "end": 2164,
                                "loc": {
                                  "start": {
                                    "line": 55,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 55,
                                    "column": 12
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 2165,
                                "end": 2167,
                                "loc": {
                                  "start": {
                                    "line": 55,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 55,
                                    "column": 15
                                  }
                                },
                                "name": "gl"
                              },
                              "computed": false
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2168,
                              "end": 2177,
                              "loc": {
                                "start": {
                                  "line": 55,
                                  "column": 16
                                },
                                "end": {
                                  "line": 55,
                                  "column": 25
                                }
                              },
                              "name": "shadowMap"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2178,
                            "end": 2185,
                            "loc": {
                              "start": {
                                "line": 55,
                                "column": 26
                              },
                              "end": {
                                "line": 55,
                                "column": 33
                              }
                            },
                            "name": "enabled"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "MemberExpression",
                          "start": 2188,
                          "end": 2212,
                          "loc": {
                            "start": {
                              "line": 55,
                              "column": 36
                            },
                            "end": {
                              "line": 55,
                              "column": 60
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 2188,
                            "end": 2195,
                            "loc": {
                              "start": {
                                "line": 55,
                                "column": 36
                              },
                              "end": {
                                "line": 55,
                                "column": 43
                              }
                            },
                            "name": "options"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2196,
                            "end": 2212,
                            "loc": {
                              "start": {
                                "line": 55,
                                "column": 44
                              },
                              "end": {
                                "line": 55,
                                "column": 60
                              }
                            },
                            "name": "shadowMapEnabled"
                          },
                          "computed": false
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 2223,
                      "end": 2270,
                      "loc": {
                        "start": {
                          "line": 56,
                          "column": 8
                        },
                        "end": {
                          "line": 56,
                          "column": 55
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 2223,
                        "end": 2269,
                        "loc": {
                          "start": {
                            "line": 56,
                            "column": 8
                          },
                          "end": {
                            "line": 56,
                            "column": 54
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 2223,
                          "end": 2245,
                          "loc": {
                            "start": {
                              "line": 56,
                              "column": 8
                            },
                            "end": {
                              "line": 56,
                              "column": 30
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 2223,
                            "end": 2240,
                            "loc": {
                              "start": {
                                "line": 56,
                                "column": 8
                              },
                              "end": {
                                "line": 56,
                                "column": 25
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 2223,
                              "end": 2230,
                              "loc": {
                                "start": {
                                  "line": 56,
                                  "column": 8
                                },
                                "end": {
                                  "line": 56,
                                  "column": 15
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 2223,
                                "end": 2227,
                                "loc": {
                                  "start": {
                                    "line": 56,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 56,
                                    "column": 12
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 2228,
                                "end": 2230,
                                "loc": {
                                  "start": {
                                    "line": 56,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 56,
                                    "column": 15
                                  }
                                },
                                "name": "gl"
                              },
                              "computed": false
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2231,
                              "end": 2240,
                              "loc": {
                                "start": {
                                  "line": 56,
                                  "column": 16
                                },
                                "end": {
                                  "line": 56,
                                  "column": 25
                                }
                              },
                              "name": "shadowMap"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2241,
                            "end": 2245,
                            "loc": {
                              "start": {
                                "line": 56,
                                "column": 26
                              },
                              "end": {
                                "line": 56,
                                "column": 30
                              }
                            },
                            "name": "type"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "MemberExpression",
                          "start": 2248,
                          "end": 2269,
                          "loc": {
                            "start": {
                              "line": 56,
                              "column": 33
                            },
                            "end": {
                              "line": 56,
                              "column": 54
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 2248,
                            "end": 2255,
                            "loc": {
                              "start": {
                                "line": 56,
                                "column": 33
                              },
                              "end": {
                                "line": 56,
                                "column": 40
                              }
                            },
                            "name": "options"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2256,
                            "end": 2269,
                            "loc": {
                              "start": {
                                "line": 56,
                                "column": 41
                              },
                              "end": {
                                "line": 56,
                                "column": 54
                              }
                            },
                            "name": "shadowMapType"
                          },
                          "computed": false
                        }
                      }
                    },
                    {
                      "type": "IfStatement",
                      "start": 2282,
                      "end": 2451,
                      "loc": {
                        "start": {
                          "line": 58,
                          "column": 8
                        },
                        "end": {
                          "line": 61,
                          "column": 73
                        }
                      },
                      "test": {
                        "type": "BinaryExpression",
                        "start": 2286,
                        "end": 2310,
                        "loc": {
                          "start": {
                            "line": 58,
                            "column": 12
                          },
                          "end": {
                            "line": 58,
                            "column": 36
                          }
                        },
                        "left": {
                          "type": "MemberExpression",
                          "start": 2286,
                          "end": 2299,
                          "loc": {
                            "start": {
                              "line": 58,
                              "column": 12
                            },
                            "end": {
                              "line": 58,
                              "column": 25
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 2286,
                            "end": 2293,
                            "loc": {
                              "start": {
                                "line": 58,
                                "column": 12
                              },
                              "end": {
                                "line": 58,
                                "column": 19
                              }
                            },
                            "name": "options"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2294,
                            "end": 2299,
                            "loc": {
                              "start": {
                                "line": 58,
                                "column": 20
                              },
                              "end": {
                                "line": 58,
                                "column": 25
                              }
                            },
                            "name": "place"
                          },
                          "computed": false
                        },
                        "operator": "===",
                        "right": {
                          "type": "Literal",
                          "start": 2304,
                          "end": 2310,
                          "loc": {
                            "start": {
                              "line": 58,
                              "column": 30
                            },
                            "end": {
                              "line": 58,
                              "column": 36
                            }
                          },
                          "value": "last",
                          "rawValue": "last",
                          "raw": "'last'"
                        }
                      },
                      "consequent": {
                        "type": "ExpressionStatement",
                        "start": 2325,
                        "end": 2362,
                        "loc": {
                          "start": {
                            "line": 59,
                            "column": 12
                          },
                          "end": {
                            "line": 59,
                            "column": 49
                          }
                        },
                        "expression": {
                          "type": "CallExpression",
                          "start": 2325,
                          "end": 2361,
                          "loc": {
                            "start": {
                              "line": 59,
                              "column": 12
                            },
                            "end": {
                              "line": 59,
                              "column": 48
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 2325,
                            "end": 2347,
                            "loc": {
                              "start": {
                                "line": 59,
                                "column": 12
                              },
                              "end": {
                                "line": 59,
                                "column": 34
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 2325,
                              "end": 2335,
                              "loc": {
                                "start": {
                                  "line": 59,
                                  "column": 12
                                },
                                "end": {
                                  "line": 59,
                                  "column": 22
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 2325,
                                "end": 2331,
                                "loc": {
                                  "start": {
                                    "line": 59,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 59,
                                    "column": 18
                                  }
                                },
                                "name": "canvas"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 2332,
                                "end": 2335,
                                "loc": {
                                  "start": {
                                    "line": 59,
                                    "column": 19
                                  },
                                  "end": {
                                    "line": 59,
                                    "column": 22
                                  }
                                },
                                "name": "dom"
                              },
                              "computed": false
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2336,
                              "end": 2347,
                              "loc": {
                                "start": {
                                  "line": 59,
                                  "column": 23
                                },
                                "end": {
                                  "line": 59,
                                  "column": 34
                                }
                              },
                              "name": "appendChild"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "MemberExpression",
                              "start": 2348,
                              "end": 2360,
                              "loc": {
                                "start": {
                                  "line": 59,
                                  "column": 35
                                },
                                "end": {
                                  "line": 59,
                                  "column": 47
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 2348,
                                "end": 2352,
                                "loc": {
                                  "start": {
                                    "line": 59,
                                    "column": 35
                                  },
                                  "end": {
                                    "line": 59,
                                    "column": 39
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 2353,
                                "end": 2360,
                                "loc": {
                                  "start": {
                                    "line": 59,
                                    "column": 40
                                  },
                                  "end": {
                                    "line": 59,
                                    "column": 47
                                  }
                                },
                                "name": "context"
                              },
                              "computed": false
                            }
                          ]
                        }
                      },
                      "alternate": {
                        "type": "ExpressionStatement",
                        "start": 2390,
                        "end": 2451,
                        "loc": {
                          "start": {
                            "line": 61,
                            "column": 12
                          },
                          "end": {
                            "line": 61,
                            "column": 73
                          }
                        },
                        "expression": {
                          "type": "CallExpression",
                          "start": 2390,
                          "end": 2450,
                          "loc": {
                            "start": {
                              "line": 61,
                              "column": 12
                            },
                            "end": {
                              "line": 61,
                              "column": 72
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 2390,
                            "end": 2413,
                            "loc": {
                              "start": {
                                "line": 61,
                                "column": 12
                              },
                              "end": {
                                "line": 61,
                                "column": 35
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 2390,
                              "end": 2400,
                              "loc": {
                                "start": {
                                  "line": 61,
                                  "column": 12
                                },
                                "end": {
                                  "line": 61,
                                  "column": 22
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 2390,
                                "end": 2396,
                                "loc": {
                                  "start": {
                                    "line": 61,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 61,
                                    "column": 18
                                  }
                                },
                                "name": "canvas"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 2397,
                                "end": 2400,
                                "loc": {
                                  "start": {
                                    "line": 61,
                                    "column": 19
                                  },
                                  "end": {
                                    "line": 61,
                                    "column": 22
                                  }
                                },
                                "name": "dom"
                              },
                              "computed": false
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2401,
                              "end": 2413,
                              "loc": {
                                "start": {
                                  "line": 61,
                                  "column": 23
                                },
                                "end": {
                                  "line": 61,
                                  "column": 35
                                }
                              },
                              "name": "insertBefore"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "MemberExpression",
                              "start": 2414,
                              "end": 2426,
                              "loc": {
                                "start": {
                                  "line": 61,
                                  "column": 36
                                },
                                "end": {
                                  "line": 61,
                                  "column": 48
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 2414,
                                "end": 2418,
                                "loc": {
                                  "start": {
                                    "line": 61,
                                    "column": 36
                                  },
                                  "end": {
                                    "line": 61,
                                    "column": 40
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 2419,
                                "end": 2426,
                                "loc": {
                                  "start": {
                                    "line": 61,
                                    "column": 41
                                  },
                                  "end": {
                                    "line": 61,
                                    "column": 48
                                  }
                                },
                                "name": "context"
                              },
                              "computed": false
                            },
                            {
                              "type": "MemberExpression",
                              "start": 2428,
                              "end": 2449,
                              "loc": {
                                "start": {
                                  "line": 61,
                                  "column": 50
                                },
                                "end": {
                                  "line": 61,
                                  "column": 71
                                }
                              },
                              "object": {
                                "type": "MemberExpression",
                                "start": 2428,
                                "end": 2438,
                                "loc": {
                                  "start": {
                                    "line": 61,
                                    "column": 50
                                  },
                                  "end": {
                                    "line": 61,
                                    "column": 60
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 2428,
                                  "end": 2434,
                                  "loc": {
                                    "start": {
                                      "line": 61,
                                      "column": 50
                                    },
                                    "end": {
                                      "line": 61,
                                      "column": 56
                                    }
                                  },
                                  "name": "canvas"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 2435,
                                  "end": 2438,
                                  "loc": {
                                    "start": {
                                      "line": 61,
                                      "column": 57
                                    },
                                    "end": {
                                      "line": 61,
                                      "column": 60
                                    }
                                  },
                                  "name": "dom"
                                },
                                "computed": false
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 2439,
                                "end": 2449,
                                "loc": {
                                  "start": {
                                    "line": 61,
                                    "column": 61
                                  },
                                  "end": {
                                    "line": 61,
                                    "column": 71
                                  }
                                },
                                "name": "firstChild"
                              },
                              "computed": false
                            }
                          ]
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 2463,
                      "end": 2504,
                      "loc": {
                        "start": {
                          "line": 63,
                          "column": 8
                        },
                        "end": {
                          "line": 63,
                          "column": 49
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 2463,
                        "end": 2503,
                        "loc": {
                          "start": {
                            "line": 63,
                            "column": 8
                          },
                          "end": {
                            "line": 63,
                            "column": 48
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 2463,
                          "end": 2481,
                          "loc": {
                            "start": {
                              "line": 63,
                              "column": 8
                            },
                            "end": {
                              "line": 63,
                              "column": 26
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 2463,
                            "end": 2467,
                            "loc": {
                              "start": {
                                "line": 63,
                                "column": 8
                              },
                              "end": {
                                "line": 63,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2468,
                            "end": 2481,
                            "loc": {
                              "start": {
                                "line": 63,
                                "column": 13
                              },
                              "end": {
                                "line": 63,
                                "column": 26
                              }
                            },
                            "name": "resizeHandler"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "ArrowFunctionExpression",
                          "start": 2484,
                          "end": 2503,
                          "loc": {
                            "start": {
                              "line": 63,
                              "column": 29
                            },
                            "end": {
                              "line": 63,
                              "column": 48
                            }
                          },
                          "id": null,
                          "generator": false,
                          "expression": true,
                          "async": false,
                          "params": [],
                          "body": {
                            "type": "CallExpression",
                            "start": 2490,
                            "end": 2503,
                            "loc": {
                              "start": {
                                "line": 63,
                                "column": 35
                              },
                              "end": {
                                "line": 63,
                                "column": 48
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 2490,
                              "end": 2501,
                              "loc": {
                                "start": {
                                  "line": 63,
                                  "column": 35
                                },
                                "end": {
                                  "line": 63,
                                  "column": 46
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 2490,
                                "end": 2494,
                                "loc": {
                                  "start": {
                                    "line": 63,
                                    "column": 35
                                  },
                                  "end": {
                                    "line": 63,
                                    "column": 39
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 2495,
                                "end": 2501,
                                "loc": {
                                  "start": {
                                    "line": 63,
                                    "column": 40
                                  },
                                  "end": {
                                    "line": 63,
                                    "column": 46
                                  }
                                },
                                "name": "resize"
                              },
                              "computed": false
                            },
                            "arguments": []
                          }
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 2514,
                      "end": 2575,
                      "loc": {
                        "start": {
                          "line": 64,
                          "column": 8
                        },
                        "end": {
                          "line": 64,
                          "column": 69
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 2514,
                        "end": 2574,
                        "loc": {
                          "start": {
                            "line": 64,
                            "column": 8
                          },
                          "end": {
                            "line": 64,
                            "column": 68
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 2514,
                          "end": 2537,
                          "loc": {
                            "start": {
                              "line": 64,
                              "column": 8
                            },
                            "end": {
                              "line": 64,
                              "column": 31
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 2514,
                            "end": 2520,
                            "loc": {
                              "start": {
                                "line": 64,
                                "column": 8
                              },
                              "end": {
                                "line": 64,
                                "column": 14
                              }
                            },
                            "name": "window"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2521,
                            "end": 2537,
                            "loc": {
                              "start": {
                                "line": 64,
                                "column": 15
                              },
                              "end": {
                                "line": 64,
                                "column": 31
                              }
                            },
                            "name": "addEventListener"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Literal",
                            "start": 2538,
                            "end": 2546,
                            "loc": {
                              "start": {
                                "line": 64,
                                "column": 32
                              },
                              "end": {
                                "line": 64,
                                "column": 40
                              }
                            },
                            "value": "resize",
                            "rawValue": "resize",
                            "raw": "'resize'"
                          },
                          {
                            "type": "MemberExpression",
                            "start": 2548,
                            "end": 2566,
                            "loc": {
                              "start": {
                                "line": 64,
                                "column": 42
                              },
                              "end": {
                                "line": 64,
                                "column": 60
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 2548,
                              "end": 2552,
                              "loc": {
                                "start": {
                                  "line": 64,
                                  "column": 42
                                },
                                "end": {
                                  "line": 64,
                                  "column": 46
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2553,
                              "end": 2566,
                              "loc": {
                                "start": {
                                  "line": 64,
                                  "column": 47
                                },
                                "end": {
                                  "line": 64,
                                  "column": 60
                                }
                              },
                              "name": "resizeHandler"
                            },
                            "computed": false
                          },
                          {
                            "type": "Literal",
                            "start": 2568,
                            "end": 2573,
                            "loc": {
                              "start": {
                                "line": 64,
                                "column": 62
                              },
                              "end": {
                                "line": 64,
                                "column": 67
                              }
                            },
                            "value": false,
                            "rawValue": false,
                            "raw": "false"
                          }
                        ]
                      },
                      "trailingComments": [
                        {
                          "type": "CommentLine",
                          "value": " View frameworks can sometimes swallow resize events",
                          "start": 2587,
                          "end": 2641,
                          "loc": {
                            "start": {
                              "line": 66,
                              "column": 8
                            },
                            "end": {
                              "line": 66,
                              "column": 62
                            }
                          },
                          "range": [
                            2587,
                            2641
                          ]
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 2651,
                      "end": 2664,
                      "loc": {
                        "start": {
                          "line": 67,
                          "column": 8
                        },
                        "end": {
                          "line": 67,
                          "column": 21
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 2651,
                        "end": 2664,
                        "loc": {
                          "start": {
                            "line": 67,
                            "column": 8
                          },
                          "end": {
                            "line": 67,
                            "column": 21
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 2651,
                          "end": 2662,
                          "loc": {
                            "start": {
                              "line": 67,
                              "column": 8
                            },
                            "end": {
                              "line": 67,
                              "column": 19
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 2651,
                            "end": 2655,
                            "loc": {
                              "start": {
                                "line": 67,
                                "column": 8
                              },
                              "end": {
                                "line": 67,
                                "column": 12
                              }
                            },
                            "leadingComments": null
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2656,
                            "end": 2662,
                            "loc": {
                              "start": {
                                "line": 67,
                                "column": 13
                              },
                              "end": {
                                "line": 67,
                                "column": 19
                              }
                            },
                            "name": "resize"
                          },
                          "computed": false,
                          "leadingComments": null
                        },
                        "arguments": [],
                        "leadingComments": null
                      },
                      "leadingComments": [
                        {
                          "type": "CommentLine",
                          "value": " View frameworks can sometimes swallow resize events",
                          "start": 2587,
                          "end": 2641,
                          "loc": {
                            "start": {
                              "line": 66,
                              "column": 8
                            },
                            "end": {
                              "line": 66,
                              "column": 62
                            }
                          },
                          "range": [
                            2587,
                            2641
                          ]
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 2674,
                      "end": 2709,
                      "loc": {
                        "start": {
                          "line": 68,
                          "column": 8
                        },
                        "end": {
                          "line": 68,
                          "column": 43
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 2674,
                        "end": 2708,
                        "loc": {
                          "start": {
                            "line": 68,
                            "column": 8
                          },
                          "end": {
                            "line": 68,
                            "column": 42
                          }
                        },
                        "callee": {
                          "type": "Identifier",
                          "start": 2674,
                          "end": 2684,
                          "loc": {
                            "start": {
                              "line": 68,
                              "column": 8
                            },
                            "end": {
                              "line": 68,
                              "column": 18
                            }
                          },
                          "name": "setTimeout"
                        },
                        "arguments": [
                          {
                            "type": "ArrowFunctionExpression",
                            "start": 2685,
                            "end": 2704,
                            "loc": {
                              "start": {
                                "line": 68,
                                "column": 19
                              },
                              "end": {
                                "line": 68,
                                "column": 38
                              }
                            },
                            "id": null,
                            "generator": false,
                            "expression": true,
                            "async": false,
                            "params": [],
                            "body": {
                              "type": "CallExpression",
                              "start": 2691,
                              "end": 2704,
                              "loc": {
                                "start": {
                                  "line": 68,
                                  "column": 25
                                },
                                "end": {
                                  "line": 68,
                                  "column": 38
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 2691,
                                "end": 2702,
                                "loc": {
                                  "start": {
                                    "line": 68,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 68,
                                    "column": 36
                                  }
                                },
                                "object": {
                                  "type": "ThisExpression",
                                  "start": 2691,
                                  "end": 2695,
                                  "loc": {
                                    "start": {
                                      "line": 68,
                                      "column": 25
                                    },
                                    "end": {
                                      "line": 68,
                                      "column": 29
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 2696,
                                  "end": 2702,
                                  "loc": {
                                    "start": {
                                      "line": 68,
                                      "column": 30
                                    },
                                    "end": {
                                      "line": 68,
                                      "column": 36
                                    }
                                  },
                                  "name": "resize"
                                },
                                "computed": false
                              },
                              "arguments": []
                            }
                          },
                          {
                            "type": "Literal",
                            "start": 2706,
                            "end": 2707,
                            "loc": {
                              "start": {
                                "line": 68,
                                "column": 40
                              },
                              "end": {
                                "line": 68,
                                "column": 41
                              }
                            },
                            "value": 1,
                            "rawValue": 1,
                            "raw": "1"
                          }
                        ]
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 2719,
                      "end": 2756,
                      "loc": {
                        "start": {
                          "line": 69,
                          "column": 8
                        },
                        "end": {
                          "line": 69,
                          "column": 45
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 2719,
                        "end": 2755,
                        "loc": {
                          "start": {
                            "line": 69,
                            "column": 8
                          },
                          "end": {
                            "line": 69,
                            "column": 44
                          }
                        },
                        "callee": {
                          "type": "Identifier",
                          "start": 2719,
                          "end": 2729,
                          "loc": {
                            "start": {
                              "line": 69,
                              "column": 8
                            },
                            "end": {
                              "line": 69,
                              "column": 18
                            }
                          },
                          "name": "setTimeout"
                        },
                        "arguments": [
                          {
                            "type": "ArrowFunctionExpression",
                            "start": 2730,
                            "end": 2749,
                            "loc": {
                              "start": {
                                "line": 69,
                                "column": 19
                              },
                              "end": {
                                "line": 69,
                                "column": 38
                              }
                            },
                            "id": null,
                            "generator": false,
                            "expression": true,
                            "async": false,
                            "params": [],
                            "body": {
                              "type": "CallExpression",
                              "start": 2736,
                              "end": 2749,
                              "loc": {
                                "start": {
                                  "line": 69,
                                  "column": 25
                                },
                                "end": {
                                  "line": 69,
                                  "column": 38
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 2736,
                                "end": 2747,
                                "loc": {
                                  "start": {
                                    "line": 69,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 69,
                                    "column": 36
                                  }
                                },
                                "object": {
                                  "type": "ThisExpression",
                                  "start": 2736,
                                  "end": 2740,
                                  "loc": {
                                    "start": {
                                      "line": 69,
                                      "column": 25
                                    },
                                    "end": {
                                      "line": 69,
                                      "column": 29
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 2741,
                                  "end": 2747,
                                  "loc": {
                                    "start": {
                                      "line": 69,
                                      "column": 30
                                    },
                                    "end": {
                                      "line": 69,
                                      "column": 36
                                    }
                                  },
                                  "name": "resize"
                                },
                                "computed": false
                              },
                              "arguments": []
                            }
                          },
                          {
                            "type": "Literal",
                            "start": 2751,
                            "end": 2754,
                            "loc": {
                              "start": {
                                "line": 69,
                                "column": 40
                              },
                              "end": {
                                "line": 69,
                                "column": 43
                              }
                            },
                            "value": 100,
                            "rawValue": 100,
                            "raw": "100"
                          }
                        ]
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 2766,
                      "end": 2803,
                      "loc": {
                        "start": {
                          "line": 70,
                          "column": 8
                        },
                        "end": {
                          "line": 70,
                          "column": 45
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 2766,
                        "end": 2802,
                        "loc": {
                          "start": {
                            "line": 70,
                            "column": 8
                          },
                          "end": {
                            "line": 70,
                            "column": 44
                          }
                        },
                        "callee": {
                          "type": "Identifier",
                          "start": 2766,
                          "end": 2776,
                          "loc": {
                            "start": {
                              "line": 70,
                              "column": 8
                            },
                            "end": {
                              "line": 70,
                              "column": 18
                            }
                          },
                          "name": "setTimeout"
                        },
                        "arguments": [
                          {
                            "type": "ArrowFunctionExpression",
                            "start": 2777,
                            "end": 2796,
                            "loc": {
                              "start": {
                                "line": 70,
                                "column": 19
                              },
                              "end": {
                                "line": 70,
                                "column": 38
                              }
                            },
                            "id": null,
                            "generator": false,
                            "expression": true,
                            "async": false,
                            "params": [],
                            "body": {
                              "type": "CallExpression",
                              "start": 2783,
                              "end": 2796,
                              "loc": {
                                "start": {
                                  "line": 70,
                                  "column": 25
                                },
                                "end": {
                                  "line": 70,
                                  "column": 38
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 2783,
                                "end": 2794,
                                "loc": {
                                  "start": {
                                    "line": 70,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 70,
                                    "column": 36
                                  }
                                },
                                "object": {
                                  "type": "ThisExpression",
                                  "start": 2783,
                                  "end": 2787,
                                  "loc": {
                                    "start": {
                                      "line": 70,
                                      "column": 25
                                    },
                                    "end": {
                                      "line": 70,
                                      "column": 29
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 2788,
                                  "end": 2794,
                                  "loc": {
                                    "start": {
                                      "line": 70,
                                      "column": 30
                                    },
                                    "end": {
                                      "line": 70,
                                      "column": 36
                                    }
                                  },
                                  "name": "resize"
                                },
                                "computed": false
                              },
                              "arguments": []
                            }
                          },
                          {
                            "type": "Literal",
                            "start": 2798,
                            "end": 2801,
                            "loc": {
                              "start": {
                                "line": 70,
                                "column": 40
                              },
                              "end": {
                                "line": 70,
                                "column": 43
                              }
                            },
                            "value": 500,
                            "rawValue": 500,
                            "raw": "500"
                          }
                        ]
                      },
                      "trailingComments": [
                        {
                          "type": "CommentLine",
                          "value": " Clear canvas",
                          "start": 2815,
                          "end": 2830,
                          "loc": {
                            "start": {
                              "line": 72,
                              "column": 8
                            },
                            "end": {
                              "line": 72,
                              "column": 23
                            }
                          },
                          "range": [
                            2815,
                            2830
                          ]
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 2840,
                      "end": 2870,
                      "loc": {
                        "start": {
                          "line": 73,
                          "column": 8
                        },
                        "end": {
                          "line": 73,
                          "column": 38
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 2840,
                        "end": 2869,
                        "loc": {
                          "start": {
                            "line": 73,
                            "column": 8
                          },
                          "end": {
                            "line": 73,
                            "column": 37
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 2840,
                          "end": 2862,
                          "loc": {
                            "start": {
                              "line": 73,
                              "column": 8
                            },
                            "end": {
                              "line": 73,
                              "column": 30
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 2840,
                            "end": 2847,
                            "loc": {
                              "start": {
                                "line": 73,
                                "column": 8
                              },
                              "end": {
                                "line": 73,
                                "column": 15
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 2840,
                              "end": 2844,
                              "loc": {
                                "start": {
                                  "line": 73,
                                  "column": 8
                                },
                                "end": {
                                  "line": 73,
                                  "column": 12
                                }
                              },
                              "leadingComments": null
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2845,
                              "end": 2847,
                              "loc": {
                                "start": {
                                  "line": 73,
                                  "column": 13
                                },
                                "end": {
                                  "line": 73,
                                  "column": 15
                                }
                              },
                              "name": "gl"
                            },
                            "computed": false,
                            "leadingComments": null
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2848,
                            "end": 2862,
                            "loc": {
                              "start": {
                                "line": 73,
                                "column": 16
                              },
                              "end": {
                                "line": 73,
                                "column": 30
                              }
                            },
                            "name": "setScissorTest"
                          },
                          "computed": false,
                          "leadingComments": null
                        },
                        "arguments": [
                          {
                            "type": "Literal",
                            "start": 2863,
                            "end": 2868,
                            "loc": {
                              "start": {
                                "line": 73,
                                "column": 31
                              },
                              "end": {
                                "line": 73,
                                "column": 36
                              }
                            },
                            "value": false,
                            "rawValue": false,
                            "raw": "false"
                          }
                        ],
                        "leadingComments": null
                      },
                      "leadingComments": [
                        {
                          "type": "CommentLine",
                          "value": " Clear canvas",
                          "start": 2815,
                          "end": 2830,
                          "loc": {
                            "start": {
                              "line": 72,
                              "column": 8
                            },
                            "end": {
                              "line": 72,
                              "column": 23
                            }
                          },
                          "range": [
                            2815,
                            2830
                          ]
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 2880,
                      "end": 2922,
                      "loc": {
                        "start": {
                          "line": 74,
                          "column": 8
                        },
                        "end": {
                          "line": 74,
                          "column": 50
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 2880,
                        "end": 2921,
                        "loc": {
                          "start": {
                            "line": 74,
                            "column": 8
                          },
                          "end": {
                            "line": 74,
                            "column": 49
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 2880,
                          "end": 2901,
                          "loc": {
                            "start": {
                              "line": 74,
                              "column": 8
                            },
                            "end": {
                              "line": 74,
                              "column": 29
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 2880,
                            "end": 2887,
                            "loc": {
                              "start": {
                                "line": 74,
                                "column": 8
                              },
                              "end": {
                                "line": 74,
                                "column": 15
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 2880,
                              "end": 2884,
                              "loc": {
                                "start": {
                                  "line": 74,
                                  "column": 8
                                },
                                "end": {
                                  "line": 74,
                                  "column": 12
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2885,
                              "end": 2887,
                              "loc": {
                                "start": {
                                  "line": 74,
                                  "column": 13
                                },
                                "end": {
                                  "line": 74,
                                  "column": 15
                                }
                              },
                              "name": "gl"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2888,
                            "end": 2901,
                            "loc": {
                              "start": {
                                "line": 74,
                                "column": 16
                              },
                              "end": {
                                "line": 74,
                                "column": 29
                              }
                            },
                            "name": "setClearColor"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "MemberExpression",
                            "start": 2902,
                            "end": 2917,
                            "loc": {
                              "start": {
                                "line": 74,
                                "column": 30
                              },
                              "end": {
                                "line": 74,
                                "column": 45
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 2902,
                              "end": 2906,
                              "loc": {
                                "start": {
                                  "line": 74,
                                  "column": 30
                                },
                                "end": {
                                  "line": 74,
                                  "column": 34
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2907,
                              "end": 2917,
                              "loc": {
                                "start": {
                                  "line": 74,
                                  "column": 35
                                },
                                "end": {
                                  "line": 74,
                                  "column": 45
                                }
                              },
                              "name": "clearColor"
                            },
                            "computed": false
                          },
                          {
                            "type": "Literal",
                            "start": 2919,
                            "end": 2920,
                            "loc": {
                              "start": {
                                "line": 74,
                                "column": 47
                              },
                              "end": {
                                "line": 74,
                                "column": 48
                              }
                            },
                            "value": 0,
                            "rawValue": 0,
                            "raw": "0"
                          }
                        ]
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 2932,
                      "end": 2948,
                      "loc": {
                        "start": {
                          "line": 75,
                          "column": 8
                        },
                        "end": {
                          "line": 75,
                          "column": 24
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 2932,
                        "end": 2947,
                        "loc": {
                          "start": {
                            "line": 75,
                            "column": 8
                          },
                          "end": {
                            "line": 75,
                            "column": 23
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 2932,
                          "end": 2945,
                          "loc": {
                            "start": {
                              "line": 75,
                              "column": 8
                            },
                            "end": {
                              "line": 75,
                              "column": 21
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 2932,
                            "end": 2939,
                            "loc": {
                              "start": {
                                "line": 75,
                                "column": 8
                              },
                              "end": {
                                "line": 75,
                                "column": 15
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 2932,
                              "end": 2936,
                              "loc": {
                                "start": {
                                  "line": 75,
                                  "column": 8
                                },
                                "end": {
                                  "line": 75,
                                  "column": 12
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2937,
                              "end": 2939,
                              "loc": {
                                "start": {
                                  "line": 75,
                                  "column": 13
                                },
                                "end": {
                                  "line": 75,
                                  "column": 15
                                }
                              },
                              "name": "gl"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2940,
                            "end": 2945,
                            "loc": {
                              "start": {
                                "line": 75,
                                "column": 16
                              },
                              "end": {
                                "line": 75,
                                "column": 21
                              }
                            },
                            "name": "clear"
                          },
                          "computed": false
                        },
                        "arguments": []
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 2958,
                      "end": 2987,
                      "loc": {
                        "start": {
                          "line": 76,
                          "column": 8
                        },
                        "end": {
                          "line": 76,
                          "column": 37
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 2958,
                        "end": 2986,
                        "loc": {
                          "start": {
                            "line": 76,
                            "column": 8
                          },
                          "end": {
                            "line": 76,
                            "column": 36
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 2958,
                          "end": 2980,
                          "loc": {
                            "start": {
                              "line": 76,
                              "column": 8
                            },
                            "end": {
                              "line": 76,
                              "column": 30
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 2958,
                            "end": 2965,
                            "loc": {
                              "start": {
                                "line": 76,
                                "column": 8
                              },
                              "end": {
                                "line": 76,
                                "column": 15
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 2958,
                              "end": 2962,
                              "loc": {
                                "start": {
                                  "line": 76,
                                  "column": 8
                                },
                                "end": {
                                  "line": 76,
                                  "column": 12
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2963,
                              "end": 2965,
                              "loc": {
                                "start": {
                                  "line": 76,
                                  "column": 13
                                },
                                "end": {
                                  "line": 76,
                                  "column": 15
                                }
                              },
                              "name": "gl"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2966,
                            "end": 2980,
                            "loc": {
                              "start": {
                                "line": 76,
                                "column": 16
                              },
                              "end": {
                                "line": 76,
                                "column": 30
                              }
                            },
                            "name": "setScissorTest"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Literal",
                            "start": 2981,
                            "end": 2985,
                            "loc": {
                              "start": {
                                "line": 76,
                                "column": 31
                              },
                              "end": {
                                "line": 76,
                                "column": 35
                              }
                            },
                            "value": true,
                            "rawValue": true,
                            "raw": "true"
                          }
                        ]
                      },
                      "trailingComments": [
                        {
                          "type": "CommentLine",
                          "value": " Declare render loop here, because doing it on the prototype will lexically",
                          "start": 2999,
                          "end": 3076,
                          "loc": {
                            "start": {
                              "line": 78,
                              "column": 8
                            },
                            "end": {
                              "line": 78,
                              "column": 85
                            }
                          },
                          "range": [
                            2999,
                            3076
                          ]
                        },
                        {
                          "type": "CommentLine",
                          "value": " bind 'this' using nested functions which would impact performance.",
                          "start": 3086,
                          "end": 3155,
                          "loc": {
                            "start": {
                              "line": 79,
                              "column": 8
                            },
                            "end": {
                              "line": 79,
                              "column": 77
                            }
                          },
                          "range": [
                            3086,
                            3155
                          ]
                        }
                      ]
                    },
                    {
                      "type": "VariableDeclaration",
                      "start": 3165,
                      "end": 3182,
                      "loc": {
                        "start": {
                          "line": 80,
                          "column": 8
                        },
                        "end": {
                          "line": 80,
                          "column": 25
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 3169,
                          "end": 3181,
                          "loc": {
                            "start": {
                              "line": 80,
                              "column": 12
                            },
                            "end": {
                              "line": 80,
                              "column": 24
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 3169,
                            "end": 3174,
                            "loc": {
                              "start": {
                                "line": 80,
                                "column": 12
                              },
                              "end": {
                                "line": 80,
                                "column": 17
                              }
                            },
                            "name": "scope",
                            "leadingComments": null
                          },
                          "init": {
                            "type": "ThisExpression",
                            "start": 3177,
                            "end": 3181,
                            "loc": {
                              "start": {
                                "line": 80,
                                "column": 20
                              },
                              "end": {
                                "line": 80,
                                "column": 24
                              }
                            }
                          },
                          "leadingComments": null
                        }
                      ],
                      "kind": "var",
                      "leadingComments": [
                        {
                          "type": "CommentLine",
                          "value": " Declare render loop here, because doing it on the prototype will lexically",
                          "start": 2999,
                          "end": 3076,
                          "loc": {
                            "start": {
                              "line": 78,
                              "column": 8
                            },
                            "end": {
                              "line": 78,
                              "column": 85
                            }
                          },
                          "range": [
                            2999,
                            3076
                          ]
                        },
                        {
                          "type": "CommentLine",
                          "value": " bind 'this' using nested functions which would impact performance.",
                          "start": 3086,
                          "end": 3155,
                          "loc": {
                            "start": {
                              "line": 79,
                              "column": 8
                            },
                            "end": {
                              "line": 79,
                              "column": 77
                            }
                          },
                          "range": [
                            3086,
                            3155
                          ]
                        }
                      ],
                      "trailingComments": [
                        {
                          "type": "CommentLine",
                          "value": "this.perf = new Helpers.Performance();",
                          "start": 3192,
                          "end": 3232,
                          "loc": {
                            "start": {
                              "line": 81,
                              "column": 8
                            },
                            "end": {
                              "line": 81,
                              "column": 48
                            }
                          },
                          "range": [
                            3192,
                            3232
                          ]
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 3242,
                      "end": 3268,
                      "loc": {
                        "start": {
                          "line": 82,
                          "column": 8
                        },
                        "end": {
                          "line": 82,
                          "column": 34
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 3242,
                        "end": 3267,
                        "loc": {
                          "start": {
                            "line": 82,
                            "column": 8
                          },
                          "end": {
                            "line": 82,
                            "column": 33
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 3242,
                          "end": 3263,
                          "loc": {
                            "start": {
                              "line": 82,
                              "column": 8
                            },
                            "end": {
                              "line": 82,
                              "column": 29
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 3242,
                            "end": 3246,
                            "loc": {
                              "start": {
                                "line": 82,
                                "column": 8
                              },
                              "end": {
                                "line": 82,
                                "column": 12
                              }
                            },
                            "leadingComments": null
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3247,
                            "end": 3263,
                            "loc": {
                              "start": {
                                "line": 82,
                                "column": 13
                              },
                              "end": {
                                "line": 82,
                                "column": 29
                              }
                            },
                            "name": "invalidateFrames"
                          },
                          "computed": false,
                          "leadingComments": null
                        },
                        "right": {
                          "type": "Literal",
                          "start": 3266,
                          "end": 3267,
                          "loc": {
                            "start": {
                              "line": 82,
                              "column": 32
                            },
                            "end": {
                              "line": 82,
                              "column": 33
                            }
                          },
                          "value": 1,
                          "rawValue": 1,
                          "raw": "1"
                        },
                        "leadingComments": null
                      },
                      "leadingComments": [
                        {
                          "type": "CommentLine",
                          "value": "this.perf = new Helpers.Performance();",
                          "start": 3192,
                          "end": 3232,
                          "loc": {
                            "start": {
                              "line": 81,
                              "column": 8
                            },
                            "end": {
                              "line": 81,
                              "column": 48
                            }
                          },
                          "range": [
                            3192,
                            3232
                          ]
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 3278,
                      "end": 3296,
                      "loc": {
                        "start": {
                          "line": 83,
                          "column": 8
                        },
                        "end": {
                          "line": 83,
                          "column": 26
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 3278,
                        "end": 3295,
                        "loc": {
                          "start": {
                            "line": 83,
                            "column": 8
                          },
                          "end": {
                            "line": 83,
                            "column": 25
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 3278,
                          "end": 3288,
                          "loc": {
                            "start": {
                              "line": 83,
                              "column": 8
                            },
                            "end": {
                              "line": 83,
                              "column": 18
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 3278,
                            "end": 3282,
                            "loc": {
                              "start": {
                                "line": 83,
                                "column": 8
                              },
                              "end": {
                                "line": 83,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3283,
                            "end": 3288,
                            "loc": {
                              "start": {
                                "line": 83,
                                "column": 13
                              },
                              "end": {
                                "line": 83,
                                "column": 18
                              }
                            },
                            "name": "dirty"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "Literal",
                          "start": 3291,
                          "end": 3295,
                          "loc": {
                            "start": {
                              "line": 83,
                              "column": 21
                            },
                            "end": {
                              "line": 83,
                              "column": 25
                            }
                          },
                          "value": true,
                          "rawValue": true,
                          "raw": "true"
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 3306,
                      "end": 3320,
                      "loc": {
                        "start": {
                          "line": 84,
                          "column": 8
                        },
                        "end": {
                          "line": 84,
                          "column": 22
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 3306,
                        "end": 3319,
                        "loc": {
                          "start": {
                            "line": 84,
                            "column": 8
                          },
                          "end": {
                            "line": 84,
                            "column": 21
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 3306,
                          "end": 3315,
                          "loc": {
                            "start": {
                              "line": 84,
                              "column": 8
                            },
                            "end": {
                              "line": 84,
                              "column": 17
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 3306,
                            "end": 3310,
                            "loc": {
                              "start": {
                                "line": 84,
                                "column": 8
                              },
                              "end": {
                                "line": 84,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3311,
                            "end": 3315,
                            "loc": {
                              "start": {
                                "line": 84,
                                "column": 13
                              },
                              "end": {
                                "line": 84,
                                "column": 17
                              }
                            },
                            "name": "time"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "Literal",
                          "start": 3318,
                          "end": 3319,
                          "loc": {
                            "start": {
                              "line": 84,
                              "column": 20
                            },
                            "end": {
                              "line": 84,
                              "column": 21
                            }
                          },
                          "value": 0,
                          "rawValue": 0,
                          "raw": "0"
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 3330,
                      "end": 5116,
                      "loc": {
                        "start": {
                          "line": 85,
                          "column": 8
                        },
                        "end": {
                          "line": 126,
                          "column": 9
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 3330,
                        "end": 5116,
                        "loc": {
                          "start": {
                            "line": 85,
                            "column": 8
                          },
                          "end": {
                            "line": 126,
                            "column": 9
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 3330,
                          "end": 3341,
                          "loc": {
                            "start": {
                              "line": 85,
                              "column": 8
                            },
                            "end": {
                              "line": 85,
                              "column": 19
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 3330,
                            "end": 3334,
                            "loc": {
                              "start": {
                                "line": 85,
                                "column": 8
                              },
                              "end": {
                                "line": 85,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3335,
                            "end": 3341,
                            "loc": {
                              "start": {
                                "line": 85,
                                "column": 13
                              },
                              "end": {
                                "line": 85,
                                "column": 19
                              }
                            },
                            "name": "render"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "FunctionExpression",
                          "start": 3344,
                          "end": 5116,
                          "loc": {
                            "start": {
                              "line": 85,
                              "column": 22
                            },
                            "end": {
                              "line": 126,
                              "column": 9
                            }
                          },
                          "id": null,
                          "generator": false,
                          "expression": false,
                          "async": false,
                          "params": [
                            {
                              "type": "Identifier",
                              "start": 3353,
                              "end": 3357,
                              "loc": {
                                "start": {
                                  "line": 85,
                                  "column": 31
                                },
                                "end": {
                                  "line": 85,
                                  "column": 35
                                }
                              },
                              "name": "time"
                            }
                          ],
                          "body": {
                            "type": "BlockStatement",
                            "start": 3359,
                            "end": 5116,
                            "loc": {
                              "start": {
                                "line": 85,
                                "column": 37
                              },
                              "end": {
                                "line": 126,
                                "column": 9
                              }
                            },
                            "body": [
                              {
                                "type": "ExpressionStatement",
                                "start": 3374,
                                "end": 3392,
                                "loc": {
                                  "start": {
                                    "line": 86,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 86,
                                    "column": 30
                                  }
                                },
                                "expression": {
                                  "type": "AssignmentExpression",
                                  "start": 3374,
                                  "end": 3391,
                                  "loc": {
                                    "start": {
                                      "line": 86,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 86,
                                      "column": 29
                                    }
                                  },
                                  "operator": "=",
                                  "left": {
                                    "type": "MemberExpression",
                                    "start": 3374,
                                    "end": 3384,
                                    "loc": {
                                      "start": {
                                        "line": 86,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 86,
                                        "column": 22
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 3374,
                                      "end": 3379,
                                      "loc": {
                                        "start": {
                                          "line": 86,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 86,
                                          "column": 17
                                        }
                                      },
                                      "name": "scope"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 3380,
                                      "end": 3384,
                                      "loc": {
                                        "start": {
                                          "line": 86,
                                          "column": 18
                                        },
                                        "end": {
                                          "line": 86,
                                          "column": 22
                                        }
                                      },
                                      "name": "time"
                                    },
                                    "computed": false
                                  },
                                  "right": {
                                    "type": "Identifier",
                                    "start": 3387,
                                    "end": 3391,
                                    "loc": {
                                      "start": {
                                        "line": 86,
                                        "column": 25
                                      },
                                      "end": {
                                        "line": 86,
                                        "column": 29
                                      }
                                    },
                                    "name": "time"
                                  }
                                },
                                "trailingComments": [
                                  {
                                    "type": "CommentLine",
                                    "value": " Request next frame",
                                    "start": 3408,
                                    "end": 3429,
                                    "loc": {
                                      "start": {
                                        "line": 88,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 88,
                                        "column": 33
                                      }
                                    },
                                    "range": [
                                      3408,
                                      3429
                                    ]
                                  }
                                ]
                              },
                              {
                                "type": "ExpressionStatement",
                                "start": 3443,
                                "end": 3479,
                                "loc": {
                                  "start": {
                                    "line": 89,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 89,
                                    "column": 48
                                  }
                                },
                                "expression": {
                                  "type": "CallExpression",
                                  "start": 3443,
                                  "end": 3478,
                                  "loc": {
                                    "start": {
                                      "line": 89,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 89,
                                      "column": 47
                                    }
                                  },
                                  "callee": {
                                    "type": "Identifier",
                                    "start": 3443,
                                    "end": 3464,
                                    "loc": {
                                      "start": {
                                        "line": 89,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 89,
                                        "column": 33
                                      }
                                    },
                                    "name": "requestAnimationFrame",
                                    "leadingComments": null
                                  },
                                  "arguments": [
                                    {
                                      "type": "MemberExpression",
                                      "start": 3465,
                                      "end": 3477,
                                      "loc": {
                                        "start": {
                                          "line": 89,
                                          "column": 34
                                        },
                                        "end": {
                                          "line": 89,
                                          "column": 46
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 3465,
                                        "end": 3470,
                                        "loc": {
                                          "start": {
                                            "line": 89,
                                            "column": 34
                                          },
                                          "end": {
                                            "line": 89,
                                            "column": 39
                                          }
                                        },
                                        "name": "scope"
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 3471,
                                        "end": 3477,
                                        "loc": {
                                          "start": {
                                            "line": 89,
                                            "column": 40
                                          },
                                          "end": {
                                            "line": 89,
                                            "column": 46
                                          }
                                        },
                                        "name": "render"
                                      },
                                      "computed": false
                                    }
                                  ],
                                  "leadingComments": null
                                },
                                "leadingComments": [
                                  {
                                    "type": "CommentLine",
                                    "value": " Request next frame",
                                    "start": 3408,
                                    "end": 3429,
                                    "loc": {
                                      "start": {
                                        "line": 88,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 88,
                                        "column": 33
                                      }
                                    },
                                    "range": [
                                      3408,
                                      3429
                                    ]
                                  }
                                ],
                                "trailingComments": [
                                  {
                                    "type": "CommentLine",
                                    "value": " Pass 1: measure canvas; do this only when the canvas is dirty",
                                    "start": 3495,
                                    "end": 3559,
                                    "loc": {
                                      "start": {
                                        "line": 91,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 91,
                                        "column": 76
                                      }
                                    },
                                    "range": [
                                      3495,
                                      3559
                                    ]
                                  }
                                ]
                              },
                              {
                                "type": "IfStatement",
                                "start": 3573,
                                "end": 4421,
                                "loc": {
                                  "start": {
                                    "line": 92,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 107,
                                    "column": 13
                                  }
                                },
                                "test": {
                                  "type": "LogicalExpression",
                                  "start": 3577,
                                  "end": 3618,
                                  "loc": {
                                    "start": {
                                      "line": 92,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 92,
                                      "column": 57
                                    }
                                  },
                                  "left": {
                                    "type": "BinaryExpression",
                                    "start": 3577,
                                    "end": 3603,
                                    "loc": {
                                      "start": {
                                        "line": 92,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 92,
                                        "column": 42
                                      }
                                    },
                                    "left": {
                                      "type": "MemberExpression",
                                      "start": 3577,
                                      "end": 3599,
                                      "loc": {
                                        "start": {
                                          "line": 92,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 92,
                                          "column": 38
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 3577,
                                        "end": 3582,
                                        "loc": {
                                          "start": {
                                            "line": 92,
                                            "column": 16
                                          },
                                          "end": {
                                            "line": 92,
                                            "column": 21
                                          }
                                        },
                                        "name": "scope",
                                        "leadingComments": null
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 3583,
                                        "end": 3599,
                                        "loc": {
                                          "start": {
                                            "line": 92,
                                            "column": 22
                                          },
                                          "end": {
                                            "line": 92,
                                            "column": 38
                                          }
                                        },
                                        "name": "invalidateFrames"
                                      },
                                      "computed": false,
                                      "leadingComments": null
                                    },
                                    "operator": ">",
                                    "right": {
                                      "type": "Literal",
                                      "start": 3602,
                                      "end": 3603,
                                      "loc": {
                                        "start": {
                                          "line": 92,
                                          "column": 41
                                        },
                                        "end": {
                                          "line": 92,
                                          "column": 42
                                        }
                                      },
                                      "value": 0,
                                      "rawValue": 0,
                                      "raw": "0"
                                    },
                                    "leadingComments": null
                                  },
                                  "operator": "&&",
                                  "right": {
                                    "type": "MemberExpression",
                                    "start": 3607,
                                    "end": 3618,
                                    "loc": {
                                      "start": {
                                        "line": 92,
                                        "column": 46
                                      },
                                      "end": {
                                        "line": 92,
                                        "column": 57
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 3607,
                                      "end": 3612,
                                      "loc": {
                                        "start": {
                                          "line": 92,
                                          "column": 46
                                        },
                                        "end": {
                                          "line": 92,
                                          "column": 51
                                        }
                                      },
                                      "name": "scope"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 3613,
                                      "end": 3618,
                                      "loc": {
                                        "start": {
                                          "line": 92,
                                          "column": 52
                                        },
                                        "end": {
                                          "line": 92,
                                          "column": 57
                                        }
                                      },
                                      "name": "dirty"
                                    },
                                    "computed": false
                                  },
                                  "leadingComments": null
                                },
                                "consequent": {
                                  "type": "BlockStatement",
                                  "start": 3620,
                                  "end": 4421,
                                  "loc": {
                                    "start": {
                                      "line": 92,
                                      "column": 59
                                    },
                                    "end": {
                                      "line": 107,
                                      "column": 13
                                    }
                                  },
                                  "body": [
                                    {
                                      "type": "VariableDeclaration",
                                      "start": 3639,
                                      "end": 3690,
                                      "loc": {
                                        "start": {
                                          "line": 93,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 93,
                                          "column": 67
                                        }
                                      },
                                      "declarations": [
                                        {
                                          "type": "VariableDeclarator",
                                          "start": 3643,
                                          "end": 3689,
                                          "loc": {
                                            "start": {
                                              "line": 93,
                                              "column": 20
                                            },
                                            "end": {
                                              "line": 93,
                                              "column": 66
                                            }
                                          },
                                          "id": {
                                            "type": "Identifier",
                                            "start": 3643,
                                            "end": 3649,
                                            "loc": {
                                              "start": {
                                                "line": 93,
                                                "column": 20
                                              },
                                              "end": {
                                                "line": 93,
                                                "column": 26
                                              }
                                            },
                                            "name": "bounds"
                                          },
                                          "init": {
                                            "type": "CallExpression",
                                            "start": 3652,
                                            "end": 3689,
                                            "loc": {
                                              "start": {
                                                "line": 93,
                                                "column": 29
                                              },
                                              "end": {
                                                "line": 93,
                                                "column": 66
                                              }
                                            },
                                            "callee": {
                                              "type": "MemberExpression",
                                              "start": 3652,
                                              "end": 3687,
                                              "loc": {
                                                "start": {
                                                  "line": 93,
                                                  "column": 29
                                                },
                                                "end": {
                                                  "line": 93,
                                                  "column": 64
                                                }
                                              },
                                              "object": {
                                                "type": "MemberExpression",
                                                "start": 3652,
                                                "end": 3665,
                                                "loc": {
                                                  "start": {
                                                    "line": 93,
                                                    "column": 29
                                                  },
                                                  "end": {
                                                    "line": 93,
                                                    "column": 42
                                                  }
                                                },
                                                "object": {
                                                  "type": "Identifier",
                                                  "start": 3652,
                                                  "end": 3657,
                                                  "loc": {
                                                    "start": {
                                                      "line": 93,
                                                      "column": 29
                                                    },
                                                    "end": {
                                                      "line": 93,
                                                      "column": 34
                                                    }
                                                  },
                                                  "name": "scope"
                                                },
                                                "property": {
                                                  "type": "Identifier",
                                                  "start": 3658,
                                                  "end": 3665,
                                                  "loc": {
                                                    "start": {
                                                      "line": 93,
                                                      "column": 35
                                                    },
                                                    "end": {
                                                      "line": 93,
                                                      "column": 42
                                                    }
                                                  },
                                                  "name": "context"
                                                },
                                                "computed": false
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "start": 3666,
                                                "end": 3687,
                                                "loc": {
                                                  "start": {
                                                    "line": 93,
                                                    "column": 43
                                                  },
                                                  "end": {
                                                    "line": 93,
                                                    "column": 64
                                                  }
                                                },
                                                "name": "getBoundingClientRect"
                                              },
                                              "computed": false
                                            },
                                            "arguments": []
                                          }
                                        }
                                      ],
                                      "kind": "let",
                                      "trailingComments": [
                                        {
                                          "type": "CommentLine",
                                          "value": " Test for changes, position & size",
                                          "start": 3710,
                                          "end": 3746,
                                          "loc": {
                                            "start": {
                                              "line": 95,
                                              "column": 16
                                            },
                                            "end": {
                                              "line": 95,
                                              "column": 52
                                            }
                                          },
                                          "range": [
                                            3710,
                                            3746
                                          ]
                                        }
                                      ]
                                    },
                                    {
                                      "type": "IfStatement",
                                      "start": 3764,
                                      "end": 4363,
                                      "loc": {
                                        "start": {
                                          "line": 96,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 105,
                                          "column": 17
                                        }
                                      },
                                      "test": {
                                        "type": "LogicalExpression",
                                        "start": 3768,
                                        "end": 3933,
                                        "loc": {
                                          "start": {
                                            "line": 96,
                                            "column": 20
                                          },
                                          "end": {
                                            "line": 97,
                                            "column": 94
                                          }
                                        },
                                        "left": {
                                          "type": "LogicalExpression",
                                          "start": 3768,
                                          "end": 3893,
                                          "loc": {
                                            "start": {
                                              "line": 96,
                                              "column": 20
                                            },
                                            "end": {
                                              "line": 97,
                                              "column": 54
                                            }
                                          },
                                          "left": {
                                            "type": "LogicalExpression",
                                            "start": 3768,
                                            "end": 3834,
                                            "loc": {
                                              "start": {
                                                "line": 96,
                                                "column": 20
                                              },
                                              "end": {
                                                "line": 96,
                                                "column": 86
                                              }
                                            },
                                            "left": {
                                              "type": "BinaryExpression",
                                              "start": 3768,
                                              "end": 3800,
                                              "loc": {
                                                "start": {
                                                  "line": 96,
                                                  "column": 20
                                                },
                                                "end": {
                                                  "line": 96,
                                                  "column": 52
                                                }
                                              },
                                              "left": {
                                                "type": "MemberExpression",
                                                "start": 3768,
                                                "end": 3779,
                                                "loc": {
                                                  "start": {
                                                    "line": 96,
                                                    "column": 20
                                                  },
                                                  "end": {
                                                    "line": 96,
                                                    "column": 31
                                                  }
                                                },
                                                "object": {
                                                  "type": "Identifier",
                                                  "start": 3768,
                                                  "end": 3774,
                                                  "loc": {
                                                    "start": {
                                                      "line": 96,
                                                      "column": 20
                                                    },
                                                    "end": {
                                                      "line": 96,
                                                      "column": 26
                                                    }
                                                  },
                                                  "name": "bounds",
                                                  "leadingComments": null
                                                },
                                                "property": {
                                                  "type": "Identifier",
                                                  "start": 3775,
                                                  "end": 3779,
                                                  "loc": {
                                                    "start": {
                                                      "line": 96,
                                                      "column": 27
                                                    },
                                                    "end": {
                                                      "line": 96,
                                                      "column": 31
                                                    }
                                                  },
                                                  "name": "left"
                                                },
                                                "computed": false,
                                                "leadingComments": null
                                              },
                                              "operator": "!=",
                                              "right": {
                                                "type": "MemberExpression",
                                                "start": 3783,
                                                "end": 3800,
                                                "loc": {
                                                  "start": {
                                                    "line": 96,
                                                    "column": 35
                                                  },
                                                  "end": {
                                                    "line": 96,
                                                    "column": 52
                                                  }
                                                },
                                                "object": {
                                                  "type": "MemberExpression",
                                                  "start": 3783,
                                                  "end": 3795,
                                                  "loc": {
                                                    "start": {
                                                      "line": 96,
                                                      "column": 35
                                                    },
                                                    "end": {
                                                      "line": 96,
                                                      "column": 47
                                                    }
                                                  },
                                                  "object": {
                                                    "type": "Identifier",
                                                    "start": 3783,
                                                    "end": 3788,
                                                    "loc": {
                                                      "start": {
                                                        "line": 96,
                                                        "column": 35
                                                      },
                                                      "end": {
                                                        "line": 96,
                                                        "column": 40
                                                      }
                                                    },
                                                    "name": "scope"
                                                  },
                                                  "property": {
                                                    "type": "Identifier",
                                                    "start": 3789,
                                                    "end": 3795,
                                                    "loc": {
                                                      "start": {
                                                        "line": 96,
                                                        "column": 41
                                                      },
                                                      "end": {
                                                        "line": 96,
                                                        "column": 47
                                                      }
                                                    },
                                                    "name": "offset"
                                                  },
                                                  "computed": false
                                                },
                                                "property": {
                                                  "type": "Identifier",
                                                  "start": 3796,
                                                  "end": 3800,
                                                  "loc": {
                                                    "start": {
                                                      "line": 96,
                                                      "column": 48
                                                    },
                                                    "end": {
                                                      "line": 96,
                                                      "column": 52
                                                    }
                                                  },
                                                  "name": "left"
                                                },
                                                "computed": false
                                              },
                                              "leadingComments": null
                                            },
                                            "operator": "||",
                                            "right": {
                                              "type": "BinaryExpression",
                                              "start": 3804,
                                              "end": 3834,
                                              "loc": {
                                                "start": {
                                                  "line": 96,
                                                  "column": 56
                                                },
                                                "end": {
                                                  "line": 96,
                                                  "column": 86
                                                }
                                              },
                                              "left": {
                                                "type": "MemberExpression",
                                                "start": 3804,
                                                "end": 3814,
                                                "loc": {
                                                  "start": {
                                                    "line": 96,
                                                    "column": 56
                                                  },
                                                  "end": {
                                                    "line": 96,
                                                    "column": 66
                                                  }
                                                },
                                                "object": {
                                                  "type": "Identifier",
                                                  "start": 3804,
                                                  "end": 3810,
                                                  "loc": {
                                                    "start": {
                                                      "line": 96,
                                                      "column": 56
                                                    },
                                                    "end": {
                                                      "line": 96,
                                                      "column": 62
                                                    }
                                                  },
                                                  "name": "bounds"
                                                },
                                                "property": {
                                                  "type": "Identifier",
                                                  "start": 3811,
                                                  "end": 3814,
                                                  "loc": {
                                                    "start": {
                                                      "line": 96,
                                                      "column": 63
                                                    },
                                                    "end": {
                                                      "line": 96,
                                                      "column": 66
                                                    }
                                                  },
                                                  "name": "top"
                                                },
                                                "computed": false
                                              },
                                              "operator": "!=",
                                              "right": {
                                                "type": "MemberExpression",
                                                "start": 3818,
                                                "end": 3834,
                                                "loc": {
                                                  "start": {
                                                    "line": 96,
                                                    "column": 70
                                                  },
                                                  "end": {
                                                    "line": 96,
                                                    "column": 86
                                                  }
                                                },
                                                "object": {
                                                  "type": "MemberExpression",
                                                  "start": 3818,
                                                  "end": 3830,
                                                  "loc": {
                                                    "start": {
                                                      "line": 96,
                                                      "column": 70
                                                    },
                                                    "end": {
                                                      "line": 96,
                                                      "column": 82
                                                    }
                                                  },
                                                  "object": {
                                                    "type": "Identifier",
                                                    "start": 3818,
                                                    "end": 3823,
                                                    "loc": {
                                                      "start": {
                                                        "line": 96,
                                                        "column": 70
                                                      },
                                                      "end": {
                                                        "line": 96,
                                                        "column": 75
                                                      }
                                                    },
                                                    "name": "scope"
                                                  },
                                                  "property": {
                                                    "type": "Identifier",
                                                    "start": 3824,
                                                    "end": 3830,
                                                    "loc": {
                                                      "start": {
                                                        "line": 96,
                                                        "column": 76
                                                      },
                                                      "end": {
                                                        "line": 96,
                                                        "column": 82
                                                      }
                                                    },
                                                    "name": "offset"
                                                  },
                                                  "computed": false
                                                },
                                                "property": {
                                                  "type": "Identifier",
                                                  "start": 3831,
                                                  "end": 3834,
                                                  "loc": {
                                                    "start": {
                                                      "line": 96,
                                                      "column": 83
                                                    },
                                                    "end": {
                                                      "line": 96,
                                                      "column": 86
                                                    }
                                                  },
                                                  "name": "top"
                                                },
                                                "computed": false
                                              }
                                            },
                                            "leadingComments": null
                                          },
                                          "operator": "||",
                                          "right": {
                                            "type": "BinaryExpression",
                                            "start": 3859,
                                            "end": 3893,
                                            "loc": {
                                              "start": {
                                                "line": 97,
                                                "column": 20
                                              },
                                              "end": {
                                                "line": 97,
                                                "column": 54
                                              }
                                            },
                                            "left": {
                                              "type": "MemberExpression",
                                              "start": 3859,
                                              "end": 3871,
                                              "loc": {
                                                "start": {
                                                  "line": 97,
                                                  "column": 20
                                                },
                                                "end": {
                                                  "line": 97,
                                                  "column": 32
                                                }
                                              },
                                              "object": {
                                                "type": "Identifier",
                                                "start": 3859,
                                                "end": 3865,
                                                "loc": {
                                                  "start": {
                                                    "line": 97,
                                                    "column": 20
                                                  },
                                                  "end": {
                                                    "line": 97,
                                                    "column": 26
                                                  }
                                                },
                                                "name": "bounds"
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "start": 3866,
                                                "end": 3871,
                                                "loc": {
                                                  "start": {
                                                    "line": 97,
                                                    "column": 27
                                                  },
                                                  "end": {
                                                    "line": 97,
                                                    "column": 32
                                                  }
                                                },
                                                "name": "width"
                                              },
                                              "computed": false
                                            },
                                            "operator": "!=",
                                            "right": {
                                              "type": "MemberExpression",
                                              "start": 3875,
                                              "end": 3893,
                                              "loc": {
                                                "start": {
                                                  "line": 97,
                                                  "column": 36
                                                },
                                                "end": {
                                                  "line": 97,
                                                  "column": 54
                                                }
                                              },
                                              "object": {
                                                "type": "MemberExpression",
                                                "start": 3875,
                                                "end": 3887,
                                                "loc": {
                                                  "start": {
                                                    "line": 97,
                                                    "column": 36
                                                  },
                                                  "end": {
                                                    "line": 97,
                                                    "column": 48
                                                  }
                                                },
                                                "object": {
                                                  "type": "Identifier",
                                                  "start": 3875,
                                                  "end": 3880,
                                                  "loc": {
                                                    "start": {
                                                      "line": 97,
                                                      "column": 36
                                                    },
                                                    "end": {
                                                      "line": 97,
                                                      "column": 41
                                                    }
                                                  },
                                                  "name": "scope"
                                                },
                                                "property": {
                                                  "type": "Identifier",
                                                  "start": 3881,
                                                  "end": 3887,
                                                  "loc": {
                                                    "start": {
                                                      "line": 97,
                                                      "column": 42
                                                    },
                                                    "end": {
                                                      "line": 97,
                                                      "column": 48
                                                    }
                                                  },
                                                  "name": "offset"
                                                },
                                                "computed": false
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "start": 3888,
                                                "end": 3893,
                                                "loc": {
                                                  "start": {
                                                    "line": 97,
                                                    "column": 49
                                                  },
                                                  "end": {
                                                    "line": 97,
                                                    "column": 54
                                                  }
                                                },
                                                "name": "width"
                                              },
                                              "computed": false
                                            }
                                          },
                                          "leadingComments": null
                                        },
                                        "operator": "||",
                                        "right": {
                                          "type": "BinaryExpression",
                                          "start": 3897,
                                          "end": 3933,
                                          "loc": {
                                            "start": {
                                              "line": 97,
                                              "column": 58
                                            },
                                            "end": {
                                              "line": 97,
                                              "column": 94
                                            }
                                          },
                                          "left": {
                                            "type": "MemberExpression",
                                            "start": 3897,
                                            "end": 3910,
                                            "loc": {
                                              "start": {
                                                "line": 97,
                                                "column": 58
                                              },
                                              "end": {
                                                "line": 97,
                                                "column": 71
                                              }
                                            },
                                            "object": {
                                              "type": "Identifier",
                                              "start": 3897,
                                              "end": 3903,
                                              "loc": {
                                                "start": {
                                                  "line": 97,
                                                  "column": 58
                                                },
                                                "end": {
                                                  "line": 97,
                                                  "column": 64
                                                }
                                              },
                                              "name": "bounds"
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "start": 3904,
                                              "end": 3910,
                                              "loc": {
                                                "start": {
                                                  "line": 97,
                                                  "column": 65
                                                },
                                                "end": {
                                                  "line": 97,
                                                  "column": 71
                                                }
                                              },
                                              "name": "height"
                                            },
                                            "computed": false
                                          },
                                          "operator": "!=",
                                          "right": {
                                            "type": "MemberExpression",
                                            "start": 3914,
                                            "end": 3933,
                                            "loc": {
                                              "start": {
                                                "line": 97,
                                                "column": 75
                                              },
                                              "end": {
                                                "line": 97,
                                                "column": 94
                                              }
                                            },
                                            "object": {
                                              "type": "MemberExpression",
                                              "start": 3914,
                                              "end": 3926,
                                              "loc": {
                                                "start": {
                                                  "line": 97,
                                                  "column": 75
                                                },
                                                "end": {
                                                  "line": 97,
                                                  "column": 87
                                                }
                                              },
                                              "object": {
                                                "type": "Identifier",
                                                "start": 3914,
                                                "end": 3919,
                                                "loc": {
                                                  "start": {
                                                    "line": 97,
                                                    "column": 75
                                                  },
                                                  "end": {
                                                    "line": 97,
                                                    "column": 80
                                                  }
                                                },
                                                "name": "scope"
                                              },
                                              "property": {
                                                "type": "Identifier",
                                                "start": 3920,
                                                "end": 3926,
                                                "loc": {
                                                  "start": {
                                                    "line": 97,
                                                    "column": 81
                                                  },
                                                  "end": {
                                                    "line": 97,
                                                    "column": 87
                                                  }
                                                },
                                                "name": "offset"
                                              },
                                              "computed": false
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "start": 3927,
                                              "end": 3933,
                                              "loc": {
                                                "start": {
                                                  "line": 97,
                                                  "column": 88
                                                },
                                                "end": {
                                                  "line": 97,
                                                  "column": 94
                                                }
                                              },
                                              "name": "height"
                                            },
                                            "computed": false
                                          }
                                        },
                                        "leadingComments": null
                                      },
                                      "consequent": {
                                        "type": "BlockStatement",
                                        "start": 3935,
                                        "end": 4363,
                                        "loc": {
                                          "start": {
                                            "line": 97,
                                            "column": 96
                                          },
                                          "end": {
                                            "line": 105,
                                            "column": 17
                                          }
                                        },
                                        "body": [
                                          {
                                            "type": "ExpressionStatement",
                                            "start": 3958,
                                            "end": 3980,
                                            "loc": {
                                              "start": {
                                                "line": 98,
                                                "column": 20
                                              },
                                              "end": {
                                                "line": 98,
                                                "column": 42
                                              }
                                            },
                                            "expression": {
                                              "type": "AssignmentExpression",
                                              "start": 3958,
                                              "end": 3979,
                                              "loc": {
                                                "start": {
                                                  "line": 98,
                                                  "column": 20
                                                },
                                                "end": {
                                                  "line": 98,
                                                  "column": 41
                                                }
                                              },
                                              "operator": "=",
                                              "left": {
                                                "type": "MemberExpression",
                                                "start": 3958,
                                                "end": 3970,
                                                "loc": {
                                                  "start": {
                                                    "line": 98,
                                                    "column": 20
                                                  },
                                                  "end": {
                                                    "line": 98,
                                                    "column": 32
                                                  }
                                                },
                                                "object": {
                                                  "type": "Identifier",
                                                  "start": 3958,
                                                  "end": 3963,
                                                  "loc": {
                                                    "start": {
                                                      "line": 98,
                                                      "column": 20
                                                    },
                                                    "end": {
                                                      "line": 98,
                                                      "column": 25
                                                    }
                                                  },
                                                  "name": "scope"
                                                },
                                                "property": {
                                                  "type": "Identifier",
                                                  "start": 3964,
                                                  "end": 3970,
                                                  "loc": {
                                                    "start": {
                                                      "line": 98,
                                                      "column": 26
                                                    },
                                                    "end": {
                                                      "line": 98,
                                                      "column": 32
                                                    }
                                                  },
                                                  "name": "offset"
                                                },
                                                "computed": false
                                              },
                                              "right": {
                                                "type": "Identifier",
                                                "start": 3973,
                                                "end": 3979,
                                                "loc": {
                                                  "start": {
                                                    "line": 98,
                                                    "column": 35
                                                  },
                                                  "end": {
                                                    "line": 98,
                                                    "column": 41
                                                  }
                                                },
                                                "name": "bounds"
                                              }
                                            }
                                          },
                                          {
                                            "type": "ExpressionStatement",
                                            "start": 4002,
                                            "end": 4027,
                                            "loc": {
                                              "start": {
                                                "line": 99,
                                                "column": 20
                                              },
                                              "end": {
                                                "line": 99,
                                                "column": 45
                                              }
                                            },
                                            "expression": {
                                              "type": "CallExpression",
                                              "start": 4002,
                                              "end": 4026,
                                              "loc": {
                                                "start": {
                                                  "line": 99,
                                                  "column": 20
                                                },
                                                "end": {
                                                  "line": 99,
                                                  "column": 44
                                                }
                                              },
                                              "callee": {
                                                "type": "MemberExpression",
                                                "start": 4002,
                                                "end": 4024,
                                                "loc": {
                                                  "start": {
                                                    "line": 99,
                                                    "column": 20
                                                  },
                                                  "end": {
                                                    "line": 99,
                                                    "column": 42
                                                  }
                                                },
                                                "object": {
                                                  "type": "Identifier",
                                                  "start": 4002,
                                                  "end": 4007,
                                                  "loc": {
                                                    "start": {
                                                      "line": 99,
                                                      "column": 20
                                                    },
                                                    "end": {
                                                      "line": 99,
                                                      "column": 25
                                                    }
                                                  },
                                                  "name": "scope"
                                                },
                                                "property": {
                                                  "type": "Identifier",
                                                  "start": 4008,
                                                  "end": 4024,
                                                  "loc": {
                                                    "start": {
                                                      "line": 99,
                                                      "column": 26
                                                    },
                                                    "end": {
                                                      "line": 99,
                                                      "column": 42
                                                    }
                                                  },
                                                  "name": "invalidateCanvas"
                                                },
                                                "computed": false
                                              },
                                              "arguments": []
                                            },
                                            "trailingComments": [
                                              {
                                                "type": "CommentLine",
                                                "value": " Size changed, canvas needs to adapt",
                                                "start": 4051,
                                                "end": 4089,
                                                "loc": {
                                                  "start": {
                                                    "line": 101,
                                                    "column": 20
                                                  },
                                                  "end": {
                                                    "line": 101,
                                                    "column": 58
                                                  }
                                                },
                                                "range": [
                                                  4051,
                                                  4089
                                                ]
                                              }
                                            ]
                                          },
                                          {
                                            "type": "IfStatement",
                                            "start": 4111,
                                            "end": 4344,
                                            "loc": {
                                              "start": {
                                                "line": 102,
                                                "column": 20
                                              },
                                              "end": {
                                                "line": 104,
                                                "column": 21
                                              }
                                            },
                                            "test": {
                                              "type": "LogicalExpression",
                                              "start": 4115,
                                              "end": 4189,
                                              "loc": {
                                                "start": {
                                                  "line": 102,
                                                  "column": 24
                                                },
                                                "end": {
                                                  "line": 102,
                                                  "column": 98
                                                }
                                              },
                                              "left": {
                                                "type": "BinaryExpression",
                                                "start": 4115,
                                                "end": 4149,
                                                "loc": {
                                                  "start": {
                                                    "line": 102,
                                                    "column": 24
                                                  },
                                                  "end": {
                                                    "line": 102,
                                                    "column": 58
                                                  }
                                                },
                                                "left": {
                                                  "type": "MemberExpression",
                                                  "start": 4115,
                                                  "end": 4127,
                                                  "loc": {
                                                    "start": {
                                                      "line": 102,
                                                      "column": 24
                                                    },
                                                    "end": {
                                                      "line": 102,
                                                      "column": 36
                                                    }
                                                  },
                                                  "object": {
                                                    "type": "Identifier",
                                                    "start": 4115,
                                                    "end": 4121,
                                                    "loc": {
                                                      "start": {
                                                        "line": 102,
                                                        "column": 24
                                                      },
                                                      "end": {
                                                        "line": 102,
                                                        "column": 30
                                                      }
                                                    },
                                                    "name": "bounds",
                                                    "leadingComments": null
                                                  },
                                                  "property": {
                                                    "type": "Identifier",
                                                    "start": 4122,
                                                    "end": 4127,
                                                    "loc": {
                                                      "start": {
                                                        "line": 102,
                                                        "column": 31
                                                      },
                                                      "end": {
                                                        "line": 102,
                                                        "column": 36
                                                      }
                                                    },
                                                    "name": "width"
                                                  },
                                                  "computed": false,
                                                  "leadingComments": null
                                                },
                                                "operator": "!=",
                                                "right": {
                                                  "type": "MemberExpression",
                                                  "start": 4131,
                                                  "end": 4149,
                                                  "loc": {
                                                    "start": {
                                                      "line": 102,
                                                      "column": 40
                                                    },
                                                    "end": {
                                                      "line": 102,
                                                      "column": 58
                                                    }
                                                  },
                                                  "object": {
                                                    "type": "MemberExpression",
                                                    "start": 4131,
                                                    "end": 4143,
                                                    "loc": {
                                                      "start": {
                                                        "line": 102,
                                                        "column": 40
                                                      },
                                                      "end": {
                                                        "line": 102,
                                                        "column": 52
                                                      }
                                                    },
                                                    "object": {
                                                      "type": "Identifier",
                                                      "start": 4131,
                                                      "end": 4136,
                                                      "loc": {
                                                        "start": {
                                                          "line": 102,
                                                          "column": 40
                                                        },
                                                        "end": {
                                                          "line": 102,
                                                          "column": 45
                                                        }
                                                      },
                                                      "name": "scope"
                                                    },
                                                    "property": {
                                                      "type": "Identifier",
                                                      "start": 4137,
                                                      "end": 4143,
                                                      "loc": {
                                                        "start": {
                                                          "line": 102,
                                                          "column": 46
                                                        },
                                                        "end": {
                                                          "line": 102,
                                                          "column": 52
                                                        }
                                                      },
                                                      "name": "offset"
                                                    },
                                                    "computed": false
                                                  },
                                                  "property": {
                                                    "type": "Identifier",
                                                    "start": 4144,
                                                    "end": 4149,
                                                    "loc": {
                                                      "start": {
                                                        "line": 102,
                                                        "column": 53
                                                      },
                                                      "end": {
                                                        "line": 102,
                                                        "column": 58
                                                      }
                                                    },
                                                    "name": "width"
                                                  },
                                                  "computed": false
                                                },
                                                "leadingComments": null
                                              },
                                              "operator": "||",
                                              "right": {
                                                "type": "BinaryExpression",
                                                "start": 4153,
                                                "end": 4189,
                                                "loc": {
                                                  "start": {
                                                    "line": 102,
                                                    "column": 62
                                                  },
                                                  "end": {
                                                    "line": 102,
                                                    "column": 98
                                                  }
                                                },
                                                "left": {
                                                  "type": "MemberExpression",
                                                  "start": 4153,
                                                  "end": 4166,
                                                  "loc": {
                                                    "start": {
                                                      "line": 102,
                                                      "column": 62
                                                    },
                                                    "end": {
                                                      "line": 102,
                                                      "column": 75
                                                    }
                                                  },
                                                  "object": {
                                                    "type": "Identifier",
                                                    "start": 4153,
                                                    "end": 4159,
                                                    "loc": {
                                                      "start": {
                                                        "line": 102,
                                                        "column": 62
                                                      },
                                                      "end": {
                                                        "line": 102,
                                                        "column": 68
                                                      }
                                                    },
                                                    "name": "bounds"
                                                  },
                                                  "property": {
                                                    "type": "Identifier",
                                                    "start": 4160,
                                                    "end": 4166,
                                                    "loc": {
                                                      "start": {
                                                        "line": 102,
                                                        "column": 69
                                                      },
                                                      "end": {
                                                        "line": 102,
                                                        "column": 75
                                                      }
                                                    },
                                                    "name": "height"
                                                  },
                                                  "computed": false
                                                },
                                                "operator": "!=",
                                                "right": {
                                                  "type": "MemberExpression",
                                                  "start": 4170,
                                                  "end": 4189,
                                                  "loc": {
                                                    "start": {
                                                      "line": 102,
                                                      "column": 79
                                                    },
                                                    "end": {
                                                      "line": 102,
                                                      "column": 98
                                                    }
                                                  },
                                                  "object": {
                                                    "type": "MemberExpression",
                                                    "start": 4170,
                                                    "end": 4182,
                                                    "loc": {
                                                      "start": {
                                                        "line": 102,
                                                        "column": 79
                                                      },
                                                      "end": {
                                                        "line": 102,
                                                        "column": 91
                                                      }
                                                    },
                                                    "object": {
                                                      "type": "Identifier",
                                                      "start": 4170,
                                                      "end": 4175,
                                                      "loc": {
                                                        "start": {
                                                          "line": 102,
                                                          "column": 79
                                                        },
                                                        "end": {
                                                          "line": 102,
                                                          "column": 84
                                                        }
                                                      },
                                                      "name": "scope"
                                                    },
                                                    "property": {
                                                      "type": "Identifier",
                                                      "start": 4176,
                                                      "end": 4182,
                                                      "loc": {
                                                        "start": {
                                                          "line": 102,
                                                          "column": 85
                                                        },
                                                        "end": {
                                                          "line": 102,
                                                          "column": 91
                                                        }
                                                      },
                                                      "name": "offset"
                                                    },
                                                    "computed": false
                                                  },
                                                  "property": {
                                                    "type": "Identifier",
                                                    "start": 4183,
                                                    "end": 4189,
                                                    "loc": {
                                                      "start": {
                                                        "line": 102,
                                                        "column": 92
                                                      },
                                                      "end": {
                                                        "line": 102,
                                                        "column": 98
                                                      }
                                                    },
                                                    "name": "height"
                                                  },
                                                  "computed": false
                                                }
                                              },
                                              "leadingComments": null
                                            },
                                            "consequent": {
                                              "type": "BlockStatement",
                                              "start": 4191,
                                              "end": 4344,
                                              "loc": {
                                                "start": {
                                                  "line": 102,
                                                  "column": 100
                                                },
                                                "end": {
                                                  "line": 104,
                                                  "column": 21
                                                }
                                              },
                                              "body": [
                                                {
                                                  "type": "ExpressionStatement",
                                                  "start": 4218,
                                                  "end": 4321,
                                                  "loc": {
                                                    "start": {
                                                      "line": 103,
                                                      "column": 24
                                                    },
                                                    "end": {
                                                      "line": 103,
                                                      "column": 127
                                                    }
                                                  },
                                                  "expression": {
                                                    "type": "CallExpression",
                                                    "start": 4218,
                                                    "end": 4320,
                                                    "loc": {
                                                      "start": {
                                                        "line": 103,
                                                        "column": 24
                                                      },
                                                      "end": {
                                                        "line": 103,
                                                        "column": 126
                                                      }
                                                    },
                                                    "callee": {
                                                      "type": "MemberExpression",
                                                      "start": 4218,
                                                      "end": 4234,
                                                      "loc": {
                                                        "start": {
                                                          "line": 103,
                                                          "column": 24
                                                        },
                                                        "end": {
                                                          "line": 103,
                                                          "column": 40
                                                        }
                                                      },
                                                      "object": {
                                                        "type": "MemberExpression",
                                                        "start": 4218,
                                                        "end": 4226,
                                                        "loc": {
                                                          "start": {
                                                            "line": 103,
                                                            "column": 24
                                                          },
                                                          "end": {
                                                            "line": 103,
                                                            "column": 32
                                                          }
                                                        },
                                                        "object": {
                                                          "type": "Identifier",
                                                          "start": 4218,
                                                          "end": 4223,
                                                          "loc": {
                                                            "start": {
                                                              "line": 103,
                                                              "column": 24
                                                            },
                                                            "end": {
                                                              "line": 103,
                                                              "column": 29
                                                            }
                                                          },
                                                          "name": "scope"
                                                        },
                                                        "property": {
                                                          "type": "Identifier",
                                                          "start": 4224,
                                                          "end": 4226,
                                                          "loc": {
                                                            "start": {
                                                              "line": 103,
                                                              "column": 30
                                                            },
                                                            "end": {
                                                              "line": 103,
                                                              "column": 32
                                                            }
                                                          },
                                                          "name": "gl"
                                                        },
                                                        "computed": false
                                                      },
                                                      "property": {
                                                        "type": "Identifier",
                                                        "start": 4227,
                                                        "end": 4234,
                                                        "loc": {
                                                          "start": {
                                                            "line": 103,
                                                            "column": 33
                                                          },
                                                          "end": {
                                                            "line": 103,
                                                            "column": 40
                                                          }
                                                        },
                                                        "name": "setSize"
                                                      },
                                                      "computed": false
                                                    },
                                                    "arguments": [
                                                      {
                                                        "type": "BinaryExpression",
                                                        "start": 4235,
                                                        "end": 4272,
                                                        "loc": {
                                                          "start": {
                                                            "line": 103,
                                                            "column": 41
                                                          },
                                                          "end": {
                                                            "line": 103,
                                                            "column": 78
                                                          }
                                                        },
                                                        "left": {
                                                          "type": "MemberExpression",
                                                          "start": 4235,
                                                          "end": 4253,
                                                          "loc": {
                                                            "start": {
                                                              "line": 103,
                                                              "column": 41
                                                            },
                                                            "end": {
                                                              "line": 103,
                                                              "column": 59
                                                            }
                                                          },
                                                          "object": {
                                                            "type": "MemberExpression",
                                                            "start": 4235,
                                                            "end": 4247,
                                                            "loc": {
                                                              "start": {
                                                                "line": 103,
                                                                "column": 41
                                                              },
                                                              "end": {
                                                                "line": 103,
                                                                "column": 53
                                                              }
                                                            },
                                                            "object": {
                                                              "type": "Identifier",
                                                              "start": 4235,
                                                              "end": 4240,
                                                              "loc": {
                                                                "start": {
                                                                  "line": 103,
                                                                  "column": 41
                                                                },
                                                                "end": {
                                                                  "line": 103,
                                                                  "column": 46
                                                                }
                                                              },
                                                              "name": "scope"
                                                            },
                                                            "property": {
                                                              "type": "Identifier",
                                                              "start": 4241,
                                                              "end": 4247,
                                                              "loc": {
                                                                "start": {
                                                                  "line": 103,
                                                                  "column": 47
                                                                },
                                                                "end": {
                                                                  "line": 103,
                                                                  "column": 53
                                                                }
                                                              },
                                                              "name": "offset"
                                                            },
                                                            "computed": false
                                                          },
                                                          "property": {
                                                            "type": "Identifier",
                                                            "start": 4248,
                                                            "end": 4253,
                                                            "loc": {
                                                              "start": {
                                                                "line": 103,
                                                                "column": 54
                                                              },
                                                              "end": {
                                                                "line": 103,
                                                                "column": 59
                                                              }
                                                            },
                                                            "name": "width"
                                                          },
                                                          "computed": false
                                                        },
                                                        "operator": "*",
                                                        "right": {
                                                          "type": "MemberExpression",
                                                          "start": 4256,
                                                          "end": 4272,
                                                          "loc": {
                                                            "start": {
                                                              "line": 103,
                                                              "column": 62
                                                            },
                                                            "end": {
                                                              "line": 103,
                                                              "column": 78
                                                            }
                                                          },
                                                          "object": {
                                                            "type": "Identifier",
                                                            "start": 4256,
                                                            "end": 4261,
                                                            "loc": {
                                                              "start": {
                                                                "line": 103,
                                                                "column": 62
                                                              },
                                                              "end": {
                                                                "line": 103,
                                                                "column": 67
                                                              }
                                                            },
                                                            "name": "scope"
                                                          },
                                                          "property": {
                                                            "type": "Identifier",
                                                            "start": 4262,
                                                            "end": 4272,
                                                            "loc": {
                                                              "start": {
                                                                "line": 103,
                                                                "column": 68
                                                              },
                                                              "end": {
                                                                "line": 103,
                                                                "column": 78
                                                              }
                                                            },
                                                            "name": "resolution"
                                                          },
                                                          "computed": false
                                                        }
                                                      },
                                                      {
                                                        "type": "BinaryExpression",
                                                        "start": 4274,
                                                        "end": 4312,
                                                        "loc": {
                                                          "start": {
                                                            "line": 103,
                                                            "column": 80
                                                          },
                                                          "end": {
                                                            "line": 103,
                                                            "column": 118
                                                          }
                                                        },
                                                        "left": {
                                                          "type": "MemberExpression",
                                                          "start": 4274,
                                                          "end": 4293,
                                                          "loc": {
                                                            "start": {
                                                              "line": 103,
                                                              "column": 80
                                                            },
                                                            "end": {
                                                              "line": 103,
                                                              "column": 99
                                                            }
                                                          },
                                                          "object": {
                                                            "type": "MemberExpression",
                                                            "start": 4274,
                                                            "end": 4286,
                                                            "loc": {
                                                              "start": {
                                                                "line": 103,
                                                                "column": 80
                                                              },
                                                              "end": {
                                                                "line": 103,
                                                                "column": 92
                                                              }
                                                            },
                                                            "object": {
                                                              "type": "Identifier",
                                                              "start": 4274,
                                                              "end": 4279,
                                                              "loc": {
                                                                "start": {
                                                                  "line": 103,
                                                                  "column": 80
                                                                },
                                                                "end": {
                                                                  "line": 103,
                                                                  "column": 85
                                                                }
                                                              },
                                                              "name": "scope"
                                                            },
                                                            "property": {
                                                              "type": "Identifier",
                                                              "start": 4280,
                                                              "end": 4286,
                                                              "loc": {
                                                                "start": {
                                                                  "line": 103,
                                                                  "column": 86
                                                                },
                                                                "end": {
                                                                  "line": 103,
                                                                  "column": 92
                                                                }
                                                              },
                                                              "name": "offset"
                                                            },
                                                            "computed": false
                                                          },
                                                          "property": {
                                                            "type": "Identifier",
                                                            "start": 4287,
                                                            "end": 4293,
                                                            "loc": {
                                                              "start": {
                                                                "line": 103,
                                                                "column": 93
                                                              },
                                                              "end": {
                                                                "line": 103,
                                                                "column": 99
                                                              }
                                                            },
                                                            "name": "height"
                                                          },
                                                          "computed": false
                                                        },
                                                        "operator": "*",
                                                        "right": {
                                                          "type": "MemberExpression",
                                                          "start": 4296,
                                                          "end": 4312,
                                                          "loc": {
                                                            "start": {
                                                              "line": 103,
                                                              "column": 102
                                                            },
                                                            "end": {
                                                              "line": 103,
                                                              "column": 118
                                                            }
                                                          },
                                                          "object": {
                                                            "type": "Identifier",
                                                            "start": 4296,
                                                            "end": 4301,
                                                            "loc": {
                                                              "start": {
                                                                "line": 103,
                                                                "column": 102
                                                              },
                                                              "end": {
                                                                "line": 103,
                                                                "column": 107
                                                              }
                                                            },
                                                            "name": "scope"
                                                          },
                                                          "property": {
                                                            "type": "Identifier",
                                                            "start": 4302,
                                                            "end": 4312,
                                                            "loc": {
                                                              "start": {
                                                                "line": 103,
                                                                "column": 108
                                                              },
                                                              "end": {
                                                                "line": 103,
                                                                "column": 118
                                                              }
                                                            },
                                                            "name": "resolution"
                                                          },
                                                          "computed": false
                                                        }
                                                      },
                                                      {
                                                        "type": "Literal",
                                                        "start": 4314,
                                                        "end": 4319,
                                                        "loc": {
                                                          "start": {
                                                            "line": 103,
                                                            "column": 120
                                                          },
                                                          "end": {
                                                            "line": 103,
                                                            "column": 125
                                                          }
                                                        },
                                                        "value": false,
                                                        "rawValue": false,
                                                        "raw": "false"
                                                      }
                                                    ]
                                                  }
                                                }
                                              ]
                                            },
                                            "alternate": null,
                                            "leadingComments": [
                                              {
                                                "type": "CommentLine",
                                                "value": " Size changed, canvas needs to adapt",
                                                "start": 4051,
                                                "end": 4089,
                                                "loc": {
                                                  "start": {
                                                    "line": 101,
                                                    "column": 20
                                                  },
                                                  "end": {
                                                    "line": 101,
                                                    "column": 58
                                                  }
                                                },
                                                "range": [
                                                  4051,
                                                  4089
                                                ]
                                              }
                                            ]
                                          }
                                        ]
                                      },
                                      "alternate": null,
                                      "leadingComments": [
                                        {
                                          "type": "CommentLine",
                                          "value": " Test for changes, position & size",
                                          "start": 3710,
                                          "end": 3746,
                                          "loc": {
                                            "start": {
                                              "line": 95,
                                              "column": 16
                                            },
                                            "end": {
                                              "line": 95,
                                              "column": 52
                                            }
                                          },
                                          "range": [
                                            3710,
                                            3746
                                          ]
                                        }
                                      ]
                                    },
                                    {
                                      "type": "ExpressionStatement",
                                      "start": 4381,
                                      "end": 4406,
                                      "loc": {
                                        "start": {
                                          "line": 106,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 106,
                                          "column": 41
                                        }
                                      },
                                      "expression": {
                                        "type": "UpdateExpression",
                                        "start": 4381,
                                        "end": 4405,
                                        "loc": {
                                          "start": {
                                            "line": 106,
                                            "column": 16
                                          },
                                          "end": {
                                            "line": 106,
                                            "column": 40
                                          }
                                        },
                                        "operator": "--",
                                        "prefix": false,
                                        "argument": {
                                          "type": "MemberExpression",
                                          "start": 4381,
                                          "end": 4403,
                                          "loc": {
                                            "start": {
                                              "line": 106,
                                              "column": 16
                                            },
                                            "end": {
                                              "line": 106,
                                              "column": 38
                                            }
                                          },
                                          "object": {
                                            "type": "Identifier",
                                            "start": 4381,
                                            "end": 4386,
                                            "loc": {
                                              "start": {
                                                "line": 106,
                                                "column": 16
                                              },
                                              "end": {
                                                "line": 106,
                                                "column": 21
                                              }
                                            },
                                            "name": "scope"
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "start": 4387,
                                            "end": 4403,
                                            "loc": {
                                              "start": {
                                                "line": 106,
                                                "column": 22
                                              },
                                              "end": {
                                                "line": 106,
                                                "column": 38
                                              }
                                            },
                                            "name": "invalidateFrames"
                                          },
                                          "computed": false
                                        }
                                      }
                                    }
                                  ],
                                  "trailingComments": null
                                },
                                "alternate": null,
                                "leadingComments": [
                                  {
                                    "type": "CommentLine",
                                    "value": " Pass 1: measure canvas; do this only when the canvas is dirty",
                                    "start": 3495,
                                    "end": 3559,
                                    "loc": {
                                      "start": {
                                        "line": 91,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 91,
                                        "column": 76
                                      }
                                    },
                                    "range": [
                                      3495,
                                      3559
                                    ]
                                  }
                                ],
                                "trailingComments": [
                                  {
                                    "type": "CommentLine",
                                    "value": " Update animations",
                                    "start": 4437,
                                    "end": 4457,
                                    "loc": {
                                      "start": {
                                        "line": 109,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 109,
                                        "column": 32
                                      }
                                    },
                                    "range": [
                                      4437,
                                      4457
                                    ]
                                  }
                                ]
                              },
                              {
                                "type": "ExpressionStatement",
                                "start": 4471,
                                "end": 4497,
                                "loc": {
                                  "start": {
                                    "line": 110,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 110,
                                    "column": 38
                                  }
                                },
                                "expression": {
                                  "type": "CallExpression",
                                  "start": 4471,
                                  "end": 4496,
                                  "loc": {
                                    "start": {
                                      "line": 110,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 110,
                                      "column": 37
                                    }
                                  },
                                  "callee": {
                                    "type": "MemberExpression",
                                    "start": 4471,
                                    "end": 4483,
                                    "loc": {
                                      "start": {
                                        "line": 110,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 110,
                                        "column": 24
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 4471,
                                      "end": 4476,
                                      "loc": {
                                        "start": {
                                          "line": 110,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 110,
                                          "column": 17
                                        }
                                      },
                                      "name": "Tween",
                                      "leadingComments": null
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 4477,
                                      "end": 4483,
                                      "loc": {
                                        "start": {
                                          "line": 110,
                                          "column": 18
                                        },
                                        "end": {
                                          "line": 110,
                                          "column": 24
                                        }
                                      },
                                      "name": "update"
                                    },
                                    "computed": false,
                                    "leadingComments": null
                                  },
                                  "arguments": [
                                    {
                                      "type": "Identifier",
                                      "start": 4484,
                                      "end": 4488,
                                      "loc": {
                                        "start": {
                                          "line": 110,
                                          "column": 25
                                        },
                                        "end": {
                                          "line": 110,
                                          "column": 29
                                        }
                                      },
                                      "name": "time"
                                    },
                                    {
                                      "type": "Identifier",
                                      "start": 4490,
                                      "end": 4495,
                                      "loc": {
                                        "start": {
                                          "line": 110,
                                          "column": 31
                                        },
                                        "end": {
                                          "line": 110,
                                          "column": 36
                                        }
                                      },
                                      "name": "scope"
                                    }
                                  ],
                                  "leadingComments": null
                                },
                                "leadingComments": [
                                  {
                                    "type": "CommentLine",
                                    "value": " Update animations",
                                    "start": 4437,
                                    "end": 4457,
                                    "loc": {
                                      "start": {
                                        "line": 109,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 109,
                                        "column": 32
                                      }
                                    },
                                    "range": [
                                      4437,
                                      4457
                                    ]
                                  }
                                ],
                                "trailingComments": [
                                  {
                                    "type": "CommentLine",
                                    "value": " Pass 2: measure view changes, stamp out old space",
                                    "start": 4513,
                                    "end": 4565,
                                    "loc": {
                                      "start": {
                                        "line": 112,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 112,
                                        "column": 64
                                      }
                                    },
                                    "range": [
                                      4513,
                                      4565
                                    ]
                                  }
                                ]
                              },
                              {
                                "type": "VariableDeclaration",
                                "start": 4579,
                                "end": 4606,
                                "loc": {
                                  "start": {
                                    "line": 113,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 113,
                                    "column": 39
                                  }
                                },
                                "declarations": [
                                  {
                                    "type": "VariableDeclarator",
                                    "start": 4583,
                                    "end": 4605,
                                    "loc": {
                                      "start": {
                                        "line": 113,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 113,
                                        "column": 38
                                      }
                                    },
                                    "id": {
                                      "type": "Identifier",
                                      "start": 4583,
                                      "end": 4598,
                                      "loc": {
                                        "start": {
                                          "line": 113,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 113,
                                          "column": 31
                                        }
                                      },
                                      "name": "revokeDirtyFlag",
                                      "leadingComments": null
                                    },
                                    "init": {
                                      "type": "Literal",
                                      "start": 4601,
                                      "end": 4605,
                                      "loc": {
                                        "start": {
                                          "line": 113,
                                          "column": 34
                                        },
                                        "end": {
                                          "line": 113,
                                          "column": 38
                                        }
                                      },
                                      "value": true,
                                      "rawValue": true,
                                      "raw": "true"
                                    },
                                    "leadingComments": null
                                  }
                                ],
                                "kind": "let",
                                "leadingComments": [
                                  {
                                    "type": "CommentLine",
                                    "value": " Pass 2: measure view changes, stamp out old space",
                                    "start": 4513,
                                    "end": 4565,
                                    "loc": {
                                      "start": {
                                        "line": 112,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 112,
                                        "column": 64
                                      }
                                    },
                                    "range": [
                                      4513,
                                      4565
                                    ]
                                  }
                                ]
                              },
                              {
                                "type": "ForOfStatement",
                                "start": 4620,
                                "end": 4820,
                                "loc": {
                                  "start": {
                                    "line": 114,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 117,
                                    "column": 13
                                  }
                                },
                                "left": {
                                  "type": "VariableDeclaration",
                                  "start": 4625,
                                  "end": 4633,
                                  "loc": {
                                    "start": {
                                      "line": 114,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 114,
                                      "column": 25
                                    }
                                  },
                                  "declarations": [
                                    {
                                      "type": "VariableDeclarator",
                                      "start": 4629,
                                      "end": 4633,
                                      "loc": {
                                        "start": {
                                          "line": 114,
                                          "column": 21
                                        },
                                        "end": {
                                          "line": 114,
                                          "column": 25
                                        }
                                      },
                                      "id": {
                                        "type": "Identifier",
                                        "start": 4629,
                                        "end": 4633,
                                        "loc": {
                                          "start": {
                                            "line": 114,
                                            "column": 21
                                          },
                                          "end": {
                                            "line": 114,
                                            "column": 25
                                          }
                                        },
                                        "name": "view"
                                      },
                                      "init": null
                                    }
                                  ],
                                  "kind": "let"
                                },
                                "right": {
                                  "type": "MemberExpression",
                                  "start": 4637,
                                  "end": 4655,
                                  "loc": {
                                    "start": {
                                      "line": 114,
                                      "column": 29
                                    },
                                    "end": {
                                      "line": 114,
                                      "column": 47
                                    }
                                  },
                                  "object": {
                                    "type": "MemberExpression",
                                    "start": 4637,
                                    "end": 4649,
                                    "loc": {
                                      "start": {
                                        "line": 114,
                                        "column": 29
                                      },
                                      "end": {
                                        "line": 114,
                                        "column": 41
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 4637,
                                      "end": 4642,
                                      "loc": {
                                        "start": {
                                          "line": 114,
                                          "column": 29
                                        },
                                        "end": {
                                          "line": 114,
                                          "column": 34
                                        }
                                      },
                                      "name": "scope"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 4643,
                                      "end": 4649,
                                      "loc": {
                                        "start": {
                                          "line": 114,
                                          "column": 35
                                        },
                                        "end": {
                                          "line": 114,
                                          "column": 41
                                        }
                                      },
                                      "name": "canvas"
                                    },
                                    "computed": false
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 4650,
                                    "end": 4655,
                                    "loc": {
                                      "start": {
                                        "line": 114,
                                        "column": 42
                                      },
                                      "end": {
                                        "line": 114,
                                        "column": 47
                                      }
                                    },
                                    "name": "views"
                                  },
                                  "computed": false
                                },
                                "body": {
                                  "type": "BlockStatement",
                                  "start": 4657,
                                  "end": 4820,
                                  "loc": {
                                    "start": {
                                      "line": 114,
                                      "column": 49
                                    },
                                    "end": {
                                      "line": 117,
                                      "column": 13
                                    }
                                  },
                                  "body": [
                                    {
                                      "type": "IfStatement",
                                      "start": 4759,
                                      "end": 4805,
                                      "loc": {
                                        "start": {
                                          "line": 116,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 116,
                                          "column": 62
                                        }
                                      },
                                      "test": {
                                        "type": "CallExpression",
                                        "start": 4763,
                                        "end": 4779,
                                        "loc": {
                                          "start": {
                                            "line": 116,
                                            "column": 20
                                          },
                                          "end": {
                                            "line": 116,
                                            "column": 36
                                          }
                                        },
                                        "callee": {
                                          "type": "MemberExpression",
                                          "start": 4763,
                                          "end": 4773,
                                          "loc": {
                                            "start": {
                                              "line": 116,
                                              "column": 20
                                            },
                                            "end": {
                                              "line": 116,
                                              "column": 30
                                            }
                                          },
                                          "object": {
                                            "type": "Identifier",
                                            "start": 4763,
                                            "end": 4767,
                                            "loc": {
                                              "start": {
                                                "line": 116,
                                                "column": 20
                                              },
                                              "end": {
                                                "line": 116,
                                                "column": 24
                                              }
                                            },
                                            "name": "view",
                                            "leadingComments": null
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "start": 4768,
                                            "end": 4773,
                                            "loc": {
                                              "start": {
                                                "line": 116,
                                                "column": 25
                                              },
                                              "end": {
                                                "line": 116,
                                                "column": 30
                                              }
                                            },
                                            "name": "clear"
                                          },
                                          "computed": false,
                                          "leadingComments": null
                                        },
                                        "arguments": [
                                          {
                                            "type": "Identifier",
                                            "start": 4774,
                                            "end": 4778,
                                            "loc": {
                                              "start": {
                                                "line": 116,
                                                "column": 31
                                              },
                                              "end": {
                                                "line": 116,
                                                "column": 35
                                              }
                                            },
                                            "name": "time"
                                          }
                                        ],
                                        "leadingComments": null
                                      },
                                      "consequent": {
                                        "type": "ExpressionStatement",
                                        "start": 4781,
                                        "end": 4805,
                                        "loc": {
                                          "start": {
                                            "line": 116,
                                            "column": 38
                                          },
                                          "end": {
                                            "line": 116,
                                            "column": 62
                                          }
                                        },
                                        "expression": {
                                          "type": "AssignmentExpression",
                                          "start": 4781,
                                          "end": 4804,
                                          "loc": {
                                            "start": {
                                              "line": 116,
                                              "column": 38
                                            },
                                            "end": {
                                              "line": 116,
                                              "column": 61
                                            }
                                          },
                                          "operator": "=",
                                          "left": {
                                            "type": "Identifier",
                                            "start": 4781,
                                            "end": 4796,
                                            "loc": {
                                              "start": {
                                                "line": 116,
                                                "column": 38
                                              },
                                              "end": {
                                                "line": 116,
                                                "column": 53
                                              }
                                            },
                                            "name": "revokeDirtyFlag"
                                          },
                                          "right": {
                                            "type": "Literal",
                                            "start": 4799,
                                            "end": 4804,
                                            "loc": {
                                              "start": {
                                                "line": 116,
                                                "column": 56
                                              },
                                              "end": {
                                                "line": 116,
                                                "column": 61
                                              }
                                            },
                                            "value": false,
                                            "rawValue": false,
                                            "raw": "false"
                                          }
                                        }
                                      },
                                      "alternate": null,
                                      "leadingComments": [
                                        {
                                          "type": "CommentLine",
                                          "value": " If any view has measured changes, the canvas will remain dirty",
                                          "start": 4676,
                                          "end": 4741,
                                          "loc": {
                                            "start": {
                                              "line": 115,
                                              "column": 16
                                            },
                                            "end": {
                                              "line": 115,
                                              "column": 81
                                            }
                                          },
                                          "range": [
                                            4676,
                                            4741
                                          ]
                                        }
                                      ]
                                    }
                                  ],
                                  "trailingComments": null
                                },
                                "trailingComments": [
                                  {
                                    "type": "CommentLine",
                                    "value": " Pass 3: render view content",
                                    "start": 4836,
                                    "end": 4866,
                                    "loc": {
                                      "start": {
                                        "line": 119,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 119,
                                        "column": 42
                                      }
                                    },
                                    "range": [
                                      4836,
                                      4866
                                    ]
                                  }
                                ]
                              },
                              {
                                "type": "ForOfStatement",
                                "start": 4880,
                                "end": 4952,
                                "loc": {
                                  "start": {
                                    "line": 120,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 121,
                                    "column": 34
                                  }
                                },
                                "left": {
                                  "type": "VariableDeclaration",
                                  "start": 4885,
                                  "end": 4893,
                                  "loc": {
                                    "start": {
                                      "line": 120,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 120,
                                      "column": 25
                                    }
                                  },
                                  "declarations": [
                                    {
                                      "type": "VariableDeclarator",
                                      "start": 4889,
                                      "end": 4893,
                                      "loc": {
                                        "start": {
                                          "line": 120,
                                          "column": 21
                                        },
                                        "end": {
                                          "line": 120,
                                          "column": 25
                                        }
                                      },
                                      "id": {
                                        "type": "Identifier",
                                        "start": 4889,
                                        "end": 4893,
                                        "loc": {
                                          "start": {
                                            "line": 120,
                                            "column": 21
                                          },
                                          "end": {
                                            "line": 120,
                                            "column": 25
                                          }
                                        },
                                        "name": "view",
                                        "leadingComments": null
                                      },
                                      "init": null,
                                      "leadingComments": null
                                    }
                                  ],
                                  "kind": "let",
                                  "leadingComments": null
                                },
                                "right": {
                                  "type": "MemberExpression",
                                  "start": 4897,
                                  "end": 4915,
                                  "loc": {
                                    "start": {
                                      "line": 120,
                                      "column": 29
                                    },
                                    "end": {
                                      "line": 120,
                                      "column": 47
                                    }
                                  },
                                  "object": {
                                    "type": "MemberExpression",
                                    "start": 4897,
                                    "end": 4909,
                                    "loc": {
                                      "start": {
                                        "line": 120,
                                        "column": 29
                                      },
                                      "end": {
                                        "line": 120,
                                        "column": 41
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 4897,
                                      "end": 4902,
                                      "loc": {
                                        "start": {
                                          "line": 120,
                                          "column": 29
                                        },
                                        "end": {
                                          "line": 120,
                                          "column": 34
                                        }
                                      },
                                      "name": "scope"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 4903,
                                      "end": 4909,
                                      "loc": {
                                        "start": {
                                          "line": 120,
                                          "column": 35
                                        },
                                        "end": {
                                          "line": 120,
                                          "column": 41
                                        }
                                      },
                                      "name": "canvas"
                                    },
                                    "computed": false
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 4910,
                                    "end": 4915,
                                    "loc": {
                                      "start": {
                                        "line": 120,
                                        "column": 42
                                      },
                                      "end": {
                                        "line": 120,
                                        "column": 47
                                      }
                                    },
                                    "name": "views"
                                  },
                                  "computed": false
                                },
                                "body": {
                                  "type": "ExpressionStatement",
                                  "start": 4934,
                                  "end": 4952,
                                  "loc": {
                                    "start": {
                                      "line": 121,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 121,
                                      "column": 34
                                    }
                                  },
                                  "expression": {
                                    "type": "CallExpression",
                                    "start": 4934,
                                    "end": 4951,
                                    "loc": {
                                      "start": {
                                        "line": 121,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 121,
                                        "column": 33
                                      }
                                    },
                                    "callee": {
                                      "type": "MemberExpression",
                                      "start": 4934,
                                      "end": 4945,
                                      "loc": {
                                        "start": {
                                          "line": 121,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 121,
                                          "column": 27
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 4934,
                                        "end": 4938,
                                        "loc": {
                                          "start": {
                                            "line": 121,
                                            "column": 16
                                          },
                                          "end": {
                                            "line": 121,
                                            "column": 20
                                          }
                                        },
                                        "name": "view"
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 4939,
                                        "end": 4945,
                                        "loc": {
                                          "start": {
                                            "line": 121,
                                            "column": 21
                                          },
                                          "end": {
                                            "line": 121,
                                            "column": 27
                                          }
                                        },
                                        "name": "render"
                                      },
                                      "computed": false
                                    },
                                    "arguments": [
                                      {
                                        "type": "Identifier",
                                        "start": 4946,
                                        "end": 4950,
                                        "loc": {
                                          "start": {
                                            "line": 121,
                                            "column": 28
                                          },
                                          "end": {
                                            "line": 121,
                                            "column": 32
                                          }
                                        },
                                        "name": "time"
                                      }
                                    ]
                                  },
                                  "trailingComments": null
                                },
                                "leadingComments": [
                                  {
                                    "type": "CommentLine",
                                    "value": " Pass 3: render view content",
                                    "start": 4836,
                                    "end": 4866,
                                    "loc": {
                                      "start": {
                                        "line": 119,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 119,
                                        "column": 42
                                      }
                                    },
                                    "range": [
                                      4836,
                                      4866
                                    ]
                                  }
                                ],
                                "trailingComments": [
                                  {
                                    "type": "CommentLine",
                                    "value": " If nothing has changed in size or position the canvas is clean",
                                    "start": 4968,
                                    "end": 5033,
                                    "loc": {
                                      "start": {
                                        "line": 123,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 123,
                                        "column": 77
                                      }
                                    },
                                    "range": [
                                      4968,
                                      5033
                                    ]
                                  }
                                ]
                              },
                              {
                                "type": "IfStatement",
                                "start": 5047,
                                "end": 5105,
                                "loc": {
                                  "start": {
                                    "line": 124,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 125,
                                    "column": 36
                                  }
                                },
                                "test": {
                                  "type": "Identifier",
                                  "start": 5051,
                                  "end": 5066,
                                  "loc": {
                                    "start": {
                                      "line": 124,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 124,
                                      "column": 31
                                    }
                                  },
                                  "name": "revokeDirtyFlag",
                                  "leadingComments": null
                                },
                                "consequent": {
                                  "type": "ExpressionStatement",
                                  "start": 5085,
                                  "end": 5105,
                                  "loc": {
                                    "start": {
                                      "line": 125,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 125,
                                      "column": 36
                                    }
                                  },
                                  "expression": {
                                    "type": "AssignmentExpression",
                                    "start": 5085,
                                    "end": 5104,
                                    "loc": {
                                      "start": {
                                        "line": 125,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 125,
                                        "column": 35
                                      }
                                    },
                                    "operator": "=",
                                    "left": {
                                      "type": "MemberExpression",
                                      "start": 5085,
                                      "end": 5096,
                                      "loc": {
                                        "start": {
                                          "line": 125,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 125,
                                          "column": 27
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 5085,
                                        "end": 5090,
                                        "loc": {
                                          "start": {
                                            "line": 125,
                                            "column": 16
                                          },
                                          "end": {
                                            "line": 125,
                                            "column": 21
                                          }
                                        },
                                        "name": "scope"
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 5091,
                                        "end": 5096,
                                        "loc": {
                                          "start": {
                                            "line": 125,
                                            "column": 22
                                          },
                                          "end": {
                                            "line": 125,
                                            "column": 27
                                          }
                                        },
                                        "name": "dirty"
                                      },
                                      "computed": false
                                    },
                                    "right": {
                                      "type": "Literal",
                                      "start": 5099,
                                      "end": 5104,
                                      "loc": {
                                        "start": {
                                          "line": 125,
                                          "column": 30
                                        },
                                        "end": {
                                          "line": 125,
                                          "column": 35
                                        }
                                      },
                                      "value": false,
                                      "rawValue": false,
                                      "raw": "false"
                                    }
                                  }
                                },
                                "alternate": null,
                                "leadingComments": [
                                  {
                                    "type": "CommentLine",
                                    "value": " If nothing has changed in size or position the canvas is clean",
                                    "start": 4968,
                                    "end": 5033,
                                    "loc": {
                                      "start": {
                                        "line": 123,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 123,
                                        "column": 77
                                      }
                                    },
                                    "range": [
                                      4968,
                                      5033
                                    ]
                                  }
                                ]
                              }
                            ],
                            "trailingComments": null
                          },
                          "trailingComments": null
                        },
                        "trailingComments": null
                      },
                      "trailingComments": [
                        {
                          "type": "CommentLine",
                          "value": " Start render loop",
                          "start": 5128,
                          "end": 5148,
                          "loc": {
                            "start": {
                              "line": 128,
                              "column": 8
                            },
                            "end": {
                              "line": 128,
                              "column": 28
                            }
                          },
                          "range": [
                            5128,
                            5148
                          ]
                        }
                      ]
                    },
                    {
                      "type": "IfStatement",
                      "start": 5158,
                      "end": 5214,
                      "loc": {
                        "start": {
                          "line": 129,
                          "column": 8
                        },
                        "end": {
                          "line": 130,
                          "column": 25
                        }
                      },
                      "test": {
                        "type": "MemberExpression",
                        "start": 5162,
                        "end": 5186,
                        "loc": {
                          "start": {
                            "line": 129,
                            "column": 12
                          },
                          "end": {
                            "line": 129,
                            "column": 36
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 5162,
                          "end": 5169,
                          "loc": {
                            "start": {
                              "line": 129,
                              "column": 12
                            },
                            "end": {
                              "line": 129,
                              "column": 19
                            }
                          },
                          "name": "options",
                          "leadingComments": null
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 5170,
                          "end": 5186,
                          "loc": {
                            "start": {
                              "line": 129,
                              "column": 20
                            },
                            "end": {
                              "line": 129,
                              "column": 36
                            }
                          },
                          "name": "startImmediately"
                        },
                        "computed": false,
                        "leadingComments": null
                      },
                      "consequent": {
                        "type": "ExpressionStatement",
                        "start": 5201,
                        "end": 5214,
                        "loc": {
                          "start": {
                            "line": 130,
                            "column": 12
                          },
                          "end": {
                            "line": 130,
                            "column": 25
                          }
                        },
                        "expression": {
                          "type": "CallExpression",
                          "start": 5201,
                          "end": 5213,
                          "loc": {
                            "start": {
                              "line": 130,
                              "column": 12
                            },
                            "end": {
                              "line": 130,
                              "column": 24
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 5201,
                            "end": 5211,
                            "loc": {
                              "start": {
                                "line": 130,
                                "column": 12
                              },
                              "end": {
                                "line": 130,
                                "column": 22
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 5201,
                              "end": 5205,
                              "loc": {
                                "start": {
                                  "line": 130,
                                  "column": 12
                                },
                                "end": {
                                  "line": 130,
                                  "column": 16
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 5206,
                              "end": 5211,
                              "loc": {
                                "start": {
                                  "line": 130,
                                  "column": 17
                                },
                                "end": {
                                  "line": 130,
                                  "column": 22
                                }
                              },
                              "name": "start"
                            },
                            "computed": false
                          },
                          "arguments": []
                        }
                      },
                      "alternate": null,
                      "leadingComments": [
                        {
                          "type": "CommentLine",
                          "value": " Start render loop",
                          "start": 5128,
                          "end": 5148,
                          "loc": {
                            "start": {
                              "line": 128,
                              "column": 8
                            },
                            "end": {
                              "line": 128,
                              "column": 28
                            }
                          },
                          "range": [
                            5128,
                            5148
                          ]
                        }
                      ]
                    }
                  ]
                }
              }
            },
            {
              "type": "MethodDefinition",
              "start": 5229,
              "end": 5442,
              "loc": {
                "start": {
                  "line": 133,
                  "column": 4
                },
                "end": {
                  "line": 139,
                  "column": 5
                }
              },
              "computed": false,
              "key": {
                "type": "Identifier",
                "start": 5229,
                "end": 5236,
                "loc": {
                  "start": {
                    "line": 133,
                    "column": 4
                  },
                  "end": {
                    "line": 133,
                    "column": 11
                  }
                },
                "name": "destroy"
              },
              "static": false,
              "kind": "method",
              "value": {
                "type": "FunctionExpression",
                "start": 5236,
                "end": 5442,
                "loc": {
                  "start": {
                    "line": 133,
                    "column": 11
                  },
                  "end": {
                    "line": 139,
                    "column": 5
                  }
                },
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "start": 5239,
                  "end": 5442,
                  "loc": {
                    "start": {
                      "line": 133,
                      "column": 14
                    },
                    "end": {
                      "line": 139,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "start": 5250,
                      "end": 5272,
                      "loc": {
                        "start": {
                          "line": 134,
                          "column": 8
                        },
                        "end": {
                          "line": 134,
                          "column": 30
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 5250,
                        "end": 5271,
                        "loc": {
                          "start": {
                            "line": 134,
                            "column": 8
                          },
                          "end": {
                            "line": 134,
                            "column": 29
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 5250,
                          "end": 5269,
                          "loc": {
                            "start": {
                              "line": 134,
                              "column": 8
                            },
                            "end": {
                              "line": 134,
                              "column": 27
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 5250,
                            "end": 5262,
                            "loc": {
                              "start": {
                                "line": 134,
                                "column": 8
                              },
                              "end": {
                                "line": 134,
                                "column": 20
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 5250,
                              "end": 5254,
                              "loc": {
                                "start": {
                                  "line": 134,
                                  "column": 8
                                },
                                "end": {
                                  "line": 134,
                                  "column": 12
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 5255,
                              "end": 5262,
                              "loc": {
                                "start": {
                                  "line": 134,
                                  "column": 13
                                },
                                "end": {
                                  "line": 134,
                                  "column": 20
                                }
                              },
                              "name": "context"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 5263,
                            "end": 5269,
                            "loc": {
                              "start": {
                                "line": 134,
                                "column": 21
                              },
                              "end": {
                                "line": 134,
                                "column": 27
                              }
                            },
                            "name": "remove"
                          },
                          "computed": false
                        },
                        "arguments": []
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 5282,
                      "end": 5310,
                      "loc": {
                        "start": {
                          "line": 135,
                          "column": 8
                        },
                        "end": {
                          "line": 135,
                          "column": 36
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 5282,
                        "end": 5309,
                        "loc": {
                          "start": {
                            "line": 135,
                            "column": 8
                          },
                          "end": {
                            "line": 135,
                            "column": 35
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 5282,
                          "end": 5293,
                          "loc": {
                            "start": {
                              "line": 135,
                              "column": 8
                            },
                            "end": {
                              "line": 135,
                              "column": 19
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 5282,
                            "end": 5286,
                            "loc": {
                              "start": {
                                "line": 135,
                                "column": 8
                              },
                              "end": {
                                "line": 135,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 5287,
                            "end": 5293,
                            "loc": {
                              "start": {
                                "line": 135,
                                "column": 13
                              },
                              "end": {
                                "line": 135,
                                "column": 19
                              }
                            },
                            "name": "render"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "FunctionExpression",
                          "start": 5296,
                          "end": 5309,
                          "loc": {
                            "start": {
                              "line": 135,
                              "column": 22
                            },
                            "end": {
                              "line": 135,
                              "column": 35
                            }
                          },
                          "id": null,
                          "generator": false,
                          "expression": false,
                          "async": false,
                          "params": [],
                          "body": {
                            "type": "BlockStatement",
                            "start": 5307,
                            "end": 5309,
                            "loc": {
                              "start": {
                                "line": 135,
                                "column": 33
                              },
                              "end": {
                                "line": 135,
                                "column": 35
                              }
                            },
                            "body": []
                          }
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 5320,
                      "end": 5377,
                      "loc": {
                        "start": {
                          "line": 136,
                          "column": 8
                        },
                        "end": {
                          "line": 136,
                          "column": 65
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 5320,
                        "end": 5376,
                        "loc": {
                          "start": {
                            "line": 136,
                            "column": 8
                          },
                          "end": {
                            "line": 136,
                            "column": 64
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 5320,
                          "end": 5346,
                          "loc": {
                            "start": {
                              "line": 136,
                              "column": 8
                            },
                            "end": {
                              "line": 136,
                              "column": 34
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 5320,
                            "end": 5326,
                            "loc": {
                              "start": {
                                "line": 136,
                                "column": 8
                              },
                              "end": {
                                "line": 136,
                                "column": 14
                              }
                            },
                            "name": "window"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 5327,
                            "end": 5346,
                            "loc": {
                              "start": {
                                "line": 136,
                                "column": 15
                              },
                              "end": {
                                "line": 136,
                                "column": 34
                              }
                            },
                            "name": "removeEventListener"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Literal",
                            "start": 5347,
                            "end": 5355,
                            "loc": {
                              "start": {
                                "line": 136,
                                "column": 35
                              },
                              "end": {
                                "line": 136,
                                "column": 43
                              }
                            },
                            "value": "resize",
                            "rawValue": "resize",
                            "raw": "'resize'"
                          },
                          {
                            "type": "MemberExpression",
                            "start": 5357,
                            "end": 5375,
                            "loc": {
                              "start": {
                                "line": 136,
                                "column": 45
                              },
                              "end": {
                                "line": 136,
                                "column": 63
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 5357,
                              "end": 5361,
                              "loc": {
                                "start": {
                                  "line": 136,
                                  "column": 45
                                },
                                "end": {
                                  "line": 136,
                                  "column": 49
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 5362,
                              "end": 5375,
                              "loc": {
                                "start": {
                                  "line": 136,
                                  "column": 50
                                },
                                "end": {
                                  "line": 136,
                                  "column": 63
                                }
                              },
                              "name": "resizeHandler"
                            },
                            "computed": false
                          }
                        ]
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 5387,
                      "end": 5405,
                      "loc": {
                        "start": {
                          "line": 137,
                          "column": 8
                        },
                        "end": {
                          "line": 137,
                          "column": 26
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 5387,
                        "end": 5404,
                        "loc": {
                          "start": {
                            "line": 137,
                            "column": 8
                          },
                          "end": {
                            "line": 137,
                            "column": 25
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 5387,
                          "end": 5402,
                          "loc": {
                            "start": {
                              "line": 137,
                              "column": 8
                            },
                            "end": {
                              "line": 137,
                              "column": 23
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 5387,
                            "end": 5394,
                            "loc": {
                              "start": {
                                "line": 137,
                                "column": 8
                              },
                              "end": {
                                "line": 137,
                                "column": 15
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 5387,
                              "end": 5391,
                              "loc": {
                                "start": {
                                  "line": 137,
                                  "column": 8
                                },
                                "end": {
                                  "line": 137,
                                  "column": 12
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 5392,
                              "end": 5394,
                              "loc": {
                                "start": {
                                  "line": 137,
                                  "column": 13
                                },
                                "end": {
                                  "line": 137,
                                  "column": 15
                                }
                              },
                              "name": "gl"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 5395,
                            "end": 5402,
                            "loc": {
                              "start": {
                                "line": 137,
                                "column": 16
                              },
                              "end": {
                                "line": 137,
                                "column": 23
                              }
                            },
                            "name": "dispose"
                          },
                          "computed": false
                        },
                        "arguments": []
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 5415,
                      "end": 5435,
                      "loc": {
                        "start": {
                          "line": 138,
                          "column": 8
                        },
                        "end": {
                          "line": 138,
                          "column": 28
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 5415,
                        "end": 5434,
                        "loc": {
                          "start": {
                            "line": 138,
                            "column": 8
                          },
                          "end": {
                            "line": 138,
                            "column": 27
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 5415,
                          "end": 5422,
                          "loc": {
                            "start": {
                              "line": 138,
                              "column": 8
                            },
                            "end": {
                              "line": 138,
                              "column": 15
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 5415,
                            "end": 5419,
                            "loc": {
                              "start": {
                                "line": 138,
                                "column": 8
                              },
                              "end": {
                                "line": 138,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 5420,
                            "end": 5422,
                            "loc": {
                              "start": {
                                "line": 138,
                                "column": 13
                              },
                              "end": {
                                "line": 138,
                                "column": 15
                              }
                            },
                            "name": "gl"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "Identifier",
                          "start": 5425,
                          "end": 5434,
                          "loc": {
                            "start": {
                              "line": 138,
                              "column": 18
                            },
                            "end": {
                              "line": 138,
                              "column": 27
                            }
                          },
                          "name": "undefined"
                        }
                      }
                    }
                  ]
                }
              }
            },
            {
              "type": "MethodDefinition",
              "start": 5450,
              "end": 5507,
              "loc": {
                "start": {
                  "line": 141,
                  "column": 4
                },
                "end": {
                  "line": 143,
                  "column": 5
                }
              },
              "computed": false,
              "key": {
                "type": "Identifier",
                "start": 5450,
                "end": 5455,
                "loc": {
                  "start": {
                    "line": 141,
                    "column": 4
                  },
                  "end": {
                    "line": 141,
                    "column": 9
                  }
                },
                "name": "start"
              },
              "static": false,
              "kind": "method",
              "value": {
                "type": "FunctionExpression",
                "start": 5455,
                "end": 5507,
                "loc": {
                  "start": {
                    "line": 141,
                    "column": 9
                  },
                  "end": {
                    "line": 143,
                    "column": 5
                  }
                },
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "start": 5458,
                  "end": 5507,
                  "loc": {
                    "start": {
                      "line": 141,
                      "column": 12
                    },
                    "end": {
                      "line": 143,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "start": 5469,
                      "end": 5500,
                      "loc": {
                        "start": {
                          "line": 142,
                          "column": 8
                        },
                        "end": {
                          "line": 142,
                          "column": 39
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 5469,
                        "end": 5499,
                        "loc": {
                          "start": {
                            "line": 142,
                            "column": 8
                          },
                          "end": {
                            "line": 142,
                            "column": 38
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 5469,
                          "end": 5480,
                          "loc": {
                            "start": {
                              "line": 142,
                              "column": 8
                            },
                            "end": {
                              "line": 142,
                              "column": 19
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 5469,
                            "end": 5473,
                            "loc": {
                              "start": {
                                "line": 142,
                                "column": 8
                              },
                              "end": {
                                "line": 142,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 5474,
                            "end": 5480,
                            "loc": {
                              "start": {
                                "line": 142,
                                "column": 13
                              },
                              "end": {
                                "line": 142,
                                "column": 19
                              }
                            },
                            "name": "render"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "CallExpression",
                            "start": 5481,
                            "end": 5498,
                            "loc": {
                              "start": {
                                "line": 142,
                                "column": 20
                              },
                              "end": {
                                "line": 142,
                                "column": 37
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 5481,
                              "end": 5496,
                              "loc": {
                                "start": {
                                  "line": 142,
                                  "column": 20
                                },
                                "end": {
                                  "line": 142,
                                  "column": 35
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 5481,
                                "end": 5492,
                                "loc": {
                                  "start": {
                                    "line": 142,
                                    "column": 20
                                  },
                                  "end": {
                                    "line": 142,
                                    "column": 31
                                  }
                                },
                                "name": "performance"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 5493,
                                "end": 5496,
                                "loc": {
                                  "start": {
                                    "line": 142,
                                    "column": 32
                                  },
                                  "end": {
                                    "line": 142,
                                    "column": 35
                                  }
                                },
                                "name": "now"
                              },
                              "computed": false
                            },
                            "arguments": []
                          }
                        ]
                      }
                    }
                  ]
                }
              }
            },
            {
              "type": "MethodDefinition",
              "start": 5515,
              "end": 5772,
              "loc": {
                "start": {
                  "line": 145,
                  "column": 4
                },
                "end": {
                  "line": 150,
                  "column": 5
                }
              },
              "computed": false,
              "key": {
                "type": "Identifier",
                "start": 5515,
                "end": 5521,
                "loc": {
                  "start": {
                    "line": 145,
                    "column": 4
                  },
                  "end": {
                    "line": 145,
                    "column": 10
                  }
                },
                "name": "resize"
              },
              "static": false,
              "kind": "method",
              "value": {
                "type": "FunctionExpression",
                "start": 5521,
                "end": 5772,
                "loc": {
                  "start": {
                    "line": 145,
                    "column": 10
                  },
                  "end": {
                    "line": 150,
                    "column": 5
                  }
                },
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "start": 5524,
                  "end": 5772,
                  "loc": {
                    "start": {
                      "line": 145,
                      "column": 13
                    },
                    "end": {
                      "line": 150,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "start": 5535,
                      "end": 5586,
                      "loc": {
                        "start": {
                          "line": 146,
                          "column": 8
                        },
                        "end": {
                          "line": 146,
                          "column": 59
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 5535,
                        "end": 5585,
                        "loc": {
                          "start": {
                            "line": 146,
                            "column": 8
                          },
                          "end": {
                            "line": 146,
                            "column": 58
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 5535,
                          "end": 5546,
                          "loc": {
                            "start": {
                              "line": 146,
                              "column": 8
                            },
                            "end": {
                              "line": 146,
                              "column": 19
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 5535,
                            "end": 5539,
                            "loc": {
                              "start": {
                                "line": 146,
                                "column": 8
                              },
                              "end": {
                                "line": 146,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 5540,
                            "end": 5546,
                            "loc": {
                              "start": {
                                "line": 146,
                                "column": 13
                              },
                              "end": {
                                "line": 146,
                                "column": 19
                              }
                            },
                            "name": "offset"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "CallExpression",
                          "start": 5549,
                          "end": 5585,
                          "loc": {
                            "start": {
                              "line": 146,
                              "column": 22
                            },
                            "end": {
                              "line": 146,
                              "column": 58
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 5549,
                            "end": 5583,
                            "loc": {
                              "start": {
                                "line": 146,
                                "column": 22
                              },
                              "end": {
                                "line": 146,
                                "column": 56
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 5549,
                              "end": 5561,
                              "loc": {
                                "start": {
                                  "line": 146,
                                  "column": 22
                                },
                                "end": {
                                  "line": 146,
                                  "column": 34
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 5549,
                                "end": 5553,
                                "loc": {
                                  "start": {
                                    "line": 146,
                                    "column": 22
                                  },
                                  "end": {
                                    "line": 146,
                                    "column": 26
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 5554,
                                "end": 5561,
                                "loc": {
                                  "start": {
                                    "line": 146,
                                    "column": 27
                                  },
                                  "end": {
                                    "line": 146,
                                    "column": 34
                                  }
                                },
                                "name": "context"
                              },
                              "computed": false
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 5562,
                              "end": 5583,
                              "loc": {
                                "start": {
                                  "line": 146,
                                  "column": 35
                                },
                                "end": {
                                  "line": 146,
                                  "column": 56
                                }
                              },
                              "name": "getBoundingClientRect"
                            },
                            "computed": false
                          },
                          "arguments": []
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 5596,
                      "end": 5694,
                      "loc": {
                        "start": {
                          "line": 147,
                          "column": 8
                        },
                        "end": {
                          "line": 147,
                          "column": 106
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 5596,
                        "end": 5693,
                        "loc": {
                          "start": {
                            "line": 147,
                            "column": 8
                          },
                          "end": {
                            "line": 147,
                            "column": 105
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 5596,
                          "end": 5611,
                          "loc": {
                            "start": {
                              "line": 147,
                              "column": 8
                            },
                            "end": {
                              "line": 147,
                              "column": 23
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 5596,
                            "end": 5603,
                            "loc": {
                              "start": {
                                "line": 147,
                                "column": 8
                              },
                              "end": {
                                "line": 147,
                                "column": 15
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 5596,
                              "end": 5600,
                              "loc": {
                                "start": {
                                  "line": 147,
                                  "column": 8
                                },
                                "end": {
                                  "line": 147,
                                  "column": 12
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 5601,
                              "end": 5603,
                              "loc": {
                                "start": {
                                  "line": 147,
                                  "column": 13
                                },
                                "end": {
                                  "line": 147,
                                  "column": 15
                                }
                              },
                              "name": "gl"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 5604,
                            "end": 5611,
                            "loc": {
                              "start": {
                                "line": 147,
                                "column": 16
                              },
                              "end": {
                                "line": 147,
                                "column": 23
                              }
                            },
                            "name": "setSize"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "BinaryExpression",
                            "start": 5612,
                            "end": 5647,
                            "loc": {
                              "start": {
                                "line": 147,
                                "column": 24
                              },
                              "end": {
                                "line": 147,
                                "column": 59
                              }
                            },
                            "left": {
                              "type": "MemberExpression",
                              "start": 5612,
                              "end": 5629,
                              "loc": {
                                "start": {
                                  "line": 147,
                                  "column": 24
                                },
                                "end": {
                                  "line": 147,
                                  "column": 41
                                }
                              },
                              "object": {
                                "type": "MemberExpression",
                                "start": 5612,
                                "end": 5623,
                                "loc": {
                                  "start": {
                                    "line": 147,
                                    "column": 24
                                  },
                                  "end": {
                                    "line": 147,
                                    "column": 35
                                  }
                                },
                                "object": {
                                  "type": "ThisExpression",
                                  "start": 5612,
                                  "end": 5616,
                                  "loc": {
                                    "start": {
                                      "line": 147,
                                      "column": 24
                                    },
                                    "end": {
                                      "line": 147,
                                      "column": 28
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 5617,
                                  "end": 5623,
                                  "loc": {
                                    "start": {
                                      "line": 147,
                                      "column": 29
                                    },
                                    "end": {
                                      "line": 147,
                                      "column": 35
                                    }
                                  },
                                  "name": "offset"
                                },
                                "computed": false
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 5624,
                                "end": 5629,
                                "loc": {
                                  "start": {
                                    "line": 147,
                                    "column": 36
                                  },
                                  "end": {
                                    "line": 147,
                                    "column": 41
                                  }
                                },
                                "name": "width"
                              },
                              "computed": false
                            },
                            "operator": "*",
                            "right": {
                              "type": "MemberExpression",
                              "start": 5632,
                              "end": 5647,
                              "loc": {
                                "start": {
                                  "line": 147,
                                  "column": 44
                                },
                                "end": {
                                  "line": 147,
                                  "column": 59
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 5632,
                                "end": 5636,
                                "loc": {
                                  "start": {
                                    "line": 147,
                                    "column": 44
                                  },
                                  "end": {
                                    "line": 147,
                                    "column": 48
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 5637,
                                "end": 5647,
                                "loc": {
                                  "start": {
                                    "line": 147,
                                    "column": 49
                                  },
                                  "end": {
                                    "line": 147,
                                    "column": 59
                                  }
                                },
                                "name": "resolution"
                              },
                              "computed": false
                            }
                          },
                          {
                            "type": "BinaryExpression",
                            "start": 5649,
                            "end": 5685,
                            "loc": {
                              "start": {
                                "line": 147,
                                "column": 61
                              },
                              "end": {
                                "line": 147,
                                "column": 97
                              }
                            },
                            "left": {
                              "type": "MemberExpression",
                              "start": 5649,
                              "end": 5667,
                              "loc": {
                                "start": {
                                  "line": 147,
                                  "column": 61
                                },
                                "end": {
                                  "line": 147,
                                  "column": 79
                                }
                              },
                              "object": {
                                "type": "MemberExpression",
                                "start": 5649,
                                "end": 5660,
                                "loc": {
                                  "start": {
                                    "line": 147,
                                    "column": 61
                                  },
                                  "end": {
                                    "line": 147,
                                    "column": 72
                                  }
                                },
                                "object": {
                                  "type": "ThisExpression",
                                  "start": 5649,
                                  "end": 5653,
                                  "loc": {
                                    "start": {
                                      "line": 147,
                                      "column": 61
                                    },
                                    "end": {
                                      "line": 147,
                                      "column": 65
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 5654,
                                  "end": 5660,
                                  "loc": {
                                    "start": {
                                      "line": 147,
                                      "column": 66
                                    },
                                    "end": {
                                      "line": 147,
                                      "column": 72
                                    }
                                  },
                                  "name": "offset"
                                },
                                "computed": false
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 5661,
                                "end": 5667,
                                "loc": {
                                  "start": {
                                    "line": 147,
                                    "column": 73
                                  },
                                  "end": {
                                    "line": 147,
                                    "column": 79
                                  }
                                },
                                "name": "height"
                              },
                              "computed": false
                            },
                            "operator": "*",
                            "right": {
                              "type": "MemberExpression",
                              "start": 5670,
                              "end": 5685,
                              "loc": {
                                "start": {
                                  "line": 147,
                                  "column": 82
                                },
                                "end": {
                                  "line": 147,
                                  "column": 97
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 5670,
                                "end": 5674,
                                "loc": {
                                  "start": {
                                    "line": 147,
                                    "column": 82
                                  },
                                  "end": {
                                    "line": 147,
                                    "column": 86
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 5675,
                                "end": 5685,
                                "loc": {
                                  "start": {
                                    "line": 147,
                                    "column": 87
                                  },
                                  "end": {
                                    "line": 147,
                                    "column": 97
                                  }
                                },
                                "name": "resolution"
                              },
                              "computed": false
                            }
                          },
                          {
                            "type": "Literal",
                            "start": 5687,
                            "end": 5692,
                            "loc": {
                              "start": {
                                "line": 147,
                                "column": 99
                              },
                              "end": {
                                "line": 147,
                                "column": 104
                              }
                            },
                            "value": false,
                            "rawValue": false,
                            "raw": "false"
                          }
                        ]
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 5704,
                      "end": 5730,
                      "loc": {
                        "start": {
                          "line": 148,
                          "column": 8
                        },
                        "end": {
                          "line": 148,
                          "column": 34
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 5704,
                        "end": 5729,
                        "loc": {
                          "start": {
                            "line": 148,
                            "column": 8
                          },
                          "end": {
                            "line": 148,
                            "column": 33
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 5704,
                          "end": 5725,
                          "loc": {
                            "start": {
                              "line": 148,
                              "column": 8
                            },
                            "end": {
                              "line": 148,
                              "column": 29
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 5704,
                            "end": 5708,
                            "loc": {
                              "start": {
                                "line": 148,
                                "column": 8
                              },
                              "end": {
                                "line": 148,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 5709,
                            "end": 5725,
                            "loc": {
                              "start": {
                                "line": 148,
                                "column": 13
                              },
                              "end": {
                                "line": 148,
                                "column": 29
                              }
                            },
                            "name": "invalidateCanvas"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Literal",
                            "start": 5726,
                            "end": 5728,
                            "loc": {
                              "start": {
                                "line": 148,
                                "column": 30
                              },
                              "end": {
                                "line": 148,
                                "column": 32
                              }
                            },
                            "value": 30,
                            "rawValue": 30,
                            "raw": "30"
                          }
                        ]
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 5740,
                      "end": 5765,
                      "loc": {
                        "start": {
                          "line": 149,
                          "column": 8
                        },
                        "end": {
                          "line": 149,
                          "column": 33
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 5740,
                        "end": 5764,
                        "loc": {
                          "start": {
                            "line": 149,
                            "column": 8
                          },
                          "end": {
                            "line": 149,
                            "column": 32
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 5740,
                          "end": 5760,
                          "loc": {
                            "start": {
                              "line": 149,
                              "column": 8
                            },
                            "end": {
                              "line": 149,
                              "column": 28
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 5740,
                            "end": 5744,
                            "loc": {
                              "start": {
                                "line": 149,
                                "column": 8
                              },
                              "end": {
                                "line": 149,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 5745,
                            "end": 5760,
                            "loc": {
                              "start": {
                                "line": 149,
                                "column": 13
                              },
                              "end": {
                                "line": 149,
                                "column": 28
                              }
                            },
                            "name": "invalidateViews"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Literal",
                            "start": 5761,
                            "end": 5763,
                            "loc": {
                              "start": {
                                "line": 149,
                                "column": 29
                              },
                              "end": {
                                "line": 149,
                                "column": 31
                              }
                            },
                            "value": 30,
                            "rawValue": 30,
                            "raw": "30"
                          }
                        ]
                      }
                    }
                  ]
                }
              }
            },
            {
              "type": "MethodDefinition",
              "start": 5780,
              "end": 5941,
              "loc": {
                "start": {
                  "line": 152,
                  "column": 4
                },
                "end": {
                  "line": 156,
                  "column": 5
                }
              },
              "computed": false,
              "key": {
                "type": "Identifier",
                "start": 5780,
                "end": 5796,
                "loc": {
                  "start": {
                    "line": 152,
                    "column": 4
                  },
                  "end": {
                    "line": 152,
                    "column": 20
                  }
                },
                "name": "invalidateCanvas"
              },
              "static": false,
              "kind": "method",
              "value": {
                "type": "FunctionExpression",
                "start": 5796,
                "end": 5941,
                "loc": {
                  "start": {
                    "line": 152,
                    "column": 20
                  },
                  "end": {
                    "line": 156,
                    "column": 5
                  }
                },
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "AssignmentPattern",
                    "start": 5797,
                    "end": 5807,
                    "loc": {
                      "start": {
                        "line": 152,
                        "column": 21
                      },
                      "end": {
                        "line": 152,
                        "column": 31
                      }
                    },
                    "operator": "=",
                    "left": {
                      "type": "Identifier",
                      "start": 5797,
                      "end": 5803,
                      "loc": {
                        "start": {
                          "line": 152,
                          "column": 21
                        },
                        "end": {
                          "line": 152,
                          "column": 27
                        }
                      },
                      "name": "frames"
                    },
                    "right": {
                      "type": "Literal",
                      "start": 5806,
                      "end": 5807,
                      "loc": {
                        "start": {
                          "line": 152,
                          "column": 30
                        },
                        "end": {
                          "line": 152,
                          "column": 31
                        }
                      },
                      "value": 1,
                      "rawValue": 1,
                      "raw": "1"
                    }
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 5809,
                  "end": 5941,
                  "loc": {
                    "start": {
                      "line": 152,
                      "column": 33
                    },
                    "end": {
                      "line": 156,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "start": 5820,
                      "end": 5852,
                      "loc": {
                        "start": {
                          "line": 153,
                          "column": 8
                        },
                        "end": {
                          "line": 153,
                          "column": 40
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 5820,
                        "end": 5851,
                        "loc": {
                          "start": {
                            "line": 153,
                            "column": 8
                          },
                          "end": {
                            "line": 153,
                            "column": 39
                          }
                        },
                        "operator": "+=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 5820,
                          "end": 5841,
                          "loc": {
                            "start": {
                              "line": 153,
                              "column": 8
                            },
                            "end": {
                              "line": 153,
                              "column": 29
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 5820,
                            "end": 5824,
                            "loc": {
                              "start": {
                                "line": 153,
                                "column": 8
                              },
                              "end": {
                                "line": 153,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 5825,
                            "end": 5841,
                            "loc": {
                              "start": {
                                "line": 153,
                                "column": 13
                              },
                              "end": {
                                "line": 153,
                                "column": 29
                              }
                            },
                            "name": "invalidateFrames"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "Identifier",
                          "start": 5845,
                          "end": 5851,
                          "loc": {
                            "start": {
                              "line": 153,
                              "column": 33
                            },
                            "end": {
                              "line": 153,
                              "column": 39
                            }
                          },
                          "name": "frames"
                        }
                      }
                    },
                    {
                      "type": "IfStatement",
                      "start": 5862,
                      "end": 5934,
                      "loc": {
                        "start": {
                          "line": 154,
                          "column": 8
                        },
                        "end": {
                          "line": 155,
                          "column": 39
                        }
                      },
                      "test": {
                        "type": "BinaryExpression",
                        "start": 5866,
                        "end": 5892,
                        "loc": {
                          "start": {
                            "line": 154,
                            "column": 12
                          },
                          "end": {
                            "line": 154,
                            "column": 38
                          }
                        },
                        "left": {
                          "type": "MemberExpression",
                          "start": 5866,
                          "end": 5887,
                          "loc": {
                            "start": {
                              "line": 154,
                              "column": 12
                            },
                            "end": {
                              "line": 154,
                              "column": 33
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 5866,
                            "end": 5870,
                            "loc": {
                              "start": {
                                "line": 154,
                                "column": 12
                              },
                              "end": {
                                "line": 154,
                                "column": 16
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 5871,
                            "end": 5887,
                            "loc": {
                              "start": {
                                "line": 154,
                                "column": 17
                              },
                              "end": {
                                "line": 154,
                                "column": 33
                              }
                            },
                            "name": "invalidateFrames"
                          },
                          "computed": false
                        },
                        "operator": ">",
                        "right": {
                          "type": "Literal",
                          "start": 5890,
                          "end": 5892,
                          "loc": {
                            "start": {
                              "line": 154,
                              "column": 36
                            },
                            "end": {
                              "line": 154,
                              "column": 38
                            }
                          },
                          "value": 60,
                          "rawValue": 60,
                          "raw": "60"
                        }
                      },
                      "consequent": {
                        "type": "ExpressionStatement",
                        "start": 5907,
                        "end": 5934,
                        "loc": {
                          "start": {
                            "line": 155,
                            "column": 12
                          },
                          "end": {
                            "line": 155,
                            "column": 39
                          }
                        },
                        "expression": {
                          "type": "AssignmentExpression",
                          "start": 5907,
                          "end": 5933,
                          "loc": {
                            "start": {
                              "line": 155,
                              "column": 12
                            },
                            "end": {
                              "line": 155,
                              "column": 38
                            }
                          },
                          "operator": "=",
                          "left": {
                            "type": "MemberExpression",
                            "start": 5907,
                            "end": 5928,
                            "loc": {
                              "start": {
                                "line": 155,
                                "column": 12
                              },
                              "end": {
                                "line": 155,
                                "column": 33
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 5907,
                              "end": 5911,
                              "loc": {
                                "start": {
                                  "line": 155,
                                  "column": 12
                                },
                                "end": {
                                  "line": 155,
                                  "column": 16
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 5912,
                              "end": 5928,
                              "loc": {
                                "start": {
                                  "line": 155,
                                  "column": 17
                                },
                                "end": {
                                  "line": 155,
                                  "column": 33
                                }
                              },
                              "name": "invalidateFrames"
                            },
                            "computed": false
                          },
                          "right": {
                            "type": "Literal",
                            "start": 5931,
                            "end": 5933,
                            "loc": {
                              "start": {
                                "line": 155,
                                "column": 36
                              },
                              "end": {
                                "line": 155,
                                "column": 38
                              }
                            },
                            "value": 60,
                            "rawValue": 60,
                            "raw": "60"
                          }
                        }
                      },
                      "alternate": null
                    }
                  ]
                }
              }
            },
            {
              "type": "MethodDefinition",
              "start": 5949,
              "end": 6096,
              "loc": {
                "start": {
                  "line": 158,
                  "column": 4
                },
                "end": {
                  "line": 162,
                  "column": 5
                }
              },
              "computed": false,
              "key": {
                "type": "Identifier",
                "start": 5949,
                "end": 5964,
                "loc": {
                  "start": {
                    "line": 158,
                    "column": 4
                  },
                  "end": {
                    "line": 158,
                    "column": 19
                  }
                },
                "name": "invalidateViews"
              },
              "static": false,
              "kind": "method",
              "value": {
                "type": "FunctionExpression",
                "start": 5964,
                "end": 6096,
                "loc": {
                  "start": {
                    "line": 158,
                    "column": 19
                  },
                  "end": {
                    "line": 162,
                    "column": 5
                  }
                },
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "AssignmentPattern",
                    "start": 5965,
                    "end": 5975,
                    "loc": {
                      "start": {
                        "line": 158,
                        "column": 20
                      },
                      "end": {
                        "line": 158,
                        "column": 30
                      }
                    },
                    "operator": "=",
                    "left": {
                      "type": "Identifier",
                      "start": 5965,
                      "end": 5971,
                      "loc": {
                        "start": {
                          "line": 158,
                          "column": 20
                        },
                        "end": {
                          "line": 158,
                          "column": 26
                        }
                      },
                      "name": "frames"
                    },
                    "right": {
                      "type": "Literal",
                      "start": 5974,
                      "end": 5975,
                      "loc": {
                        "start": {
                          "line": 158,
                          "column": 29
                        },
                        "end": {
                          "line": 158,
                          "column": 30
                        }
                      },
                      "value": 1,
                      "rawValue": 1,
                      "raw": "1"
                    }
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 5977,
                  "end": 6096,
                  "loc": {
                    "start": {
                      "line": 158,
                      "column": 32
                    },
                    "end": {
                      "line": 162,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "start": 5988,
                      "end": 6006,
                      "loc": {
                        "start": {
                          "line": 159,
                          "column": 8
                        },
                        "end": {
                          "line": 159,
                          "column": 26
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 5988,
                        "end": 6005,
                        "loc": {
                          "start": {
                            "line": 159,
                            "column": 8
                          },
                          "end": {
                            "line": 159,
                            "column": 25
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 5988,
                          "end": 5998,
                          "loc": {
                            "start": {
                              "line": 159,
                              "column": 8
                            },
                            "end": {
                              "line": 159,
                              "column": 18
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 5988,
                            "end": 5992,
                            "loc": {
                              "start": {
                                "line": 159,
                                "column": 8
                              },
                              "end": {
                                "line": 159,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 5993,
                            "end": 5998,
                            "loc": {
                              "start": {
                                "line": 159,
                                "column": 13
                              },
                              "end": {
                                "line": 159,
                                "column": 18
                              }
                            },
                            "name": "dirty"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "Literal",
                          "start": 6001,
                          "end": 6005,
                          "loc": {
                            "start": {
                              "line": 159,
                              "column": 21
                            },
                            "end": {
                              "line": 159,
                              "column": 25
                            }
                          },
                          "value": true,
                          "rawValue": true,
                          "raw": "true"
                        }
                      }
                    },
                    {
                      "type": "ForOfStatement",
                      "start": 6016,
                      "end": 6089,
                      "loc": {
                        "start": {
                          "line": 160,
                          "column": 8
                        },
                        "end": {
                          "line": 161,
                          "column": 36
                        }
                      },
                      "left": {
                        "type": "VariableDeclaration",
                        "start": 6021,
                        "end": 6029,
                        "loc": {
                          "start": {
                            "line": 160,
                            "column": 13
                          },
                          "end": {
                            "line": 160,
                            "column": 21
                          }
                        },
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "start": 6025,
                            "end": 6029,
                            "loc": {
                              "start": {
                                "line": 160,
                                "column": 17
                              },
                              "end": {
                                "line": 160,
                                "column": 21
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 6025,
                              "end": 6029,
                              "loc": {
                                "start": {
                                  "line": 160,
                                  "column": 17
                                },
                                "end": {
                                  "line": 160,
                                  "column": 21
                                }
                              },
                              "name": "view"
                            },
                            "init": null
                          }
                        ],
                        "kind": "let"
                      },
                      "right": {
                        "type": "MemberExpression",
                        "start": 6033,
                        "end": 6050,
                        "loc": {
                          "start": {
                            "line": 160,
                            "column": 25
                          },
                          "end": {
                            "line": 160,
                            "column": 42
                          }
                        },
                        "object": {
                          "type": "MemberExpression",
                          "start": 6033,
                          "end": 6044,
                          "loc": {
                            "start": {
                              "line": 160,
                              "column": 25
                            },
                            "end": {
                              "line": 160,
                              "column": 36
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 6033,
                            "end": 6037,
                            "loc": {
                              "start": {
                                "line": 160,
                                "column": 25
                              },
                              "end": {
                                "line": 160,
                                "column": 29
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 6038,
                            "end": 6044,
                            "loc": {
                              "start": {
                                "line": 160,
                                "column": 30
                              },
                              "end": {
                                "line": 160,
                                "column": 36
                              }
                            },
                            "name": "canvas"
                          },
                          "computed": false
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 6045,
                          "end": 6050,
                          "loc": {
                            "start": {
                              "line": 160,
                              "column": 37
                            },
                            "end": {
                              "line": 160,
                              "column": 42
                            }
                          },
                          "name": "views"
                        },
                        "computed": false
                      },
                      "body": {
                        "type": "ExpressionStatement",
                        "start": 6065,
                        "end": 6089,
                        "loc": {
                          "start": {
                            "line": 161,
                            "column": 12
                          },
                          "end": {
                            "line": 161,
                            "column": 36
                          }
                        },
                        "expression": {
                          "type": "CallExpression",
                          "start": 6065,
                          "end": 6088,
                          "loc": {
                            "start": {
                              "line": 161,
                              "column": 12
                            },
                            "end": {
                              "line": 161,
                              "column": 35
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 6065,
                            "end": 6080,
                            "loc": {
                              "start": {
                                "line": 161,
                                "column": 12
                              },
                              "end": {
                                "line": 161,
                                "column": 27
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 6065,
                              "end": 6069,
                              "loc": {
                                "start": {
                                  "line": 161,
                                  "column": 12
                                },
                                "end": {
                                  "line": 161,
                                  "column": 16
                                }
                              },
                              "name": "view"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 6070,
                              "end": 6080,
                              "loc": {
                                "start": {
                                  "line": 161,
                                  "column": 17
                                },
                                "end": {
                                  "line": 161,
                                  "column": 27
                                }
                              },
                              "name": "invalidate"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 6081,
                              "end": 6087,
                              "loc": {
                                "start": {
                                  "line": 161,
                                  "column": 28
                                },
                                "end": {
                                  "line": 161,
                                  "column": 34
                                }
                              },
                              "name": "frames"
                            }
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          ]
        },
        "leadingComments": [],
        "trailingComments": []
      }
    }
  ]
}