Trait and Type Composition Example :: ESX Trait Test
HTML
<title>Trait and Type Composition Example :: ESX Trait Test</title>
<!-- esx-trait.js //-->
<script>
(function(r){function g(a){var c="none",b;Y(a)&&(ta(a)?c=ua:(b=Z(a),t("^class\\s+"+a.name+"\\s+\\{").test(b)?c=va:t("\\([^)]*\\)\\s+=>\\s+\\(").test(b)?c=wa:z(a)&&(c=xa(a)?ya:za(a)||Aa(a)||Ba(a)?Ca:aa)));return c===aa}function C(a){return["^\\[object\\s+",a,"\\]$"].join("")}function v(a,c){var b=Da[c];return!!b&&0<=b.indexOf(a)}function M(a,c,b){return function(){var d=arguments;c.apply(b,d);return a.apply(b,d)}}function N(a,c,b){return function(){var d=arguments,e=a.apply(b,d);c.apply(b,d);return e}}function Ea(a,c,b,d){return function(){var e=arguments;c.call(b,e,d);return a.apply(b,e)}}function Fa(a,c,b,d){return function(){var e=arguments,f=a.apply(b,e);c.call(b,e,d);return f}}function Ga(a,c,b,d){return function(){var e=arguments,f=a.apply(b,e);c.call(b,f,e,d);return f}}function Ha(a,c,b,d){return function(){var e=arguments,f;try{f=a.apply(b,e)}catch(l){c.call(b,l,e,d)}return f}}function Ia(a,c,b,d){return function(){var e=arguments,f,g;try{f=a.apply(b,e)}catch(m){g=m}c.call(b,g||f,e,d);return f}}function Ja(a,c,b,d){return function(){return c.call(b,a,c,arguments,d)}}function Ka(a,c){return function(){var b=this[a];g(b)||(b=u);this[a]=M(b,c,this)}}function La(a,c){return function(){var b=this[a];g(b)||(b=u);this[a]=N(b,c,this)}}function Ma(a,c){return function(b){var d=this[a];g(d)||(d=u);this[a]=Ea(d,c,this,b)}}function Na(a,c){return function(b){var d=this[a];g(d)||(d=u);this[a]=Fa(d,c,this,b)}}function Oa(a,c){return function(b){var d=this[a];g(d)||(d=u);this[a]=Ga(d,c,this,b)}}function Pa(a,c){return function(b){var d=this[a];g(d)||(d=u);this[a]=Ha(d,c,this,b)}}function Qa(a,c){return function(b){var d=this[a];g(d)||(d=u);this[a]=Ia(d,c,this,b)}}function Ra(a,c){return function(b){var d=this[a];g(d)||(d=u);this[a]=Ja(d,c,this,b)}}function ba(a,c,b){a.useTraits.rules.push(new A({type:"without",traitList:c,methodNameList:b}))}function...
SCSS
dl#console-log {
dt {
font-family: sans-serif;
color: #249d7f;
//color: #2795ee;
}
dd {
margin: -7px 0 17px 2em;
color: #a151d2;
//color: #f18c16;
}
}
JavaScript
var withFirstLastEnumerable = (function () { // trait withFirstLastEnumerable {
//
function first() { // function first() {
return this[0]; // return this[0];
} // }
function last() { // function last() {
return this[this.length - 1]; // return this[this.length - 1];
} // }
//
return function () { // applicator() {
//
this.first = first; // this.first = first;
this.last = last; // this.last = last;
//
return this; // //return this;
}; // }
}()); // }
var withEnumerableListProxy = Trait.create(function (use, applicator) { // trait withEnumerableListProxy {
applicator(function (list) { // applicator(list) {
withFirstLastEnumerable.call(list); // withFirstLastEnumerable.call(list);
//
this.first = function () { // this.first = function () {
return list.first(); // return list.first();
}; // };
this.last = function () { // this.last = function () {
return list.last(); // return list.last();
}; // };
}); // }
}); // }
function EnumQueue() { // class EnumQueue {
var // ...