<commit_before>/**
 * <NAME> (crowebird) - 2013
 * https://github.com/crowebird/js_classes
 */
(function() {
    this.js_classes = function() {};
    var extender = function(_childClass) {
        var _parentClass = this;

        var extendedClass = function(_preventConstruct) {
            var _parent = new _parentClass(js_classes.PREVENTCONSTRUCT);
            var _child = new _childClass();
            var _this = this;

            for(var i in _parent) {
                if (_parent.hasOwnProperty(i)) {
                    if (!_child[i]) {
                        _child[i] = (function(obj) {
                            return obj;
                        })(_parent[i]);
                    } else {
                        _child[i] = (function(childObj, parentObj) {
                            if (typeof childObj == "function" && typeof parentObj == "function") {
                                return function() {
                                    return childObj.apply({ _super: parentObj }, arguments);
                                };
                            }
                        })(_child[i], _parent[i] || null);
                    }
                }
            }

            if (_child._construct && _preventConstruct !== js_classes.PREVENTCONSTRUCT) {
                _child._construct.apply(null, arguments);
                delete _child._construct;
            }

            _child._instanceOf = function(_Class) {
                return (_Class === js_classes) || (_this instanceof _Class) || (_parent._instanceOf && _parent._instanceOf(_Class));
            };

            return _child;
        }
        extendedClass.extend = extender;
        return extendedClass;
    };
    js_classes.extend = extender;
    js_classes.PREVENTCONSTRUCT = 'ED7352BC-BDDD-45BA-B0B5-3577A355665A-05A4367A-7CD1-4B54-91B0-F2DA44D4871A';
})();
<commit_msg>Gave _super the complete public scope of the parent class<commit_after>/**
 * <NAME> (crowebird) - 2013
 * https://github.com/crowebird/js_classes
 */
(function() {
    this.js_classes = function() {};
    var extender = function(_childClass) {
        var _parentClass = this;

        var extendedClass = function(_preventConstruct) {
            var _parent = new _parentClass(js_classes.PREVENTCONSTRUCT);
            var _child = new _childClass();
            var _this = this;

            for(var i in _parent) {
                if (_parent.hasOwnProperty(i)) {
                    if (!_child[i]) {
                        _child[i] = (function(obj) {
                            return obj;
                        })(_parent[i]);
                    } else {
                        _child[i] = (function(childObj, parentObj, parent) {
                            if (typeof childObj == "function" && typeof parentObj == "function") {
                                return function() {
                                    return childObj.apply({ _super: parent }, arguments);
                                };
                            }
                        })(_child[i], _parent[i] || null, _parent);
                    }
                }
            }

            if (_child._construct && _preventConstruct !== js_classes.PREVENTCONSTRUCT) {
                _child._construct.apply(null, arguments);
                delete _child._construct;
            }

            _child._instanceOf = function(_Class) {
                return (_Class === js_classes) || (_this instanceof _Class) || (_parent._instanceOf && _parent._instanceOf(_Class));
            };

            return _child;
        }
        extendedClass.extend = extender;
        return extendedClass;
    };
    js_classes.extend = extender;
    js_classes.PREVENTCONSTRUCT = 'ED7352BC-BDDD-45BA-B0B5-3577A355665A-05A4367A-7CD1-4B54-91B0-F2DA44D4871A';
})();

{'fraction_non_alphanumeric': 0.11047420531526837, 'fraction_numerical': 0.022407503908285567, 'mean_word_length': 1.432826362484157, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1491167', 'n_tokens_mistral': 1088, 'n_tokens_neox': 999, 'n_words': 191}