define takes an optional filename. This lets us grab the 'temp' object we set requires to when there are circular references.

Is this crazy, or does this make sense.
This commit is contained in:
Corey Johnson
2011-09-02 17:59:42 -07:00
parent 5d758bf358
commit 23e4be9f7d

View File

@@ -23,9 +23,17 @@ require = (file, cb) ->
__modules[file]
defines = []
define = (cb) ->
# Ace define uses just one var, our stuff wants two.
#
# file - The String that contains the filename of the code we are requiring
# (optional)
# cb - The Function that will actually run the code.
define = (args...) ->
defines.push ->
exports = {}
file = args[0]
cb = args[1] or args[0]
exports = if file then __modules[file] else {}
module = exports: exports
cb.call exports, require, exports, module
module.exports or exports
@@ -36,7 +44,7 @@ exts =
if not /define\(/.test code
code = """
define(function(require, exports, module) {
define('#{file}', function(require, exports, module) {
#{code};
});
"""