svnno****@sourc*****
svnno****@sourc*****
2011年 3月 28日 (月) 23:27:05 JST
Revision: 2523
http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=2523
Author: dhrname
Date: 2011-03-28 23:27:05 +0900 (Mon, 28 Mar 2011)
Log Message:
-----------
getFloatValueメソッドについて、軽量化
Modified Paths:
--------------
branches/07x/074/org/w3c/dom/css.js
Modified: branches/07x/074/org/w3c/dom/css.js
===================================================================
--- branches/07x/074/org/w3c/dom/css.js 2011-03-28 14:04:14 UTC (rev 2522)
+++ branches/07x/074/org/w3c/dom/css.js 2011-03-28 14:27:05 UTC (rev 2523)
@@ -393,7 +393,7 @@
CSSPrimitiveValue.prototype._percent = 0; //単位に%が使われていた場合、このプロパティの数値を1%として使う
CSSPrimitiveValue.prototype._empercent = 0;
/*void*/ CSSPrimitiveValue.prototype.setFloatValue = function(/*short*/ unitType, /*float*/ floatValue) {
- if (CSSPrimitiveValue.CSS_UNKNOWN >= unitType && unitType >= CSSPrimitiveValue.CSS_STRING) { //浮動小数点数単位型をサポートしないCSS単位である場合
+ if ((/*CSSPrimitiveValue.CSS_UNKNOWN*/ 0 >= unitType) && (unitType >= /*CSSPrimitiveValue.CSS_STRING*/ 19)) { //浮動小数点数単位型をサポートしないCSS単位である場合
throw new DOMException(DOMException.INVALID_ACCESS_ERR);
}
this.primitiveType = unitType;
@@ -403,40 +403,41 @@
*別の単位に変換可能。
*/
/*float*/ CSSPrimitiveValue.prototype.getFloatValue = function(/*short*/ unitType) {
- if (CSSPrimitiveValue.CSS_UNKNOWN >= unitType && unitType >= CSSPrimitiveValue.CSS_STRING) { //浮動小数点数単位型をサポートしないCSS単位である場合
+ if ((/*CSSPrimitiveValue.CSS_UNKNOWN*/ 0 >= unitType) && (unitType >= /*CSSPrimitiveValue.CSS_STRING*/ 19)) { //浮動小数点数単位型をサポートしないCSS単位である場合
throw new DOMException(DOMException.INVALID_ACCESS_ERR);
}
- var n = this.cssText.match(/\D+$/), type = 0, _parseFloat = parseFloat;
- var s = _parseFloat(this.cssText.match(/[\d\.]+/));
+ var n = this.cssText.match(/\D+$/),
+ type = 0,
+ s = +(this.cssText.match(/[\d\.]+/));
s = isNaN(s) ? 0 : s;
if (!!n) {
n = n[0];
}
if (!n) {
- type = CSSPrimitiveValue.CSS_NUMBER;
+ type = /*CSSPrimitiveValue.CSS_NUMBER*/ 1;
} else if (n === "%") {
s *= this._percent;
- type = CSSPrimitiveValue.CSS_PERCENTAGE;
+ type = /*CSSPrimitiveValue.CSS_PERCENTAGE*/ 2;
} else if (n === "em") {
s *= this._empercent;
- type = CSSPrimitiveValue.CSS_EMS;
+ type = /*CSSPrimitiveValue.CSS_EMS*/ 3;
} else if (n === "ex") {
- type = CSSPrimitiveValue.CSS_EXS;
+ type = /*CSSPrimitiveValue.CSS_EXS*/ 4;
} else if (n === "px") {
- type = CSSPrimitiveValue.CSS_PX;
+ type = /*CSSPrimitiveValue.CSS_PX*/ 5;
} else if (n === "cm") {
- type = CSSPrimitiveValue.CSS_CM;
+ type = /*CSSPrimitiveValue.CSS_CM*/ 6;
} else if (n === "mm") {
- type = CSSPrimitiveValue.CSS_MM;
+ type = /*CSSPrimitiveValue.CSS_MM*/ 7;
} else if (n === "in") {
- type = CSSPrimitiveValue.CSS_IN;
+ type = /*CSSPrimitiveValue.CSS_IN*/ 8;
} else if (n === "pt") {
- type = CSSPrimitiveValue.CSS_PT;
+ type = /*CSSPrimitiveValue.CSS_PT*/ 9;
} else if (n === "pc") {
- type = CSSPrimitiveValue.CSS_PC;
+ type = /*CSSPrimitiveValue.CSS_PC*/ 10;
}
- this.setFloatValue(type, s);
- return (this._value / this._n[unitType-1]);
+ this._value = s * this._n[unitType-1]; //値はあらかじめ、利用しやすいように変換しておく
+ return (this._value);
};
/*void*/ CSSPrimitiveValue.prototype.setStringValue = function(/*short*/ stringType, /*string*/ stringValue) {
if (CSSPrimitiveValue.CSS_DIMENSION >= stringType && stringType >= CSSPrimitiveValue.CSS_COUNTER) { //文字列型をサポートしないCSS単位である場合