environment: improve Object.toString for delegate objects

If a JS object has an 'actor' property pointing to a ClutterActor,
include the actor's toString() output in the delegate's toString()
output. Eg:

  js>>> Main.panel
  [object Object delegate for 0xff6080 StBoxLayout.menu-bar "panel" ("Activities")]

https://bugzilla.gnome.org/show_bug.cgi?id=646919
This commit is contained in:
Dan Winship 2011-04-06 10:40:01 -04:00
parent 72bee6d7ca
commit 07a0960265

View File

@ -88,6 +88,15 @@ function init() {
return St.describe_actor(this); return St.describe_actor(this);
}; };
let origToString = Object.prototype.toString;
Object.prototype.toString = function() {
let base = origToString.call(this);
if ('actor' in this && this.actor instanceof Clutter.Actor)
return base.replace(/\]$/, ' delegate for ' + this.actor.toString().substring(1));
else
return base;
};
if (window.global === undefined) // test environment if (window.global === undefined) // test environment
return; return;