Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(234)

Unified Diff: src/mirror-delay.js

Issue 596088: Land 598061(Process //@ scriptURL=url comment for scripts that don't have nam... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 10 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | test/mjsunit/debug-compile-event.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/mirror-delay.js
===================================================================
--- src/mirror-delay.js (revision 3849)
+++ src/mirror-delay.js (working copy)
@@ -1733,7 +1733,8 @@
ScriptMirror.prototype.name = function() {
- return this.script_.name;
+ // If we have name, we trust it more than sourceURL from comments
+ return this.script_.name || this.sourceUrlFromComment_();
};
@@ -1829,6 +1830,29 @@
/**
+ * Returns a suggested script URL from comments in script code (if found),
+ * undefined otherwise. Used primarily by debuggers for identifying eval()'ed
+ * scripts. See
+ * http://fbug.googlecode.com/svn/branches/firebug1.1/docs/ReleaseNotes_1.1.txt
+ * for details.
+ *
+ * @return {?string} value for //@ sourceURL comment
+ */
+ScriptMirror.prototype.sourceUrlFromComment_ = function() {
+ if (!('sourceUrl_' in this) && this.source()) {
+ // TODO(608): the spaces in a regexp below had to be escaped as \040
+ // because this file is being processed by js2c whose handling of spaces
+ // in regexps is broken.
+ // We're not using \s here to prevent \n from matching.
+ var sourceUrlPattern = /\/\/@[\040\t]sourceURL=[\040\t]*(\S+)[\040\t]*$/m;
+ var match = sourceUrlPattern.exec(this.source());
+ this.sourceUrl_ = match ? match[1] : undefined;
+ }
+ return this.sourceUrl_;
+};
+
+
+/**
* Mirror object for context.
* @param {Object} data The context data
* @constructor
« no previous file with comments | « no previous file | test/mjsunit/debug-compile-event.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698