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

Side by Side Diff: src/messages.js

Issue 8701006: Clean up JavaScript files to better follow coding standard. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Remove more empty statments and fix bug. Created 9 years 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/liveedit-debugger.js ('k') | src/mirror-debugger.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after
387 387
388 // Adjust according to the offset within the resource. 388 // Adjust according to the offset within the resource.
389 if (include_resource_offset) { 389 if (include_resource_offset) {
390 line += this.line_offset; 390 line += this.line_offset;
391 if (line == this.line_offset) { 391 if (line == this.line_offset) {
392 column += this.column_offset; 392 column += this.column_offset;
393 } 393 }
394 } 394 }
395 395
396 return new SourceLocation(this, position, line, column, start, end); 396 return new SourceLocation(this, position, line, column, start, end);
397 }; 397 }
398 398
399 399
400 /** 400 /**
401 * Get information on a specific source line and column possibly offset by a 401 * Get information on a specific source line and column possibly offset by a
402 * fixed source position. This function is used to find a source position from 402 * fixed source position. This function is used to find a source position from
403 * a line and column position. The fixed source position offset is typically 403 * a line and column position. The fixed source position offset is typically
404 * used to find a source position in a function based on a line and column in 404 * used to find a source position in a function based on a line and column in
405 * the source for the function alone. The offset passed will then be the 405 * the source for the function alone. The offset passed will then be the
406 * start position of the source for the function within the full script source. 406 * start position of the source for the function within the full script source.
407 * @param {number} opt_line The line within the source. Default value is 0 407 * @param {number} opt_line The line within the source. Default value is 0
408 * @param {number} opt_column The column in within the line. Default value is 0 408 * @param {number} opt_column The column in within the line. Default value is 0
409 * @param {number} opt_offset_position The offset from the begining of the 409 * @param {number} opt_offset_position The offset from the begining of the
410 * source from where the line and column calculation starts. 410 * source from where the line and column calculation starts.
411 * Default value is 0 411 * Default value is 0
412 * @return {SourceLocation} 412 * @return {SourceLocation}
413 * If line is negative or not in the source null is returned. 413 * If line is negative or not in the source null is returned.
414 */ 414 */
415 function ScriptLocationFromLine(opt_line, opt_column, opt_offset_position) { 415 function ScriptLocationFromLine(opt_line, opt_column, opt_offset_position) {
416 // Default is the first line in the script. Lines in the script is relative 416 // Default is the first line in the script. Lines in the script is relative
417 // to the offset within the resource. 417 // to the offset within the resource.
418 var line = 0; 418 var line = 0;
419 if (!IS_UNDEFINED(opt_line)) { 419 if (!IS_UNDEFINED(opt_line)) {
420 line = opt_line - this.line_offset; 420 line = opt_line - this.line_offset;
421 } 421 }
422 422
423 // Default is first column. If on the first line add the offset within the 423 // Default is first column. If on the first line add the offset within the
424 // resource. 424 // resource.
425 var column = opt_column || 0; 425 var column = opt_column || 0;
426 if (line == 0) { 426 if (line == 0) {
427 column -= this.column_offset 427 column -= this.column_offset;
428 } 428 }
429 429
430 var offset_position = opt_offset_position || 0; 430 var offset_position = opt_offset_position || 0;
431 if (line < 0 || column < 0 || offset_position < 0) return null; 431 if (line < 0 || column < 0 || offset_position < 0) return null;
432 if (line == 0) { 432 if (line == 0) {
433 return this.locationFromPosition(offset_position + column, false); 433 return this.locationFromPosition(offset_position + column, false);
434 } else { 434 } else {
435 // Find the line where the offset position is located. 435 // Find the line where the offset position is located.
436 var offset_line = this.lineFromPosition(offset_position); 436 var offset_line = this.lineFromPosition(offset_position);
437 437
438 if (offset_line == -1 || offset_line + line >= this.lineCount()) { 438 if (offset_line == -1 || offset_line + line >= this.lineCount()) {
439 return null; 439 return null;
440 } 440 }
441 441
442 return this.locationFromPosition(this.line_ends[offset_line + line - 1] + 1 + column); // line > 0 here. 442 return this.locationFromPosition(
443 this.line_ends[offset_line + line - 1] + 1 + column); // line > 0 here.
443 } 444 }
444 } 445 }
445 446
446 447
447 /** 448 /**
448 * Get a slice of source code from the script. The boundaries for the slice is 449 * Get a slice of source code from the script. The boundaries for the slice is
449 * specified in lines. 450 * specified in lines.
450 * @param {number} opt_from_line The first line (zero bound) in the slice. 451 * @param {number} opt_from_line The first line (zero bound) in the slice.
451 * Default is 0 452 * Default is 0
452 * @param {number} opt_to_column The last line (zero bound) in the slice (non 453 * @param {number} opt_to_column The last line (zero bound) in the slice (non
453 * inclusive). Default is the number of lines in the script 454 * inclusive). Default is the number of lines in the script
454 * @return {SourceSlice} The source slice or null of the parameters where 455 * @return {SourceSlice} The source slice or null of the parameters where
455 * invalid 456 * invalid
456 */ 457 */
457 function ScriptSourceSlice(opt_from_line, opt_to_line) { 458 function ScriptSourceSlice(opt_from_line, opt_to_line) {
458 var from_line = IS_UNDEFINED(opt_from_line) ? this.line_offset : opt_from_line ; 459 var from_line = IS_UNDEFINED(opt_from_line) ? this.line_offset
459 var to_line = IS_UNDEFINED(opt_to_line) ? this.line_offset + this.lineCount() : opt_to_line 460 : opt_from_line;
461 var to_line = IS_UNDEFINED(opt_to_line) ? this.line_offset + this.lineCount()
462 : opt_to_line;
460 463
461 // Adjust according to the offset within the resource. 464 // Adjust according to the offset within the resource.
462 from_line -= this.line_offset; 465 from_line -= this.line_offset;
463 to_line -= this.line_offset; 466 to_line -= this.line_offset;
464 if (from_line < 0) from_line = 0; 467 if (from_line < 0) from_line = 0;
465 if (to_line > this.lineCount()) to_line = this.lineCount(); 468 if (to_line > this.lineCount()) to_line = this.lineCount();
466 469
467 // Check parameters. 470 // Check parameters.
468 if (from_line >= this.lineCount() || 471 if (from_line >= this.lineCount() ||
469 to_line < 0 || 472 to_line < 0 ||
470 from_line > to_line) { 473 from_line > to_line) {
471 return null; 474 return null;
472 } 475 }
473 476
474 var line_ends = this.line_ends; 477 var line_ends = this.line_ends;
475 var from_position = from_line == 0 ? 0 : line_ends[from_line - 1] + 1; 478 var from_position = from_line == 0 ? 0 : line_ends[from_line - 1] + 1;
476 var to_position = to_line == 0 ? 0 : line_ends[to_line - 1] + 1; 479 var to_position = to_line == 0 ? 0 : line_ends[to_line - 1] + 1;
477 480
478 // Return a source slice with line numbers re-adjusted to the resource. 481 // Return a source slice with line numbers re-adjusted to the resource.
479 return new SourceSlice(this, from_line + this.line_offset, to_line + this.line _offset, 482 return new SourceSlice(this,
480 from_position, to_position); 483 from_line + this.line_offset,
484 to_line + this.line_offset,
485 from_position, to_position);
481 } 486 }
482 487
483 488
484 function ScriptSourceLine(opt_line) { 489 function ScriptSourceLine(opt_line) {
485 // Default is the first line in the script. Lines in the script are relative 490 // Default is the first line in the script. Lines in the script are relative
486 // to the offset within the resource. 491 // to the offset within the resource.
487 var line = 0; 492 var line = 0;
488 if (!IS_UNDEFINED(opt_line)) { 493 if (!IS_UNDEFINED(opt_line)) {
489 line = opt_line - this.line_offset; 494 line = opt_line - this.line_offset;
490 } 495 }
(...skipping 12 matching lines...) Expand all
503 508
504 509
505 /** 510 /**
506 * Returns the number of source lines. 511 * Returns the number of source lines.
507 * @return {number} 512 * @return {number}
508 * Number of source lines. 513 * Number of source lines.
509 */ 514 */
510 function ScriptLineCount() { 515 function ScriptLineCount() {
511 // Return number of source lines. 516 // Return number of source lines.
512 return this.line_ends.length; 517 return this.line_ends.length;
513 }; 518 }
514 519
515 520
516 /** 521 /**
517 * Returns the name of script if available, contents of sourceURL comment 522 * Returns the name of script if available, contents of sourceURL comment
518 * otherwise. See 523 * otherwise. See
519 * http://fbug.googlecode.com/svn/branches/firebug1.1/docs/ReleaseNotes_1.1.txt 524 * http://fbug.googlecode.com/svn/branches/firebug1.1/docs/ReleaseNotes_1.1.txt
520 * for details on using //@ sourceURL comment to identify scritps that don't 525 * for details on using //@ sourceURL comment to identify scritps that don't
521 * have name. 526 * have name.
522 * 527 *
523 * @return {?string} script name if present, value for //@ sourceURL comment 528 * @return {?string} script name if present, value for //@ sourceURL comment
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
568 573
569 /** 574 /**
570 * Class for source location. A source location is a position within some 575 * Class for source location. A source location is a position within some
571 * source with the following properties: 576 * source with the following properties:
572 * script : script object for the source 577 * script : script object for the source
573 * line : source line number 578 * line : source line number
574 * column : source column within the line 579 * column : source column within the line
575 * position : position within the source 580 * position : position within the source
576 * start : position of start of source context (inclusive) 581 * start : position of start of source context (inclusive)
577 * end : position of end of source context (not inclusive) 582 * end : position of end of source context (not inclusive)
578 * Source text for the source context is the character interval [start, end[. In 583 * Source text for the source context is the character interval
579 * most cases end will point to a newline character. It might point just past 584 * [start, end[. In most cases end will point to a newline character.
580 * the final position of the source if the last source line does not end with a 585 * It might point just past the final position of the source if the last
581 * newline character. 586 * source line does not end with a newline character.
582 * @param {Script} script The Script object for which this is a location 587 * @param {Script} script The Script object for which this is a location
583 * @param {number} position Source position for the location 588 * @param {number} position Source position for the location
584 * @param {number} line The line number for the location 589 * @param {number} line The line number for the location
585 * @param {number} column The column within the line for the location 590 * @param {number} column The column within the line for the location
586 * @param {number} start Source position for start of source context 591 * @param {number} start Source position for start of source context
587 * @param {number} end Source position for end of source context 592 * @param {number} end Source position for end of source context
588 * @constructor 593 * @constructor
589 */ 594 */
590 function SourceLocation(script, position, line, column, start, end) { 595 function SourceLocation(script, position, line, column, start, end) {
591 this.script = script; 596 this.script = script;
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
638 var end_limit = this.position + limit - before; 643 var end_limit = this.position + limit - before;
639 if (this.start < start_limit && end_limit < this.end) { 644 if (this.start < start_limit && end_limit < this.end) {
640 this.start = start_limit; 645 this.start = start_limit;
641 this.end = end_limit; 646 this.end = end_limit;
642 } else if (this.start < start_limit) { 647 } else if (this.start < start_limit) {
643 this.start = this.end - limit; 648 this.start = this.end - limit;
644 } else { 649 } else {
645 this.end = this.start + limit; 650 this.end = this.start + limit;
646 } 651 }
647 } 652 }
648 }; 653 }
649 654
650 655
651 /** 656 /**
652 * Get the source text for a SourceLocation 657 * Get the source text for a SourceLocation
653 * @return {String} 658 * @return {String}
654 * Source text for this location. 659 * Source text for this location.
655 */ 660 */
656 function SourceLocationSourceText() { 661 function SourceLocationSourceText() {
657 return %_CallFunction(this.script.source, this.start, this.end, StringSubstrin g); 662 return %_CallFunction(this.script.source,
658 }; 663 this.start,
664 this.end,
665 StringSubstring);
666 }
659 667
660 668
661 SetUpLockedPrototype(SourceLocation, 669 SetUpLockedPrototype(SourceLocation,
662 $Array("script", "position", "line", "column", "start", "end"), 670 $Array("script", "position", "line", "column", "start", "end"),
663 $Array( 671 $Array(
664 "restrict", SourceLocationRestrict, 672 "restrict", SourceLocationRestrict,
665 "sourceText", SourceLocationSourceText 673 "sourceText", SourceLocationSourceText
666 ) 674 )
667 ); 675 );
668 676
669 677
670 /** 678 /**
671 * Class for a source slice. A source slice is a part of a script source with 679 * Class for a source slice. A source slice is a part of a script source with
672 * the following properties: 680 * the following properties:
673 * script : script object for the source 681 * script : script object for the source
674 * from_line : line number for the first line in the slice 682 * from_line : line number for the first line in the slice
675 * to_line : source line number for the last line in the slice 683 * to_line : source line number for the last line in the slice
676 * from_position : position of the first character in the slice 684 * from_position : position of the first character in the slice
(...skipping 19 matching lines...) Expand all
696 /** 704 /**
697 * Get the source text for a SourceSlice 705 * Get the source text for a SourceSlice
698 * @return {String} Source text for this slice. The last line will include 706 * @return {String} Source text for this slice. The last line will include
699 * the line terminating characters (if any) 707 * the line terminating characters (if any)
700 */ 708 */
701 function SourceSliceSourceText() { 709 function SourceSliceSourceText() {
702 return %_CallFunction(this.script.source, 710 return %_CallFunction(this.script.source,
703 this.from_position, 711 this.from_position,
704 this.to_position, 712 this.to_position,
705 StringSubstring); 713 StringSubstring);
706 }; 714 }
707 715
708 SetUpLockedPrototype(SourceSlice, 716 SetUpLockedPrototype(SourceSlice,
709 $Array("script", "from_line", "to_line", "from_position", "to_position"), 717 $Array("script", "from_line", "to_line", "from_position", "to_position"),
710 $Array("sourceText", SourceSliceSourceText) 718 $Array("sourceText", SourceSliceSourceText)
711 ); 719 );
712 720
713 721
714 // Returns the offset of the given position within the containing 722 // Returns the offset of the given position within the containing
715 // line. 723 // line.
716 function GetPositionInLine(message) { 724 function GetPositionInLine(message) {
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
755 } 763 }
756 764
757 function CallSite(receiver, fun, pos) { 765 function CallSite(receiver, fun, pos) {
758 this.receiver = receiver; 766 this.receiver = receiver;
759 this.fun = fun; 767 this.fun = fun;
760 this.pos = pos; 768 this.pos = pos;
761 } 769 }
762 770
763 function CallSiteGetThis() { 771 function CallSiteGetThis() {
764 return this.receiver; 772 return this.receiver;
765 }; 773 }
766 774
767 function CallSiteGetTypeName() { 775 function CallSiteGetTypeName() {
768 var constructor = this.receiver.constructor; 776 var constructor = this.receiver.constructor;
769 if (!constructor) { 777 if (!constructor) {
770 return %_CallFunction(this.receiver, ObjectToString); 778 return %_CallFunction(this.receiver, ObjectToString);
771 } 779 }
772 var constructorName = constructor.name; 780 var constructorName = constructor.name;
773 if (!constructorName) { 781 if (!constructorName) {
774 return %_CallFunction(this.receiver, ObjectToString); 782 return %_CallFunction(this.receiver, ObjectToString);
775 } 783 }
776 return constructorName; 784 return constructorName;
777 }; 785 }
778 786
779 function CallSiteIsToplevel() { 787 function CallSiteIsToplevel() {
780 if (this.receiver == null) { 788 if (this.receiver == null) {
781 return true; 789 return true;
782 } 790 }
783 return IS_GLOBAL(this.receiver); 791 return IS_GLOBAL(this.receiver);
784 }; 792 }
785 793
786 function CallSiteIsEval() { 794 function CallSiteIsEval() {
787 var script = %FunctionGetScript(this.fun); 795 var script = %FunctionGetScript(this.fun);
788 return script && script.compilation_type == COMPILATION_TYPE_EVAL; 796 return script && script.compilation_type == COMPILATION_TYPE_EVAL;
789 }; 797 }
790 798
791 function CallSiteGetEvalOrigin() { 799 function CallSiteGetEvalOrigin() {
792 var script = %FunctionGetScript(this.fun); 800 var script = %FunctionGetScript(this.fun);
793 return FormatEvalOrigin(script); 801 return FormatEvalOrigin(script);
794 }; 802 }
795 803
796 function CallSiteGetScriptNameOrSourceURL() { 804 function CallSiteGetScriptNameOrSourceURL() {
797 var script = %FunctionGetScript(this.fun); 805 var script = %FunctionGetScript(this.fun);
798 return script ? script.nameOrSourceURL() : null; 806 return script ? script.nameOrSourceURL() : null;
799 }; 807 }
800 808
801 function CallSiteGetFunction() { 809 function CallSiteGetFunction() {
802 return this.fun; 810 return this.fun;
803 }; 811 }
804 812
805 function CallSiteGetFunctionName() { 813 function CallSiteGetFunctionName() {
806 // See if the function knows its own name 814 // See if the function knows its own name
807 var name = this.fun.name; 815 var name = this.fun.name;
808 if (name) { 816 if (name) {
809 return name; 817 return name;
810 } else { 818 } else {
811 return %FunctionGetInferredName(this.fun); 819 return %FunctionGetInferredName(this.fun);
812 } 820 }
813 // Maybe this is an evaluation? 821 // Maybe this is an evaluation?
814 var script = %FunctionGetScript(this.fun); 822 var script = %FunctionGetScript(this.fun);
815 if (script && script.compilation_type == COMPILATION_TYPE_EVAL) { 823 if (script && script.compilation_type == COMPILATION_TYPE_EVAL) {
816 return "eval"; 824 return "eval";
817 } 825 }
818 return null; 826 return null;
819 }; 827 }
820 828
821 function CallSiteGetMethodName() { 829 function CallSiteGetMethodName() {
822 // See if we can find a unique property on the receiver that holds 830 // See if we can find a unique property on the receiver that holds
823 // this function. 831 // this function.
824 var ownName = this.fun.name; 832 var ownName = this.fun.name;
825 if (ownName && this.receiver && 833 if (ownName && this.receiver &&
826 (%_CallFunction(this.receiver, ownName, ObjectLookupGetter) === this.fun | | 834 (%_CallFunction(this.receiver,
827 %_CallFunction(this.receiver, ownName, ObjectLookupSetter) === this.fun | | 835 ownName,
836 ObjectLookupGetter) === this.fun ||
837 %_CallFunction(this.receiver,
838 ownName,
839 ObjectLookupSetter) === this.fun ||
828 this.receiver[ownName] === this.fun)) { 840 this.receiver[ownName] === this.fun)) {
829 // To handle DontEnum properties we guess that the method has 841 // To handle DontEnum properties we guess that the method has
830 // the same name as the function. 842 // the same name as the function.
831 return ownName; 843 return ownName;
832 } 844 }
833 var name = null; 845 var name = null;
834 for (var prop in this.receiver) { 846 for (var prop in this.receiver) {
835 if (this.receiver.__lookupGetter__(prop) === this.fun || 847 if (this.receiver.__lookupGetter__(prop) === this.fun ||
836 this.receiver.__lookupSetter__(prop) === this.fun || 848 this.receiver.__lookupSetter__(prop) === this.fun ||
837 (!this.receiver.__lookupGetter__(prop) && this.receiver[prop] === this.f un)) { 849 (!this.receiver.__lookupGetter__(prop) &&
850 this.receiver[prop] === this.fun)) {
838 // If we find more than one match bail out to avoid confusion. 851 // If we find more than one match bail out to avoid confusion.
839 if (name) { 852 if (name) {
840 return null; 853 return null;
841 } 854 }
842 name = prop; 855 name = prop;
843 } 856 }
844 } 857 }
845 if (name) { 858 if (name) {
846 return name; 859 return name;
847 } 860 }
848 return null; 861 return null;
849 }; 862 }
850 863
851 function CallSiteGetFileName() { 864 function CallSiteGetFileName() {
852 var script = %FunctionGetScript(this.fun); 865 var script = %FunctionGetScript(this.fun);
853 return script ? script.name : null; 866 return script ? script.name : null;
854 }; 867 }
855 868
856 function CallSiteGetLineNumber() { 869 function CallSiteGetLineNumber() {
857 if (this.pos == -1) { 870 if (this.pos == -1) {
858 return null; 871 return null;
859 } 872 }
860 var script = %FunctionGetScript(this.fun); 873 var script = %FunctionGetScript(this.fun);
861 var location = null; 874 var location = null;
862 if (script) { 875 if (script) {
863 location = script.locationFromPosition(this.pos, true); 876 location = script.locationFromPosition(this.pos, true);
864 } 877 }
865 return location ? location.line + 1 : null; 878 return location ? location.line + 1 : null;
866 }; 879 }
867 880
868 function CallSiteGetColumnNumber() { 881 function CallSiteGetColumnNumber() {
869 if (this.pos == -1) { 882 if (this.pos == -1) {
870 return null; 883 return null;
871 } 884 }
872 var script = %FunctionGetScript(this.fun); 885 var script = %FunctionGetScript(this.fun);
873 var location = null; 886 var location = null;
874 if (script) { 887 if (script) {
875 location = script.locationFromPosition(this.pos, true); 888 location = script.locationFromPosition(this.pos, true);
876 } 889 }
877 return location ? location.column + 1: null; 890 return location ? location.column + 1: null;
878 }; 891 }
879 892
880 function CallSiteIsNative() { 893 function CallSiteIsNative() {
881 var script = %FunctionGetScript(this.fun); 894 var script = %FunctionGetScript(this.fun);
882 return script ? (script.type == TYPE_NATIVE) : false; 895 return script ? (script.type == TYPE_NATIVE) : false;
883 }; 896 }
884 897
885 function CallSiteGetPosition() { 898 function CallSiteGetPosition() {
886 return this.pos; 899 return this.pos;
887 }; 900 }
888 901
889 function CallSiteIsConstructor() { 902 function CallSiteIsConstructor() {
890 var constructor = this.receiver ? this.receiver.constructor : null; 903 var constructor = this.receiver ? this.receiver.constructor : null;
891 if (!constructor) { 904 if (!constructor) {
892 return false; 905 return false;
893 } 906 }
894 return this.fun === constructor; 907 return this.fun === constructor;
895 }; 908 }
896 909
897 SetUpLockedPrototype(CallSite, $Array("receiver", "fun", "pos"), $Array( 910 SetUpLockedPrototype(CallSite, $Array("receiver", "fun", "pos"), $Array(
898 "getThis", CallSiteGetThis, 911 "getThis", CallSiteGetThis,
899 "getTypeName", CallSiteGetTypeName, 912 "getTypeName", CallSiteGetTypeName,
900 "isToplevel", CallSiteIsToplevel, 913 "isToplevel", CallSiteIsToplevel,
901 "isEval", CallSiteIsEval, 914 "isEval", CallSiteIsEval,
902 "getEvalOrigin", CallSiteGetEvalOrigin, 915 "getEvalOrigin", CallSiteGetEvalOrigin,
903 "getScriptNameOrSourceURL", CallSiteGetScriptNameOrSourceURL, 916 "getScriptNameOrSourceURL", CallSiteGetScriptNameOrSourceURL,
904 "getFunction", CallSiteGetFunction, 917 "getFunction", CallSiteGetFunction,
905 "getFunctionName", CallSiteGetFunctionName, 918 "getFunctionName", CallSiteGetFunctionName,
(...skipping 22 matching lines...) Expand all
928 941
929 var eval_from_script = script.eval_from_script; 942 var eval_from_script = script.eval_from_script;
930 if (eval_from_script) { 943 if (eval_from_script) {
931 if (eval_from_script.compilation_type == COMPILATION_TYPE_EVAL) { 944 if (eval_from_script.compilation_type == COMPILATION_TYPE_EVAL) {
932 // eval script originated from another eval. 945 // eval script originated from another eval.
933 eval_origin += " (" + FormatEvalOrigin(eval_from_script) + ")"; 946 eval_origin += " (" + FormatEvalOrigin(eval_from_script) + ")";
934 } else { 947 } else {
935 // eval script originated from "real" source. 948 // eval script originated from "real" source.
936 if (eval_from_script.name) { 949 if (eval_from_script.name) {
937 eval_origin += " (" + eval_from_script.name; 950 eval_origin += " (" + eval_from_script.name;
938 var location = eval_from_script.locationFromPosition(script.eval_from_sc ript_position, true); 951 var location = eval_from_script.locationFromPosition(
952 script.eval_from_script_position, true);
939 if (location) { 953 if (location) {
940 eval_origin += ":" + (location.line + 1); 954 eval_origin += ":" + (location.line + 1);
941 eval_origin += ":" + (location.column + 1); 955 eval_origin += ":" + (location.column + 1);
942 } 956 }
943 eval_origin += ")" 957 eval_origin += ")";
944 } else { 958 } else {
945 eval_origin += " (unknown source)"; 959 eval_origin += " (unknown source)";
946 } 960 }
947 } 961 }
948 } 962 }
949 963
950 return eval_origin; 964 return eval_origin;
951 }; 965 }
952 966
953 function FormatSourcePosition(frame) { 967 function FormatSourcePosition(frame) {
954 var fileName; 968 var fileName;
955 var fileLocation = ""; 969 var fileLocation = "";
956 if (frame.isNative()) { 970 if (frame.isNative()) {
957 fileLocation = "native"; 971 fileLocation = "native";
958 } else if (frame.isEval()) { 972 } else if (frame.isEval()) {
959 fileName = frame.getScriptNameOrSourceURL(); 973 fileName = frame.getScriptNameOrSourceURL();
960 if (!fileName) 974 if (!fileName) {
961 fileLocation = frame.getEvalOrigin(); 975 fileLocation = frame.getEvalOrigin();
976 }
962 } else { 977 } else {
963 fileName = frame.getFileName(); 978 fileName = frame.getFileName();
964 } 979 }
965 980
966 if (fileName) { 981 if (fileName) {
967 fileLocation += fileName; 982 fileLocation += fileName;
968 var lineNumber = frame.getLineNumber(); 983 var lineNumber = frame.getLineNumber();
969 if (lineNumber != null) { 984 if (lineNumber != null) {
970 fileLocation += ":" + lineNumber; 985 fileLocation += ":" + lineNumber;
971 var columnNumber = frame.getColumnNumber(); 986 var columnNumber = frame.getColumnNumber();
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
1060 if (!stackTraceLimit || !IS_NUMBER(stackTraceLimit)) return; 1075 if (!stackTraceLimit || !IS_NUMBER(stackTraceLimit)) return;
1061 if (stackTraceLimit < 0 || stackTraceLimit > 10000) { 1076 if (stackTraceLimit < 0 || stackTraceLimit > 10000) {
1062 stackTraceLimit = 10000; 1077 stackTraceLimit = 10000;
1063 } 1078 }
1064 var raw_stack = %CollectStackTrace(cons_opt 1079 var raw_stack = %CollectStackTrace(cons_opt
1065 ? cons_opt 1080 ? cons_opt
1066 : captureStackTrace, stackTraceLimit); 1081 : captureStackTrace, stackTraceLimit);
1067 DefineOneShotAccessor(obj, 'stack', function (obj) { 1082 DefineOneShotAccessor(obj, 'stack', function (obj) {
1068 return FormatRawStackTrace(obj, raw_stack); 1083 return FormatRawStackTrace(obj, raw_stack);
1069 }); 1084 });
1070 }; 1085 }
1071 1086
1072 1087
1073 function SetUpError() { 1088 function SetUpError() {
1074 // Define special error type constructors. 1089 // Define special error type constructors.
1075 1090
1076 function DefineError(f) { 1091 function DefineError(f) {
1077 // Store the error function in both the global object 1092 // Store the error function in both the global object
1078 // and the runtime object. The function is fetched 1093 // and the runtime object. The function is fetched
1079 // from the runtime object when throwing errors from 1094 // from the runtime object when throwing errors from
1080 // within the runtime system to avoid strange side 1095 // within the runtime system to avoid strange side
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
1150 1165
1151 // Global list of error objects visited during ErrorToString. This is 1166 // Global list of error objects visited during ErrorToString. This is
1152 // used to detect cycles in error toString formatting. 1167 // used to detect cycles in error toString formatting.
1153 const visited_errors = new InternalArray(); 1168 const visited_errors = new InternalArray();
1154 const cyclic_error_marker = new $Object(); 1169 const cyclic_error_marker = new $Object();
1155 1170
1156 function ErrorToStringDetectCycle(error) { 1171 function ErrorToStringDetectCycle(error) {
1157 if (!%PushIfAbsent(visited_errors, error)) throw cyclic_error_marker; 1172 if (!%PushIfAbsent(visited_errors, error)) throw cyclic_error_marker;
1158 try { 1173 try {
1159 var type = error.type; 1174 var type = error.type;
1160 var name = error.name 1175 var name = error.name;
1161 name = IS_UNDEFINED(name) ? "Error" : TO_STRING_INLINE(name); 1176 name = IS_UNDEFINED(name) ? "Error" : TO_STRING_INLINE(name);
1162 var message = error.message; 1177 var message = error.message;
1163 var hasMessage = %_CallFunction(error, "message", ObjectHasOwnProperty); 1178 var hasMessage = %_CallFunction(error, "message", ObjectHasOwnProperty);
1164 if (type && !hasMessage) { 1179 if (type && !hasMessage) {
1165 message = FormatMessage(%NewMessageObject(type, error.arguments)); 1180 message = FormatMessage(%NewMessageObject(type, error.arguments));
1166 } 1181 }
1167 message = IS_UNDEFINED(message) ? "" : TO_STRING_INLINE(message); 1182 message = IS_UNDEFINED(message) ? "" : TO_STRING_INLINE(message);
1168 if (name === "") return message; 1183 if (name === "") return message;
1169 if (message === "") return name; 1184 if (message === "") return name;
1170 return name + ": " + message; 1185 return name + ": " + message;
(...skipping 19 matching lines...) Expand all
1190 throw e; 1205 throw e;
1191 } 1206 }
1192 } 1207 }
1193 1208
1194 1209
1195 InstallFunctions($Error.prototype, DONT_ENUM, ['toString', ErrorToString]); 1210 InstallFunctions($Error.prototype, DONT_ENUM, ['toString', ErrorToString]);
1196 1211
1197 // Boilerplate for exceptions for stack overflows. Used from 1212 // Boilerplate for exceptions for stack overflows. Used from
1198 // Isolate::StackOverflow(). 1213 // Isolate::StackOverflow().
1199 const kStackOverflowBoilerplate = MakeRangeError('stack_overflow', []); 1214 const kStackOverflowBoilerplate = MakeRangeError('stack_overflow', []);
OLDNEW
« no previous file with comments | « src/liveedit-debugger.js ('k') | src/mirror-debugger.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698