| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // ------------------------------------------------------------------- | 5 // ------------------------------------------------------------------- |
| 6 | 6 |
| 7 var $errorToString; | 7 var $errorToString; |
| 8 var $getStackTraceLine; | 8 var $getStackTraceLine; |
| 9 var $messageGetPositionInLine; | 9 var $messageGetPositionInLine; |
| 10 var $messageGetLineNumber; | 10 var $messageGetLineNumber; |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 var MakeEvalError; | 24 var MakeEvalError; |
| 25 var MakeRangeError; | 25 var MakeRangeError; |
| 26 var MakeReferenceError; | 26 var MakeReferenceError; |
| 27 var MakeSyntaxError; | 27 var MakeSyntaxError; |
| 28 var MakeTypeError; | 28 var MakeTypeError; |
| 29 var MakeURIError; | 29 var MakeURIError; |
| 30 var MakeReferenceErrorEmbedded; | 30 var MakeReferenceErrorEmbedded; |
| 31 var MakeSyntaxErrorEmbedded; | 31 var MakeSyntaxErrorEmbedded; |
| 32 var MakeTypeErrorEmbedded; | 32 var MakeTypeErrorEmbedded; |
| 33 | 33 |
| 34 (function(global, utils) { | 34 (function(global, shared, exports) { |
| 35 | 35 |
| 36 %CheckIsBootstrapping(); | 36 %CheckIsBootstrapping(); |
| 37 | 37 |
| 38 // ------------------------------------------------------------------- | 38 // ------------------------------------------------------------------- |
| 39 // Imports | 39 // Imports |
| 40 | 40 |
| 41 var GlobalObject = global.Object; | 41 var GlobalObject = global.Object; |
| 42 var InternalArray = utils.InternalArray; | 42 var InternalArray = shared.InternalArray; |
| 43 | |
| 44 var StringCharAt; | |
| 45 var StringIndexOf; | |
| 46 var StringSubstring; | |
| 47 | |
| 48 utils.Import(function(from) { | |
| 49 StringCharAt = from.StringCharAt; | |
| 50 StringIndexOf = from.StringIndexOf; | |
| 51 StringSubstring = from.StringSubstring; | |
| 52 }); | |
| 53 | 43 |
| 54 // ------------------------------------------------------------------- | 44 // ------------------------------------------------------------------- |
| 55 | 45 |
| 56 var GlobalError; | 46 var GlobalError; |
| 57 var GlobalTypeError; | 47 var GlobalTypeError; |
| 58 var GlobalRangeError; | 48 var GlobalRangeError; |
| 59 var GlobalURIError; | 49 var GlobalURIError; |
| 60 var GlobalSyntaxError; | 50 var GlobalSyntaxError; |
| 61 var GlobalReferenceError; | 51 var GlobalReferenceError; |
| 62 var GlobalEvalError; | 52 var GlobalEvalError; |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 248 */ | 238 */ |
| 249 function ScriptLocationFromPosition(position, | 239 function ScriptLocationFromPosition(position, |
| 250 include_resource_offset) { | 240 include_resource_offset) { |
| 251 var line = this.lineFromPosition(position); | 241 var line = this.lineFromPosition(position); |
| 252 if (line == -1) return null; | 242 if (line == -1) return null; |
| 253 | 243 |
| 254 // Determine start, end and column. | 244 // Determine start, end and column. |
| 255 var line_ends = this.line_ends; | 245 var line_ends = this.line_ends; |
| 256 var start = line == 0 ? 0 : line_ends[line - 1] + 1; | 246 var start = line == 0 ? 0 : line_ends[line - 1] + 1; |
| 257 var end = line_ends[line]; | 247 var end = line_ends[line]; |
| 258 if (end > 0 && %_CallFunction(this.source, end - 1, StringCharAt) == '\r') { | 248 if (end > 0 && %_CallFunction(this.source, end - 1, $stringCharAt) == '\r') { |
| 259 end--; | 249 end--; |
| 260 } | 250 } |
| 261 var column = position - start; | 251 var column = position - start; |
| 262 | 252 |
| 263 // Adjust according to the offset within the resource. | 253 // Adjust according to the offset within the resource. |
| 264 if (include_resource_offset) { | 254 if (include_resource_offset) { |
| 265 line += this.line_offset; | 255 line += this.line_offset; |
| 266 if (line == this.line_offset) { | 256 if (line == this.line_offset) { |
| 267 column += this.column_offset; | 257 column += this.column_offset; |
| 268 } | 258 } |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 371 | 361 |
| 372 // Check parameter. | 362 // Check parameter. |
| 373 if (line < 0 || this.lineCount() <= line) { | 363 if (line < 0 || this.lineCount() <= line) { |
| 374 return null; | 364 return null; |
| 375 } | 365 } |
| 376 | 366 |
| 377 // Return the source line. | 367 // Return the source line. |
| 378 var line_ends = this.line_ends; | 368 var line_ends = this.line_ends; |
| 379 var start = line == 0 ? 0 : line_ends[line - 1] + 1; | 369 var start = line == 0 ? 0 : line_ends[line - 1] + 1; |
| 380 var end = line_ends[line]; | 370 var end = line_ends[line]; |
| 381 return %_CallFunction(this.source, start, end, StringSubstring); | 371 return %_CallFunction(this.source, start, end, $stringSubstring); |
| 382 } | 372 } |
| 383 | 373 |
| 384 | 374 |
| 385 /** | 375 /** |
| 386 * Returns the number of source lines. | 376 * Returns the number of source lines. |
| 387 * @return {number} | 377 * @return {number} |
| 388 * Number of source lines. | 378 * Number of source lines. |
| 389 */ | 379 */ |
| 390 function ScriptLineCount() { | 380 function ScriptLineCount() { |
| 391 // Return number of source lines. | 381 // Return number of source lines. |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 462 | 452 |
| 463 /** | 453 /** |
| 464 * Get the source text for a SourceLocation | 454 * Get the source text for a SourceLocation |
| 465 * @return {String} | 455 * @return {String} |
| 466 * Source text for this location. | 456 * Source text for this location. |
| 467 */ | 457 */ |
| 468 function SourceLocationSourceText() { | 458 function SourceLocationSourceText() { |
| 469 return %_CallFunction(this.script.source, | 459 return %_CallFunction(this.script.source, |
| 470 this.start, | 460 this.start, |
| 471 this.end, | 461 this.end, |
| 472 StringSubstring); | 462 $stringSubstring); |
| 473 } | 463 } |
| 474 | 464 |
| 475 | 465 |
| 476 $setUpLockedPrototype(SourceLocation, | 466 $setUpLockedPrototype(SourceLocation, |
| 477 ["script", "position", "line", "column", "start", "end"], | 467 ["script", "position", "line", "column", "start", "end"], |
| 478 ["sourceText", SourceLocationSourceText] | 468 ["sourceText", SourceLocationSourceText] |
| 479 ); | 469 ); |
| 480 | 470 |
| 481 | 471 |
| 482 /** | 472 /** |
| (...skipping 24 matching lines...) Expand all Loading... |
| 507 | 497 |
| 508 /** | 498 /** |
| 509 * Get the source text for a SourceSlice | 499 * Get the source text for a SourceSlice |
| 510 * @return {String} Source text for this slice. The last line will include | 500 * @return {String} Source text for this slice. The last line will include |
| 511 * the line terminating characters (if any) | 501 * the line terminating characters (if any) |
| 512 */ | 502 */ |
| 513 function SourceSliceSourceText() { | 503 function SourceSliceSourceText() { |
| 514 return %_CallFunction(this.script.source, | 504 return %_CallFunction(this.script.source, |
| 515 this.from_position, | 505 this.from_position, |
| 516 this.to_position, | 506 this.to_position, |
| 517 StringSubstring); | 507 $stringSubstring); |
| 518 } | 508 } |
| 519 | 509 |
| 520 $setUpLockedPrototype(SourceSlice, | 510 $setUpLockedPrototype(SourceSlice, |
| 521 ["script", "from_line", "to_line", "from_position", "to_position"], | 511 ["script", "from_line", "to_line", "from_position", "to_position"], |
| 522 ["sourceText", SourceSliceSourceText] | 512 ["sourceText", SourceSliceSourceText] |
| 523 ); | 513 ); |
| 524 | 514 |
| 525 | 515 |
| 526 // Returns the offset of the given position within the containing | 516 // Returns the offset of the given position within the containing |
| 527 // line. | 517 // line. |
| (...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 682 var line = ""; | 672 var line = ""; |
| 683 var functionName = this.getFunctionName(); | 673 var functionName = this.getFunctionName(); |
| 684 var addSuffix = true; | 674 var addSuffix = true; |
| 685 var isConstructor = this.isConstructor(); | 675 var isConstructor = this.isConstructor(); |
| 686 var isMethodCall = !(this.isToplevel() || isConstructor); | 676 var isMethodCall = !(this.isToplevel() || isConstructor); |
| 687 if (isMethodCall) { | 677 if (isMethodCall) { |
| 688 var typeName = GetTypeName(GET_PRIVATE(this, CallSiteReceiverKey), true); | 678 var typeName = GetTypeName(GET_PRIVATE(this, CallSiteReceiverKey), true); |
| 689 var methodName = this.getMethodName(); | 679 var methodName = this.getMethodName(); |
| 690 if (functionName) { | 680 if (functionName) { |
| 691 if (typeName && | 681 if (typeName && |
| 692 %_CallFunction(functionName, typeName, StringIndexOf) != 0) { | 682 %_CallFunction(functionName, typeName, $stringIndexOf) != 0) { |
| 693 line += typeName + "."; | 683 line += typeName + "."; |
| 694 } | 684 } |
| 695 line += functionName; | 685 line += functionName; |
| 696 if (methodName && | 686 if (methodName && |
| 697 (%_CallFunction(functionName, "." + methodName, StringIndexOf) != | 687 (%_CallFunction(functionName, "." + methodName, $stringIndexOf) != |
| 698 functionName.length - methodName.length - 1)) { | 688 functionName.length - methodName.length - 1)) { |
| 699 line += " [as " + methodName + "]"; | 689 line += " [as " + methodName + "]"; |
| 700 } | 690 } |
| 701 } else { | 691 } else { |
| 702 line += typeName + "." + (methodName || "<anonymous>"); | 692 line += typeName + "." + (methodName || "<anonymous>"); |
| 703 } | 693 } |
| 704 } else if (isConstructor) { | 694 } else if (isConstructor) { |
| 705 line += "new " + (functionName || "<anonymous>"); | 695 line += "new " + (functionName || "<anonymous>"); |
| 706 } else if (functionName) { | 696 } else if (functionName) { |
| 707 line += functionName; | 697 line += functionName; |
| (...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1077 return MakeGenericError(GlobalURIError, kURIMalformed); | 1067 return MakeGenericError(GlobalURIError, kURIMalformed); |
| 1078 } | 1068 } |
| 1079 | 1069 |
| 1080 //Boilerplate for exceptions for stack overflows. Used from | 1070 //Boilerplate for exceptions for stack overflows. Used from |
| 1081 //Isolate::StackOverflow(). | 1071 //Isolate::StackOverflow(). |
| 1082 $stackOverflowBoilerplate = MakeRangeError(kStackOverflow); | 1072 $stackOverflowBoilerplate = MakeRangeError(kStackOverflow); |
| 1083 %DefineAccessorPropertyUnchecked($stackOverflowBoilerplate, 'stack', | 1073 %DefineAccessorPropertyUnchecked($stackOverflowBoilerplate, 'stack', |
| 1084 StackTraceGetter, StackTraceSetter, DONT_ENUM); | 1074 StackTraceGetter, StackTraceSetter, DONT_ENUM); |
| 1085 | 1075 |
| 1086 }) | 1076 }) |
| OLD | NEW |