 class AbstractMethodError extends Error
-    constructor: ->
+    constructor: (name) ->
         @name = "AbstractMethodError"
-        @message = "Calling abstract method detected."
+        @message = "Calling abstract method `#{name}` detected."
 
 class UndeclaredRequireError extends Error
     constructor: (@self_name, @require_name) ->

        @this = {}
        @window = @get_window()
        @errors = []
    render: ->  throw new AbstractMethodError()
    run: ->
        code = @render()
        func = new Function(code)

        return null if @errors.length > 0
        return @_make()
    get_window: -> return __proto__: window
    get_require: -> throw new AbstractMethodError("get_require")
    _fail: (reason) ->
        @errors.push(reason)
        throw reason
    _check: (result) -> throw new AbstractMethodError("_check")
    _make: -> throw new AbstractMethodError("_make")

class CJSEvaluator extends BasicEvaluator
    constructor: (options) ->
