Make Acorn work with AMD modules

(Hopefully)
This commit is contained in:
Marijn Haverbeke
2013-03-17 22:56:49 +01:00
parent 559518acc8
commit 76be1f8eee
4 changed files with 25 additions and 9 deletions

View File

@@ -20,7 +20,11 @@
// [dammit]: acorn_loose.js
// [walk]: util/walk.js
(function(exports) {
(function(mod) {
if (typeof exports == "object" && typeof module == "object") return mod(exports); // CommonJS
if (typeof define == "function" && define.amd) return define(["exports"], mod); // AMD
mod(self.acorn || (self.acorn = {})); // Plain browser env
})(function(exports) {
"use strict";
exports.version = "0.1.01";
@@ -1708,4 +1712,4 @@
return finishNode(node, "Identifier");
}
})(typeof exports === "undefined" ? (self.acorn = {}) : exports);
});

View File

@@ -29,10 +29,14 @@
// invasive changes and simplifications without creating a complicated
// tangle.
(function(exports) {
(function(mod) {
if (typeof exports == "object" && typeof module == "object") return mod(exports, require("./acorn")); // CommonJS
if (typeof define == "function" && define.amd) return define(["exports", "./acorn"], mod); // AMD
mod(self.acorn || (self.acorn = {}), self.acorn); // Plain browser env
})(function(exports, acorn) {
"use strict";
var acorn = exports.parse ? exports : require("./acorn"), tt = acorn.tokTypes;
var tt = acorn.tokTypes;
var options, input, fetchToken, context;
@@ -740,4 +744,4 @@
eat(close);
return elts;
}
})(typeof exports === "undefined" ? self.acorn : exports);
});

View File

@@ -14,7 +14,11 @@ https://github.com/marijnh/acorn.git
<p>This file defines the main parser interface. The library also comes
with a <a href="acorn_loose.js">error-tolerant parser</a> and an
<a href="util/walk.js">abstract syntax tree walker</a>, defined in other files.</p> </td> <td class="code"> <div class="highlight"><pre><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">exports</span><span class="p">)</span> <span class="p">{</span>
<a href="util/walk.js">abstract syntax tree walker</a>, defined in other files.</p> </td> <td class="code"> <div class="highlight"><pre><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">mod</span><span class="p">)</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">exports</span> <span class="o">==</span> <span class="s2">&quot;object&quot;</span> <span class="o">&amp;&amp;</span> <span class="k">typeof</span> <span class="nx">module</span> <span class="o">==</span> <span class="s2">&quot;object&quot;</span><span class="p">)</span> <span class="k">return</span> <span class="nx">mod</span><span class="p">(</span><span class="nx">exports</span><span class="p">);</span> <span class="c1">// CommonJS</span>
<span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">define</span> <span class="o">==</span> <span class="s2">&quot;function&quot;</span> <span class="o">&amp;&amp;</span> <span class="nx">define</span><span class="p">.</span><span class="nx">amd</span><span class="p">)</span> <span class="k">return</span> <span class="nx">define</span><span class="p">([</span><span class="s2">&quot;exports&quot;</span><span class="p">],</span> <span class="nx">mod</span><span class="p">);</span> <span class="c1">// AMD</span>
<span class="nx">mod</span><span class="p">(</span><span class="nx">self</span><span class="p">.</span><span class="nx">acorn</span> <span class="o">||</span> <span class="p">(</span><span class="nx">self</span><span class="p">.</span><span class="nx">acorn</span> <span class="o">=</span> <span class="p">{}));</span> <span class="c1">// Plain browser env</span>
<span class="p">})(</span><span class="kd">function</span><span class="p">(</span><span class="nx">exports</span><span class="p">)</span> <span class="p">{</span>
<span class="s2">&quot;use strict&quot;</span><span class="p">;</span>
<span class="nx">exports</span><span class="p">.</span><span class="nx">version</span> <span class="o">=</span> <span class="s2">&quot;0.1.01&quot;</span><span class="p">;</span></pre></div> </td> </tr> <tr id="section-2"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-2">&#182;</a> </div> <p>The main exported interface (under <code>self.acorn</code> when in the
@@ -1284,6 +1288,6 @@ identifiers.</p> </td> <td class="code"> <
<span class="k">return</span> <span class="nx">finishNode</span><span class="p">(</span><span class="nx">node</span><span class="p">,</span> <span class="s2">&quot;Identifier&quot;</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">})(</span><span class="k">typeof</span> <span class="nx">exports</span> <span class="o">===</span> <span class="s2">&quot;undefined&quot;</span> <span class="o">?</span> <span class="p">(</span><span class="nx">self</span><span class="p">.</span><span class="nx">acorn</span> <span class="o">=</span> <span class="p">{})</span> <span class="o">:</span> <span class="nx">exports</span><span class="p">);</span>
<span class="p">});</span>
</pre></div> </td> </tr> </tbody> </table> </div> </body> </html>

View File

@@ -1,6 +1,10 @@
// AST walker module for Mozilla Parser API compatible trees
(function(exports) {
(function(mod) {
if (typeof exports == "object" && typeof module == "object") return mod(exports); // CommonJS
if (typeof define == "function" && define.amd) return define(["exports"], mod); // AMD
mod(self.acorn.walk = {}); // Plain browser env
})(function(exports) {
"use strict";
// A simple walk is one where you simply specify callbacks to be
@@ -302,4 +306,4 @@
}
});
})(typeof exports == "undefined" ? acorn.walk = {} : exports);
});