Changeset 23331 for lang/javascript

Show
Ignore:
Timestamp:
11/12/08 15:10:09 (5 years ago)
Author:
anekos
Message:

noSuchMethod の返値を $() でくるむように修正
$s に evaluate メソッド追加
$a に first/last メソッド追加

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/javascript/vimperator-plugins/trunk/i_love_echo.js

    r23278 r23331  
    132132    }, 
    133133    __noSuchMethod__: function(name, args){ 
    134         return this.value[name].apply(this.value, args); 
     134        return $(this.value[name].apply(this.value, args)); 
    135135    } 
    136136}; 
     
    149149    get encodeURICompoenent() $(encodeURIComponent(this.value)), 
    150150    get MD5Hash(){ 
    151         var converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter); 
     151context converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter); 
    152152        converter.charset = "UTF-8"; 
    153153        var result = {}; 
     
    173173            return null; 
    174174        } 
     175    }, 
     176    evaluate: function(doc,context){ 
     177        if (!doc) doc = content.document; 
     178        if (!context) context = doc; 
     179        var result = []; 
     180        var nodes = doc.evaluate(this.value, context, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null); 
     181        var node; 
     182        while (node = nodes.iterateNext()) { 
     183            result.push(node); 
     184        } 
     185        return $(result); 
    175186    } 
    176187}); 
     
    199210        this.value.unshift(arg); 
    200211        return this; 
    201     } 
     212    }, 
     213    get first() $(this.value[0]), 
     214    get last() $(this.value[this.length - 1]) 
    202215}); 
    203216// }}}