40 lines
		
	
	
		
			968 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			968 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| "use strict";
 | |
| 
 | |
| var setPrototypeOf = require("../../object/set-prototype-of");
 | |
| 
 | |
| module.exports = function (t, a) {
 | |
| 	a(t(function () {}), true, "Function");
 | |
| 	a(t({}), false, "Object");
 | |
| 	a(t(), false, "Undefined");
 | |
| 	a(t(null), false, "Null");
 | |
| 	if (setPrototypeOf) {
 | |
| 		a(
 | |
| 			t(Object.setPrototypeOf(function () {}, Object.prototype)), false,
 | |
| 			"Function with non-function prototype"
 | |
| 		);
 | |
| 	}
 | |
| 	var arrowfn;
 | |
| 	try { arrowfn = eval("(() => {})"); }
 | |
| 	catch (e) {}
 | |
| 	if (arrowfn) {
 | |
| 		a(t(arrowfn), true, "Arrow function");
 | |
| 	}
 | |
| 
 | |
| 	var classFn;
 | |
| 	try { classFn = eval("(class {})"); }
 | |
| 	catch (e) {}
 | |
| 	if (classFn) {
 | |
| 		a(t(classFn), false, "Class");
 | |
| 	}
 | |
| 
 | |
| 	var commentedClassFn;
 | |
| 	try {
 | |
| 		// Follows issue reported to ljhard/is-callable project:
 | |
| 		// https://github.com/ljharb/is-callable/issues/4
 | |
| 		commentedClassFn = eval("(class/*kkk*/\n//blah\n Bar\n//blah\n {})");
 | |
| 	} catch (e) {}
 | |
| 	if (commentedClassFn) {
 | |
| 		a(t(commentedClassFn, false, "Class"), false, "Class with comments");
 | |
| 	}
 | |
| };
 |