Server IP : 185.86.78.101 / Your IP : 216.73.216.124 Web Server : Apache System : Linux 675867-vds-valikoshka1996.gmhost.pp.ua 5.4.0-150-generic #167-Ubuntu SMP Mon May 15 17:35:05 UTC 2023 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /www/wwwroot/mifepriston.org/node_modules/object.values/test/ |
Upload File : |
'use strict'; var keys = require('object-keys'); var map = require('array-map'); var define = require('define-properties'); var hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol'; module.exports = function (values, t) { var a = {}; var b = {}; var c = {}; var obj = { a: a, b: b, c: c }; t.deepEqual(values(obj), [a, b, c], 'basic support'); t.deepEqual(values({ a: a, b: a, c: c }), [a, a, c], 'duplicate values are included'); t.test('values are in the same order as keys', function (st) { var object = { a: a, b: b }; object[0] = 3; object.c = c; object[1] = 4; delete object[0]; var objKeys = keys(object); var objValues = map(objKeys, function (key) { return object[key]; }); st.deepEqual(values(object), objValues, 'values match key order'); st.end(); }); t.test('non-enumerable properties are omitted', { skip: !Object.defineProperty }, function (st) { var object = { a: a, b: b }; Object.defineProperty(object, 'c', { enumerable: false, value: c }); st.deepEqual(values(object), [a, b], 'non-enumerable property‘s value is omitted'); st.end(); }); t.test('inherited properties are omitted', function (st) { var F = function G() {}; F.prototype.a = a; var f = new F(); f.b = b; st.deepEqual(values(f), [b], 'only own properties are included'); st.end(); }); t.test('Symbol properties are omitted', { skip: !hasSymbols }, function (st) { var object = { a: a, b: b, c: c }; var enumSym = Symbol('enum'); var nonEnumSym = Symbol('non enum'); object[enumSym] = enumSym; object.d = enumSym; Object.defineProperty(object, nonEnumSym, { enumerable: false, value: nonEnumSym }); st.deepEqual(values(object), [a, b, c, enumSym], 'symbol properties are omitted'); st.end(); }); t.test('not-yet-visited keys deleted on [[Get]] must not show up in output', { skip: !define.supportsDescriptors }, function (st) { var o = { a: 1, b: 2, c: 3 }; Object.defineProperty(o, 'a', { get: function () { delete this.b; return 1; } }); st.deepEqual(values(o), [1, 3], 'when "b" is deleted prior to being visited, it should not show up'); st.end(); }); t.test('not-yet-visited keys made non-enumerable on [[Get]] must not show up in output', { skip: !define.supportsDescriptors }, function (st) { var o = { a: 'A', b: 'B' }; Object.defineProperty(o, 'a', { get: function () { Object.defineProperty(o, 'b', { enumerable: false }); return 'A'; } }); st.deepEqual(values(o), ['A'], 'when "b" is made non-enumerable prior to being visited, it should not show up'); st.end(); }); };