You are experiencing this issue with IE because of a difference between ActiveX and NPAPI. Our documentation generally explains how to handle browser differences, but we forgot the case of arrays returned by getVirtualDevices and getPhysicalClientDevices. Our programming guide has been updated with the following note:
When using the getPhysicalClientDevices() method with the Internet Explorer browser, you must wrap the return value array as a VBArray. The following example shows how to process the return value of getPhysicalClientDevices() as a VBArray.
var devices = new VBArray(vmrc.getPhysicalClientDevices(mask)).toArray();