Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2006-2012 the V8 project authors. All rights reserved. | 1 // Copyright 2006-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 "use strict"; | 4 "use strict"; |
| 5 | 5 |
| 6 // Handle id counters. | 6 // Handle id counters. |
| 7 var next_handle_ = 0; | 7 var next_handle_ = 0; |
| 8 var next_transient_handle_ = -1; | 8 var next_transient_handle_ = -1; |
| 9 | 9 |
| 10 // Mirror cache. | 10 // Mirror cache. |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 59 } | 59 } |
| 60 | 60 |
| 61 if (IS_UNDEFINED(value)) { | 61 if (IS_UNDEFINED(value)) { |
| 62 mirror = new UndefinedMirror(); | 62 mirror = new UndefinedMirror(); |
| 63 } else if (IS_NULL(value)) { | 63 } else if (IS_NULL(value)) { |
| 64 mirror = new NullMirror(); | 64 mirror = new NullMirror(); |
| 65 } else if (IS_BOOLEAN(value)) { | 65 } else if (IS_BOOLEAN(value)) { |
| 66 mirror = new BooleanMirror(value); | 66 mirror = new BooleanMirror(value); |
| 67 } else if (IS_NUMBER(value)) { | 67 } else if (IS_NUMBER(value)) { |
| 68 mirror = new NumberMirror(value); | 68 mirror = new NumberMirror(value); |
| 69 } else if (IS_FLOAT32X4(value)) { | |
| 70 mirror = new Float32x4Mirror(value); | |
| 69 } else if (IS_STRING(value)) { | 71 } else if (IS_STRING(value)) { |
| 70 mirror = new StringMirror(value); | 72 mirror = new StringMirror(value); |
| 71 } else if (IS_SYMBOL(value)) { | 73 } else if (IS_SYMBOL(value)) { |
| 72 mirror = new SymbolMirror(value); | 74 mirror = new SymbolMirror(value); |
| 73 } else if (IS_ARRAY(value)) { | 75 } else if (IS_ARRAY(value)) { |
| 74 mirror = new ArrayMirror(value); | 76 mirror = new ArrayMirror(value); |
| 75 } else if (IS_DATE(value)) { | 77 } else if (IS_DATE(value)) { |
| 76 mirror = new DateMirror(value); | 78 mirror = new DateMirror(value); |
| 77 } else if (IS_FUNCTION(value)) { | 79 } else if (IS_FUNCTION(value)) { |
| 78 mirror = new FunctionMirror(value); | 80 mirror = new FunctionMirror(value); |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 144 ctor.prototype = new tempCtor(); | 146 ctor.prototype = new tempCtor(); |
| 145 ctor.prototype.constructor = ctor; | 147 ctor.prototype.constructor = ctor; |
| 146 } | 148 } |
| 147 | 149 |
| 148 | 150 |
| 149 // Type names of the different mirrors. | 151 // Type names of the different mirrors. |
| 150 var UNDEFINED_TYPE = 'undefined'; | 152 var UNDEFINED_TYPE = 'undefined'; |
| 151 var NULL_TYPE = 'null'; | 153 var NULL_TYPE = 'null'; |
| 152 var BOOLEAN_TYPE = 'boolean'; | 154 var BOOLEAN_TYPE = 'boolean'; |
| 153 var NUMBER_TYPE = 'number'; | 155 var NUMBER_TYPE = 'number'; |
| 156 var FLOAT32X4_TYPE = 'float32x4'; | |
| 154 var STRING_TYPE = 'string'; | 157 var STRING_TYPE = 'string'; |
| 155 var SYMBOL_TYPE = 'symbol'; | 158 var SYMBOL_TYPE = 'symbol'; |
| 156 var OBJECT_TYPE = 'object'; | 159 var OBJECT_TYPE = 'object'; |
| 157 var FUNCTION_TYPE = 'function'; | 160 var FUNCTION_TYPE = 'function'; |
| 158 var REGEXP_TYPE = 'regexp'; | 161 var REGEXP_TYPE = 'regexp'; |
| 159 var ERROR_TYPE = 'error'; | 162 var ERROR_TYPE = 'error'; |
| 160 var PROPERTY_TYPE = 'property'; | 163 var PROPERTY_TYPE = 'property'; |
| 161 var INTERNAL_PROPERTY_TYPE = 'internalProperty'; | 164 var INTERNAL_PROPERTY_TYPE = 'internalProperty'; |
| 162 var FRAME_TYPE = 'frame'; | 165 var FRAME_TYPE = 'frame'; |
| 163 var SCRIPT_TYPE = 'script'; | 166 var SCRIPT_TYPE = 'script'; |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 204 Block: 5, | 207 Block: 5, |
| 205 Script: 6 }; | 208 Script: 6 }; |
| 206 | 209 |
| 207 | 210 |
| 208 // Mirror hierarchy: | 211 // Mirror hierarchy: |
| 209 // - Mirror | 212 // - Mirror |
| 210 // - ValueMirror | 213 // - ValueMirror |
| 211 // - UndefinedMirror | 214 // - UndefinedMirror |
| 212 // - NullMirror | 215 // - NullMirror |
| 213 // - NumberMirror | 216 // - NumberMirror |
| 217 // - Float32x4Mirror | |
| 214 // - StringMirror | 218 // - StringMirror |
| 215 // - SymbolMirror | 219 // - SymbolMirror |
| 216 // - ObjectMirror | 220 // - ObjectMirror |
| 217 // - FunctionMirror | 221 // - FunctionMirror |
| 218 // - UnresolvedFunctionMirror | 222 // - UnresolvedFunctionMirror |
| 219 // - ArrayMirror | 223 // - ArrayMirror |
| 220 // - DateMirror | 224 // - DateMirror |
| 221 // - RegExpMirror | 225 // - RegExpMirror |
| 222 // - ErrorMirror | 226 // - ErrorMirror |
| 223 // - PromiseMirror | 227 // - PromiseMirror |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 285 /** | 289 /** |
| 286 * Check whether the mirror reflects a number value. | 290 * Check whether the mirror reflects a number value. |
| 287 * @returns {boolean} True if the mirror reflects a number value | 291 * @returns {boolean} True if the mirror reflects a number value |
| 288 */ | 292 */ |
| 289 Mirror.prototype.isNumber = function() { | 293 Mirror.prototype.isNumber = function() { |
| 290 return this instanceof NumberMirror; | 294 return this instanceof NumberMirror; |
| 291 }; | 295 }; |
| 292 | 296 |
| 293 | 297 |
| 294 /** | 298 /** |
| 299 * Check whether the mirror reflects a Float32x4 value. | |
| 300 * @returns {boolean} True if the mirror reflects a Float32x4 value | |
| 301 */ | |
| 302 Mirror.prototype.isFloat32x4 = function() { | |
| 303 return this instanceof Float32x4Mirror; | |
| 304 }; | |
| 305 | |
| 306 | |
| 307 /** | |
| 295 * Check whether the mirror reflects a string value. | 308 * Check whether the mirror reflects a string value. |
| 296 * @returns {boolean} True if the mirror reflects a string value | 309 * @returns {boolean} True if the mirror reflects a string value |
| 297 */ | 310 */ |
| 298 Mirror.prototype.isString = function() { | 311 Mirror.prototype.isString = function() { |
| 299 return this instanceof StringMirror; | 312 return this instanceof StringMirror; |
| 300 }; | 313 }; |
| 301 | 314 |
| 302 | 315 |
| 303 /** | 316 /** |
| 304 * Check whether the mirror reflects a symbol. | 317 * Check whether the mirror reflects a symbol. |
| (...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 523 /** | 536 /** |
| 524 * Check whether this is a primitive value. | 537 * Check whether this is a primitive value. |
| 525 * @return {boolean} True if the mirror reflects a primitive value | 538 * @return {boolean} True if the mirror reflects a primitive value |
| 526 */ | 539 */ |
| 527 ValueMirror.prototype.isPrimitive = function() { | 540 ValueMirror.prototype.isPrimitive = function() { |
| 528 var type = this.type(); | 541 var type = this.type(); |
| 529 return type === 'undefined' || | 542 return type === 'undefined' || |
| 530 type === 'null' || | 543 type === 'null' || |
| 531 type === 'boolean' || | 544 type === 'boolean' || |
| 532 type === 'number' || | 545 type === 'number' || |
| 546 type === 'float32x4' || | |
| 533 type === 'string' || | 547 type === 'string' || |
| 534 type === 'symbol'; | 548 type === 'symbol'; |
| 535 }; | 549 }; |
| 536 | 550 |
| 537 | 551 |
| 538 /** | 552 /** |
| 539 * Get the actual value reflected by this mirror. | 553 * Get the actual value reflected by this mirror. |
| 540 * @return {value} The value reflected by this mirror | 554 * @return {value} The value reflected by this mirror |
| 541 */ | 555 */ |
| 542 ValueMirror.prototype.value = function() { | 556 ValueMirror.prototype.value = function() { |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 604 } | 618 } |
| 605 inherits(NumberMirror, ValueMirror); | 619 inherits(NumberMirror, ValueMirror); |
| 606 | 620 |
| 607 | 621 |
| 608 NumberMirror.prototype.toText = function() { | 622 NumberMirror.prototype.toText = function() { |
| 609 return %_NumberToString(this.value_); | 623 return %_NumberToString(this.value_); |
| 610 }; | 624 }; |
| 611 | 625 |
| 612 | 626 |
| 613 /** | 627 /** |
| 628 * Mirror object for Float32x4 values. | |
| 629 * @param {Float32x4} value The float32x4 value reflected by this mirror | |
| 630 * @constructor | |
| 631 * @extends ValueMirror | |
| 632 */ | |
| 633 function Float32x4Mirror(value) { | |
| 634 %_CallFunction(this, Float32x4_TYPE, value, ValueMirror); | |
|
rossberg
2015/07/02 13:35:43
Isn't this spelled FLOAT32X4_TYPE?
bbudge
2015/07/06 23:59:04
Yes, thanks.
| |
| 635 } | |
| 636 inherits(Float32x4Mirror, ValueMirror); | |
| 637 | |
| 638 | |
| 639 Float32x4Mirror.prototype.toText = function() { | |
| 640 return $float32x4ToString(this.value_); | |
| 641 }; | |
| 642 | |
| 643 | |
| 644 /** | |
| 614 * Mirror object for string values. | 645 * Mirror object for string values. |
| 615 * @param {string} value The string value reflected by this mirror | 646 * @param {string} value The string value reflected by this mirror |
| 616 * @constructor | 647 * @constructor |
| 617 * @extends ValueMirror | 648 * @extends ValueMirror |
| 618 */ | 649 */ |
| 619 function StringMirror(value) { | 650 function StringMirror(value) { |
| 620 %_CallFunction(this, STRING_TYPE, value, ValueMirror); | 651 %_CallFunction(this, STRING_TYPE, value, ValueMirror); |
| 621 } | 652 } |
| 622 inherits(StringMirror, ValueMirror); | 653 inherits(StringMirror, ValueMirror); |
| 623 | 654 |
| (...skipping 1944 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2568 JSONProtocolSerializer.prototype.serializeReferenceWithDisplayData_ = | 2599 JSONProtocolSerializer.prototype.serializeReferenceWithDisplayData_ = |
| 2569 function(mirror) { | 2600 function(mirror) { |
| 2570 var o = {}; | 2601 var o = {}; |
| 2571 o.ref = mirror.handle(); | 2602 o.ref = mirror.handle(); |
| 2572 o.type = mirror.type(); | 2603 o.type = mirror.type(); |
| 2573 switch (mirror.type()) { | 2604 switch (mirror.type()) { |
| 2574 case UNDEFINED_TYPE: | 2605 case UNDEFINED_TYPE: |
| 2575 case NULL_TYPE: | 2606 case NULL_TYPE: |
| 2576 case BOOLEAN_TYPE: | 2607 case BOOLEAN_TYPE: |
| 2577 case NUMBER_TYPE: | 2608 case NUMBER_TYPE: |
| 2609 case FLOAT32X4_TYPE: | |
| 2578 o.value = mirror.value(); | 2610 o.value = mirror.value(); |
| 2579 break; | 2611 break; |
| 2580 case STRING_TYPE: | 2612 case STRING_TYPE: |
| 2581 o.value = mirror.getTruncatedValue(this.maxStringLength_()); | 2613 o.value = mirror.getTruncatedValue(this.maxStringLength_()); |
| 2582 break; | 2614 break; |
| 2583 case SYMBOL_TYPE: | 2615 case SYMBOL_TYPE: |
| 2584 o.description = mirror.description(); | 2616 o.description = mirror.description(); |
| 2585 break; | 2617 break; |
| 2586 case FUNCTION_TYPE: | 2618 case FUNCTION_TYPE: |
| 2587 o.name = mirror.name(); | 2619 o.name = mirror.name(); |
| (...skipping 429 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3017 } | 3049 } |
| 3018 if (!NUMBER_IS_FINITE(value)) { | 3050 if (!NUMBER_IS_FINITE(value)) { |
| 3019 if (value > 0) { | 3051 if (value > 0) { |
| 3020 return 'Infinity'; | 3052 return 'Infinity'; |
| 3021 } else { | 3053 } else { |
| 3022 return '-Infinity'; | 3054 return '-Infinity'; |
| 3023 } | 3055 } |
| 3024 } | 3056 } |
| 3025 return value; | 3057 return value; |
| 3026 } | 3058 } |
| OLD | NEW |