| 'use strict'; |
| const { |
| SafeMap, |
| } = primordials; |
| const { |
| validateFunction, |
| validateString, |
| } = require('internal/validators'); |
| const assert = require('assert'); |
| const methodsToCopy = [ |
| 'deepEqual', |
| 'deepStrictEqual', |
| 'doesNotMatch', |
| 'doesNotReject', |
| 'doesNotThrow', |
| 'equal', |
| 'fail', |
| 'ifError', |
| 'match', |
| 'notDeepEqual', |
| 'notDeepStrictEqual', |
| 'notEqual', |
| 'notStrictEqual', |
| 'partialDeepStrictEqual', |
| 'rejects', |
| 'strictEqual', |
| 'throws', |
| ]; |
| let assertMap; |
| |
| function getAssertionMap() { |
| if (assertMap === undefined) { |
| assertMap = new SafeMap(); |
| |
| for (let i = 0; i < methodsToCopy.length; i++) { |
| assertMap.set(methodsToCopy[i], assert[methodsToCopy[i]]); |
| } |
| } |
| |
| return assertMap; |
| } |
| |
| function register(name, fn) { |
| validateString(name, 'name'); |
| validateFunction(fn, 'fn'); |
| const map = getAssertionMap(); |
| map.set(name, fn); |
| } |
| |
| module.exports = { getAssertionMap, register }; |