| Index: src/debug/mirrors.js
|
| diff --git a/src/debug/mirrors.js b/src/debug/mirrors.js
|
| index f205fed4fa5e4537b7d0da1049641e2135fa9750..24330899f1b42786d3a3ce9057e469415d44bcf9 100644
|
| --- a/src/debug/mirrors.js
|
| +++ b/src/debug/mirrors.js
|
| @@ -239,11 +239,6 @@ function inherits(ctor, superCtor) {
|
| // Maximum length when sending strings through the JSON protocol.
|
| var kMaxProtocolStringLength = 80;
|
|
|
| -// Different kind of properties.
|
| -var PropertyKind = {};
|
| -PropertyKind.Named = 1;
|
| -PropertyKind.Indexed = 2;
|
| -
|
|
|
| // A copy of the PropertyType enum from property-details.h
|
| var PropertyType = {};
|
| @@ -750,19 +745,6 @@ ObjectMirror.prototype.hasIndexedInterceptor = function() {
|
| };
|
|
|
|
|
| -// Get all own property names except for private symbols.
|
| -function TryGetPropertyNames(object) {
|
| - try {
|
| - // TODO(yangguo): Should there be a special debugger implementation of
|
| - // %GetOwnPropertyNames that doesn't perform access checks?
|
| - return %GetOwnPropertyNames(object, PROPERTY_ATTRIBUTES_PRIVATE_SYMBOL);
|
| - } catch (e) {
|
| - // Might have hit a failed access check.
|
| - return [];
|
| - }
|
| -}
|
| -
|
| -
|
| /**
|
| * Return the property names for this object.
|
| * @param {number} kind Indicate whether named, indexed or both kinds of
|
| @@ -771,66 +753,8 @@ function TryGetPropertyNames(object) {
|
| value
|
| * @return {Array} Property names for this object
|
| */
|
| -ObjectMirror.prototype.propertyNames = function(kind, limit) {
|
| - // Find kind and limit and allocate array for the result
|
| - kind = kind || PropertyKind.Named | PropertyKind.Indexed;
|
| -
|
| - var propertyNames;
|
| - var elementNames;
|
| - var total = 0;
|
| -
|
| - // Find all the named properties.
|
| - if (kind & PropertyKind.Named) {
|
| - propertyNames = TryGetPropertyNames(this.value_);
|
| - total += propertyNames.length;
|
| -
|
| - // Get names for named interceptor properties if any.
|
| - if (this.hasNamedInterceptor() && (kind & PropertyKind.Named)) {
|
| - var namedInterceptorNames =
|
| - %GetNamedInterceptorPropertyNames(this.value_);
|
| - if (namedInterceptorNames) {
|
| - propertyNames = propertyNames.concat(namedInterceptorNames);
|
| - total += namedInterceptorNames.length;
|
| - }
|
| - }
|
| - }
|
| -
|
| - // Find all the indexed properties.
|
| - if (kind & PropertyKind.Indexed) {
|
| - // Get own element names.
|
| - elementNames = %GetOwnElementNames(this.value_);
|
| - total += elementNames.length;
|
| -
|
| - // Get names for indexed interceptor properties.
|
| - if (this.hasIndexedInterceptor() && (kind & PropertyKind.Indexed)) {
|
| - var indexedInterceptorNames =
|
| - %GetIndexedInterceptorElementNames(this.value_);
|
| - if (indexedInterceptorNames) {
|
| - elementNames = elementNames.concat(indexedInterceptorNames);
|
| - total += indexedInterceptorNames.length;
|
| - }
|
| - }
|
| - }
|
| - limit = MathMin(limit || total, total);
|
| -
|
| - var names = new GlobalArray(limit);
|
| - var index = 0;
|
| -
|
| - // Copy names for named properties.
|
| - if (kind & PropertyKind.Named) {
|
| - for (var i = 0; index < limit && i < propertyNames.length; i++) {
|
| - names[index++] = propertyNames[i];
|
| - }
|
| - }
|
| -
|
| - // Copy names for indexed properties.
|
| - if (kind & PropertyKind.Indexed) {
|
| - for (var i = 0; index < limit && i < elementNames.length; i++) {
|
| - names[index++] = elementNames[i];
|
| - }
|
| - }
|
| -
|
| - return names;
|
| +ObjectMirror.prototype.propertyNames = function() {
|
| + return %GetOwnPropertyKeys(this.value_, PROPERTY_FILTER_NONE);
|
| };
|
|
|
|
|
| @@ -842,8 +766,8 @@ ObjectMirror.prototype.propertyNames = function(kind, limit) {
|
| specified value
|
| * @return {Array} Property mirrors for this object
|
| */
|
| -ObjectMirror.prototype.properties = function(kind, limit) {
|
| - var names = this.propertyNames(kind, limit);
|
| +ObjectMirror.prototype.properties = function() {
|
| + var names = this.propertyNames();
|
| var properties = new GlobalArray(names.length);
|
| for (var i = 0; i < names.length; i++) {
|
| properties[i] = this.property(names[i]);
|
| @@ -887,7 +811,7 @@ ObjectMirror.prototype.lookupProperty = function(value) {
|
| // Look for property value in properties.
|
| for (var i = 0; i < properties.length; i++) {
|
|
|
| - // Skip properties which are defined through assessors.
|
| + // Skip properties which are defined through accessors.
|
| var property = properties[i];
|
| if (property.propertyType() != PropertyType.AccessorConstant) {
|
| if (%_ObjectEquals(property.value_, value.value_)) {
|
| @@ -2883,24 +2807,15 @@ JSONProtocolSerializer.prototype.serializeObject_ = function(mirror, content,
|
| }
|
|
|
| // Add actual properties - named properties followed by indexed properties.
|
| - var propertyNames = mirror.propertyNames(PropertyKind.Named);
|
| - var propertyIndexes = mirror.propertyNames(PropertyKind.Indexed);
|
| - var p = new GlobalArray(propertyNames.length + propertyIndexes.length);
|
| - for (var i = 0; i < propertyNames.length; i++) {
|
| - var propertyMirror = mirror.property(propertyNames[i]);
|
| - p[i] = this.serializeProperty_(propertyMirror);
|
| - if (details) {
|
| - this.add_(propertyMirror.value());
|
| - }
|
| - }
|
| - for (var i = 0; i < propertyIndexes.length; i++) {
|
| - var propertyMirror = mirror.property(propertyIndexes[i]);
|
| - p[propertyNames.length + i] = this.serializeProperty_(propertyMirror);
|
| + var properties = mirror.propertyNames();
|
| + for (var i = 0; i < properties.length; i++) {
|
| + var propertyMirror = mirror.property(properties[i]);
|
| + properties[i] = this.serializeProperty_(propertyMirror);
|
| if (details) {
|
| this.add_(propertyMirror.value());
|
| }
|
| }
|
| - content.properties = p;
|
| + content.properties = properties;
|
|
|
| var internalProperties = mirror.internalProperties();
|
| if (internalProperties.length > 0) {
|
| @@ -3098,7 +3013,6 @@ utils.InstallFunctions(global, DONT_ENUM, [
|
|
|
| utils.InstallConstants(global, [
|
| "ScopeType", ScopeType,
|
| - "PropertyKind", PropertyKind,
|
| "PropertyType", PropertyType,
|
| "PropertyAttribute", PropertyAttribute,
|
| "Mirror", Mirror,
|
|
|