- From: Dirk Schulze <dschulze@adobe.com>
- Date: Sat, 28 Jun 2014 06:59:28 +0000
- To: Rik Cabanier <cabanier@gmail.com>
- CC: Domenic Denicola <domenic@domenicdenicola.com>, Anne van Kesteren <annevk@annevk.nl>, "public-script-coord@w3.org" <public-script-coord@w3.org>
To use Rik's example on DOMRectReadOnly and DOMQuad: [NoInterface] interface DOMRectReadOnly { readonly attribute unrestricted double x; readonly attribute unrestricted double y; readonly attribute unrestricted double width; readonly attribute unrestricted double height; readonly attribute unrestricted double top; readonly attribute unrestricted double right; readonly attribute unrestricted double bottom; readonly attribute unrestricted double left; }; [Constructor ...] interface DOMQuad { ... [SameObject] readonly attribute DOMRectReadOnly bounds; }; In JS it could look similar to: function DOMQuad() { var rect = { x: 0, y: 0, width: 100, height: 100, top: 0, left: 0, bottom: 100, right: 100 }; // Or var rect = new DOMRect(…) if DOMRect is implemented. …. var bounds_internal = {}; // Or var bounds_internal = new DOMRectReadOnly(); with function DOMRectReadOnly() { } Object.defineProperty(bounds_internal, 'x’, { get: function() { return rect.x; } }); Object.defineProperty(bounds_internal, 'y’, { get: function() { return rect.y; } }); Object.defineProperty(bounds_internal, 'width’, { get: function() { return rect.width; } }); Object.defineProperty(bounds_internal, 'height’, { get: function() { return rect.height; } }); Object.defineProperty(bounds_internal, 'top’, { get: function() { return rect.top; } }); Object.defineProperty(bounds_internal, 'left’, { get: function() { return rect.left; } }); Object.defineProperty(bounds_internal, 'bottom’, { get: function() { return rect.bottom; } }); Object.defineProperty(bounds_internal, 'right’, { get: function() { return rect.right; } }); this.bounds = bounds_internal; } Greetings, Dirk On Jun 28, 2014, at 7:23 AM, Rik Cabanier <cabanier@gmail.com> wrote: > After sending this out, I realized that there was a typo. > Here's the correction for a function that return a readonly interface of DOMMatrix: > getMatrix: function(){ > var retval = {}; > Object.DefineAttribute(retval, "a", { get: function() { return this.m11_equivalent; } }); > ... > retval.translate = function(...){...}; > ... > return retval; > }
Received on Saturday, 28 June 2014 07:00:08 UTC