first commit
This commit is contained in:
86
app_vue/node_modules/utila/lib/classic.js
generated
vendored
Normal file
86
app_vue/node_modules/utila/lib/classic.js
generated
vendored
Normal file
@ -0,0 +1,86 @@
|
||||
// Generated by CoffeeScript 1.6.3
|
||||
var classic,
|
||||
__slice = [].slice;
|
||||
|
||||
module.exports = classic = {};
|
||||
|
||||
classic.implement = function() {
|
||||
var classProto, classReference, desc, member, mixin, mixins, _i, _j, _len;
|
||||
mixins = 2 <= arguments.length ? __slice.call(arguments, 0, _i = arguments.length - 1) : (_i = 0, []), classReference = arguments[_i++];
|
||||
for (_j = 0, _len = mixins.length; _j < _len; _j++) {
|
||||
mixin = mixins[_j];
|
||||
classProto = classReference.prototype;
|
||||
for (member in mixin.prototype) {
|
||||
if (!Object.getOwnPropertyDescriptor(classProto, member)) {
|
||||
desc = Object.getOwnPropertyDescriptor(mixin.prototype, member);
|
||||
Object.defineProperty(classProto, member, desc);
|
||||
}
|
||||
}
|
||||
}
|
||||
return classReference;
|
||||
};
|
||||
|
||||
classic.mix = function() {
|
||||
var classProto, classReference, desc, member, mixin, mixins, _i, _j, _len;
|
||||
mixins = 2 <= arguments.length ? __slice.call(arguments, 0, _i = arguments.length - 1) : (_i = 0, []), classReference = arguments[_i++];
|
||||
classProto = classReference.prototype;
|
||||
classReference.__mixinCloners = [];
|
||||
classReference.__applyClonersFor = function(instance, args) {
|
||||
var cloner, _j, _len, _ref;
|
||||
if (args == null) {
|
||||
args = null;
|
||||
}
|
||||
_ref = classReference.__mixinCloners;
|
||||
for (_j = 0, _len = _ref.length; _j < _len; _j++) {
|
||||
cloner = _ref[_j];
|
||||
cloner.apply(instance, args);
|
||||
}
|
||||
};
|
||||
classReference.__mixinInitializers = [];
|
||||
classReference.__initMixinsFor = function(instance, args) {
|
||||
var initializer, _j, _len, _ref;
|
||||
if (args == null) {
|
||||
args = null;
|
||||
}
|
||||
_ref = classReference.__mixinInitializers;
|
||||
for (_j = 0, _len = _ref.length; _j < _len; _j++) {
|
||||
initializer = _ref[_j];
|
||||
initializer.apply(instance, args);
|
||||
}
|
||||
};
|
||||
classReference.__mixinQuitters = [];
|
||||
classReference.__applyQuittersFor = function(instance, args) {
|
||||
var quitter, _j, _len, _ref;
|
||||
if (args == null) {
|
||||
args = null;
|
||||
}
|
||||
_ref = classReference.__mixinQuitters;
|
||||
for (_j = 0, _len = _ref.length; _j < _len; _j++) {
|
||||
quitter = _ref[_j];
|
||||
quitter.apply(instance, args);
|
||||
}
|
||||
};
|
||||
for (_j = 0, _len = mixins.length; _j < _len; _j++) {
|
||||
mixin = mixins[_j];
|
||||
if (!(mixin.constructor instanceof Function)) {
|
||||
throw Error("Mixin should be a function");
|
||||
}
|
||||
for (member in mixin.prototype) {
|
||||
if (member.substr(0, 11) === '__initMixin') {
|
||||
classReference.__mixinInitializers.push(mixin.prototype[member]);
|
||||
continue;
|
||||
} else if (member.substr(0, 11) === '__clonerFor') {
|
||||
classReference.__mixinCloners.push(mixin.prototype[member]);
|
||||
continue;
|
||||
} else if (member.substr(0, 12) === '__quitterFor') {
|
||||
classReference.__mixinQuitters.push(mixin.prototype[member]);
|
||||
continue;
|
||||
}
|
||||
if (!Object.getOwnPropertyDescriptor(classProto, member)) {
|
||||
desc = Object.getOwnPropertyDescriptor(mixin.prototype, member);
|
||||
Object.defineProperty(classProto, member, desc);
|
||||
}
|
||||
}
|
||||
}
|
||||
return classReference;
|
||||
};
|
Reference in New Issue
Block a user