リビジョン | 009b1cd0cebdd15591a9abfb964fb57b41ccb5f9 (tree) |
---|---|
日時 | 2016-01-14 01:08:59 |
作者 | itozyun <itozyun@user...> |
コミッター | itozyun |
Version 0.6.207, Modification of variable scope leaks.
@@ -36,7 +36,7 @@ X_Class_CommonMethods = | ||
36 | 36 | * 全ての動的メンバを削除して、インスタンスを破棄する。<br> |
37 | 37 | * インスタンスが X.EventDispatcher とそのサブクラスの場合、次の動作をする。 |
38 | 38 | * <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() が呼ばれても無視される。 | |
40 | 40 | * <li>破棄に進む場合は、X.Event.KILL_INSTANCE を発火する。 |
41 | 41 | * <li>dispatch 中は、インスタンスの全ての dispatch が終了するまで実際の破棄を待つ。 |
42 | 42 | * <li>実際の破棄では、インスタンスのメンバの削除に加えて全てのイベントリスナを解除する。 |
@@ -320,8 +320,8 @@ function X_Node_CSS_objToIEFilterText( that, opt_css, opt_cssList ){ | ||
320 | 320 | test = X_Node_CSS_FILTER_FIX_PROPS, |
321 | 321 | filters = [], |
322 | 322 | 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; | |
325 | 325 | |
326 | 326 | for( p in obj ){ |
327 | 327 | //if( X_EMPTY_OBJECT[ p ] ) continue; |
@@ -445,7 +445,7 @@ function X_Node_CSS_objToIEFilterText( that, opt_css, opt_cssList ){ | ||
445 | 445 | sinY = Math.sin( radian ), |
446 | 446 | |
447 | 447 | skewX = X_Node_CSS_ieMathRangeFix( params[ 3 ] ), //skew |
448 | - skewY = X_Node_CSS_ieMathRangeFix( params[ 4 ] ); | |
448 | + skewY = X_Node_CSS_ieMathRangeFix( params[ 4 ] ), | |
449 | 449 | |
450 | 450 | _skX = Math.tan( skewX * PI_180 ), |
451 | 451 | _skY = Math.tan( skewY * PI_180 ), |
@@ -510,7 +510,7 @@ function X_Node_CSS_onAfterUpdateIEFilterFix( that ){ | ||
510 | 510 | elm = that[ '_rawObject' ], |
511 | 511 | filter = elm.style.filter || '', |
512 | 512 | origin = filter, |
513 | - p, v, plus; | |
513 | + p, v, plus, id; | |
514 | 514 | |
515 | 515 | for( p in css ){ |
516 | 516 | if( !( id = test[ p ] ) ) continue; |
@@ -846,7 +846,7 @@ X_Node_CSS_getCharSize = | ||
846 | 846 | }) : |
847 | 847 | X_UA_DOM.IE4 ? |
848 | 848 | (function( that ){ |
849 | - var font, vu, v, u, _v; | |
849 | + var font, vu, v, u, _v, elm; | |
850 | 850 | |
851 | 851 | X_Node_updateTimerID && X_Node_startUpdate(); |
852 | 852 | if( that === X_Node_body && X_ViewPort_baseFontSize ) return X_ViewPort_baseFontSize; |
@@ -146,7 +146,7 @@ function X_Node_animate( obj ){ | ||
146 | 146 | obj.altY = fallback & 16 ? 'bottom' : 'top'; |
147 | 147 | |
148 | 148 | // 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 ){ | |
150 | 150 | sameRate = obj.fromScaleX === obj.fromScaleY && obj.toScaleX === obj.toScaleY; |
151 | 151 | |
152 | 152 | if( X_NodeAnime_hasTransform ){ |
@@ -315,7 +315,7 @@ function X_NodeAnime_stopNow( xnode ){ | ||
315 | 315 | */ |
316 | 316 | function X_NodeAnime_detectWaitAnimation( xnode, duration, isTest ){ |
317 | 317 | var list = X_NodeAnime_QUEUE, |
318 | - i = 0, _xnode; | |
318 | + i = 0, _xnode, obj; | |
319 | 319 | |
320 | 320 | for( ; _xnode = list[ i ]; ++i ){ |
321 | 321 | if( _xnode === xnode ) break; |
@@ -1202,7 +1202,7 @@ function X_Node_call( name /*, opt_args... */ ){ | ||
1202 | 1202 | var args = arguments, |
1203 | 1203 | l = args.length - 1, |
1204 | 1204 | v, raw, parent, body, |
1205 | - childX, childY, childW, childH, | |
1205 | + child, childX, childY, childW, childH, | |
1206 | 1206 | parentW, parentH, |
1207 | 1207 | parentSX, parentSY, parentSW, parentSH, |
1208 | 1208 | visibleX, visibleY, visibleW, visibleH, |
@@ -1258,6 +1258,7 @@ function X_Node_call( name /*, opt_args... */ ){ | ||
1258 | 1258 | }; |
1259 | 1259 | |
1260 | 1260 | if( name === 'inView' ){ |
1261 | + if( !( this[ '_flags' ] & X_NodeFlags_IN_TREE ) ) return { 'isInView' : false }; | |
1261 | 1262 | body = X_elmBody; |
1262 | 1263 | child = raw; |
1263 | 1264 | visibleX = visibleY = visibleW = visibleH = 0; |
@@ -1633,12 +1634,34 @@ var X_Node__commitUpdate = | ||
1633 | 1634 | }; |
1634 | 1635 | }; |
1635 | 1636 | |
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 | + | |
1636 | 1659 | return elm; |
1637 | 1660 | }) : |
1638 | 1661 | X_UA_DOM.IE4 ? |
1639 | 1662 | ( function( that, parentElement, prevElement, accumulatedFlags ){ |
1640 | 1663 | 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; | |
1642 | 1665 | |
1643 | 1666 | if( !that[ '_tag' ] ){ |
1644 | 1667 | that[ '_flags' ] & X_NodeFlags_DIRTY_CONTENT && X_Node__updateRawNode( that, elm ); |
@@ -1,7 +1,7 @@ | ||
1 | 1 | //{+netform"<form>によるGETとPOST"(動的に生成したフォームによるGETとPOST。)[+net,+ninjaiframe] |
2 | 2 | |
3 | 3 | var X_FormSender_errorTimerID, |
4 | - X_FormSender_isLeave, | |
4 | + X_FormSender_isLeave, X_FormSender_isSameDomain, | |
5 | 5 | X_FormSender_onloadCount = 0; |
6 | 6 | |
7 | 7 | X_TEMP.X_FormSender_init = function(){ |
@@ -30,6 +30,7 @@ X_TEMP.X_FormSender_params = { | ||
30 | 30 | load : function( option ){ |
31 | 31 | //createURL |
32 | 32 | var params = option[ 'params' ] || {}, |
33 | + url = option[ 'url' ], | |
33 | 34 | target = option[ 'target' ], |
34 | 35 | timeout = option[ 'timeout' ], |
35 | 36 | // http://search.web-sun.com/zatu/charset.html |
@@ -40,12 +41,12 @@ X_TEMP.X_FormSender_params = { | ||
40 | 41 | html = [ |
41 | 42 | // <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> |
42 | 43 | '<form method="', X_FormSender_escapeQuote( option[ 'method' ] || 'GET' ), |
43 | - '" action="', X_FormSender_escapeQuote( option[ 'url' ] || '' ), | |
44 | + '" action="', X_FormSender_escapeQuote( url || '' ), | |
44 | 45 | '" target="', X_FormSender_escapeQuote( target ), |
45 | 46 | '">' ]; |
46 | 47 | |
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 ); | |
49 | 50 | |
50 | 51 | for( k in params ){ |
51 | 52 | // TODO 使用すべきでない name |
@@ -91,9 +92,12 @@ function X_FormSender_iframeListener( e ){ | ||
91 | 92 | }; |
92 | 93 | |
93 | 94 | 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 | + }; | |
97 | 101 | }; |
98 | 102 | break; |
99 | 103 | case 'ninjaerror' : |
@@ -177,7 +177,7 @@ X_TEMP.X_GadgetXHR_props = { | ||
177 | 177 | |
178 | 178 | max = X_GadgetXHR_maxQueryLength - X_GadgetXHR_GADGET_URL.length - 5; |
179 | 179 | |
180 | - sendStr = X_JSON_stringify( req ); | |
180 | + sendStr = /* X_JSON_stringify */X[ 'JSON' ].stringify( req ); | |
181 | 181 | |
182 | 182 | while( sendStr.length ){ |
183 | 183 | l = max; |
@@ -104,7 +104,7 @@ X[ 'OAuth2' ] = X_EventDispatcher[ 'inherits' ]( | ||
104 | 104 | */ |
105 | 105 | 'requestAuth' : function(){ |
106 | 106 | var e = X_EventDispatcher_CURRENT_EVENTS[ X_EventDispatcher_CURRENT_EVENTS.length - 1 ], |
107 | - w, h; | |
107 | + w, h, pair; | |
108 | 108 | |
109 | 109 | // TODO pointer event 内か?チェック |
110 | 110 | if( !e || !e[ 'pointerType' ] ){ |
@@ -57,8 +57,7 @@ X_TEMP.onSystemReady.push( | ||
57 | 57 | * @param {array|string} sourceList |
58 | 58 | * @param {object=} opt_option |
59 | 59 | * @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 ); | |
62 | 61 | */ |
63 | 62 | X[ 'Audio' ] = X_EventDispatcher[ 'inherits' ]( |
64 | 63 | 'X.Audio', |
@@ -92,7 +91,7 @@ X[ 'Audio' ] = X_EventDispatcher[ 'inherits' ]( | ||
92 | 91 | * @alias Audio.prototype.play |
93 | 92 | * @param {number=} startTime 開始時間を ms で |
94 | 93 | * @param {number=} endTime 終了時間を ms で |
95 | - * @param {boolean=} endTime に達した際に曲をループさせるか | |
94 | + * @param {boolean=} loop endTimeに達した際に曲をループさせるか | |
96 | 95 | * @param {number=} loopStartTime ループ以後の開始時間を ms で |
97 | 96 | * @param {number=} loopEndTime ループ以後の終了時間を ms で |
98 | 97 | * @return {Audio} メソッドチェーン |
@@ -129,18 +128,18 @@ X[ 'Audio' ] = X_EventDispatcher[ 'inherits' ]( | ||
129 | 128 | * @param {object=} obj setter の場合、上書きする値を格納したobject |
130 | 129 | * @return {Audio|object} |
131 | 130 | * @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 | +}); | |
144 | 143 | */ |
145 | 144 | 'state' : function( obj ){ |
146 | 145 | var pair = X_Pair_get( this ); |
@@ -179,7 +178,7 @@ X[ 'Audio' ] = X_EventDispatcher[ 'inherits' ]( | ||
179 | 178 | /** |
180 | 179 | * ボリュームの setter 実装不十分! |
181 | 180 | * @alias Audio.prototype.volume |
182 | - * @param {number} v | |
181 | + * @param {number} v 0~1 | |
183 | 182 | * @return {Audio} |
184 | 183 | */ |
185 | 184 | 'volume' : function( v ){ |
@@ -265,7 +265,7 @@ var X_AudioSprite_members = | ||
265 | 265 | */ |
266 | 266 | 'seek' : function( uid, position ){ |
267 | 267 | var track = X_AudioSprite_TEMP.tracks[ uid ], |
268 | - end, strat; | |
268 | + end, start; | |
269 | 269 | if( track ){ |
270 | 270 | delete track.seekTime; |
271 | 271 | end = X_Audio_getEndTime( track ); |
@@ -42,7 +42,7 @@ var X_KB_SPECIALS = eval( // IE5- 対策 | ||
42 | 42 | var keyCode = e.keyCode, // keyCode says something about the actual keyboard key the user pressed |
43 | 43 | chrCode = e.charCode, // while charCode gives the ASCII value of the resulting character |
44 | 44 | cb = X_CALLBACK_NONE, |
45 | - special, is10Key, _keyCode; | |
45 | + special, _keyCode; | |
46 | 46 | |
47 | 47 | console.log( e.type + ' > keyCode:' + keyCode + ' chrCode:' + chrCode ); |
48 | 48 |
@@ -66,15 +66,15 @@ var X_KB_SPECIALS = eval( // IE5- 対策 | ||
66 | 66 | }; |
67 | 67 | |
68 | 68 | 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 ] | |
78 | 78 | } ); |
79 | 79 | |
80 | 80 | if( cb & X_CALLBACK_PREVENT_DEFAULT ){ |
@@ -97,21 +97,21 @@ var X_KB_SPECIALS = eval( // IE5- 対策 | ||
97 | 97 | return X_KB_CANCELED[ chrCode ] ? X_CALLBACK_PREVENT_DEFAULT : cb; |
98 | 98 | } else |
99 | 99 | if( keyCode === 32 ){ |
100 | - charCode = 32; | |
100 | + chrCode = 32; | |
101 | 101 | }; |
102 | 102 | |
103 | 103 | if( 32 <= chrCode && chrCode <= 126 ){ |
104 | 104 | X_KB_TRANSFOEM[ X_KB_lastKeyCode ] = chrCode; |
105 | 105 | |
106 | 106 | 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 ] | |
115 | 115 | } ); |
116 | 116 | |
117 | 117 | X_KB_lastIs10Key = true; |
@@ -125,16 +125,16 @@ var X_KB_SPECIALS = eval( // IE5- 対策 | ||
125 | 125 | |
126 | 126 | if( ( special = X_KB_SPECIALS[ keyCode ] ) && ( !X_KB_DOWN_KEYS[ keyCode ] && !X_KB_DOWN_KEYS[ special ] ) ){ |
127 | 127 | 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 ] | |
138 | 138 | } ); |
139 | 139 | }; |
140 | 140 |
@@ -150,14 +150,14 @@ var X_KB_SPECIALS = eval( // IE5- 対策 | ||
150 | 150 | }; |
151 | 151 | |
152 | 152 | 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 ] | |
161 | 161 | } ); |
162 | 162 | |
163 | 163 | return cb; |
@@ -973,7 +973,7 @@ X.UI.AbstractUINode = X_Class_create( | ||
973 | 973 | var newNode, |
974 | 974 | //newPair = X_Pair_get( newNode ), |
975 | 975 | pair = X_Pair_get( this ), |
976 | - attr, listeners, type, list, i, l, k; | |
976 | + attr, listeners, type, list, i, l, k, def, f; | |
977 | 977 | |
978 | 978 | // attr もコピー |
979 | 979 | if( pair.attrObject ){ |
@@ -116,7 +116,7 @@ function X_UI_eventRellay( e ){ | ||
116 | 116 | |
117 | 117 | function X_UI_onMouseOut( e ){ |
118 | 118 | var list = XUI_UINODES_HOVER, |
119 | - i = list.length; | |
119 | + i = list.length, data; | |
120 | 120 | console.log( 'pointer out!!' + e.type + i + ' ' + e.pointerType ); |
121 | 121 | |
122 | 122 | e = X_Object_copy( e ); |