aboutsummaryrefslogtreecommitdiff
path: root/tools/node_modules/source-map/lib
diff options
context:
space:
mode:
authorJez Ng <me@jezng.com>2013-06-19 05:08:58 -0700
committerJez Ng <me@jezng.com>2013-06-19 14:15:18 -0700
commit050335fd91a09cde7ccea9f1fc0ecf536918b95a (patch)
tree3b597f4054cb20a07548378adad6784da8f46b92 /tools/node_modules/source-map/lib
parent54a59bee849be1da0c6d1de0dc4a6a73744c6d04 (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.js14
-rw-r--r--tools/node_modules/source-map/lib/source-map/util.js28
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;