X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=0.6.x%2Fjs%2F01_core%2F13_XClass.js;h=61749575a131da3789531ec0a6c1a18be8f91f72;hb=HEAD;hp=a0b15cc797cedaa73579b0b9a6e47990fd7d5fae;hpb=76ea1040608829b653422cf51b3490801d2ec1fa;p=pettanr%2FclientJs.git diff --git a/0.6.x/js/01_core/13_XClass.js b/0.6.x/js/01_core/13_XClass.js index a0b15cc..6174957 100644 --- a/0.6.x/js/01_core/13_XClass.js +++ b/0.6.x/js/01_core/13_XClass.js @@ -15,7 +15,7 @@ var * クラス名 * @type {string} */ - name : '' + NAME : '' }, X_Class_CLASS_LIST = [], @@ -25,7 +25,10 @@ var X_Class_traits = null, X_Class_useObjectCreate = false, // !!Object.create, http://jsperf.com/prototype-vs-object-create-perf // Opera Mobile 12.10 Android11 IS01 でクラスのメンバが欠落する問題に遭遇。__proto__ を辞めると動作,,, - X_Class_use_proto_ = !X_UA[ 'OperaMobile' ] && !X_UA[ 'OperaTablet' ] && !!X_emptyFunction.prototype.__proto__, + X_Class_use_proto_ = !X_UA[ 'OperaMobile' ] && !X_UA[ 'OperaTablet' ] && + // Android で原因不明のエラーに遭遇しているのは、この辺りが怪しい... 2016.3.9 + !X_UA[ 'AOSP' ] && !X_UA[ 'ChromeWV' ] && + !!X_emptyFunction.prototype.__proto__, X_Class_constructorFix = X_UA[ 'AOSP' ] < 3 || X_UA[ 'iOS' ] < 5, X_Class_SEAL_KILLING = [], @@ -301,6 +304,7 @@ X_Class_CommonMethods = // TODO instanceof に対応したブラウザはそちらを使用 'instanceOf' : function( klass ){ var Super = this; + if( this.constructor === klass ) return true; while( Super = X_Class_getClassDef( Super ).SuperClass ){ if( Super === klass ) return true; @@ -481,7 +485,7 @@ X[ 'Class' ] = /** @lends X.Class */ { klass.prototype.constructor = klass; }; - klass[ 'name' ] = displayName; + klass[ 'NAME' ] = displayName; if( opt_abstract ){ classDef.isAbstract = true;