text: 'use strict';
  
  Object.defineProperty(exports, "__esModule", {
      value: true
  });
  
  var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
  
  var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  
  var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
  
  var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  
  var _createClass2 = require('babel-runtime/helpers/createClass');
  
  var _createClass3 = _interopRequireDefault(_createClass2);
  
  var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
  
  var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  
  var _inherits2 = require('babel-runtime/helpers/inherits');
  
  var _inherits3 = _interopRequireDefault(_inherits2);
  
  var _Statement2 = require('../Statement');
  
  var _Statement3 = _interopRequireDefault(_Statement2);
  
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  
  var ClassDeclaration = function (_Statement) {
      (0, _inherits3.default)(ClassDeclaration, _Statement);
  
      function ClassDeclaration(childNodes) {
          (0, _classCallCheck3.default)(this, ClassDeclaration);
          return (0, _possibleConstructorReturn3.default)(this, (ClassDeclaration.__proto__ || (0, _getPrototypeOf2.default)(ClassDeclaration)).call(this, 'ClassDeclaration', childNodes));
      }
  
      (0, _createClass3.default)(ClassDeclaration, [{
          key: '_acceptChildren',
          value: function _acceptChildren(children) {
              children.passToken('Keyword', 'class');
              children.skipNonCode();
  
              var superClass = null;
              var id = null;
  
              if (children.isNode('Identifier')) {
                  id = children.passNode('Identifier');
                  children.skipNonCode();
              }
  
              if (children.isToken('Keyword', 'extends')) {
                  children.passToken('Keyword', 'extends');
                  children.skipNonCode();
                  superClass = children.passExpression();
                  children.skipNonCode();
              }
  
              var body = children.passNode('ClassBody');
              children.assertEnd();
  
              this.id = id;
              this.superClass = superClass;
              this.body = body;
          }
      }]);
      return ClassDeclaration;
  }(_Statement3.default);
  
  exports.default = ClassDeclaration;
  //# sourceMappingURL=ClassDeclaration.js.map