diff options
author | Jez Ng <me@jezng.com> | 2013-06-19 05:08:58 -0700 |
---|---|---|
committer | Jez Ng <me@jezng.com> | 2013-06-19 14:15:18 -0700 |
commit | 050335fd91a09cde7ccea9f1fc0ecf536918b95a (patch) | |
tree | 3b597f4054cb20a07548378adad6784da8f46b92 /tools/node_modules/source-map/lib | |
parent | 54a59bee849be1da0c6d1de0dc4a6a73744c6d04 (diff) |
Update the source-map library.
Diffstat (limited to 'tools/node_modules/source-map/lib')
-rw-r--r-- | tools/node_modules/source-map/lib/source-map/source-map-consumer.js | 14 | ||||
-rw-r--r-- | tools/node_modules/source-map/lib/source-map/util.js | 28 |
2 files changed, 36 insertions, 6 deletions
diff --git a/tools/node_modules/source-map/lib/source-map/source-map-consumer.js b/tools/node_modules/source-map/lib/source-map/source-map-consumer.js index 9da6f1c6..e7b3538e 100644 --- a/tools/node_modules/source-map/lib/source-map/source-map-consumer.js +++ b/tools/node_modules/source-map/lib/source-map/source-map-consumer.js @@ -309,17 +309,21 @@ define(function (require, exports, module) { } if (this.sourceRoot) { - // Try to remove the sourceRoot - var relativeUrl = util.relative(this.sourceRoot, aSource); - if (this._sources.has(relativeUrl)) { - return this.sourcesContent[this._sources.indexOf(relativeUrl)]; - } + aSource = util.relative(this.sourceRoot, aSource); } if (this._sources.has(aSource)) { return this.sourcesContent[this._sources.indexOf(aSource)]; } + var url; + if (this.sourceRoot + && (url = util.urlParse(this.sourceRoot)) + && (!url.path || url.path == "/") + && this._sources.has("/" + aSource)) { + return this.sourcesContent[this._sources.indexOf("/" + aSource)]; + } + throw new Error('"' + aSource + '" is not in the SourceMap.'); }; diff --git a/tools/node_modules/source-map/lib/source-map/util.js b/tools/node_modules/source-map/lib/source-map/util.js index d59b2574..af5c58b4 100644 --- a/tools/node_modules/source-map/lib/source-map/util.js +++ b/tools/node_modules/source-map/lib/source-map/util.js @@ -45,6 +45,25 @@ define(function (require, exports, module) { path: match[7] }; } + exports.urlParse = urlParse; + + function urlGenerate(aParsedUrl) { + var url = aParsedUrl.scheme + "://"; + if (aParsedUrl.auth) { + url += aParsedUrl.auth + "@" + } + if (aParsedUrl.host) { + url += aParsedUrl.host; + } + if (aParsedUrl.port) { + url += ":" + aParsedUrl.port + } + if (aParsedUrl.path) { + url += aParsedUrl.path; + } + return url; + } + exports.urlGenerate = urlGenerate; function join(aRoot, aPath) { var url; @@ -54,7 +73,8 @@ define(function (require, exports, module) { } if (aPath.charAt(0) === '/' && (url = urlParse(aRoot))) { - return aRoot.replace(url.path, '') + aPath; + url.path = aPath; + return urlGenerate(url); } return aRoot.replace(/\/$/, '') + '/' + aPath; @@ -82,6 +102,12 @@ define(function (require, exports, module) { function relative(aRoot, aPath) { aRoot = aRoot.replace(/\/$/, ''); + + var url = urlParse(aRoot); + if (aPath.charAt(0) == "/" && url && url.path == "/") { + return aPath.slice(1); + } + return aPath.indexOf(aRoot + '/') === 0 ? aPath.substr(aRoot.length + 1) : aPath; |