CoolFace
Apppublic

HarshvardhanCn01/Voice-Assistant

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
fn.js77 linesDownload Raw Back to test
1var inspect = require('../');2var test = require('tape');3var arrow = require('make-arrow-function')();4var functionsHaveConfigurableNames = require('functions-have-names').functionsHaveConfigurableNames();5 6test('function', function (t) {7    t.plan(1);8    var obj = [1, 2, function f(n) { return n; }, 4];9    t.equal(inspect(obj), '[ 1, 2, [Function: f], 4 ]');10});11 12test('function name', function (t) {13    t.plan(1);14    var f = (function () {15        return function () {};16    }());17    f.toString = function toStr() { return 'function xxx () {}'; };18    var obj = [1, 2, f, 4];19    t.equal(inspect(obj), '[ 1, 2, [Function (anonymous)] { toString: [Function: toStr] }, 4 ]');20});21 22test('anon function', function (t) {23    var f = (function () {24        return function () {};25    }());26    var obj = [1, 2, f, 4];27    t.equal(inspect(obj), '[ 1, 2, [Function (anonymous)], 4 ]');28 29    t.end();30});31 32test('arrow function', { skip: !arrow }, function (t) {33    t.equal(inspect(arrow), '[Function (anonymous)]');34 35    t.end();36});37 38test('truly nameless function', { skip: !arrow || !functionsHaveConfigurableNames }, function (t) {39    function f() {}40    Object.defineProperty(f, 'name', { value: false });41    t.equal(f.name, false);42    t.equal(43        inspect(f),44        '[Function: f]',45        'named function with falsy `.name` does not hide its original name'46    );47 48    function g() {}49    Object.defineProperty(g, 'name', { value: true });50    t.equal(g.name, true);51    t.equal(52        inspect(g),53        '[Function: true]',54        'named function with truthy `.name` hides its original name'55    );56 57    var anon = function () {}; // eslint-disable-line func-style58    Object.defineProperty(anon, 'name', { value: null });59    t.equal(anon.name, null);60    t.equal(61        inspect(anon),62        '[Function (anonymous)]',63        'anon function with falsy `.name` does not hide its anonymity'64    );65 66    var anon2 = function () {}; // eslint-disable-line func-style67    Object.defineProperty(anon2, 'name', { value: 1 });68    t.equal(anon2.name, 1);69    t.equal(70        inspect(anon2),71        '[Function: 1]',72        'anon function with truthy `.name` hides its anonymity'73    );74 75    t.end();76});77