| Index: src/messages.js
 | 
| diff --git a/src/messages.js b/src/messages.js
 | 
| index ea0096fe1ae85a2c369e56c602e4d36129a20631..45de71c9285454e88fd24cb406c5d00110a84e5e 100644
 | 
| --- a/src/messages.js
 | 
| +++ b/src/messages.js
 | 
| @@ -495,10 +495,24 @@ Script.prototype.nameOrSourceURL = function() {
 | 
|    // because this file is being processed by js2c whose handling of spaces
 | 
|    // in regexps is broken. Also, ['"] are excluded from allowed URLs to
 | 
|    // avoid matches against sources that invoke evals with sourceURL.
 | 
| -  var sourceUrlPattern =
 | 
| -    /\/\/@[\040\t]sourceURL=[\040\t]*([^\s'"]*)[\040\t]*$/m;
 | 
| -  var match = sourceUrlPattern.exec(this.source);
 | 
| -  return match ? match[1] : this.name;
 | 
| +  // A better solution would be to detect these special comments in
 | 
| +  // the scanner/parser.
 | 
| +  var source = ToString(this.source);
 | 
| +  var sourceUrlPos = %StringIndexOf(source, "sourceURL=", 0);
 | 
| +  if (sourceUrlPos > 4) {
 | 
| +    var sourceUrlPattern =
 | 
| +        /\/\/@[\040\t]sourceURL=[\040\t]*([^\s\'\"]*)[\040\t]*$/gm;
 | 
| +    // Don't reuse lastMatchInfo here, so we create a new array with room
 | 
| +    // for four captures (array with length one longer than the index
 | 
| +    // of the fourth capture, where the numbering is zero-based).
 | 
| +    var matchInfo = new InternalArray(CAPTURE(3) + 1);
 | 
| +    var match =
 | 
| +        %_RegExpExec(sourceUrlPattern, source, sourceUrlPos - 4, matchInfo);
 | 
| +    if (match) {
 | 
| +      return SubString(source, matchInfo[CAPTURE(2)], matchInfo[CAPTURE(3)]);
 | 
| +    }
 | 
| +  }
 | 
| +  return this.name;
 | 
|  }
 | 
|  
 | 
|  
 | 
| 
 |