build/es-class.max.amd.js
function transformMixin(trait) {
    if (isObject(trait)) return trait;
    else {
      var i, key, keys, object, proto;
      if (trait.isClass) {
        if (trait.length) {
          warn((trait.name || 'Class') + ' should not expect arguments');
        }
        for (
          object = {init: trait},
          proto = trait.prototype;
          proto && proto !== Object.prototype;
          proto = gPO(proto)
        ) {
          for (i = 0, keys = oK(proto); i < keys.length; i++) {
            key = keys[i];
            if (isNotASpecialKey(key, false) && !hOP.call(object, key)) {
              defineProperty(object, key, gOPD(proto, key));
            }
          }
        }
      } else {
        for (
          i = 0,
          object = {},
          proto = trait({}),
          keys = oK(proto);
          i < keys.length; i++
        ) {
          key = keys[i];
          if (key !== INIT) {
            // if this key is the mixin one
            if (~key.toString().indexOf('mixin:init') && isArray(proto[key])) {
              // set the init simply as own method
              object.init = proto[key][0];
            } else {
              // simply assign the descriptor
              defineProperty(object, key, gOPD(proto, key));
            }
          }
        }
      }
      return object;
    }
  }
function transformMixin(trait) {
    if (isObject(trait)) return trait;
    else {
      var i, key, keys, object, proto;
      if (trait.isClass) {
        if (trait.length) {
          warn((trait.name || 'Class') + ' should not expect arguments');
        }
        for (
          object = {init: trait},
          proto = trait.prototype;
          proto && proto !== Object.prototype;
          proto = gPO(proto)
        ) {
          for (i = 0, keys = oK(proto); i < keys.length; i++) {
            key = keys[i];
            if (isNotASpecialKey(key, false) && !hOP.call(object, key)) {
              defineProperty(object, key, gOPD(proto, key));
            }
          }
        }
      } else {
        for (
          i = 0,
          object = {},
          proto = trait({}),
          keys = oK(proto);
          i < keys.length; i++
        ) {
          key = keys[i];
          if (key !== INIT) {
            // if this key is the mixin one
            if (~key.toString().indexOf('mixin:init') && isArray(proto[key])) {
              // set the init simply as own method
              object.init = proto[key][0];
            } else {
              // simply assign the descriptor
              defineProperty(object, key, gOPD(proto, key));
            }
          }
        }
      }
      return object;
    }
  }
function transformMixin ( trait ) { if ( isObject ( trait ) ) return trait ; else { var i , key , keys , object , proto ; if ( trait . isClass ) { if ( trait . length ) { warn ( ( trait . name || 'Class' ) + ' should not expect arguments' ) ; } for ( object = { init : trait } , proto = trait . prototype ; proto && proto !== Object . prototype ; proto = gPO ( proto ) ) { for ( i = 0 , keys = oK ( proto ) ; i < keys . length ; i ++ ) { key = keys [ i ] ; if ( isNotASpecialKey ( key , false ) && ! hOP . call ( object , key ) ) { defineProperty ( object , key , gOPD ( proto , key ) ) ; } } } } else { for ( i = 0 , object = { } , proto = trait ( { } ) , keys = oK ( proto ) ; i < keys . length ; i ++ ) { key = keys [ i ] ; if ( key !== INIT ) { // if this key is the mixin one if ( ~ key . toString ( ) . indexOf ( 'mixin:init' ) && isArray ( proto [ key ] ) ) { // set the init simply as own method object . init = proto [ key ] [ 0 ] ; } else { // simply assign the descriptor defineProperty ( object , key , gOPD ( proto , key ) ) ; } } } } return object ; } }
will eventually convert classes or constructors into trait objects, before assigning them as such
will eventually convert classes or constructors into trait objects before assigning them as such