import { g as getDefaultExportFromCjs, c as createCommonjsModule } from './_commonjsHelpers-8c19dec8.js';

var dist = createCommonjsModule(function (module, exports) {

Object.defineProperty(exports, "__esModule", {
  value: true
});

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

// Generated by scripts/generate.js.

/**
 * Copyright 2016 Shape Security, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License")
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

var ArrayAssignmentTarget = exports.ArrayAssignmentTarget = function ArrayAssignmentTarget(_ref) {
  var elements = _ref.elements,
      rest = _ref.rest;

  _classCallCheck(this, ArrayAssignmentTarget);

  this.type = 'ArrayAssignmentTarget';
  this.elements = elements;
  this.rest = rest;
};

var ArrayBinding = exports.ArrayBinding = function ArrayBinding(_ref2) {
  var elements = _ref2.elements,
      rest = _ref2.rest;

  _classCallCheck(this, ArrayBinding);

  this.type = 'ArrayBinding';
  this.elements = elements;
  this.rest = rest;
};

var ArrayExpression = exports.ArrayExpression = function ArrayExpression(_ref3) {
  var elements = _ref3.elements;

  _classCallCheck(this, ArrayExpression);

  this.type = 'ArrayExpression';
  this.elements = elements;
};

var ArrowExpression = exports.ArrowExpression = function ArrowExpression(_ref4) {
  var isAsync = _ref4.isAsync,
      params = _ref4.params,
      body = _ref4.body;

  _classCallCheck(this, ArrowExpression);

  this.type = 'ArrowExpression';
  this.isAsync = isAsync;
  this.params = params;
  this.body = body;
};

var AssignmentExpression = exports.AssignmentExpression = function AssignmentExpression(_ref5) {
  var binding = _ref5.binding,
      expression = _ref5.expression;

  _classCallCheck(this, AssignmentExpression);

  this.type = 'AssignmentExpression';
  this.binding = binding;
  this.expression = expression;
};

var AssignmentTargetIdentifier = exports.AssignmentTargetIdentifier = function AssignmentTargetIdentifier(_ref6) {
  var name = _ref6.name;

  _classCallCheck(this, AssignmentTargetIdentifier);

  this.type = 'AssignmentTargetIdentifier';
  this.name = name;
};

var AssignmentTargetPropertyIdentifier = exports.AssignmentTargetPropertyIdentifier = function AssignmentTargetPropertyIdentifier(_ref7) {
  var binding = _ref7.binding,
      init = _ref7.init;

  _classCallCheck(this, AssignmentTargetPropertyIdentifier);

  this.type = 'AssignmentTargetPropertyIdentifier';
  this.binding = binding;
  this.init = init;
};

var AssignmentTargetPropertyProperty = exports.AssignmentTargetPropertyProperty = function AssignmentTargetPropertyProperty(_ref8) {
  var name = _ref8.name,
      binding = _ref8.binding;

  _classCallCheck(this, AssignmentTargetPropertyProperty);

  this.type = 'AssignmentTargetPropertyProperty';
  this.name = name;
  this.binding = binding;
};

var AssignmentTargetWithDefault = exports.AssignmentTargetWithDefault = function AssignmentTargetWithDefault(_ref9) {
  var binding = _ref9.binding,
      init = _ref9.init;

  _classCallCheck(this, AssignmentTargetWithDefault);

  this.type = 'AssignmentTargetWithDefault';
  this.binding = binding;
  this.init = init;
};

var AwaitExpression = exports.AwaitExpression = function AwaitExpression(_ref10) {
  var expression = _ref10.expression;

  _classCallCheck(this, AwaitExpression);

  this.type = 'AwaitExpression';
  this.expression = expression;
};

var BinaryExpression = exports.BinaryExpression = function BinaryExpression(_ref11) {
  var left = _ref11.left,
      operator = _ref11.operator,
      right = _ref11.right;

  _classCallCheck(this, BinaryExpression);

  this.type = 'BinaryExpression';
  this.left = left;
  this.operator = operator;
  this.right = right;
};

var BindingIdentifier = exports.BindingIdentifier = function BindingIdentifier(_ref12) {
  var name = _ref12.name;

  _classCallCheck(this, BindingIdentifier);

  this.type = 'BindingIdentifier';
  this.name = name;
};

var BindingPropertyIdentifier = exports.BindingPropertyIdentifier = function BindingPropertyIdentifier(_ref13) {
  var binding = _ref13.binding,
      init = _ref13.init;

  _classCallCheck(this, BindingPropertyIdentifier);

  this.type = 'BindingPropertyIdentifier';
  this.binding = binding;
  this.init = init;
};

var BindingPropertyProperty = exports.BindingPropertyProperty = function BindingPropertyProperty(_ref14) {
  var name = _ref14.name,
      binding = _ref14.binding;

  _classCallCheck(this, BindingPropertyProperty);

  this.type = 'BindingPropertyProperty';
  this.name = name;
  this.binding = binding;
};

var BindingWithDefault = exports.BindingWithDefault = function BindingWithDefault(_ref15) {
  var binding = _ref15.binding,
      init = _ref15.init;

  _classCallCheck(this, BindingWithDefault);

  this.type = 'BindingWithDefault';
  this.binding = binding;
  this.init = init;
};

var Block = exports.Block = function Block(_ref16) {
  var statements = _ref16.statements;

  _classCallCheck(this, Block);

  this.type = 'Block';
  this.statements = statements;
};

var BlockStatement = exports.BlockStatement = function BlockStatement(_ref17) {
  var block = _ref17.block;

  _classCallCheck(this, BlockStatement);

  this.type = 'BlockStatement';
  this.block = block;
};

var BreakStatement = exports.BreakStatement = function BreakStatement(_ref18) {
  var label = _ref18.label;

  _classCallCheck(this, BreakStatement);

  this.type = 'BreakStatement';
  this.label = label;
};

var CallExpression = exports.CallExpression = function CallExpression(_ref19) {
  var callee = _ref19.callee,
      _arguments = _ref19.arguments;

  _classCallCheck(this, CallExpression);

  this.type = 'CallExpression';
  this.callee = callee;
  this.arguments = _arguments;
};

var CatchClause = exports.CatchClause = function CatchClause(_ref20) {
  var binding = _ref20.binding,
      body = _ref20.body;

  _classCallCheck(this, CatchClause);

  this.type = 'CatchClause';
  this.binding = binding;
  this.body = body;
};

var ClassDeclaration = exports.ClassDeclaration = function ClassDeclaration(_ref21) {
  var name = _ref21.name,
      _super = _ref21.super,
      elements = _ref21.elements;

  _classCallCheck(this, ClassDeclaration);

  this.type = 'ClassDeclaration';
  this.name = name;
  this.super = _super;
  this.elements = elements;
};

var ClassElement = exports.ClassElement = function ClassElement(_ref22) {
  var isStatic = _ref22.isStatic,
      method = _ref22.method;

  _classCallCheck(this, ClassElement);

  this.type = 'ClassElement';
  this.isStatic = isStatic;
  this.method = method;
};

var ClassExpression = exports.ClassExpression = function ClassExpression(_ref23) {
  var name = _ref23.name,
      _super = _ref23.super,
      elements = _ref23.elements;

  _classCallCheck(this, ClassExpression);

  this.type = 'ClassExpression';
  this.name = name;
  this.super = _super;
  this.elements = elements;
};

var CompoundAssignmentExpression = exports.CompoundAssignmentExpression = function CompoundAssignmentExpression(_ref24) {
  var binding = _ref24.binding,
      operator = _ref24.operator,
      expression = _ref24.expression;

  _classCallCheck(this, CompoundAssignmentExpression);

  this.type = 'CompoundAssignmentExpression';
  this.binding = binding;
  this.operator = operator;
  this.expression = expression;
};

var ComputedMemberAssignmentTarget = exports.ComputedMemberAssignmentTarget = function ComputedMemberAssignmentTarget(_ref25) {
  var object = _ref25.object,
      expression = _ref25.expression;

  _classCallCheck(this, ComputedMemberAssignmentTarget);

  this.type = 'ComputedMemberAssignmentTarget';
  this.object = object;
  this.expression = expression;
};

var ComputedMemberExpression = exports.ComputedMemberExpression = function ComputedMemberExpression(_ref26) {
  var object = _ref26.object,
      expression = _ref26.expression;

  _classCallCheck(this, ComputedMemberExpression);

  this.type = 'ComputedMemberExpression';
  this.object = object;
  this.expression = expression;
};

var ComputedPropertyName = exports.ComputedPropertyName = function ComputedPropertyName(_ref27) {
  var expression = _ref27.expression;

  _classCallCheck(this, ComputedPropertyName);

  this.type = 'ComputedPropertyName';
  this.expression = expression;
};

var ConditionalExpression = exports.ConditionalExpression = function ConditionalExpression(_ref28) {
  var test = _ref28.test,
      consequent = _ref28.consequent,
      alternate = _ref28.alternate;

  _classCallCheck(this, ConditionalExpression);

  this.type = 'ConditionalExpression';
  this.test = test;
  this.consequent = consequent;
  this.alternate = alternate;
};

var ContinueStatement = exports.ContinueStatement = function ContinueStatement(_ref29) {
  var label = _ref29.label;

  _classCallCheck(this, ContinueStatement);

  this.type = 'ContinueStatement';
  this.label = label;
};

var DataProperty = exports.DataProperty = function DataProperty(_ref30) {
  var name = _ref30.name,
      expression = _ref30.expression;

  _classCallCheck(this, DataProperty);

  this.type = 'DataProperty';
  this.name = name;
  this.expression = expression;
};

var DebuggerStatement = exports.DebuggerStatement = function DebuggerStatement() {
  _classCallCheck(this, DebuggerStatement);

  this.type = 'DebuggerStatement';
};

var Directive = exports.Directive = function Directive(_ref31) {
  var rawValue = _ref31.rawValue;

  _classCallCheck(this, Directive);

  this.type = 'Directive';
  this.rawValue = rawValue;
};

var DoWhileStatement = exports.DoWhileStatement = function DoWhileStatement(_ref32) {
  var body = _ref32.body,
      test = _ref32.test;

  _classCallCheck(this, DoWhileStatement);

  this.type = 'DoWhileStatement';
  this.body = body;
  this.test = test;
};

var EmptyStatement = exports.EmptyStatement = function EmptyStatement() {
  _classCallCheck(this, EmptyStatement);

  this.type = 'EmptyStatement';
};

var Export = exports.Export = function Export(_ref33) {
  var declaration = _ref33.declaration;

  _classCallCheck(this, Export);

  this.type = 'Export';
  this.declaration = declaration;
};

var ExportAllFrom = exports.ExportAllFrom = function ExportAllFrom(_ref34) {
  var moduleSpecifier = _ref34.moduleSpecifier;

  _classCallCheck(this, ExportAllFrom);

  this.type = 'ExportAllFrom';
  this.moduleSpecifier = moduleSpecifier;
};

var ExportDefault = exports.ExportDefault = function ExportDefault(_ref35) {
  var body = _ref35.body;

  _classCallCheck(this, ExportDefault);

  this.type = 'ExportDefault';
  this.body = body;
};

var ExportFrom = exports.ExportFrom = function ExportFrom(_ref36) {
  var namedExports = _ref36.namedExports,
      moduleSpecifier = _ref36.moduleSpecifier;

  _classCallCheck(this, ExportFrom);

  this.type = 'ExportFrom';
  this.namedExports = namedExports;
  this.moduleSpecifier = moduleSpecifier;
};

var ExportFromSpecifier = exports.ExportFromSpecifier = function ExportFromSpecifier(_ref37) {
  var name = _ref37.name,
      exportedName = _ref37.exportedName;

  _classCallCheck(this, ExportFromSpecifier);

  this.type = 'ExportFromSpecifier';
  this.name = name;
  this.exportedName = exportedName;
};

var ExportLocalSpecifier = exports.ExportLocalSpecifier = function ExportLocalSpecifier(_ref38) {
  var name = _ref38.name,
      exportedName = _ref38.exportedName;

  _classCallCheck(this, ExportLocalSpecifier);

  this.type = 'ExportLocalSpecifier';
  this.name = name;
  this.exportedName = exportedName;
};

var ExportLocals = exports.ExportLocals = function ExportLocals(_ref39) {
  var namedExports = _ref39.namedExports;

  _classCallCheck(this, ExportLocals);

  this.type = 'ExportLocals';
  this.namedExports = namedExports;
};

var ExpressionStatement = exports.ExpressionStatement = function ExpressionStatement(_ref40) {
  var expression = _ref40.expression;

  _classCallCheck(this, ExpressionStatement);

  this.type = 'ExpressionStatement';
  this.expression = expression;
};

var ForAwaitStatement = exports.ForAwaitStatement = function ForAwaitStatement(_ref41) {
  var left = _ref41.left,
      right = _ref41.right,
      body = _ref41.body;

  _classCallCheck(this, ForAwaitStatement);

  this.type = 'ForAwaitStatement';
  this.left = left;
  this.right = right;
  this.body = body;
};

var ForInStatement = exports.ForInStatement = function ForInStatement(_ref42) {
  var left = _ref42.left,
      right = _ref42.right,
      body = _ref42.body;

  _classCallCheck(this, ForInStatement);

  this.type = 'ForInStatement';
  this.left = left;
  this.right = right;
  this.body = body;
};

var ForOfStatement = exports.ForOfStatement = function ForOfStatement(_ref43) {
  var left = _ref43.left,
      right = _ref43.right,
      body = _ref43.body;

  _classCallCheck(this, ForOfStatement);

  this.type = 'ForOfStatement';
  this.left = left;
  this.right = right;
  this.body = body;
};

var ForStatement = exports.ForStatement = function ForStatement(_ref44) {
  var init = _ref44.init,
      test = _ref44.test,
      update = _ref44.update,
      body = _ref44.body;

  _classCallCheck(this, ForStatement);

  this.type = 'ForStatement';
  this.init = init;
  this.test = test;
  this.update = update;
  this.body = body;
};

var FormalParameters = exports.FormalParameters = function FormalParameters(_ref45) {
  var items = _ref45.items,
      rest = _ref45.rest;

  _classCallCheck(this, FormalParameters);

  this.type = 'FormalParameters';
  this.items = items;
  this.rest = rest;
};

var FunctionBody = exports.FunctionBody = function FunctionBody(_ref46) {
  var directives = _ref46.directives,
      statements = _ref46.statements;

  _classCallCheck(this, FunctionBody);

  this.type = 'FunctionBody';
  this.directives = directives;
  this.statements = statements;
};

var FunctionDeclaration = exports.FunctionDeclaration = function FunctionDeclaration(_ref47) {
  var isAsync = _ref47.isAsync,
      isGenerator = _ref47.isGenerator,
      name = _ref47.name,
      params = _ref47.params,
      body = _ref47.body;

  _classCallCheck(this, FunctionDeclaration);

  this.type = 'FunctionDeclaration';
  this.isAsync = isAsync;
  this.isGenerator = isGenerator;
  this.name = name;
  this.params = params;
  this.body = body;
};

var FunctionExpression = exports.FunctionExpression = function FunctionExpression(_ref48) {
  var isAsync = _ref48.isAsync,
      isGenerator = _ref48.isGenerator,
      name = _ref48.name,
      params = _ref48.params,
      body = _ref48.body;

  _classCallCheck(this, FunctionExpression);

  this.type = 'FunctionExpression';
  this.isAsync = isAsync;
  this.isGenerator = isGenerator;
  this.name = name;
  this.params = params;
  this.body = body;
};

var Getter = exports.Getter = function Getter(_ref49) {
  var name = _ref49.name,
      body = _ref49.body;

  _classCallCheck(this, Getter);

  this.type = 'Getter';
  this.name = name;
  this.body = body;
};

var IdentifierExpression = exports.IdentifierExpression = function IdentifierExpression(_ref50) {
  var name = _ref50.name;

  _classCallCheck(this, IdentifierExpression);

  this.type = 'IdentifierExpression';
  this.name = name;
};

var IfStatement = exports.IfStatement = function IfStatement(_ref51) {
  var test = _ref51.test,
      consequent = _ref51.consequent,
      alternate = _ref51.alternate;

  _classCallCheck(this, IfStatement);

  this.type = 'IfStatement';
  this.test = test;
  this.consequent = consequent;
  this.alternate = alternate;
};

var Import = exports.Import = function Import(_ref52) {
  var defaultBinding = _ref52.defaultBinding,
      namedImports = _ref52.namedImports,
      moduleSpecifier = _ref52.moduleSpecifier;

  _classCallCheck(this, Import);

  this.type = 'Import';
  this.defaultBinding = defaultBinding;
  this.namedImports = namedImports;
  this.moduleSpecifier = moduleSpecifier;
};

var ImportNamespace = exports.ImportNamespace = function ImportNamespace(_ref53) {
  var defaultBinding = _ref53.defaultBinding,
      namespaceBinding = _ref53.namespaceBinding,
      moduleSpecifier = _ref53.moduleSpecifier;

  _classCallCheck(this, ImportNamespace);

  this.type = 'ImportNamespace';
  this.defaultBinding = defaultBinding;
  this.namespaceBinding = namespaceBinding;
  this.moduleSpecifier = moduleSpecifier;
};

var ImportSpecifier = exports.ImportSpecifier = function ImportSpecifier(_ref54) {
  var name = _ref54.name,
      binding = _ref54.binding;

  _classCallCheck(this, ImportSpecifier);

  this.type = 'ImportSpecifier';
  this.name = name;
  this.binding = binding;
};

var LabeledStatement = exports.LabeledStatement = function LabeledStatement(_ref55) {
  var label = _ref55.label,
      body = _ref55.body;

  _classCallCheck(this, LabeledStatement);

  this.type = 'LabeledStatement';
  this.label = label;
  this.body = body;
};

var LiteralBooleanExpression = exports.LiteralBooleanExpression = function LiteralBooleanExpression(_ref56) {
  var value = _ref56.value;

  _classCallCheck(this, LiteralBooleanExpression);

  this.type = 'LiteralBooleanExpression';
  this.value = value;
};

var LiteralInfinityExpression = exports.LiteralInfinityExpression = function LiteralInfinityExpression() {
  _classCallCheck(this, LiteralInfinityExpression);

  this.type = 'LiteralInfinityExpression';
};

var LiteralNullExpression = exports.LiteralNullExpression = function LiteralNullExpression() {
  _classCallCheck(this, LiteralNullExpression);

  this.type = 'LiteralNullExpression';
};

var LiteralNumericExpression = exports.LiteralNumericExpression = function LiteralNumericExpression(_ref57) {
  var value = _ref57.value;

  _classCallCheck(this, LiteralNumericExpression);

  this.type = 'LiteralNumericExpression';
  this.value = value;
};

var LiteralRegExpExpression = exports.LiteralRegExpExpression = function LiteralRegExpExpression(_ref58) {
  var pattern = _ref58.pattern,
      global = _ref58.global,
      ignoreCase = _ref58.ignoreCase,
      multiLine = _ref58.multiLine,
      dotAll = _ref58.dotAll,
      unicode = _ref58.unicode,
      sticky = _ref58.sticky;

  _classCallCheck(this, LiteralRegExpExpression);

  this.type = 'LiteralRegExpExpression';
  this.pattern = pattern;
  this.global = global;
  this.ignoreCase = ignoreCase;
  this.multiLine = multiLine;
  this.dotAll = dotAll;
  this.unicode = unicode;
  this.sticky = sticky;
};

var LiteralStringExpression = exports.LiteralStringExpression = function LiteralStringExpression(_ref59) {
  var value = _ref59.value;

  _classCallCheck(this, LiteralStringExpression);

  this.type = 'LiteralStringExpression';
  this.value = value;
};

var Method = exports.Method = function Method(_ref60) {
  var isAsync = _ref60.isAsync,
      isGenerator = _ref60.isGenerator,
      name = _ref60.name,
      params = _ref60.params,
      body = _ref60.body;

  _classCallCheck(this, Method);

  this.type = 'Method';
  this.isAsync = isAsync;
  this.isGenerator = isGenerator;
  this.name = name;
  this.params = params;
  this.body = body;
};

var Module = exports.Module = function Module(_ref61) {
  var directives = _ref61.directives,
      items = _ref61.items;

  _classCallCheck(this, Module);

  this.type = 'Module';
  this.directives = directives;
  this.items = items;
};

var NewExpression = exports.NewExpression = function NewExpression(_ref62) {
  var callee = _ref62.callee,
      _arguments = _ref62.arguments;

  _classCallCheck(this, NewExpression);

  this.type = 'NewExpression';
  this.callee = callee;
  this.arguments = _arguments;
};

var NewTargetExpression = exports.NewTargetExpression = function NewTargetExpression() {
  _classCallCheck(this, NewTargetExpression);

  this.type = 'NewTargetExpression';
};

var ObjectAssignmentTarget = exports.ObjectAssignmentTarget = function ObjectAssignmentTarget(_ref63) {
  var properties = _ref63.properties,
      rest = _ref63.rest;

  _classCallCheck(this, ObjectAssignmentTarget);

  this.type = 'ObjectAssignmentTarget';
  this.properties = properties;
  this.rest = rest;
};

var ObjectBinding = exports.ObjectBinding = function ObjectBinding(_ref64) {
  var properties = _ref64.properties,
      rest = _ref64.rest;

  _classCallCheck(this, ObjectBinding);

  this.type = 'ObjectBinding';
  this.properties = properties;
  this.rest = rest;
};

var ObjectExpression = exports.ObjectExpression = function ObjectExpression(_ref65) {
  var properties = _ref65.properties;

  _classCallCheck(this, ObjectExpression);

  this.type = 'ObjectExpression';
  this.properties = properties;
};

var ReturnStatement = exports.ReturnStatement = function ReturnStatement(_ref66) {
  var expression = _ref66.expression;

  _classCallCheck(this, ReturnStatement);

  this.type = 'ReturnStatement';
  this.expression = expression;
};

var Script = exports.Script = function Script(_ref67) {
  var directives = _ref67.directives,
      statements = _ref67.statements;

  _classCallCheck(this, Script);

  this.type = 'Script';
  this.directives = directives;
  this.statements = statements;
};

var Setter = exports.Setter = function Setter(_ref68) {
  var name = _ref68.name,
      param = _ref68.param,
      body = _ref68.body;

  _classCallCheck(this, Setter);

  this.type = 'Setter';
  this.name = name;
  this.param = param;
  this.body = body;
};

var ShorthandProperty = exports.ShorthandProperty = function ShorthandProperty(_ref69) {
  var name = _ref69.name;

  _classCallCheck(this, ShorthandProperty);

  this.type = 'ShorthandProperty';
  this.name = name;
};

var SpreadElement = exports.SpreadElement = function SpreadElement(_ref70) {
  var expression = _ref70.expression;

  _classCallCheck(this, SpreadElement);

  this.type = 'SpreadElement';
  this.expression = expression;
};

var SpreadProperty = exports.SpreadProperty = function SpreadProperty(_ref71) {
  var expression = _ref71.expression;

  _classCallCheck(this, SpreadProperty);

  this.type = 'SpreadProperty';
  this.expression = expression;
};

var StaticMemberAssignmentTarget = exports.StaticMemberAssignmentTarget = function StaticMemberAssignmentTarget(_ref72) {
  var object = _ref72.object,
      property = _ref72.property;

  _classCallCheck(this, StaticMemberAssignmentTarget);

  this.type = 'StaticMemberAssignmentTarget';
  this.object = object;
  this.property = property;
};

var StaticMemberExpression = exports.StaticMemberExpression = function StaticMemberExpression(_ref73) {
  var object = _ref73.object,
      property = _ref73.property;

  _classCallCheck(this, StaticMemberExpression);

  this.type = 'StaticMemberExpression';
  this.object = object;
  this.property = property;
};

var StaticPropertyName = exports.StaticPropertyName = function StaticPropertyName(_ref74) {
  var value = _ref74.value;

  _classCallCheck(this, StaticPropertyName);

  this.type = 'StaticPropertyName';
  this.value = value;
};

var Super = exports.Super = function Super() {
  _classCallCheck(this, Super);

  this.type = 'Super';
};

var SwitchCase = exports.SwitchCase = function SwitchCase(_ref75) {
  var test = _ref75.test,
      consequent = _ref75.consequent;

  _classCallCheck(this, SwitchCase);

  this.type = 'SwitchCase';
  this.test = test;
  this.consequent = consequent;
};

var SwitchDefault = exports.SwitchDefault = function SwitchDefault(_ref76) {
  var consequent = _ref76.consequent;

  _classCallCheck(this, SwitchDefault);

  this.type = 'SwitchDefault';
  this.consequent = consequent;
};

var SwitchStatement = exports.SwitchStatement = function SwitchStatement(_ref77) {
  var discriminant = _ref77.discriminant,
      cases = _ref77.cases;

  _classCallCheck(this, SwitchStatement);

  this.type = 'SwitchStatement';
  this.discriminant = discriminant;
  this.cases = cases;
};

var SwitchStatementWithDefault = exports.SwitchStatementWithDefault = function SwitchStatementWithDefault(_ref78) {
  var discriminant = _ref78.discriminant,
      preDefaultCases = _ref78.preDefaultCases,
      defaultCase = _ref78.defaultCase,
      postDefaultCases = _ref78.postDefaultCases;

  _classCallCheck(this, SwitchStatementWithDefault);

  this.type = 'SwitchStatementWithDefault';
  this.discriminant = discriminant;
  this.preDefaultCases = preDefaultCases;
  this.defaultCase = defaultCase;
  this.postDefaultCases = postDefaultCases;
};

var TemplateElement = exports.TemplateElement = function TemplateElement(_ref79) {
  var rawValue = _ref79.rawValue;

  _classCallCheck(this, TemplateElement);

  this.type = 'TemplateElement';
  this.rawValue = rawValue;
};

var TemplateExpression = exports.TemplateExpression = function TemplateExpression(_ref80) {
  var tag = _ref80.tag,
      elements = _ref80.elements;

  _classCallCheck(this, TemplateExpression);

  this.type = 'TemplateExpression';
  this.tag = tag;
  this.elements = elements;
};

var ThisExpression = exports.ThisExpression = function ThisExpression() {
  _classCallCheck(this, ThisExpression);

  this.type = 'ThisExpression';
};

var ThrowStatement = exports.ThrowStatement = function ThrowStatement(_ref81) {
  var expression = _ref81.expression;

  _classCallCheck(this, ThrowStatement);

  this.type = 'ThrowStatement';
  this.expression = expression;
};

var TryCatchStatement = exports.TryCatchStatement = function TryCatchStatement(_ref82) {
  var body = _ref82.body,
      catchClause = _ref82.catchClause;

  _classCallCheck(this, TryCatchStatement);

  this.type = 'TryCatchStatement';
  this.body = body;
  this.catchClause = catchClause;
};

var TryFinallyStatement = exports.TryFinallyStatement = function TryFinallyStatement(_ref83) {
  var body = _ref83.body,
      catchClause = _ref83.catchClause,
      finalizer = _ref83.finalizer;

  _classCallCheck(this, TryFinallyStatement);

  this.type = 'TryFinallyStatement';
  this.body = body;
  this.catchClause = catchClause;
  this.finalizer = finalizer;
};

var UnaryExpression = exports.UnaryExpression = function UnaryExpression(_ref84) {
  var operator = _ref84.operator,
      operand = _ref84.operand;

  _classCallCheck(this, UnaryExpression);

  this.type = 'UnaryExpression';
  this.operator = operator;
  this.operand = operand;
};

var UpdateExpression = exports.UpdateExpression = function UpdateExpression(_ref85) {
  var isPrefix = _ref85.isPrefix,
      operator = _ref85.operator,
      operand = _ref85.operand;

  _classCallCheck(this, UpdateExpression);

  this.type = 'UpdateExpression';
  this.isPrefix = isPrefix;
  this.operator = operator;
  this.operand = operand;
};

var VariableDeclaration = exports.VariableDeclaration = function VariableDeclaration(_ref86) {
  var kind = _ref86.kind,
      declarators = _ref86.declarators;

  _classCallCheck(this, VariableDeclaration);

  this.type = 'VariableDeclaration';
  this.kind = kind;
  this.declarators = declarators;
};

var VariableDeclarationStatement = exports.VariableDeclarationStatement = function VariableDeclarationStatement(_ref87) {
  var declaration = _ref87.declaration;

  _classCallCheck(this, VariableDeclarationStatement);

  this.type = 'VariableDeclarationStatement';
  this.declaration = declaration;
};

var VariableDeclarator = exports.VariableDeclarator = function VariableDeclarator(_ref88) {
  var binding = _ref88.binding,
      init = _ref88.init;

  _classCallCheck(this, VariableDeclarator);

  this.type = 'VariableDeclarator';
  this.binding = binding;
  this.init = init;
};

var WhileStatement = exports.WhileStatement = function WhileStatement(_ref89) {
  var test = _ref89.test,
      body = _ref89.body;

  _classCallCheck(this, WhileStatement);

  this.type = 'WhileStatement';
  this.test = test;
  this.body = body;
};

var WithStatement = exports.WithStatement = function WithStatement(_ref90) {
  var object = _ref90.object,
      body = _ref90.body;

  _classCallCheck(this, WithStatement);

  this.type = 'WithStatement';
  this.object = object;
  this.body = body;
};

var YieldExpression = exports.YieldExpression = function YieldExpression(_ref91) {
  var expression = _ref91.expression;

  _classCallCheck(this, YieldExpression);

  this.type = 'YieldExpression';
  this.expression = expression;
};

var YieldGeneratorExpression = exports.YieldGeneratorExpression = function YieldGeneratorExpression(_ref92) {
  var expression = _ref92.expression;

  _classCallCheck(this, YieldGeneratorExpression);

  this.type = 'YieldGeneratorExpression';
  this.expression = expression;
};
});

var __pika_web_default_export_for_treeshaking__ = /*@__PURE__*/getDefaultExportFromCjs(dist);

export { __pika_web_default_export_for_treeshaking__ as _, dist as d };
