Changeset 1794
- Timestamp:
- 11/19/07 19:20:05 (6 years ago)
- Location:
- lang/javascript/javascript-xpath/trunk
- Files:
-
- 4 added
- 1 removed
- 10 modified
-
ChangeLog (modified) (1 diff)
-
Makefile (modified) (5 diffs)
-
release/javascript-xpath-0.1.7-cmp.js (added)
-
release/javascript-xpath-0.1.7.js (added)
-
release/javascript-xpath-latest-cmp.js (modified) (3 diffs)
-
release/javascript-xpath-latest.js (modified) (7 diffs)
-
src/api.js (modified) (3 diffs)
-
src/config.js (deleted)
-
src/head.js (modified) (1 diff)
-
src/stepExpr.js (modified) (1 diff)
-
test/functional/analyze-test.html (modified) (1 diff)
-
test/functional/config.js (added)
-
test/functional/dist-test-template.html (added)
-
test/functional/index.html (modified) (1 diff)
-
version.txt (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
lang/javascript/javascript-xpath/trunk/ChangeLog
r1776 r1794 1 == 0.1.7 / 2007-11-19 amachang <seijro@gmail.com> 2 3 * added config 'exportInstaller' (default value is false) 4 * added config 'useNative' (default value is true) 5 * added functional/dist-test.html and functional/dist-cmp-test.html 6 * fixed codes to pass the compress tool 7 1 8 == 0.1.6 / 2007-11-14 amachang <seijro@gmail.com> 2 9 -
lang/javascript/javascript-xpath/trunk/Makefile
r1781 r1794 18 18 19 19 SRC_FILES = ${SRC_DIR}/head.js\ 20 ${SRC_DIR}/config.js\21 20 ${SRC_DIR}/global_decls.js\ 22 21 ${SRC_DIR}/uai.js\ … … 49 48 FUNCTEST_ORIGINAL = ${FUNC_TEST_DIR}/index.html 50 49 FUNCTEST_ANALYZE = ${FUNC_TEST_DIR}/analyze-test.html 50 FUNCTEST_DIST_TEMPLATE = ${FUNC_TEST_DIR}/dist-test-template.html 51 FUNCTEST_DIST = ${FUNC_TEST_DIR}/dist-test.html 52 FUNCTEST_DIST_CMP = ${FUNC_TEST_DIR}/dist-cmp-test.html 51 53 52 54 FUNCTEST_NOXHR = ${FUNC_TEST_DIR}/index-no-xhr.html … … 59 61 @@echo "JavaScript-XPath build complete" 60 62 61 jsxpath: ${JSXPATH_CMP} ${TESTDATA_LOCALJS} ${FUNCTEST_NOXHR} ${FUNCTEST_ANALYZE_NOXHR} 63 jsxpath: ${JSXPATH_CMP} ${TESTDATA_LOCALJS} ${FUNCTEST_NOXHR} ${FUNCTEST_ANALYZE_NOXHR} ${FUNCTEST_DIST} ${FUNCTEST_DIST_CMP} 64 62 65 63 66 ${DIST_DIR}: … … 73 76 ${FUNCTEST_ANALYZE_NOXHR}: 74 77 @@sed -e "s/<!--LOCAL_DATA_HERE-->/<script type=\"text\/javascript\" src=\"\.\/testdatas.js\"><\/script>/g" ${FUNCTEST_ANALYZE} > $@ 78 79 ${FUNCTEST_DIST}: 80 @@cat ${FUNCTEST_DIST_TEMPLATE} | sed s/@VERSION/${VER}/ > $@ 81 82 ${FUNCTEST_DIST_CMP}: 83 @@cat ${FUNCTEST_DIST_TEMPLATE} | sed s/@VERSION/${VER}-cmp/ > $@ 75 84 76 85 ${JSXPATH}: ${DIST_DIR} ${VERSION_FILE} ${SRC_FILES} Makefile … … 98 107 @@rm ${FUNCTEST_NOXHR} 99 108 @@rm ${FUNCTEST_ANALYZE_NOXHR} 109 @@rm ${FUNCTEST_DIST} 110 @@rm ${FUNCTEST_DIST_CMP} 100 111 @@rm ${TESTDATA_LOCALJS} 101 112 @@rm ${DIST_DIR}/* -
lang/javascript/javascript-xpath/trunk/release/javascript-xpath-latest-cmp.js
r1776 r1794 1 if(!document.implementation||!document.implementation.hasFeature||!document.implementation.hasFeature("XPath",null))(function(){var ca=void(0);var da={targetFrame:ca,useInnerText:true};var ea;if(window.jsxpath){ea=window.jsxpath;}1 (function(){var ca=void(0);var da={targetFrame:ca,exportInstaller:false,useNative:true,useInnerText:true};var ea;if(window.jsxpath){ea=window.jsxpath;} 2 2 else{var fa=document.getElementsByTagName('script');var ga=fa[fa.length-1];var ha=ga.src;ea={};var ia=ha.match(/\?(.*)$/);if(ia){var ja=ia[1].split('&');for(var i=0,l=ja.length;i<l;i++){var ka=ja[i];var la=ka.split('=');var ma=la[0];var na=la[1];if(configValue==ca){configValue==true;} 3 3 else if(configValue=='false'||/^-?d+$/.test(configValue)){configValue=eval(configValue);} 4 4 ea[ma]=configValue;}}} 5 for(var n in da){if(!(n in ea))ea[n]=da[n]} 5 for(var n in da){if(!(n in ea))ea[n]=da[n];} 6 ea.hasNative=!!(document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("XPath",null));if(ea.hasNative&&ea.useNative&&!ea.exportInstaller){return;} 6 7 var oa;var pa;var qa;var ra;var sa;var ta;var va;var wa;var xa;var ya;var za;var Aa;var Ba;var Ca;var Da=new function(){var ua=navigator.userAgent;if(RegExp==ca){if(ua.indexOf("Opera")>=0){this.opera=true;} 7 8 else if(ua.indexOf("Netscape")>=0){this.netscape=true;} … … 132 133 var Ad=xd.sourceIndex;@*/if((wd.notOnlyElement&&wd.type==0)||wd.name=='*'){for(var i=0,l=zd.length;i<l;i++){var Bd=zd[i];n/*@cc_on @if(@_jscript)if(Bd.nodeValue){yd.push(new cd(Bd,xd,Ad));}@else @*/ 133 134 yd.push(Bd);/*@end @*/}} 134 else{var Bd=zd.getNamedItem(wd.name) n/*@cc_on @if(@_jscript)if(Bd&&Bd.nodeValue){Bd=new cd(Bd,xd,Ad);;@else @*/135 else{var Bd=zd.getNamedItem(wd.name);n/*@cc_on @if(@_jscript)if(Bd&&Bd.nodeValue){Bd=new cd(Bd,xd,Ad);;@else @*/ 135 136 if(Bd){/*@end @*/ 136 137 yd.push(Bd);}}} … … 278 279 return Yf.nodes[Zf++];/*@end @*/};} 279 280 else{var Zf=0;return function(){var ag=Yf.length-(Zf++)-1;if(Yf.only&&ag==0)return Yf.only;n/*@cc_on @if(@_jscript)var bg=Yf.nodes[ag];if(bg)return bg.node;return ca;@else @*/ 280 return Yf.nodes[ag];/*@end @*/};}};var cg=function(dg){dg=dg||this;dg.XPathExpression=function(eg){if(!eg.length){throw Error('no expression');} 281 var fg=this.lexer=Ea(eg);if(fg.empty()){throw Error('no expression');} 282 this.expr=oa.parse(fg);if(!fg.empty()){throw Error('bad token: '+fg.next());}};dg.XPathExpression.prototype.evaluate=function(gg,hg){return new XPathResult(this.expr.evaluate(new Ia(gg)),hg);};dg.XPathResult=function(ig,jg){if(jg==0){switch(typeof ig){case 'object':jg++;case 'boolean':jg++;case 'string':jg++;case 'number':jg++;}} 283 this.resultType=jg;switch(jg){case 1:this.numberValue=ig.isNodeSet?ig.number():+ig;return;case 2:this.stringValue=ig.isNodeSet?ig.string():''+ig;return;case 3:this.booleanValue=ig.isNodeSet?ig.bool():!!ig;return;case 4:case 5:case 6:case 7:this.nodes=ig.list();this.snapshotLength=ig.length;this.index=0;this.invalidIteratorState=false;break;case 8:case 9:this.singleNodeValue=ig.first();return;}};dg.XPathResult.prototype.iterateNext=function(){return this.nodes[this.index++]};dg.XPathResult.prototype.snapshotItem=function(i){return this.nodes[i]};dg.XPathResult.ANY_TYPE=0;dg.XPathResult.NUMBER_TYPE=1;dg.XPathResult.STRING_TYPE=2;dg.XPathResult.BOOLEAN_TYPE=3;dg.XPathResult.UNORDERED_NODE_ITERATOR_TYPE=4;dg.XPathResult.ORDERED_NODE_ITERATOR_TYPE=5;dg.XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE=6;dg.XPathResult.ORDERED_NODE_SNAPSHOT_TYPE=7;dg.XPathResult.ANY_UNORDERED_NODE_TYPE=8;dg.XPathResult.FIRST_ORDERED_NODE_TYPE=9;dg.document.createExpression=function(kg){return new XPathExpression(kg,null);};dg.document.evaluate=function(lg,mg,_,ng){return document.createExpression(lg,null).evaluate(mg,ng);};};var og;if(ea.targetFrame){var pg=document.getElementById(ea.targetFrame);if(pg)og=pg.contentWindow;} 284 cg(og||window);})(); 281 return Yf.nodes[ag];/*@end @*/};}};var cg=function(dg){dg=dg||this;var eg=dg.document;var ca=dg.undefined;dg.XPathExpression=function(fg){if(!fg.length){throw dg.Error('no expression');} 282 var gg=this.lexer=Ea(fg);if(gg.empty()){throw dg.Error('no expression');} 283 this.expr=oa.parse(gg);if(!gg.empty()){throw dg.Error('bad token: '+gg.next());}};dg.XPathExpression.prototype.evaluate=function(hg,ig){return new dg.XPathResult(this.expr.evaluate(new Ia(hg)),ig);};dg.XPathResult=function(jg,kg){if(kg==0){switch(typeof jg){case 'object':kg++;case 'boolean':kg++;case 'string':kg++;case 'number':kg++;}} 284 this.resultType=kg;switch(kg){case 1:this.numberValue=jg.isNodeSet?jg.number():+jg;return;case 2:this.stringValue=jg.isNodeSet?jg.string():''+jg;return;case 3:this.booleanValue=jg.isNodeSet?jg.bool():!!jg;return;case 4:case 5:case 6:case 7:this.nodes=jg.list();this.snapshotLength=jg.length;this.index=0;this.invalidIteratorState=false;break;case 8:case 9:this.singleNodeValue=jg.first();return;}};dg.XPathResult.prototype.iterateNext=function(){return this.nodes[this.index++]};dg.XPathResult.prototype.snapshotItem=function(i){return this.nodes[i]};dg.XPathResult.ANY_TYPE=0;dg.XPathResult.NUMBER_TYPE=1;dg.XPathResult.STRING_TYPE=2;dg.XPathResult.BOOLEAN_TYPE=3;dg.XPathResult.UNORDERED_NODE_ITERATOR_TYPE=4;dg.XPathResult.ORDERED_NODE_ITERATOR_TYPE=5;dg.XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE=6;dg.XPathResult.ORDERED_NODE_SNAPSHOT_TYPE=7;dg.XPathResult.ANY_UNORDERED_NODE_TYPE=8;dg.XPathResult.FIRST_ORDERED_NODE_TYPE=9;eg.createExpression=function(lg){return new dg.XPathExpression(lg,null);};eg.evaluate=function(mg,ng,_,og){return eg.createExpression(mg,null).evaluate(ng,og);};};var pg;if(ea.targetFrame){var qg=document.getElementById(ea.targetFrame);if(qg)pg=qg.contentWindow;} 285 if(ea.exportInstaller){window.install=cg;} 286 if(!ea.hasNative||!ea.useNative){cg(pg||window);}})(); -
lang/javascript/javascript-xpath/trunk/release/javascript-xpath-latest.js
r1776 r1794 1 /* JavaScript-XPath 0.1. 61 /* JavaScript-XPath 0.1.7 2 2 * (c) 2007 Cybozu Labs, Inc. 3 3 * … … 7 7 /*--------------------------------------------------------------------------*/ 8 8 9 if (!document.implementation 10 || !document.implementation.hasFeature 11 || !document.implementation.hasFeature("XPath", null)) (function() {9 10 11 (function () { 12 12 13 13 var undefined = void(0); 14 15 14 16 15 var defaultConfig = { 17 16 targetFrame: undefined, 17 exportInstaller: false, 18 useNative: true, 18 19 useInnerText: true 19 20 }; … … 49 50 50 51 for (var n in defaultConfig) { 51 if (!(n in config)) config[n] = defaultConfig[n] 52 if (!(n in config)) config[n] = defaultConfig[n]; 52 53 } 54 55 config.hasNative = !!(document.implementation 56 && document.implementation.hasFeature 57 && document.implementation.hasFeature("XPath", null)); 58 59 if (config.hasNative && config.useNative && !config.exportInstaller) { 60 return; 61 } 62 53 63 54 64 … … 1255 1265 } 1256 1266 else { 1257 var attr = attrs.getNamedItem(test.name) 1267 var attr = attrs.getNamedItem(test.name); 1258 1268 1259 1269 /*@cc_on @if (@_jscript) … … 2696 2706 2697 2707 win = win || this; 2708 var doc = win.document; 2709 var undefined = win.undefined; 2698 2710 2699 2711 win.XPathExpression = function(expr) { 2700 2712 if (!expr.length) { 2701 throw Error('no expression');2713 throw win.Error('no expression'); 2702 2714 } 2703 2715 var lexer = this.lexer = Lexer(expr); 2704 2716 if (lexer.empty()) { 2705 throw Error('no expression');2717 throw win.Error('no expression'); 2706 2718 } 2707 2719 this.expr = BinaryExpr.parse(lexer); 2708 2720 if (!lexer.empty()) { 2709 throw Error('bad token: ' + lexer.next());2721 throw win.Error('bad token: ' + lexer.next()); 2710 2722 } 2711 2723 }; 2712 2724 2713 2725 win.XPathExpression.prototype.evaluate = function(node, type) { 2714 return new XPathResult(this.expr.evaluate(new Ctx(node)), type);2726 return new win.XPathResult(this.expr.evaluate(new Ctx(node)), type); 2715 2727 }; 2716 2728 … … 2764 2776 2765 2777 2766 win.document.createExpression = function(expr) {2767 return new XPathExpression(expr, null);2778 doc.createExpression = function(expr) { 2779 return new win.XPathExpression(expr, null); 2768 2780 }; 2769 2781 2770 win.document.evaluate = function(expr, context, _, type) {2771 return doc ument.createExpression(expr, null).evaluate(context, type);2782 doc.evaluate = function(expr, context, _, type) { 2783 return doc.createExpression(expr, null).evaluate(context, type); 2772 2784 }; 2773 2785 }; … … 2780 2792 } 2781 2793 2782 install(win || window); 2794 if (config.exportInstaller) { 2795 window.install = install; 2796 } 2797 2798 if (!config.hasNative || !config.useNative) { 2799 install(win || window); 2800 } 2801 2783 2802 2784 2803 })(); -
lang/javascript/javascript-xpath/trunk/src/api.js
r1269 r1794 3 3 4 4 win = win || this; 5 var doc = win.document; 6 var undefined = win.undefined; 5 7 6 8 win.XPathExpression = function(expr) { 7 9 if (!expr.length) { 8 throw Error('no expression');10 throw win.Error('no expression'); 9 11 } 10 12 var lexer = this.lexer = Lexer(expr); 11 13 if (lexer.empty()) { 12 throw Error('no expression');14 throw win.Error('no expression'); 13 15 } 14 16 this.expr = BinaryExpr.parse(lexer); 15 17 if (!lexer.empty()) { 16 throw Error('bad token: ' + lexer.next());18 throw win.Error('bad token: ' + lexer.next()); 17 19 } 18 20 }; 19 21 20 22 win.XPathExpression.prototype.evaluate = function(node, type) { 21 return new XPathResult(this.expr.evaluate(new Ctx(node)), type);23 return new win.XPathResult(this.expr.evaluate(new Ctx(node)), type); 22 24 }; 23 25 … … 71 73 72 74 73 win.document.createExpression = function(expr) {74 return new XPathExpression(expr, null);75 doc.createExpression = function(expr) { 76 return new win.XPathExpression(expr, null); 75 77 }; 76 78 77 win.document.evaluate = function(expr, context, _, type) {78 return doc ument.createExpression(expr, null).evaluate(context, type);79 doc.evaluate = function(expr, context, _, type) { 80 return doc.createExpression(expr, null).evaluate(context, type); 79 81 }; 80 82 }; … … 87 89 } 88 90 89 install(win || window); 91 if (config.exportInstaller) { 92 window.install = install; 93 } 90 94 95 if (!config.hasNative || !config.useNative) { 96 install(win || window); 97 } 98 99 -
lang/javascript/javascript-xpath/trunk/src/head.js
r1269 r1794 7 7 /*--------------------------------------------------------------------------*/ 8 8 9 if (!document.implementation 10 || !document.implementation.hasFeature 11 || !document.implementation.hasFeature("XPath", null)) (function() {9 10 11 (function () { 12 12 13 13 var undefined = void(0); 14 14 15 var defaultConfig = { 16 targetFrame: undefined, 17 exportInstaller: false, 18 useNative: true, 19 useInnerText: true 20 }; 21 22 var config; 23 24 if (window.jsxpath) { 25 config = window.jsxpath; 26 } 27 else { 28 var scriptElms = document.getElementsByTagName('script'); 29 var scriptElm = scriptElms[scriptElms.length - 1]; 30 var scriptSrc = scriptElm.src; 31 config = {}; 32 var scriptSrcMatchResult = scriptSrc.match(/\?(.*)$/); 33 if (scriptSrcMatchResult) { 34 var configStrings = scriptSrcMatchResult[1].split('&'); 35 for (var i = 0, l = configStrings.length; i < l; i ++) { 36 var configString = configStrings[i]; 37 var configStringSplited = configString.split('='); 38 var configName = configStringSplited[0]; 39 var convigValue = configStringSplited[1]; 40 if (configValue == undefined) { 41 configValue == true; 42 } 43 else if (configValue == 'false' || /^-?d+$/.test(configValue)) { 44 configValue = eval(configValue); 45 } 46 config[configName] = configValue; 47 } 48 } 49 } 50 51 for (var n in defaultConfig) { 52 if (!(n in config)) config[n] = defaultConfig[n]; 53 } 54 55 config.hasNative = !!(document.implementation 56 && document.implementation.hasFeature 57 && document.implementation.hasFeature("XPath", null)); 58 59 if (config.hasNative && config.useNative && !config.exportInstaller) { 60 return; 61 } 62 63 -
lang/javascript/javascript-xpath/trunk/src/stepExpr.js
r1776 r1794 340 340 } 341 341 else { 342 var attr = attrs.getNamedItem(test.name) 342 var attr = attrs.getNamedItem(test.name); 343 343 344 344 /*@cc_on @if (@_jscript) -
lang/javascript/javascript-xpath/trunk/test/functional/analyze-test.html
r1722 r1794 12 12 <!--LOCAL_DATA_HERE--> 13 13 14 <script type="text/javascript" src=". ./../src/config.js"></script>14 <script type="text/javascript" src="./config.js"></script> 15 15 <script type="text/javascript" src="../../src/uai.js"></script> 16 16 <script type="text/javascript" src="../../src/lexer.js"></script> -
lang/javascript/javascript-xpath/trunk/test/functional/index.html
r1549 r1794 11 11 <!--LOCAL_DATA_HERE--> 12 12 13 <script type="text/javascript" src=". ./../src/config.js"></script>13 <script type="text/javascript" src="./config.js"></script> 14 14 <script type="text/javascript" src="../../src/uai.js"></script> 15 15 <script type="text/javascript" src="../../src/lexer.js"></script> -
lang/javascript/javascript-xpath/trunk/version.txt
r1776 r1794 1 0.1. 61 0.1.7
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)