aeq.forEach does not work with ScriptUI container children array
Issue #28
new
Example:
var win = aeq.ui.createWindow()
win.addButton()
win.addButton()
win.addButton()
aeq.forEach( win.get().children, function( key, value ) {
alert( key + value )
})
This only alerts ones, with the text length3
.
Caused by bad checking of array type in aeq.forEach
Comments (4)
-
Account Deleted -
reporter That looks good to me. Does all js objects have the
constructor
property? -
Account Deleted Everything I've seen does, but not sure about everything. Issue is that with
prototype.toString.call(whatever)
some array-ish elements return[object Array]
and others include a string of the elements within them (maybe only ESTK'sCollections
). My suggestion above seemed robust, but better to double-check. -
reporter Ok, as long as we don't get a
'something' does not have a property constructor
error we're good. - Log in to comment
One workflow solution--
or to solve the specific issue, we can change aeq.forEach array detection from...
if ( obj && Object.prototype.toString.call( obj ) === '[object Array]' )
to
if ( obj && ( Object.prototype.toString.call( obj ) === '[object Array]' || obj.constructor.name === 'Collection' ) )
Thoughts @runegan ?