Skip to main content

Bug Tracker

Side navigation

#11829 closed bug (worksforme)

Opened May 29, 2012 01:34AM UTC

Closed May 29, 2012 02:34AM UTC

isArray bug IE6 and IE7

Reported by: les.szklanny@gmail.com Owned by: rwaldron
Priority: undecided Milestone: None
Component: unfiled Version: 1.7.2
Keywords: Cc:
Blocked by: Blocking:
Description

I'd like to point out an obscure IE6 and IE7 bug in the isArray function.

The call below will display [object Object], not [object Array], so the Ext.isArray() call will fail in this case.

if (window.opener) {

var test = Object.prototype.toString.call(window.opener.testArr);

alert(test);

}

See a discussion here, search for 'Richard Cornford explains'

http://perfectionkills.com/instanceof-considered-harmful-or-how-to-write-a-robust-isarray/

Also, I'd consider delegating isArray to Array.isArrary where possible, see the ECMAScript 5.1 spec

http://ecma-international.org/ecma-262/5.1/

Les

Attachments (0)
Change History (3)

Changed May 29, 2012 01:36AM UTC by anonymous comment:1

Ext.isArray ---> jQuery.isArray

Changed May 29, 2012 02:32AM UTC by rwaldron comment:2

owner: → rwaldron
status: newassigned

Changed May 29, 2012 02:34AM UTC by rwaldron comment:3

resolution: → worksforme
status: assignedclosed

Thanks for contribution, as it turns out, everything you've asked jQuery to do - it already does.

	isArray: Array.isArray || function( obj ) {
		return jQuery.type(obj) === "array";
	},


...


	type: function( obj ) {
		return obj == null ?
			String( obj ) :
			class2type[ toString.call(obj) ] || "object";
	},