Index: Source/core/inspector/InjectedScriptSource.js |
diff --git a/Source/core/inspector/InjectedScriptSource.js b/Source/core/inspector/InjectedScriptSource.js |
index b60be3e95288e365eddde8188f7fb2b7acba3747..a1569b3be3829ad82274f02841179dd25626f948 100644 |
--- a/Source/core/inspector/InjectedScriptSource.js |
+++ b/Source/core/inspector/InjectedScriptSource.js |
@@ -173,13 +173,23 @@ function max(a, b) |
} |
/** |
+ * @param {*} obj |
aandrey
2014/06/05 15:13:23
plz add:
* FIXME: Remove once ES6 is supported na
Alexandra Mikhaylova
2014/06/06 09:49:51
Done.
|
+ * @return {boolean} |
+ */ |
+function isSymbol(obj) |
+{ |
+ var type = typeof obj; |
+ return (type === "symbol"); |
+} |
+ |
+/** |
* @constructor |
*/ |
var InjectedScript = function() |
{ |
/** @type {number} */ |
this._lastBoundObjectId = 1; |
- /** @type {!Object.<number, Object>} */ |
+ /** @type {!Object.<number, (Object|symbol)>} */ |
this._idToWrappedObject = { __proto__: null }; |
/** @type {!Object.<number, string>} */ |
this._idToObjectGroupName = { __proto__: null }; |
@@ -312,7 +322,7 @@ InjectedScript.prototype = { |
}, |
/** |
- * @param {Object} object |
+ * @param {Object|symbol} object |
* @param {string=} objectGroupName |
* @return {string} |
*/ |
@@ -383,8 +393,9 @@ InjectedScript.prototype = { |
var object = this._objectForId(parsedObjectId); |
var objectGroupName = this._idToObjectGroupName[parsedObjectId.id]; |
- if (!this._isDefined(object)) |
+ if (!this._isDefined(object) || isSymbol(object)) |
return false; |
+ object = /** @type {Object} */ (object); |
var descriptors = this._propertyDescriptors(object, ownProperties, accessorPropertiesOnly); |
// Go over properties, wrap object values. |
@@ -415,8 +426,9 @@ InjectedScript.prototype = { |
var parsedObjectId = this._parseObjectId(objectId); |
var object = this._objectForId(parsedObjectId); |
var objectGroupName = this._idToObjectGroupName[parsedObjectId.id]; |
- if (!this._isDefined(object)) |
+ if (!this._isDefined(object) || isSymbol(object)) |
return false; |
+ object = /** @type {Object} */ (object); |
var descriptors = []; |
var internalProperties = InjectedScriptHost.getInternalProperties(object); |
if (internalProperties) { |
@@ -497,8 +509,7 @@ InjectedScript.prototype = { |
continue; |
var name = property; |
- var type = typeof property; |
- if (type === "symbol") |
+ if (isSymbol(property)) |
name = injectedScript._describe(property); |
try { |
@@ -532,7 +543,7 @@ InjectedScript.prototype = { |
descriptor.name = name; |
if (o === object) |
descriptor.isOwn = true; |
- if (type === "symbol") |
+ if (isSymbol(property)) |
descriptor.symbol = property; |
push(descriptors, descriptor); |
} |
@@ -874,7 +885,7 @@ InjectedScript.prototype = { |
/** |
* @param {Object} objectId |
- * @return {Object} |
+ * @return {Object|symbol} |
*/ |
_objectForId: function(objectId) |
{ |
@@ -883,7 +894,7 @@ InjectedScript.prototype = { |
/** |
* @param {string} objectId |
- * @return {Object} |
+ * @return {Object|symbol} |
*/ |
findObjectById: function(objectId) |
{ |