MetaScript.js
function(sourceOrProgram, filename) {
        
        if (!(this instanceof MetaScript)) {
            __version = Array.prototype.join.call(arguments, '.');
            return;
        }
        
        // Whether constructing from a meta program or, otherwise, a source
        var isProgram = (sourceOrProgram+="").substring(0, 11) === 'MetaScript(';
        
        /**
         * Original source.
         * @type {?string}
         */
        this.source = isProgram ? null : sourceOrProgram;

        /**
         * Original source file name.
         * @type {string}
         */
        this.filename = filename || "main";

        /**
         * The compiled meta program's source.
         * @type {string}
         */
        this.program = isProgram ? sourceOrProgram : MetaScript.compile(sourceOrProgram);
    }
function(sourceOrProgram, filename) {
        
        if (!(this instanceof MetaScript)) {
            __version = Array.prototype.join.call(arguments, '.');
            return;
        }
        
        // Whether constructing from a meta program or, otherwise, a source
        var isProgram = (sourceOrProgram+="").substring(0, 11) === 'MetaScript(';
        
        /**
         * Original source.
         * @type {?string}
         */
        this.source = isProgram ? null : sourceOrProgram;

        /**
         * Original source file name.
         * @type {string}
         */
        this.filename = filename || "main";

        /**
         * The compiled meta program's source.
         * @type {string}
         */
        this.program = isProgram ? sourceOrProgram : MetaScript.compile(sourceOrProgram);
    }
function ( sourceOrProgram , filename ) { if ( ! ( this instanceof MetaScript ) ) { __version = Array . prototype . join . call ( arguments , '.' ) ; return ; } // Whether constructing from a meta program or, otherwise, a source var isProgram = ( sourceOrProgram += "" ) . substring ( 0 , 11 ) === 'MetaScript(' ; /**
         * Original source.
         * @type {?string}
         */ this . source = isProgram ? null : sourceOrProgram ; /**
         * Original source file name.
         * @type {string}
         */ this . filename = filename || "main" ; /**
         * The compiled meta program's source.
         * @type {string}
         */ this . program = isProgram ? sourceOrProgram : MetaScript . compile ( sourceOrProgram ) ; }
Constructs a new MetaScript instance.
@exports MetaScript
@param {string} sourceOrProgram Source to compile or meta program to run
@param {string=} filename Source file name if known, defaults to `"main"`.
@constructor
Constructs a new MetaScript instance .