Bug Tracker

Opened 7 years ago

Closed 7 years ago

#11829 closed bug (worksforme)

isArray bug IE6 and IE7

Reported by: les.szklanny@… Owned by: Rick Waldron
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

Change History (3)

comment:1 Changed 7 years ago by anonymous

Ext.isArray ---> jQuery.isArray

comment:2 Changed 7 years ago by Rick Waldron

Owner: set to Rick Waldron
Status: newassigned

comment:3 Changed 7 years ago by Rick Waldron

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";
	},

Note: See TracTickets for help on using tickets.