1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- 'use strict';
- const assert = {
- _isSameValue(a, b) {
- if (a === b) {
- // Handle +/-0 vs. -/+0
- return a !== 0 || 1 / a === 1 / b;
- }
- // Handle NaN vs. NaN
- return a !== a && b !== b;
- },
- _toString(value) {
- try {
- if (value === 0 && 1 / value === -Infinity) {
- return '-0';
- }
- return String(value);
- } catch (err) {
- if (err.name === 'TypeError') {
- return Object.prototype.toString.call(value);
- }
- throw err;
- }
- },
- sameValue(actual, expected, message) {
- if (assert._isSameValue(actual, expected)) {
- return;
- }
- if (message === undefined) {
- message = '';
- } else {
- message += ' ';
- }
- message += 'Expected SameValue(«' + assert._toString(actual) + '», «' + assert._toString(expected) + '») to be true';
- throw new Error(message);
- },
- throws(f, ctor, message) {
- if (message === undefined) {
- message = '';
- } else {
- message += ' ';
- }
- try {
- f();
- } catch (e) {
- if (e.constructor !== ctor) {
- throw new Error(message + "Wrong exception type was thrown: " + e.constructor.name);
- }
- return;
- }
- throw new Error(message + "No exception was thrown");
- },
- throwsNodeError(f, ctor, code, message) {
- if (message === undefined) {
- message = '';
- } else {
- message += ' ';
- }
- try {
- f();
- } catch (e) {
- if (e.constructor !== ctor) {
- throw new Error(message + "Wrong exception type was thrown: " + e.constructor.name);
- }
- if (e.code !== code) {
- throw new Error(message + "Wrong exception code was thrown: " + e.code);
- }
- return;
- }
- throw new Error(message + "No exception was thrown");
- }
- }
- module.exports = assert;
|