HarshvardhanCn01/Voice-Assistant
0
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 