old_contents: module.exports = function(jsss) {
    var _ = require('underscore');
    var esprima = require('esprima');
    var escodegen = require('escodegen');
    var syntax = esprima.parse(jsss);
  
    function getLeftMember(obj) {
      if (obj.type !== 'ExpressionStatement') {
        return void 0;
      }
  
      if (obj.expression.type !== 'AssignmentExpression') {
        return void 0;
      }
      return obj.expression.left;
    }
  
    var obj =  _.reduce(syntax.body, function(memo, value) {
      if (_.isUndefined(value)) return memo;
      var left = getLeftMember(value);
      if (_.isUndefined(left)) return memo;
      memo.push(left);
      return memo;
    }, []);
  
    console.log(JSON.stringify(obj, 2, 2));
  };
  
new_contents: module.exports = function(jsss) {
    var _ = require('underscore');
    var Reflect = require('harmony-reflect');
    var tags = classes = ids = {};
    var handler = Reflect;
    var get = Reflect.get;
    var set = Reflect.set;
    handler.get = function (target, name, receiver) {
      if (name in receiver === false) {
        if (name !== 'inspect') {
          receiver[name] = {};
          target[name] = {};
        }
      }
      return get(target, name, receiver);
    };
    handler.set = function(target, name, value, receiver) {
      if (name in receiver === false) {
        target[name] = {};
      }
      return set(target, name, value, receiver);
    }
  
    tags = new Proxy({}, handler),
    classes = new Proxy({}, handler),
    ids = new Proxy({}, handler);
    eval(jsss);
    console.log(classes);
  };
  
subject: Update parser