И как мне теперь проверять массив это или нет, если конструкция instnceof Array перестала работать?
scuko.png

:::: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2

Как насчёт простого примера

Выделить код

Код:

var a = new Array ();
print (a instanceof Array)
print (typeof a. __proto__)
print (typeof Array. prototype)

?

может быть, у curArg __proto__ изменилось или это с самого начала был не массив ?

Выделить код

Код:

var a = new Array ();
print (a instanceof Array);
Array. prototype = new Object ();
print (a instanceof Array);
a. __proto__ = new Object ();
print (a instanceof Array);

true
object
object

Но я этот Array передаю в функцию, и там уже другая картина :sick:

false
object
object

Что за функция, интересно, такая.

немного сумбурно, но пока нет времени разбираться в этой проблеме, подозреваю, что где-то нахомутал:
Есть 3 файла:
util.js
  |
  +-myUtils{}
 
overlay.js
  |
  +- utils = new myUtils();
  |
  +- myOverlay{this.test = function(){myArray = new Array(); utils.callFunc(myArray);}}
  |
  +- overlay = new myOverlay()

dummy.js
  |
  +- utils = window.opener.utils
  |
  +- overlay = window.opener.overlay

Если я вызываю из dummy.js:
  myArray = new Array();
  utils.callFunc(myArray);
То instanceof Array не работает в util.js

Если вместо этого я вызову  из dummy.js:
  overlay.test()
То instanceof Array работает в util.js

Если вместо этого я вызову  из dummy.js:
  overlay.test()
То instanceof Array работает в util.js

Вернее, в overlay.js - там есть и utils, и массив - всё "родное".

А в первом случае объект берётся через window.opener - и тут я не знаю, с opener'ами не сталкивался, может, ему нужно что-нибудь вроде XPCNativeWrapper ?

Да, сам только что создал utils = new myUtils(); в dummy.js и все заработало. Наверное какие-то тонкости работы с opener-ами вылезли...