From: itozyun Date: Wed, 13 Jan 2016 16:08:59 +0000 (+0900) Subject: Version 0.6.207, Modification of variable scope leaks. X-Git-Url: http://git.osdn.jp/view?p=pettanr%2FclientJs.git;a=commitdiff_plain;h=009b1cd0cebdd15591a9abfb964fb57b41ccb5f9 Version 0.6.207, Modification of variable scope leaks. --- diff --git a/0.6.x/js/01_core/13_XClass.js b/0.6.x/js/01_core/13_XClass.js index de84007..a107366 100644 --- 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 = * 全ての動的メンバを削除して、インスタンスを破棄する。
* インスタンスが X.EventDispatcher とそのサブクラスの場合、次の動作をする。 *
    - *
  1. X.Event.BEFORE_KILL_INSTANCE を発火する。戻り値のビットフラグに X_Callback.PREVENT_DEFAULT が立つ場合、破棄をキャンセルし X.Event.KILL_INSTANCE_CANCELED を発火する。この間に kill() が呼ばれても無視される。 + *
  2. X.Event.BEFORE_KILL_INSTANCE を発火する。戻り値のビットフラグに X.Callback.PREVENT_DEFAULT が立つ場合、破棄をキャンセルし X.Event.KILL_INSTANCE_CANCELED を発火する。この間に kill() が呼ばれても無視される。 *
  3. 破棄に進む場合は、X.Event.KILL_INSTANCE を発火する。 *
  4. dispatch 中は、インスタンスの全ての dispatch が終了するまで実際の破棄を待つ。 *
  5. 実際の破棄では、インスタンスのメンバの削除に加えて全てのイベントリスナを解除する。 diff --git a/0.6.x/js/02_dom/06_XNodeCSS.js b/0.6.x/js/02_dom/06_XNodeCSS.js index aa34a08..3719b43 100644 --- 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 ){ test = X_Node_CSS_FILTER_FIX_PROPS, filters = [], n = -1, - p, id, v, num, ary, params, i, l, dir, - afterUpdate, impossible; + p, id, v, num, vu, u, _v, ary, params, i, l, dir, + afterUpdate, impossible, color; for( p in obj ){ //if( X_EMPTY_OBJECT[ p ] ) continue; @@ -445,7 +445,7 @@ function X_Node_CSS_objToIEFilterText( that, opt_css, opt_cssList ){ sinY = Math.sin( radian ), skewX = X_Node_CSS_ieMathRangeFix( params[ 3 ] ), //skew - skewY = X_Node_CSS_ieMathRangeFix( params[ 4 ] ); + skewY = X_Node_CSS_ieMathRangeFix( params[ 4 ] ), _skX = Math.tan( skewX * PI_180 ), _skY = Math.tan( skewY * PI_180 ), @@ -510,7 +510,7 @@ function X_Node_CSS_onAfterUpdateIEFilterFix( that ){ elm = that[ '_rawObject' ], filter = elm.style.filter || '', origin = filter, - p, v, plus; + p, v, plus, id; for( p in css ){ if( !( id = test[ p ] ) ) continue; @@ -846,7 +846,7 @@ X_Node_CSS_getCharSize = }) : X_UA_DOM.IE4 ? (function( that ){ - var font, vu, v, u, _v; + var font, vu, v, u, _v, elm; X_Node_updateTimerID && X_Node_startUpdate(); if( that === X_Node_body && X_ViewPort_baseFontSize ) return X_ViewPort_baseFontSize; diff --git a/0.6.x/js/02_dom/10_XNodeAnime.js b/0.6.x/js/02_dom/10_XNodeAnime.js index e856bd8..580d6da 100644 --- 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 ){ obj.altY = fallback & 16 ? 'bottom' : 'top'; // scale - if( obj.toScaleX !== 1 && obj.fromScaleX !== 1 && obj.toScaleY !== 1 && obj.fromScaleY !== 1 ){ + if( obj.toScaleX !== 1 || obj.fromScaleX !== 1 || obj.toScaleY !== 1 || obj.fromScaleY !== 1 ){ sameRate = obj.fromScaleX === obj.fromScaleY && obj.toScaleX === obj.toScaleY; if( X_NodeAnime_hasTransform ){ @@ -315,7 +315,7 @@ function X_NodeAnime_stopNow( xnode ){ */ function X_NodeAnime_detectWaitAnimation( xnode, duration, isTest ){ var list = X_NodeAnime_QUEUE, - i = 0, _xnode; + i = 0, _xnode, obj; for( ; _xnode = list[ i ]; ++i ){ if( _xnode === xnode ) break; diff --git a/0.6.x/js/02_dom/20_XNode.js b/0.6.x/js/02_dom/20_XNode.js index b0ebdf4..f09db3a 100644 --- 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... */ ){ var args = arguments, l = args.length - 1, v, raw, parent, body, - childX, childY, childW, childH, + child, childX, childY, childW, childH, parentW, parentH, parentSX, parentSY, parentSW, parentSH, visibleX, visibleY, visibleW, visibleH, @@ -1258,6 +1258,7 @@ function X_Node_call( name /*, opt_args... */ ){ }; if( name === 'inView' ){ + if( !( this[ '_flags' ] & X_NodeFlags_IN_TREE ) ) return { 'isInView' : false }; body = X_elmBody; child = raw; visibleX = visibleY = visibleW = visibleH = 0; @@ -1633,12 +1634,34 @@ var X_Node__commitUpdate = }; }; +/* + * if( ( anime = that[ '_anime' ] ) && 6 <= anime.phase && anime.doScroll ){ + if( anime.phase === 6 ){ + v = anime.fromScrollX; + if( v === v ){ + elm.scrollLeft = v; + } else { + anime.fromScrollX = elm.scrollLeft; + }; + v = anime.fromScrollY; + if( v === v ){ + elm.scrollTop = v; + } else { + anime.fromScrollY = elm.scrollTop; + }; + } else { + elm.scrollLeft = anime.scrollX; + elm.scrollTop = anime.scrollY; + }; + }; + */ + return elm; }) : X_UA_DOM.IE4 ? ( function( that, parentElement, prevElement, accumulatedFlags ){ var elm = that[ '_rawObject' ] || X_Node__ie4getRawNode( that ), - xnodes, l, i, dirty, mix, html, text, prev; + xnodes, l, i, dirty, mix, html, text, prev, anime, v; if( !that[ '_tag' ] ){ that[ '_flags' ] & X_NodeFlags_DIRTY_CONTENT && X_Node__updateRawNode( that, elm ); diff --git a/0.6.x/js/06_net/03_XNetForm.js b/0.6.x/js/06_net/03_XNetForm.js index 66a1bac..cdbcb4f 100644 --- a/0.6.x/js/06_net/03_XNetForm.js +++ b/0.6.x/js/06_net/03_XNetForm.js @@ -1,7 +1,7 @@ //{+netform"
    によるGETとPOST"(動的に生成したフォームによるGETとPOST。)[+net,+ninjaiframe] var X_FormSender_errorTimerID, - X_FormSender_isLeave, + X_FormSender_isLeave, X_FormSender_isSameDomain, X_FormSender_onloadCount = 0; X_TEMP.X_FormSender_init = function(){ @@ -30,6 +30,7 @@ X_TEMP.X_FormSender_params = { load : function( option ){ //createURL var params = option[ 'params' ] || {}, + url = option[ 'url' ], target = option[ 'target' ], timeout = option[ 'timeout' ], // http://search.web-sun.com/zatu/charset.html @@ -40,12 +41,12 @@ X_TEMP.X_FormSender_params = { html = [ // '' ]; - X_FormSender_isLeave = target === '_top' || target === '_parent'; - + X_FormSender_isLeave = target === '_top' || target === '_parent'; + X_FormSender_isSameDomain = X_URL_isSameDomain( url ); for( k in params ){ // TODO 使用すべきでない name @@ -91,9 +92,12 @@ function X_FormSender_iframeListener( e ){ }; if( ++X_FormSender_onloadCount === 1 ){ - idoc = this[ '_rawObject' ].contentDocument || this._iwin.document, - - X_FormSender[ 'asyncDispatch' ]( { type : X_EVENT_SUCCESS, response : idoc && idoc.body ? idoc.body.innerHTML : '' } ); + if( X_FormSender_isSameDomain ){ + idoc = this[ '_rawObject' ].contentDocument || this._iwin.document; + X_FormSender[ 'asyncDispatch' ]( { type : X_EVENT_SUCCESS, response : idoc && idoc.body ? idoc.body.innerHTML : '' } ); + } else { + X_FormSender[ 'asyncDispatch' ]( { type : X_EVENT_SUCCESS } ); + }; }; break; case 'ninjaerror' : diff --git a/0.6.x/js/06_net/05_XXHRGadget.js b/0.6.x/js/06_net/05_XXHRGadget.js index 6950697..c13ed9f 100644 --- 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 = { max = X_GadgetXHR_maxQueryLength - X_GadgetXHR_GADGET_URL.length - 5; - sendStr = X_JSON_stringify( req ); + sendStr = /* X_JSON_stringify */X[ 'JSON' ].stringify( req ); while( sendStr.length ){ l = max; diff --git a/0.6.x/js/06_net/10_XOAuth2.js b/0.6.x/js/06_net/10_XOAuth2.js index b6632be..b37a6f9 100644 --- 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' ]( */ 'requestAuth' : function(){ var e = X_EventDispatcher_CURRENT_EVENTS[ X_EventDispatcher_CURRENT_EVENTS.length - 1 ], - w, h; + w, h, pair; // TODO pointer event 内か?チェック if( !e || !e[ 'pointerType' ] ){ diff --git a/0.6.x/js/07_audio/00_XAudio.js b/0.6.x/js/07_audio/00_XAudio.js index 21cc83b..4b48359 100644 --- 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( * @param {array|string} sourceList * @param {object=} opt_option * @example // - * var audio = X.Audio( [ 'etc/special.mp3', 'etc/special.ogg', 'etc/special.wav' ] ) - .listenOnce( X.Event.READY, onReady ); + * var audio = X.Audio( [ 'etc/special.mp3', 'etc/special.ogg', 'etc/special.wav' ] ).listenOnce( X.Event.READY, onReady ); */ X[ 'Audio' ] = X_EventDispatcher[ 'inherits' ]( 'X.Audio', @@ -92,7 +91,7 @@ X[ 'Audio' ] = X_EventDispatcher[ 'inherits' ]( * @alias Audio.prototype.play * @param {number=} startTime 開始時間を ms で * @param {number=} endTime 終了時間を ms で - * @param {boolean=} endTime に達した際に曲をループさせるか + * @param {boolean=} loop endTimeに達した際に曲をループさせるか * @param {number=} loopStartTime ループ以後の開始時間を ms で * @param {number=} loopEndTime ループ以後の終了時間を ms で * @return {Audio} メソッドチェーン @@ -129,18 +128,18 @@ X[ 'Audio' ] = X_EventDispatcher[ 'inherits' ]( * @param {object=} obj setter の場合、上書きする値を格納したobject * @return {Audio|object} * @example - * audio.setState( - { - 'startTime' : 0, - 'endTime' : 80000, - 'loopStartTime' : 120000, - 'loopEndTime' : 200000, - 'currentTime' : 0, - 'loop' : true, - 'looded' : false, - 'volume' : 1, - 'autoplay' : true - }); +audio.setState( + { + 'startTime' : 0, + 'endTime' : 80000, + 'loopStartTime' : 120000, + 'loopEndTime' : 200000, + 'currentTime' : 0, + 'loop' : true, + 'looded' : false, + 'volume' : 1, + 'autoplay' : true +}); */ 'state' : function( obj ){ var pair = X_Pair_get( this ); @@ -179,7 +178,7 @@ X[ 'Audio' ] = X_EventDispatcher[ 'inherits' ]( /** * ボリュームの setter 実装不十分! * @alias Audio.prototype.volume - * @param {number} v + * @param {number} v 0~1 * @return {Audio} */ 'volume' : function( v ){ diff --git a/0.6.x/js/07_audio/10_XAudioSprite.js b/0.6.x/js/07_audio/10_XAudioSprite.js index c3248a9..bb4272b 100644 --- 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 = */ 'seek' : function( uid, position ){ var track = X_AudioSprite_TEMP.tracks[ uid ], - end, strat; + end, start; if( track ){ delete track.seekTime; end = X_Audio_getEndTime( track ); diff --git a/0.6.x/js/11_hid/01_KB.js b/0.6.x/js/11_hid/01_KB.js index 26d1544..83e0bfb 100644 --- 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- 対策 var keyCode = e.keyCode, // keyCode says something about the actual keyboard key the user pressed chrCode = e.charCode, // while charCode gives the ASCII value of the resulting character cb = X_CALLBACK_NONE, - special, is10Key, _keyCode; + special, _keyCode; console.log( e.type + ' > keyCode:' + keyCode + ' chrCode:' + chrCode ); @@ -66,15 +66,15 @@ var X_KB_SPECIALS = eval( // IE5- 対策 }; cb = this[ 'dispatch' ]( { - type : 'keydown', - keyCode : keyCode, - charCode : chrCode, - keyName : X_Type_isString( special ) ? special : '', - is10key : !!is10Key, - shiftKey : !!X_KB_DOWN_KEYS[ 16 ], - ctrlKey : !!X_KB_DOWN_KEYS[ 17 ], - altKey : !!X_KB_DOWN_KEYS[ 18 ], - metaKey : !!X_KB_DOWN_KEYS[ 224 ] + type : 'keydown', + keyCode : keyCode, + charCode : chrCode, + 'keyName' : X_Type_isString( special ) ? special : '', + 'is10key' : !!X_KB_lastIs10Key, + shiftKey : !!X_KB_DOWN_KEYS[ 16 ], + ctrlKey : !!X_KB_DOWN_KEYS[ 17 ], + altKey : !!X_KB_DOWN_KEYS[ 18 ], + metaKey : !!X_KB_DOWN_KEYS[ 224 ] } ); if( cb & X_CALLBACK_PREVENT_DEFAULT ){ @@ -97,21 +97,21 @@ var X_KB_SPECIALS = eval( // IE5- 対策 return X_KB_CANCELED[ chrCode ] ? X_CALLBACK_PREVENT_DEFAULT : cb; } else if( keyCode === 32 ){ - charCode = 32; + chrCode = 32; }; if( 32 <= chrCode && chrCode <= 126 ){ X_KB_TRANSFOEM[ X_KB_lastKeyCode ] = chrCode; cb = this[ 'dispatch' ]( { - type : 'keydown', - keyCode : X_KB_lastIs10Key ? X_KB_lastKeyCode : 0, - charCode : chrCode, - is10key : X_KB_lastIs10Key, - shiftKey : !!X_KB_DOWN_KEYS[ 16 ], - ctrlKey : !!X_KB_DOWN_KEYS[ 17 ], - altKey : !!X_KB_DOWN_KEYS[ 18 ], - metaKey : !!X_KB_DOWN_KEYS[ 224 ] + type : 'keydown', + keyCode : X_KB_lastIs10Key ? X_KB_lastKeyCode : 0, + charCode : chrCode, + 'is10key' : X_KB_lastIs10Key, + shiftKey : !!X_KB_DOWN_KEYS[ 16 ], + ctrlKey : !!X_KB_DOWN_KEYS[ 17 ], + altKey : !!X_KB_DOWN_KEYS[ 18 ], + metaKey : !!X_KB_DOWN_KEYS[ 224 ] } ); X_KB_lastIs10Key = true; @@ -125,16 +125,16 @@ var X_KB_SPECIALS = eval( // IE5- 対策 if( ( special = X_KB_SPECIALS[ keyCode ] ) && ( !X_KB_DOWN_KEYS[ keyCode ] && !X_KB_DOWN_KEYS[ special ] ) ){ cb |= this[ 'dispatch' ]( { - type : 'keydown', - keyCode : keyCode, - charCode : 0, - keyName : special, - is10key : false, - isVirtual : true, - shiftKey : !!X_KB_DOWN_KEYS[ 16 ], - ctrlKey : !!X_KB_DOWN_KEYS[ 17 ], - altKey : !!X_KB_DOWN_KEYS[ 18 ], - metaKey : !!X_KB_DOWN_KEYS[ 224 ] + type : 'keydown', + keyCode : keyCode, + charCode : 0, + 'keyName' : special, + 'is10key' : false, + 'isVirtual' : true, + shiftKey : !!X_KB_DOWN_KEYS[ 16 ], + ctrlKey : !!X_KB_DOWN_KEYS[ 17 ], + altKey : !!X_KB_DOWN_KEYS[ 18 ], + metaKey : !!X_KB_DOWN_KEYS[ 224 ] } ); }; @@ -150,14 +150,14 @@ var X_KB_SPECIALS = eval( // IE5- 対策 }; cb |= this[ 'dispatch' ]( { - type : 'keyup', - keyCode : keyCode, - charCode : chrCode, - keyName : X_Type_isString( special ) ? special : '', - shiftKey : X_KB_DOWN_KEYS[ 16 ], - ctrlKey : X_KB_DOWN_KEYS[ 17 ], - altKey : X_KB_DOWN_KEYS[ 18 ], - metaKey : X_KB_DOWN_KEYS[ 224 ] + type : 'keyup', + keyCode : keyCode, + charCode : chrCode, + 'keyName' : X_Type_isString( special ) ? special : '', + shiftKey : X_KB_DOWN_KEYS[ 16 ], + ctrlKey : X_KB_DOWN_KEYS[ 17 ], + altKey : X_KB_DOWN_KEYS[ 18 ], + metaKey : X_KB_DOWN_KEYS[ 224 ] } ); return cb; diff --git a/0.6.x/js/20_ui/06_AbstractUINode.js b/0.6.x/js/20_ui/06_AbstractUINode.js index 025aac3..5919e21 100644 --- 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( var newNode, //newPair = X_Pair_get( newNode ), pair = X_Pair_get( this ), - attr, listeners, type, list, i, l, k; + attr, listeners, type, list, i, l, k, def, f; // attr もコピー if( pair.attrObject ){ diff --git a/0.6.x/js/20_ui/20_Root.js b/0.6.x/js/20_ui/20_Root.js index 5515f8a..bd1a84b 100644 --- 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 ){ function X_UI_onMouseOut( e ){ var list = XUI_UINODES_HOVER, - i = list.length; + i = list.length, data; console.log( 'pointer out!!' + e.type + i + ' ' + e.pointerType ); e = X_Object_copy( e );