<commit_before>'use strict';

module.exports = (function() {

	var supports = {}, extend;
	supports.objectCreate = typeof Object.create === 'function' ? true : false;
	supports.objectKeys = !!Object.keys;
	supports.arrayProtoMap = !!Array.prototype.map;
	
	if ( supports.objectCreate && supports.objectKeys && supports.arrayProtoMap) {
		extend = function(Target, Source) {
			var create = function() {
				var extended = {}, 
					sourced = new Source(), 
					targeted = new Target();
		    Object.keys(sourced).map(function (prop) {
		       extended[prop] = sourced[prop];
		    });
		    Object.keys(targeted).map(function (prop) {
		       extended[prop] = targeted[prop];
		    });
		    extended.super = function() {
		    	return sourced;
		    };
	    	return extended;
		  };
	    return create;
	  };

	} else {
		extend = function(Target, Source) {
			var create = function() {
				var extended = {}, 
					sourced = new Source(), 
					targeted = new Target(),
			    prop;
		    for (prop in sourced) {
	        if (Object.prototype.hasOwnProperty.call(sourced, prop)) {
	            extended[prop] = sourced[prop];
	        }
		    }
		    for (prop in targeted) {
		        if (Object.prototype.hasOwnProperty.call(targeted, prop)) {
		            extended[prop] = targeted[prop];
		        }
		    }
		    extended.super = function() {
		    	return sourced;
		    };
		    return extended;
		  };
	    return create;
	  };
	}

	return extend;

})();<commit_msg>update extendable for constructor parameter<commit_after>'use strict';

module.exports = (function() {

	var supports = {}, extend;
	supports.objectCreate = typeof Object.create === 'function' ? true : false;
	supports.objectKeys = !!Object.keys;
	supports.arrayProtoMap = !!Array.prototype.map;
	
	if ( supports.objectCreate && supports.objectKeys && supports.arrayProtoMap) {
		extend = function(Target, Source) {
			var create = function() {
				var constructorArgs = arguments;
				var extended = {}, 
					sourced = (function(O) {
				    function F(args) {
			        return O.apply(this, args);
				    }
				    F.prototype = O.prototype;
				    return new F(constructorArgs);
					})(Source),
					targeted = (function(O) {
				    function F(args) {
			        return O.apply(this, args);
				    }
				    F.prototype = O.prototype;
				    return new F(constructorArgs);
					})(Target);
		    Object.keys(sourced).map(function (prop) {
		       extended[prop] = sourced[prop];
		    });
		    Object.keys(targeted).map(function (prop) {
		       extended[prop] = targeted[prop];
		    });
		    extended.super = function() {
		    	return sourced;
		    };
	    	return extended;
		  };
	    return create;
	  };

	} else {
		extend = function(Target, Source) {
			var create = function() {
				var constructorArgs = arguments;
				var extended = {}, 
					sourced = (function(O) {
				    function F(args) {
			        return O.apply(this, args);
				    }
				    F.prototype = O.prototype;
				    return new F(constructorArgs);
					})(Source),
					targeted = (function(O) {
				    function F(args) {
			        return O.apply(this, args);
				    }
				    F.prototype = O.prototype;
				    return new F(constructorArgs);
					})(Target),
			    prop;
		    for (prop in sourced) {
	        if (Object.prototype.hasOwnProperty.call(sourced, prop)) {
	            extended[prop] = sourced[prop];
	        }
		    }
		    for (prop in targeted) {
		        if (Object.prototype.hasOwnProperty.call(targeted, prop)) {
		            extended[prop] = targeted[prop];
		        }
		    }
		    extended.super = function() {
		    	return sourced;
		    };
		    return extended;
		  };
	    return create;
	  };
	}

	return extend;

})();
{'fraction_non_alphanumeric': 0.13444027852169255, 'fraction_numerical': 0.0, 'mean_word_length': 2.189581554227156, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5290813', 'n_tokens_mistral': 1364, 'n_tokens_neox': 1063, 'n_words': 240}