From 07a0960265e4bbb1222f386bf07343331bb77129 Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Wed, 6 Apr 2011 10:40:01 -0400 Subject: [PATCH] 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 --- js/ui/environment.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/js/ui/environment.js b/js/ui/environment.js index 9061a7723..758a2cbfb 100644 --- a/js/ui/environment.js +++ b/js/ui/environment.js @@ -88,6 +88,15 @@ function init() { 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 return;