Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Changeset 8712

Show
Ignore:
Timestamp:
01/24/08 01:33:28 (8 months ago)
Author:
tobie
Message:

prototype: Make Object.isArray correctly identify arrays created in another frame. Closes #10374.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • spinoffs/prototype/trunk/CHANGELOG

    r8709 r8712  
    11*SVN* 
     2 
     3* Make Object.isArray correctly identify arrays created in another frame. Closes #10374. [pointy, Dean Edwards, Andrew Dupont, Tobie Langel] 
    24 
    35* Fixed issue where Element#match failed on attribute selectors with single or double quotes. Closes #10067. [Cezary Okupski, Andrew Dupont] 
  • spinoffs/prototype/trunk/src/base.js

    r8639 r8712  
    133133   
    134134  isArray: function(object) { 
    135     return object && object.constructor === Array; 
     135    return object != null && typeof object == "object" && 
     136      'splice' in object && 'join' in object; 
    136137  }, 
    137138   
  • spinoffs/prototype/trunk/test/unit/base.html

    r8639 r8712  
    2323<!-- Log output --> 
    2424<div id="testlog"> </div> 
    25 <div id="test"></div>  
     25<div id="test"></div> 
     26<ul id="list"> 
     27  <li></li> 
     28  <li></li> 
     29  <li></li> 
     30</ul> 
    2631<!-- Tests follow --> 
    2732<script type="text/javascript" language="javascript" charset="utf-8"> 
     
    312317      assert(Object.isArray([0, 1])); 
    313318      assert(!Object.isArray({})); 
     319      assert(!Object.isArray($('list').childNodes)); 
     320      assert(!Object.isArray()); 
     321      assert(!Object.isArray('')); 
     322      assert(!Object.isArray('foo')); 
     323      assert(!Object.isArray(0)); 
     324      assert(!Object.isArray(1)); 
     325      assert(!Object.isArray(null)); 
     326      assert(!Object.isArray(true)); 
     327      assert(!Object.isArray(false)); 
     328      assert(!Object.isArray(undefined)); 
    314329    }}, 
    315330