Dependencies Parser
define(function(require, exports, module) { var test = require('../test'); var a = "They stretch'd in never-ending line.\\"; var bs ='\\'; var a = 1 / 2; //require("a2") var a = c / b require("./a") //require("b2") require('a'); require ('b') require( "b" ) ; var o = { require: function() { }, f:require('f') }; o.require('d'); o.require(require('e' )); /** * require('./b') */ var $require = function() {}; $require('$require'); var xrequire = function() {}; xrequire('xrequire'); test.assert(require('b').name === 'b', 'b'); test.assert(require('e').name === 'e', 'e'); /** * @fileoverview Module authoring format. */ var define = function() { // some comment var reg = /.*/g; // comment */ } /* ok, I will disappear. */ var s = '// i am string'; require('x'); var t = 'i am string too'; // require('z'); exports.s = 'xx // xx' + require('s'); /* will not // be removed */ var xx = 'a'; // // var Calendar = require('calendar'); var str = " /* not a real comment */ "; var regex = /\/*.*/; var tt = '"\''; var xxxx = 'require("show_me_the_money")'; var r = /\/*require('r')*/; var r2 = /require("r2")/ var weird = / \/\/ \/b\//g; $(element). width(). height(). require("rare_ethan_zhang") var r = /[//]no 'comment[*/]/ var rare=/ // /b\//g; var rare2 = 'xxxx \ // xxxx\ require("rare_winter_1") \ ' var x =/ x /* 333 require("rare_winter_2") /* ^_^ */ var x =2/ x /* 333 require("rare_winter_3") /* ^_^ */ if(a+b)/ x /* 333 require("rare_winter_4") /* ^_^ */ (a+b)/ x /* 333 require("rare_winter_5") /* ^_^ */ });
Parse Dependencies
References
seajs#478
http://jsperf.com/parse-dependencies/3
Removing comments in JavaScript
DEMO
https://github.com/seajs/seajs/issues/478
http://jsperf.com/remove-comments
http://stackoverflow.com/questions/3577767/javascript-comment-stripper