svnno****@sourc*****
svnno****@sourc*****
2011年 4月 17日 (日) 23:01:01 JST
Revision: 2605 http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=2605 Author: dhrname Date: 2011-04-17 23:01:01 +0900 (Sun, 17 Apr 2011) Log Message: ----------- 0.75統合 Modified Paths: -------------- trunk/sie.js Property Changed: ---------------- trunk/sie.js Modified: trunk/sie.js =================================================================== --- trunk/sie.js 2011-04-17 13:58:27 UTC (rev 2604) +++ trunk/sie.js 2011-04-17 14:01:01 UTC (rev 2605) @@ -1698,6 +1698,20 @@ return ""; } }, + _isFillStroke : { + "fill" : 1, + "stroke" : 1 + }, + _isColor : { + "color" : 1 + }, + _isStop : { + "stop-color" : 1 + }, + _isRS : { + "r" : 1, + "#" : 1 + }, /*setPropertyメソッド *プロパティを宣言内で、明示的に設定。継承は無視する */ @@ -1718,14 +1732,14 @@ tg.cssText = cssText; ti = tg; } else { - if ((propertyName === "fill") || (propertyName === "stroke")) { + if (this._isFillStroke[propertyName]) { /*fill、strokeプロパティは別途、SVGPaintで処理(JavaScriptでは、型キャストを使えないため) *CSSPrimitiveValueオブジェクトとSVGPaintオブジェクトを最後に置き換える */ ti = new SVGPaint(); paintType = /*SVGPaint.SVG_PAINTTYPE_UNKNOWN*/ 0; v1 = value.charAt(0); - if ((v1 === "#") || ti._keywords[value] || (v1 === "r")) { + if (this._isRS[v1] || ti._keywords[value]) { paintType = /*SVGPaint.SVG_PAINTTYPE_RGBCOLOR*/ 1; color = value; } else if (value === "none") { @@ -1739,7 +1753,11 @@ } ti.setPaint(paintType, uri, color, null); paintType = v1 = uri = color = null; - } else if (propertyName === "color") { + } else if (this._isStop[propertyName]) { + ti = new SVGColor(); + ti.colorType = /*SVGColor.SVG_COLORTYPE_RGBCOLOR*/ 1; + ti.setRGBColor(value); + } else if (this._isColor[propertyName]) { ti = new CSSPrimitiveValue(); fill = this.getPropertyCSSValue("fill"); stroke = this.getPropertyCSSValue("stroke"); @@ -1892,13 +1910,13 @@ if (CSSPrimitiveValue.CSS_DIMENSION >= stringType && stringType >= CSSPrimitiveValue.CSS_COUNTER) { //文字列型をサポートしないCSS単位である場合 throw new DOMException(DOMException.INVALID_ACCESS_ERR); } - this.cssText = stringValue; + this._value = stringValue; }; -/*string*/ CSSPrimitiveValue.prototype.getStringValue = function() { +/*string*/ CSSPrimitiveValue.prototype.getStringValue = function(/*short*/ stringType) { if (CSSPrimitiveValue.CSS_DIMENSION >= stringType && stringType >= CSSPrimitiveValue.CSS_COUNTER) { //文字列型をサポートしないCSS単位である場合 throw new DOMException(DOMException.INVALID_ACCESS_ERR); } - return (this.cssText); + return (this._value); }; /*Counter*/ CSSPrimitiveValue.prototype.getCounterValue = function() { if (this.primitiveType !== CSSPrimitiveValue.CSS_COUNTER) { //Counter型ではないとき @@ -2356,7 +2374,7 @@ /*readonly attribute SVGAnimatedTransformList*/ this.transform = new SVGAnimatedTransformList(); //描画の際、SVGStylabaleで指定しておいたプロパティの処理をする this.addEventListener("DOMAttrModified", function(evt){ - if (evt.eventPhase === Event.BUBBLING_PHASE) { + if (evt.eventPhase === /*Event.BUBBLING_PHASE*/ 3) { return; } var name = evt.attrName, @@ -2473,55 +2491,53 @@ tar.addEventListener(v, document._s, false); } else if (evt.relatedNode.nodeName === "xml:base") { //xml:base属性ならば tar.xmlbase = evt.newValue; - } else { - if (!!tar[name]) { - var tea = tar[name], - tod = tar.ownerDocument.documentElement, - tvw = tod.viewport.width, - tvh = tod.viewport.height, - n, - type, - _parseFloat, - s; - if (tea instanceof SVGAnimatedLength) { - n = evt.newValue.match(tar._NaNReg); - type = /*SVGLength.SVG_LENGTHTYPE_NUMBER*/ 1; - _parseFloat = parseFloat; - if (!!n) { - n = n[0]; + } else if (!!tar[name]) { + var tea = tar[name], + tod = tar.ownerDocument.documentElement, + tvw = tod.viewport.width, + tvh = tod.viewport.height, + n, + type, + _parseFloat, + s; + if (tea instanceof SVGAnimatedLength) { + n = evt.newValue.match(tar._NaNReg); + type = /*SVGLength.SVG_LENGTHTYPE_NUMBER*/ 1; + _parseFloat = parseFloat; + if (!!n) { + n = n[0]; + } + if (n === "%") { + if (tar._x1width[name]) { + tea.baseVal._percent = tvw * 0.01; + } else if (tar._y1height[name]) { + tea.baseVal._percent = tvh * 0.01; + } else { + tea.baseVal._percent = Math.sqrt((tvw*tvw + tvh*tvh) / 2) * 0.01; } - if (n === "%") { - if (tar._x1width[name]) { - tea.baseVal._percent = tvw * 0.01; - } else if (tar._y1height[name]) { - tea.baseVal._percent = tvh * 0.01; - } else { - tea.baseVal._percent = Math.sqrt((tvw*tvw + tvh*tvh) / 2) * 0.01; - } - type = /*SVGLength.SVG_LENGTHTYPE_PERCENTAGE*/ 2; - } else if (n === "em") { - type = /*SVGLength.SVG_LENGTHTYPE_EMS*/ 3; - } else if (n === "ex") { - type = /*SVGLength.SVG_LENGTHTYPE_EXS*/ 4; - } else if (n === "px") { - type = /*SVGLength.SVG_LENGTHTYPE_PX*/ 5; - } else if (n === "cm") { - type = /*SVGLength.SVG_LENGTHTYPE_CM*/ 6; - } else if (n === "mm") { - type = /*SVGLength.SVG_LENGTHTYPE_MM*/ 7; - } else if (n === "in") { - type = /*SVGLength.SVG_LENGTHTYPE_IN*/ 8; - } else if (n === "pt") { - type = /*SVGLength.SVG_LENGTHTYPE_PT*/ 9; - } else if (n === "pc") { - type = /*SVGLength.SVG_LENGTHTYPE_PC*/ 10; - } - s = _parseFloat(evt.newValue); - s = isNaN(s) ? 0 : s; - tea.baseVal.newValueSpecifiedUnits(type, s); + type = /*SVGLength.SVG_LENGTHTYPE_PERCENTAGE*/ 2; + } else if (n === "em") { + type = /*SVGLength.SVG_LENGTHTYPE_EMS*/ 3; + } else if (n === "ex") { + type = /*SVGLength.SVG_LENGTHTYPE_EXS*/ 4; + } else if (n === "px") { + type = /*SVGLength.SVG_LENGTHTYPE_PX*/ 5; + } else if (n === "cm") { + type = /*SVGLength.SVG_LENGTHTYPE_CM*/ 6; + } else if (n === "mm") { + type = /*SVGLength.SVG_LENGTHTYPE_MM*/ 7; + } else if (n === "in") { + type = /*SVGLength.SVG_LENGTHTYPE_IN*/ 8; + } else if (n === "pt") { + type = /*SVGLength.SVG_LENGTHTYPE_PT*/ 9; + } else if (n === "pc") { + type = /*SVGLength.SVG_LENGTHTYPE_PC*/ 10; } - tea = tod = tvw = tvh = n = type = _parseFloat = s = null; + s = _parseFloat(evt.newValue); + s = isNaN(s) ? 0 : s; + tea.baseVal.newValueSpecifiedUnits(type, s); } + tea = tod = tvw = tvh = n = type = _parseFloat = s = null; } evt = _parseFloat = name = tar = null; }, false); @@ -2860,20 +2876,21 @@ return this; }; function SVGAngle() { - /*readonly attribute unsigned short*/ this.unitType = 0; - /*attribute float*/ this.value = 0; - // raises DOMException on setting - /*attribute float*/ this.valueInSpecifiedUnits; - // raises DOMException on setting - /*attribute DOMString*/ this.valueAsString; - // raises DOMException on setting return this; }; SVGAngle.prototype = { + /*readonly attribute unsigned short*/ unitType : 0, + /*attribute float*/ value : 0, + // raises DOMException on setting + /*attribute float*/ valueInSpecifiedUnits : 0, + // raises DOMException on setting + /*attribute DOMString*/ valueAsString : "0", + // raises DOMException on setting /*void*/ newValueSpecifiedUnits : function (/*in unsigned short*/ unitType, /*in float*/ valueInSpecifiedUnits ) { var n = 1, - _s = ""; //nは各単位から利用単位への変換数値。_sは単位の文字列を表す - if (unitType === SVGAngle.SVG_ANGLETYPE_DEG) { + _s = ""; //nは各単位から度への変換数値。_sは単位の文字列を表す + if (unitType === SVGAngle.SVG_ANGLETYPE_UNSPECIFIED) { + } else if (unitType === SVGAngle.SVG_ANGLETYPE_DEG) { _s = "deg" } else if (unitType === SVGAngle.SVG_ANGLETYPE_RAD) { n = Math.PI / 180; @@ -2881,11 +2898,13 @@ } else if (unitType === SVGAngle.SVG_ANGLETYPE_GRAD) { n = 9 / 10; _s = "grad"; + } else { + throw new DOMException(DOMException.NOT_SUPPORTED_ERR); } this.unitType = unitType; this.value = valueInSpecifiedUnits * n; this.valueInSpecifiedUnits = valueInSpecifiedUnits; - this.valuAsString = valueInSpecifiedUnits + _s; + this.valueAsString = valueInSpecifiedUnits + _s; n = _s = null; //raises( DOMException ); }, @@ -2913,10 +2932,8 @@ return this; }; function SVGColor() { - CSSValue.call(this, arguments); - /*readonly unsigned short*/ this.colorType = /*SVGColor.SVG_COLORTYPE_UNKNOWN*/ 0; + CSSValue.apply(this); /*readonly css::RGBColor*/ this.rgbColor = new RGBColor(); - /*readonly SVGICCColor*/ this.iccColor; return this; }; @@ -2928,6 +2945,8 @@ SVGColor.prototype = new CSSValue(); //ノードのプロトタイプチェーンを作って、継承 SVGColor.constructor = CSSValue; +/*readonly unsigned short*/ SVGColor.prototype.colorType = /*SVGColor.SVG_COLORTYPE_UNKNOWN*/ 0; +/*readonly SVGICCColor*/ SVGColor.prototype.iccColor = null; /*void*/ SVGColor.prototype.setRGBColor = function(/*DOMString*/ rgbColor ){ var tkr = this._keywords[rgbColor], s, @@ -3190,7 +3209,7 @@ }, false); this.addEventListener("DOMNodeInserted", function(evt){ var tar = evt.target; - if (evt.eventPhase === Event.BUBBLING_PHASE) { + if (evt.eventPhase === /*Event.BUBBLING_PHASE*/ 3) { return; //強制終了させる } tar.addEventListener("DOMNodeInsertedIntoDocument", function(evt){ @@ -3391,7 +3410,7 @@ *随時、属性の値をDOMプロパティに変換しておくリスナー登録 */ this.addEventListener("DOMAttrModified", function(evt){ - if (evt.eventPhase === Event.BUBBLING_PHASE) { + if (evt.eventPhase === /*Event.BUBBLING_PHASE*/ 3) { return; //強制終了させる } var tar = evt.target, @@ -3452,7 +3471,7 @@ }, false); this.addEventListener("SVGLoad", function(evt){ evt.target.addEventListener("DOMAttrModified", function(evt){ - if (evt.eventPhase === Event.BUBBLING_PHASE) { + if (evt.eventPhase === /*Event.BUBBLING_PHASE*/ 3) { var tar = evt.target, evtt; if (tar.parentNode) { @@ -3480,7 +3499,6 @@ SVGSVGElement.prototype = new SVGElement(); /*void*/ SVGSVGElement.prototype.forceRedraw = function() { }; - /*float*/ SVGSVGElement.prototype.getCurrentTime = function(){ return (this._currentTime); }; @@ -3492,6 +3510,12 @@ s.value = 0; return s; }; +/*SVGAngle*/ SVGSVGElement.prototype.createSVGAngle = function(){ + var s = new SVGAngle(); + s.value = 0; + s.unitType = 1; + return s; +}; /*SVGLength*/ SVGSVGElement.prototype.createSVGLength = function(){ var s = new SVGLength(); s.unitType = /*SVG_LENGTHTYPE_NUMBER*/ 1; @@ -3664,7 +3688,7 @@ } tnext = tpar = isLast = null; tar.addEventListener("DOMAttrModified", function(evt){ - if (evt.eventPhase === Event.BUBBLING_PHASE) { + if (evt.eventPhase === /*Event.BUBBLING_PHASE*/ 3) { return; //強制終了させる } var tar = evt.target; @@ -3732,7 +3756,7 @@ /*readonly SVGElementInstance*/ this.instanceRoot = new SVGElementInstance(); //参照先インスタンスのルート /*readonly SVGElementInstance*/ this.animatedInstanceRoot = new SVGElementInstance();//アニメの最中のインスタンス。静止中は通常 this.addEventListener("DOMNodeInserted", function(evt){ - if (evt.eventPhase === Event.BUBBLING_PHASE) { + if (evt.eventPhase === /*Event.BUBBLING_PHASE*/ 3) { return; //強制終了させる } evt.target.setAttributeNS("http://www.w3.org/1999/xlink", "xlink:show", "embed"); @@ -3794,7 +3818,7 @@ /*readonly SVGAnimatedLength*/ this.height = new SVGAnimatedLength(); /*readonly SVGAnimatedPreserveAspectRatio*/ this.preserveAspectRatio = new SVGAnimatedPreserveAspectRatio(); this.addEventListener("DOMNodeInserted", function(evt){ - if (evt.eventPhase === Event.BUBBLING_PHASE) { + if (evt.eventPhase === /*Event.BUBBLING_PHASE*/ 3) { return; //強制終了させる } var tar = evt.target; @@ -4589,6 +4613,10 @@ /*documentは引数の変数として登録しておく*/ (function(_doc, _pInt, _math) { +//freeArg関数はunloadで使う解放処理 +NAIBU.freeArg = function() { + SVGPathElement = _doc = _pInt = _math = null; +}; //仮のfill属性とstroke属性の処理 NAIBU._setPaint = function(tar, matrix) { /*以下では、スタイルシートを用いて、fill-とstroke-関連の @@ -5189,8 +5217,12 @@ return s; }; /*SVGPoint*/ SVGPathElement.prototype.getPointAtLength = function(/*float*/ distance ) { - var segn = this.getPathSegAtLength(distance), x = 0, y = 0, nl = this.normalizedPathSegList, seg = nl.getItem(segn); - var s = this.ownerDocument.documentElement.createSVGPoint(); + var segn = this.getPathSegAtLength(distance), + x = 0, + y = 0, + nl = this.normalizedPathSegList, + seg = nl.getItem(segn), + s = this.ownerDocument.documentElement.createSVGPoint(); if ((segn-1) <= 0) { s.x = seg.x; s.y = seg.y; @@ -5829,7 +5861,7 @@ evt = tar = list = tp = par = p = null; }, false); this.addEventListener("DOMNodeInserted", function(evt){ - if (evt.eventPhase === Event.BUBBLING_PHASE) { + if (evt.eventPhase === /*Event.BUBBLING_PHASE*/ 3) { return; //強制終了させる } var tar = evt.target; @@ -6205,7 +6237,7 @@ evt = tar = null; }, false); this.addEventListener("DOMNodeInserted", function(evt){ - if (evt.eventPhase === Event.BUBBLING_PHASE) { + if (evt.eventPhase === /*Event.BUBBLING_PHASE*/ 3) { var tar = evt.target; if (tar.nodeType !== Node.TEXT_NODE) { tar._list = null; @@ -6518,52 +6550,58 @@ SVGColorProfileRule.prototype = new SVGCSSRule(); function SVGGradientElement() { - SVGElement.apply(this, arguments); - SVGURIReference.apply(this, arguments); + SVGElement.apply(this); + SVGURIReference.apply(this); /*readonly SVGAnimatedEnumeration*/ this.gradientUnits = new SVGAnimatedEnumeration(); /*readonly SVGAnimatedTransformList*/ this.gradientTransform = new SVGAnimatedTransformList(); /*readonly SVGAnimatedEnumeration*/ this.spreadMethod = new SVGAnimatedEnumeration(); this.addEventListener("DOMNodeInsertedIntoDocument", function(evt) { - var grad = evt.target, ele = evt._tar, t = evt._style; //eleはv:fill要素やv:stroke要素のノード、tはラップした要素ノードのスタイルを収納 - if (!!!ele) { //まだ、path要素などが設定されていない場合 + var grad = evt.target, + ele = evt._tar, + t = evt._style, //eleはv:fill要素やv:stroke要素のノード、tはラップした要素ノードのスタイルを収納 + grad2 = grad, + href, stops, length, + color = [], + colors = [], + opacity = [], + stop, sstyle, ci; + if (!ele || !grad) { //まだ、path要素などが設定されていない場合 + grad = ele = t = grad2 = href = stops = length = color = colors = opacity = null; return; } - if (grad) { - var grad2 = grad; - while (grad2 && !grad2.hasChildNodes()) { //stopを子要素に持つgradient要素を探す - var href = grad2.getAttributeNS("http://www.w3.org/1999/xlink", "href"); - if (href) { - href.match(/#(.+)/); - grad2 = evt.target.ownerDocument.getElementById(RegExp.$1); - } else { - break; - } + while (grad2 && !grad2.hasChildNodes()) { //stopを子要素に持つgradient要素を探す + href = grad2.getAttributeNS("http://www.w3.org/1999/xlink", "href"); + if (href) { + href.match(/#(.+)/); + grad2 = grad2.ownerDocument.getElementById(RegExp.$1); + } else { + break; } - var stops = grad2.getElementsByTagNameNS("http://www.w3.org/2000/svg", "stop"); - if (!stops) { - grad = grad2 = stops = null; - return; - } - var length = stops.length; - var color = [], colors = [], opacity = []; - for (var i = 0; i < length; ++i) { - var stop = stops[i], sstyle = stop.ownerDocument.defaultView.getComputedStyle(stop, ""); - color[i] = sstyle.getPropertyValue("stop-color"); - colors[i] = stop.offset.baseVal + " " + color[i]; - opacity[i] = (sstyle.getPropertyValue("stop-opacity") || 1) * t.getPropertyValue("fill-opacity") * t.getPropertyValue("opacity"); - } - ele.setAttribute("method", "none"); - ele.setAttribute("color", color[0]); - ele.setAttribute("color2", color[length-1]); - ele.setAttribute("colors", colors.join(",")); - // When colors attribute is used, the meanings of opacity and o:opacity2 are reversed. - ele.setAttribute("opacity", opacity[length-1]+ ""); - ele.setAttribute("o:opacity2", opacity[0]+ ""); - /*SVGRadialGradientElementインターフェースで利用する*/ - grad._color = color; - grad = ele = stops = lengh = color = colors = opacity = null; } - evt = t = null; + stops = grad2.getElementsByTagNameNS("http://www.w3.org/2000/svg", "stop"); + if (!stops) { + ele = t = href = grad = grad2 = stops = color = colors = opacity = null; + return; + } + length = stops.length; + for (var i = 0; i < length; ++i) { + stop = stops[i]; + sstyle = stop.ownerDocument.defaultView.getComputedStyle(stop, ""); + ci = sstyle.getPropertyValue("stop-color"); + color[i] = SVGColor.prototype._keywords[ci] || ci; + colors[i] = stop.offset.baseVal + " " + ci; + opacity[i] = (sstyle.getPropertyValue("stop-opacity") || 1) * t.getPropertyValue("fill-opacity") * t.getPropertyValue("opacity"); + } + ele["method"] = "none"; + ele["color"] = color[0]; + ele["color2"] = color[length-1]; + ele["colors"] = colors.join(","); + // When colors attribute is used, the meanings of opacity and o:opacity2 are reversed. + ele["opacity"] = opacity[length-1]+ ""; + ele["o:opacity2"] = opacity[0]+ ""; + /*SVGRadialGradientElementインターフェースで利用する*/ + grad._color = color; + grad = grad2 = ele = stops = length = color = colors = opacity = evt = t = href = stop = sstyle = ci = null; }, false); return this; }; @@ -6830,7 +6868,7 @@ /*readonly SVGAnimatedString*/ this.target = new SVGAnimatedString(); this.addEventListener("DOMAttrModified", function(evt){ var tar = evt.target; - if (evt.eventPhase === Event.BUBBLING_PHASE) { + if (evt.eventPhase === /*Event.BUBBLING_PHASE*/ 3) { return; //強制終了させる } if (evt.attrName === "target") { @@ -6842,7 +6880,7 @@ }, false); this.addEventListener("DOMNodeInserted", function(evt){ var tar = evt.target; - if (evt.eventPhase === Event.BUBBLING_PHASE) { + if (evt.eventPhase === /*Event.BUBBLING_PHASE*/ 3) { return; //強制終了させる } if (tar.nextSibling) { @@ -6937,7 +6975,7 @@ }, false); this.addEventListener("DOMNodeInserted", function(evt){ var tar = evt.target; - if (evt.eventPhase === Event.BUBBLING_PHASE) { + if (evt.eventPhase === /*Event.BUBBLING_PHASE*/ 3) { if (tar.nodeName === "#cdata-section") { evt.currentTarget._text = tar.data; } @@ -7025,7 +7063,7 @@ } }, false); this.addEventListener("DOMAttrModified", function(evt){ - if (evt.eventPhase === Event.BUBBLING_PHASE) { + if (evt.eventPhase === /*Event.BUBBLING_PHASE*/ 3) { return; } var tar = evt.target, name = evt.attrName; @@ -7060,7 +7098,7 @@ evt = null; }, false); this.addEventListener("DOMNodeInserted", function(evt){ - if (evt.eventPhase === Event.BUBBLING_PHASE) { + if (evt.eventPhase === /*Event.BUBBLING_PHASE*/ 3) { return; //強制終了させる } var tar = evt.target; @@ -7293,7 +7331,7 @@ this._valueList = []; this._isDiscrete = false; this.addEventListener("DOMAttrModified", function(evt){ - if (evt.eventPhase === Event.BUBBLING_PHASE) { + if (evt.eventPhase === /*Event.BUBBLING_PHASE*/ 3) { return; //強制終了させる } if ((evt.attrName === "calcMode") && (evt.newValue === "discrete")) { @@ -7301,12 +7339,15 @@ } }, false); this.addEventListener("DOMNodeInserted", function(evt){ - if (evt.eventPhase === Event.BUBBLING_PHASE) { + if (evt.eventPhase === /*Event.BUBBLING_PHASE*/ 3) { return; //強制終了させる } var tar = evt.target; tar.addEventListener("DOMNodeInsertedIntoDocument", function(evt){ - var tar = evt.target, attrName = tar.getAttributeNS(null, "attributeName"),ttr = tar.targetElement, tta = ttr[attrName]; + var tar = evt.target, + attrName = tar.getAttributeNS(null, "attributeName"), + ttr = tar.targetElement, + tta = ttr[attrName]; /*tar.valuesのリスト: ex. ["12px", "13px"]を、次のように機械に理解できるよう変換して、tar._valueListに格納 *[(new SVGPoint()), (new SVGPoint())] *この_valueListプロパティはアニメの際に使うので、_valuesプロパティはアニメ中に使わない @@ -7522,7 +7563,7 @@ SVGAnimationElement.apply(this); NAIBU.Clip[NAIBU.Clip.length] = this; this.addEventListener("DOMAttrModified", function(evt){ - if (evt.eventPhase === Event.BUBBLING_PHASE) { + if (evt.eventPhase === /*Event.BUBBLING_PHASE*/ 3) { return; } var tar = evt.target, name = evt.attrName; @@ -7598,7 +7639,7 @@ NAIBU.Clip[NAIBU.Clip.length] = this; this._valueList = []; this.addEventListener("DOMNodeInserted", function(evt){ - if (evt.eventPhase === Event.BUBBLING_PHASE) { + if (evt.eventPhase === /*Event.BUBBLING_PHASE*/ 3) { return; //強制終了させる } var tar = evt.target; @@ -7703,7 +7744,7 @@ /*boolean or number*/ this._isExternal = 0; this.addEventListener("DOMNodeInserted", function(evt){ var tar = evt.target; - if (evt.eventPhase === Event.BUBBLING_PHASE) { + if (evt.eventPhase === /*Event.BUBBLING_PHASE*/ 3) { return; } tar.addEventListener("DOMNodeInsertedIntoDocument", function(evt){ @@ -7768,7 +7809,7 @@ SVGElement.apply(this); /*boolean(or number)*/ this._isLinked = 0; this.addEventListener("DOMNodeInserted", function(evt){ - if (evt.eventPhase === Event.BUBBLING_PHASE) { + if (evt.eventPhase === /*Event.BUBBLING_PHASE*/ 3) { if (evt.target.localName === "font-face-uri") { //外部リンクがあれば evt.currentTarget._isLinked = 1; } @@ -7790,7 +7831,7 @@ function SVGFontFaceUriElement() { SVGElement.apply(this); this.addEventListener("DOMNodeInserted", function(evt){ - if (evt.eventPhase === Event.BUBBLING_PHASE) { + if (evt.eventPhase === /*Event.BUBBLING_PHASE*/ 3) { return; //強制終了させる } evt.target.ownerDocument.documentElement._svgload_limited-- @@ -8077,6 +8118,7 @@ */ (function(){ var s = new CSSStyleDeclaration(), + slis = s._list, n = 0, regAZ = /([A-Z])/, regm = /\-/, @@ -8091,16 +8133,16 @@ } t = t.replace(regm, u); s.setProperty(t, CSS2Properties[i]); - s._list[t] = s._list[n]; //この処理はCSSモジュールのgetComputedStyleメソッドのため + slis[t] = slis[n]; //この処理はCSSモジュールのgetComputedStyleメソッドのため ++n; i = t = u = null; } } - s._list._opacity = 1; - s._list._fontSize = 12; - CSS2Properties._list = s._list; - Document.prototype.defaultView._defaultCSS = s._list; - s = n = regAZ = regm =null; + slis._opacity = 1; + slis._fontSize = 12; + CSS2Properties._list = slis; + Document.prototype.defaultView._defaultCSS = slis; + s = n = regAZ = regm = slis =null; })(); NAIBU.addEvent = function(evt,lis){ @@ -8124,6 +8166,7 @@ } window.onscroll = NAIBU.emptyFunction; window.detachEvent("onload", NAIBU._main); + NAIBU.freeArg(); Element = SVGElement = Attr = NamedNodeMap = CSS2Properties = CSSValue = CSSPrimitiveValue = NAIBU.xmlhttp = Node = Event = NAIBU = stlog = STLog = SVGColor = SVGPaint = null; Array = ActiveXObject = null; } catch(e) {} @@ -8197,9 +8240,7 @@ NAIBU.doc = nd; nd = ary = null; if (xmlhttp && NAIBU.isMSIE) { - if (!!document.createElementNS) { //IE9ならば - if (!!document.createElementNS( "http://www.w3.org/2000/svg", "svg").createSVGRect) { - } + if (!!document.createElementNS && !!document.createElementNS( "http://www.w3.org/2000/svg", "svg").createSVGRect) { //IE9ならば } else { //IE6-8ならば var oba = document.createElement("div"); oba.setAttribute("id","_NAIBU_outline"); Property changes on: trunk/sie.js ___________________________________________________________________ Modified: svn:mergeinfo - /branches/04x/040/sie.js:812-829 /branches/04x/041/sie.js:891-923 /branches/04x/042/sie.js:927-967 /branches/04x/043/sie.js:969-1013 /branches/04x/044/sie.js:1015-1067 /branches/04x/045/sie.js:1069-1078 /branches/04x/046/sie.js:1080-1129 /branches/04x/047/sie.js:1131-1164 /branches/04x/048/sie.js:1166-1180 /branches/04x/sie.js:830-1181 /branches/05x/050/sie.js:1183-1201 /branches/05x/051/sie.js:1207-1323 /branches/05x/052/sie.js:1325-1352 /branches/05x/053/sie.js:1354-1400 /branches/05x/054/sie.js:1403-1422 /branches/05x/055/sie.js:1424-1454 /branches/05x/056/sie.js:1456-1491 /branches/05x/057/sie.js:1496-1523 /branches/05x/058/sie.js:1526-1590 /branches/05x/sie.js:1183-1594 /branches/06x/060/sie.js:1603-1850 /branches/06x/sie.js:1599-2355 /branches/07x/sie.js:2357-2559 + /branches/04x/040/sie.js:812-829 /branches/04x/041/sie.js:891-923 /branches/04x/042/sie.js:927-967 /branches/04x/043/sie.js:969-1013 /branches/04x/044/sie.js:1015-1067 /branches/04x/045/sie.js:1069-1078 /branches/04x/046/sie.js:1080-1129 /branches/04x/047/sie.js:1131-1164 /branches/04x/048/sie.js:1166-1180 /branches/04x/sie.js:830-1181 /branches/05x/050/sie.js:1183-1201 /branches/05x/051/sie.js:1207-1323 /branches/05x/052/sie.js:1325-1352 /branches/05x/053/sie.js:1354-1400 /branches/05x/054/sie.js:1403-1422 /branches/05x/055/sie.js:1424-1454 /branches/05x/056/sie.js:1456-1491 /branches/05x/057/sie.js:1496-1523 /branches/05x/058/sie.js:1526-1590 /branches/05x/sie.js:1183-1594 /branches/06x/060/sie.js:1603-1850 /branches/06x/sie.js:1599-2355 /branches/07x/sie.js:2357-2604