From 23e4be9f7db36f089de502f0a3ff83823579d589 Mon Sep 17 00:00:00 2001 From: Corey Johnson Date: Fri, 2 Sep 2011 17:59:42 -0700 Subject: [PATCH] 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. --- src/require.coffee | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/require.coffee b/src/require.coffee index 9ccb7505e..bd5bad3f5 100644 --- a/src/require.coffee +++ b/src/require.coffee @@ -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}; }); """