Opal-Estate-Pro/node_modules/es5-ext/test/object/is-plain-function.js
2019-09-13 11:27:52 +07:00

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");
}
};