(function($module) {

"use strict";

try {

    Object.defineProperties($module, {
        UndefinedConstructorException: {
            value: {}
        }
    });

    Object.defineProperties($module.UndefinedConstructorException, {
        new: {
            value: function(message) {
                var
                    ConstructorReference = window
                        .UndefinedConstructorException.new,

                    error = new Error(message);

                if (!(this instanceof ConstructorReference)) {
                    return new ConstructorReference(message);
                }
            }
        }

    });

    // window.UndefinedConstructorException.new.prototype = Object.create(window
    //     .UndefinedConstructorException.new.prototype);
    // window.UndefinedConstructorException.new.prototype.constructor = window
    //     .UndefinedConstructorException.new;

} catch (e) {}

})(window);