• R/O
  • HTTP
  • SSH
  • HTTPS

clientJs: コミット

クライアント側 js 開発用


コミットメタ情報

リビジョン009b1cd0cebdd15591a9abfb964fb57b41ccb5f9 (tree)
日時2016-01-14 01:08:59
作者itozyun <itozyun@user...>
コミッターitozyun

ログメッセージ

Version 0.6.207, Modification of variable scope leaks.

変更サマリ

差分

--- a/0.6.x/js/01_core/13_XClass.js
+++ b/0.6.x/js/01_core/13_XClass.js
@@ -36,7 +36,7 @@ X_Class_CommonMethods =
3636 * 全ての動的メンバを削除して、インスタンスを破棄する。<br>
3737 * インスタンスが X.EventDispatcher とそのサブクラスの場合、次の動作をする。
3838 * <ol>
39- * <li>X.Event.BEFORE_KILL_INSTANCE を発火する。戻り値のビットフラグに X_Callback.PREVENT_DEFAULT が立つ場合、破棄をキャンセルし X.Event.KILL_INSTANCE_CANCELED を発火する。この間に kill() が呼ばれても無視される。
39+ * <li>X.Event.BEFORE_KILL_INSTANCE を発火する。戻り値のビットフラグに X.Callback.PREVENT_DEFAULT が立つ場合、破棄をキャンセルし X.Event.KILL_INSTANCE_CANCELED を発火する。この間に kill() が呼ばれても無視される。
4040 * <li>破棄に進む場合は、X.Event.KILL_INSTANCE を発火する。
4141 * <li>dispatch 中は、インスタンスの全ての dispatch が終了するまで実際の破棄を待つ。
4242 * <li>実際の破棄では、インスタンスのメンバの削除に加えて全てのイベントリスナを解除する。
--- a/0.6.x/js/02_dom/06_XNodeCSS.js
+++ b/0.6.x/js/02_dom/06_XNodeCSS.js
@@ -320,8 +320,8 @@ function X_Node_CSS_objToIEFilterText( that, opt_css, opt_cssList ){
320320 test = X_Node_CSS_FILTER_FIX_PROPS,
321321 filters = [],
322322 n = -1,
323- p, id, v, num, ary, params, i, l, dir,
324- afterUpdate, impossible;
323+ p, id, v, num, vu, u, _v, ary, params, i, l, dir,
324+ afterUpdate, impossible, color;
325325
326326 for( p in obj ){
327327 //if( X_EMPTY_OBJECT[ p ] ) continue;
@@ -445,7 +445,7 @@ function X_Node_CSS_objToIEFilterText( that, opt_css, opt_cssList ){
445445 sinY = Math.sin( radian ),
446446
447447 skewX = X_Node_CSS_ieMathRangeFix( params[ 3 ] ), //skew
448- skewY = X_Node_CSS_ieMathRangeFix( params[ 4 ] );
448+ skewY = X_Node_CSS_ieMathRangeFix( params[ 4 ] ),
449449
450450 _skX = Math.tan( skewX * PI_180 ),
451451 _skY = Math.tan( skewY * PI_180 ),
@@ -510,7 +510,7 @@ function X_Node_CSS_onAfterUpdateIEFilterFix( that ){
510510 elm = that[ '_rawObject' ],
511511 filter = elm.style.filter || '',
512512 origin = filter,
513- p, v, plus;
513+ p, v, plus, id;
514514
515515 for( p in css ){
516516 if( !( id = test[ p ] ) ) continue;
@@ -846,7 +846,7 @@ X_Node_CSS_getCharSize =
846846 }) :
847847 X_UA_DOM.IE4 ?
848848 (function( that ){
849- var font, vu, v, u, _v;
849+ var font, vu, v, u, _v, elm;
850850
851851 X_Node_updateTimerID && X_Node_startUpdate();
852852 if( that === X_Node_body && X_ViewPort_baseFontSize ) return X_ViewPort_baseFontSize;
--- a/0.6.x/js/02_dom/10_XNodeAnime.js
+++ b/0.6.x/js/02_dom/10_XNodeAnime.js
@@ -146,7 +146,7 @@ function X_Node_animate( obj ){
146146 obj.altY = fallback & 16 ? 'bottom' : 'top';
147147
148148 // scale
149- if( obj.toScaleX !== 1 && obj.fromScaleX !== 1 && obj.toScaleY !== 1 && obj.fromScaleY !== 1 ){
149+ if( obj.toScaleX !== 1 || obj.fromScaleX !== 1 || obj.toScaleY !== 1 || obj.fromScaleY !== 1 ){
150150 sameRate = obj.fromScaleX === obj.fromScaleY && obj.toScaleX === obj.toScaleY;
151151
152152 if( X_NodeAnime_hasTransform ){
@@ -315,7 +315,7 @@ function X_NodeAnime_stopNow( xnode ){
315315 */
316316 function X_NodeAnime_detectWaitAnimation( xnode, duration, isTest ){
317317 var list = X_NodeAnime_QUEUE,
318- i = 0, _xnode;
318+ i = 0, _xnode, obj;
319319
320320 for( ; _xnode = list[ i ]; ++i ){
321321 if( _xnode === xnode ) break;
--- a/0.6.x/js/02_dom/20_XNode.js
+++ b/0.6.x/js/02_dom/20_XNode.js
@@ -1202,7 +1202,7 @@ function X_Node_call( name /*, opt_args... */ ){
12021202 var args = arguments,
12031203 l = args.length - 1,
12041204 v, raw, parent, body,
1205- childX, childY, childW, childH,
1205+ child, childX, childY, childW, childH,
12061206 parentW, parentH,
12071207 parentSX, parentSY, parentSW, parentSH,
12081208 visibleX, visibleY, visibleW, visibleH,
@@ -1258,6 +1258,7 @@ function X_Node_call( name /*, opt_args... */ ){
12581258 };
12591259
12601260 if( name === 'inView' ){
1261+ if( !( this[ '_flags' ] & X_NodeFlags_IN_TREE ) ) return { 'isInView' : false };
12611262 body = X_elmBody;
12621263 child = raw;
12631264 visibleX = visibleY = visibleW = visibleH = 0;
@@ -1633,12 +1634,34 @@ var X_Node__commitUpdate =
16331634 };
16341635 };
16351636
1637+/*
1638+ * if( ( anime = that[ '_anime' ] ) && 6 <= anime.phase && anime.doScroll ){
1639+ if( anime.phase === 6 ){
1640+ v = anime.fromScrollX;
1641+ if( v === v ){
1642+ elm.scrollLeft = v;
1643+ } else {
1644+ anime.fromScrollX = elm.scrollLeft;
1645+ };
1646+ v = anime.fromScrollY;
1647+ if( v === v ){
1648+ elm.scrollTop = v;
1649+ } else {
1650+ anime.fromScrollY = elm.scrollTop;
1651+ };
1652+ } else {
1653+ elm.scrollLeft = anime.scrollX;
1654+ elm.scrollTop = anime.scrollY;
1655+ };
1656+ };
1657+ */
1658+
16361659 return elm;
16371660 }) :
16381661 X_UA_DOM.IE4 ?
16391662 ( function( that, parentElement, prevElement, accumulatedFlags ){
16401663 var elm = that[ '_rawObject' ] || X_Node__ie4getRawNode( that ),
1641- xnodes, l, i, dirty, mix, html, text, prev;
1664+ xnodes, l, i, dirty, mix, html, text, prev, anime, v;
16421665
16431666 if( !that[ '_tag' ] ){
16441667 that[ '_flags' ] & X_NodeFlags_DIRTY_CONTENT && X_Node__updateRawNode( that, elm );
--- a/0.6.x/js/06_net/03_XNetForm.js
+++ b/0.6.x/js/06_net/03_XNetForm.js
@@ -1,7 +1,7 @@
11 //{+netform"<form>によるGETとPOST"(動的に生成したフォームによるGETとPOST。)[+net,+ninjaiframe]
22
33 var X_FormSender_errorTimerID,
4- X_FormSender_isLeave,
4+ X_FormSender_isLeave, X_FormSender_isSameDomain,
55 X_FormSender_onloadCount = 0;
66
77 X_TEMP.X_FormSender_init = function(){
@@ -30,6 +30,7 @@ X_TEMP.X_FormSender_params = {
3030 load : function( option ){
3131 //createURL
3232 var params = option[ 'params' ] || {},
33+ url = option[ 'url' ],
3334 target = option[ 'target' ],
3435 timeout = option[ 'timeout' ],
3536 // http://search.web-sun.com/zatu/charset.html
@@ -40,12 +41,12 @@ X_TEMP.X_FormSender_params = {
4041 html = [
4142 // <meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
4243 '<form method="', X_FormSender_escapeQuote( option[ 'method' ] || 'GET' ),
43- '" action="', X_FormSender_escapeQuote( option[ 'url' ] || '' ),
44+ '" action="', X_FormSender_escapeQuote( url || '' ),
4445 '" target="', X_FormSender_escapeQuote( target ),
4546 '">' ];
4647
47- X_FormSender_isLeave = target === '_top' || target === '_parent';
48-
48+ X_FormSender_isLeave = target === '_top' || target === '_parent';
49+ X_FormSender_isSameDomain = X_URL_isSameDomain( url );
4950
5051 for( k in params ){
5152 // TODO 使用すべきでない name
@@ -91,9 +92,12 @@ function X_FormSender_iframeListener( e ){
9192 };
9293
9394 if( ++X_FormSender_onloadCount === 1 ){
94- idoc = this[ '_rawObject' ].contentDocument || this._iwin.document,
95-
96- X_FormSender[ 'asyncDispatch' ]( { type : X_EVENT_SUCCESS, response : idoc && idoc.body ? idoc.body.innerHTML : '' } );
95+ if( X_FormSender_isSameDomain ){
96+ idoc = this[ '_rawObject' ].contentDocument || this._iwin.document;
97+ X_FormSender[ 'asyncDispatch' ]( { type : X_EVENT_SUCCESS, response : idoc && idoc.body ? idoc.body.innerHTML : '' } );
98+ } else {
99+ X_FormSender[ 'asyncDispatch' ]( { type : X_EVENT_SUCCESS } );
100+ };
97101 };
98102 break;
99103 case 'ninjaerror' :
--- a/0.6.x/js/06_net/05_XXHRGadget.js
+++ b/0.6.x/js/06_net/05_XXHRGadget.js
@@ -177,7 +177,7 @@ X_TEMP.X_GadgetXHR_props = {
177177
178178 max = X_GadgetXHR_maxQueryLength - X_GadgetXHR_GADGET_URL.length - 5;
179179
180- sendStr = X_JSON_stringify( req );
180+ sendStr = /* X_JSON_stringify */X[ 'JSON' ].stringify( req );
181181
182182 while( sendStr.length ){
183183 l = max;
--- a/0.6.x/js/06_net/10_XOAuth2.js
+++ b/0.6.x/js/06_net/10_XOAuth2.js
@@ -104,7 +104,7 @@ X[ 'OAuth2' ] = X_EventDispatcher[ 'inherits' ](
104104 */
105105 'requestAuth' : function(){
106106 var e = X_EventDispatcher_CURRENT_EVENTS[ X_EventDispatcher_CURRENT_EVENTS.length - 1 ],
107- w, h;
107+ w, h, pair;
108108
109109 // TODO pointer event 内か?チェック
110110 if( !e || !e[ 'pointerType' ] ){
--- a/0.6.x/js/07_audio/00_XAudio.js
+++ b/0.6.x/js/07_audio/00_XAudio.js
@@ -57,8 +57,7 @@ X_TEMP.onSystemReady.push(
5757 * @param {array|string} sourceList
5858 * @param {object=} opt_option
5959 * @example //
60- * var audio = X.Audio( [ 'etc/special.mp3', 'etc/special.ogg', 'etc/special.wav' ] )
61- .listenOnce( X.Event.READY, onReady );
60+ * var audio = X.Audio( [ 'etc/special.mp3', 'etc/special.ogg', 'etc/special.wav' ] ).listenOnce( X.Event.READY, onReady );
6261 */
6362 X[ 'Audio' ] = X_EventDispatcher[ 'inherits' ](
6463 'X.Audio',
@@ -92,7 +91,7 @@ X[ 'Audio' ] = X_EventDispatcher[ 'inherits' ](
9291 * @alias Audio.prototype.play
9392 * @param {number=} startTime 開始時間を ms で
9493 * @param {number=} endTime 終了時間を ms で
95- * @param {boolean=} endTime に達した際に曲をループさせるか
94+ * @param {boolean=} loop endTimeに達した際に曲をループさせるか
9695 * @param {number=} loopStartTime ループ以後の開始時間を ms で
9796 * @param {number=} loopEndTime ループ以後の終了時間を ms で
9897 * @return {Audio} メソッドチェーン
@@ -129,18 +128,18 @@ X[ 'Audio' ] = X_EventDispatcher[ 'inherits' ](
129128 * @param {object=} obj setter の場合、上書きする値を格納したobject
130129 * @return {Audio|object}
131130 * @example
132- * audio.setState(
133- {
134- 'startTime' : 0,
135- 'endTime' : 80000,
136- 'loopStartTime' : 120000,
137- 'loopEndTime' : 200000,
138- 'currentTime' : 0,
139- 'loop' : true,
140- 'looded' : false,
141- 'volume' : 1,
142- 'autoplay' : true
143- });
131+audio.setState(
132+ {
133+ 'startTime' : 0,
134+ 'endTime' : 80000,
135+ 'loopStartTime' : 120000,
136+ 'loopEndTime' : 200000,
137+ 'currentTime' : 0,
138+ 'loop' : true,
139+ 'looded' : false,
140+ 'volume' : 1,
141+ 'autoplay' : true
142+});
144143 */
145144 'state' : function( obj ){
146145 var pair = X_Pair_get( this );
@@ -179,7 +178,7 @@ X[ 'Audio' ] = X_EventDispatcher[ 'inherits' ](
179178 /**
180179 * ボリュームの setter 実装不十分!
181180 * @alias Audio.prototype.volume
182- * @param {number} v
181+ * @param {number} v 0~1
183182 * @return {Audio}
184183 */
185184 'volume' : function( v ){
--- a/0.6.x/js/07_audio/10_XAudioSprite.js
+++ b/0.6.x/js/07_audio/10_XAudioSprite.js
@@ -265,7 +265,7 @@ var X_AudioSprite_members =
265265 */
266266 'seek' : function( uid, position ){
267267 var track = X_AudioSprite_TEMP.tracks[ uid ],
268- end, strat;
268+ end, start;
269269 if( track ){
270270 delete track.seekTime;
271271 end = X_Audio_getEndTime( track );
--- a/0.6.x/js/11_hid/01_KB.js
+++ b/0.6.x/js/11_hid/01_KB.js
@@ -42,7 +42,7 @@ var X_KB_SPECIALS = eval( // IE5- 対策
4242 var keyCode = e.keyCode, // keyCode says something about the actual keyboard key the user pressed
4343 chrCode = e.charCode, // while charCode gives the ASCII value of the resulting character
4444 cb = X_CALLBACK_NONE,
45- special, is10Key, _keyCode;
45+ special, _keyCode;
4646
4747 console.log( e.type + ' > keyCode:' + keyCode + ' chrCode:' + chrCode );
4848
@@ -66,15 +66,15 @@ var X_KB_SPECIALS = eval( // IE5- 対策
6666 };
6767
6868 cb = this[ 'dispatch' ]( {
69- type : 'keydown',
70- keyCode : keyCode,
71- charCode : chrCode,
72- keyName : X_Type_isString( special ) ? special : '',
73- is10key : !!is10Key,
74- shiftKey : !!X_KB_DOWN_KEYS[ 16 ],
75- ctrlKey : !!X_KB_DOWN_KEYS[ 17 ],
76- altKey : !!X_KB_DOWN_KEYS[ 18 ],
77- metaKey : !!X_KB_DOWN_KEYS[ 224 ]
69+ type : 'keydown',
70+ keyCode : keyCode,
71+ charCode : chrCode,
72+ 'keyName' : X_Type_isString( special ) ? special : '',
73+ 'is10key' : !!X_KB_lastIs10Key,
74+ shiftKey : !!X_KB_DOWN_KEYS[ 16 ],
75+ ctrlKey : !!X_KB_DOWN_KEYS[ 17 ],
76+ altKey : !!X_KB_DOWN_KEYS[ 18 ],
77+ metaKey : !!X_KB_DOWN_KEYS[ 224 ]
7878 } );
7979
8080 if( cb & X_CALLBACK_PREVENT_DEFAULT ){
@@ -97,21 +97,21 @@ var X_KB_SPECIALS = eval( // IE5- 対策
9797 return X_KB_CANCELED[ chrCode ] ? X_CALLBACK_PREVENT_DEFAULT : cb;
9898 } else
9999 if( keyCode === 32 ){
100- charCode = 32;
100+ chrCode = 32;
101101 };
102102
103103 if( 32 <= chrCode && chrCode <= 126 ){
104104 X_KB_TRANSFOEM[ X_KB_lastKeyCode ] = chrCode;
105105
106106 cb = this[ 'dispatch' ]( {
107- type : 'keydown',
108- keyCode : X_KB_lastIs10Key ? X_KB_lastKeyCode : 0,
109- charCode : chrCode,
110- is10key : X_KB_lastIs10Key,
111- shiftKey : !!X_KB_DOWN_KEYS[ 16 ],
112- ctrlKey : !!X_KB_DOWN_KEYS[ 17 ],
113- altKey : !!X_KB_DOWN_KEYS[ 18 ],
114- metaKey : !!X_KB_DOWN_KEYS[ 224 ]
107+ type : 'keydown',
108+ keyCode : X_KB_lastIs10Key ? X_KB_lastKeyCode : 0,
109+ charCode : chrCode,
110+ 'is10key' : X_KB_lastIs10Key,
111+ shiftKey : !!X_KB_DOWN_KEYS[ 16 ],
112+ ctrlKey : !!X_KB_DOWN_KEYS[ 17 ],
113+ altKey : !!X_KB_DOWN_KEYS[ 18 ],
114+ metaKey : !!X_KB_DOWN_KEYS[ 224 ]
115115 } );
116116
117117 X_KB_lastIs10Key = true;
@@ -125,16 +125,16 @@ var X_KB_SPECIALS = eval( // IE5- 対策
125125
126126 if( ( special = X_KB_SPECIALS[ keyCode ] ) && ( !X_KB_DOWN_KEYS[ keyCode ] && !X_KB_DOWN_KEYS[ special ] ) ){
127127 cb |= this[ 'dispatch' ]( {
128- type : 'keydown',
129- keyCode : keyCode,
130- charCode : 0,
131- keyName : special,
132- is10key : false,
133- isVirtual : true,
134- shiftKey : !!X_KB_DOWN_KEYS[ 16 ],
135- ctrlKey : !!X_KB_DOWN_KEYS[ 17 ],
136- altKey : !!X_KB_DOWN_KEYS[ 18 ],
137- metaKey : !!X_KB_DOWN_KEYS[ 224 ]
128+ type : 'keydown',
129+ keyCode : keyCode,
130+ charCode : 0,
131+ 'keyName' : special,
132+ 'is10key' : false,
133+ 'isVirtual' : true,
134+ shiftKey : !!X_KB_DOWN_KEYS[ 16 ],
135+ ctrlKey : !!X_KB_DOWN_KEYS[ 17 ],
136+ altKey : !!X_KB_DOWN_KEYS[ 18 ],
137+ metaKey : !!X_KB_DOWN_KEYS[ 224 ]
138138 } );
139139 };
140140
@@ -150,14 +150,14 @@ var X_KB_SPECIALS = eval( // IE5- 対策
150150 };
151151
152152 cb |= this[ 'dispatch' ]( {
153- type : 'keyup',
154- keyCode : keyCode,
155- charCode : chrCode,
156- keyName : X_Type_isString( special ) ? special : '',
157- shiftKey : X_KB_DOWN_KEYS[ 16 ],
158- ctrlKey : X_KB_DOWN_KEYS[ 17 ],
159- altKey : X_KB_DOWN_KEYS[ 18 ],
160- metaKey : X_KB_DOWN_KEYS[ 224 ]
153+ type : 'keyup',
154+ keyCode : keyCode,
155+ charCode : chrCode,
156+ 'keyName' : X_Type_isString( special ) ? special : '',
157+ shiftKey : X_KB_DOWN_KEYS[ 16 ],
158+ ctrlKey : X_KB_DOWN_KEYS[ 17 ],
159+ altKey : X_KB_DOWN_KEYS[ 18 ],
160+ metaKey : X_KB_DOWN_KEYS[ 224 ]
161161 } );
162162
163163 return cb;
--- a/0.6.x/js/20_ui/06_AbstractUINode.js
+++ b/0.6.x/js/20_ui/06_AbstractUINode.js
@@ -973,7 +973,7 @@ X.UI.AbstractUINode = X_Class_create(
973973 var newNode,
974974 //newPair = X_Pair_get( newNode ),
975975 pair = X_Pair_get( this ),
976- attr, listeners, type, list, i, l, k;
976+ attr, listeners, type, list, i, l, k, def, f;
977977
978978 // attr もコピー
979979 if( pair.attrObject ){
--- a/0.6.x/js/20_ui/20_Root.js
+++ b/0.6.x/js/20_ui/20_Root.js
@@ -116,7 +116,7 @@ function X_UI_eventRellay( e ){
116116
117117 function X_UI_onMouseOut( e ){
118118 var list = XUI_UINODES_HOVER,
119- i = list.length;
119+ i = list.length, data;
120120 console.log( 'pointer out!!' + e.type + i + ' ' + e.pointerType );
121121
122122 e = X_Object_copy( e );
旧リポジトリブラウザで表示