UNPKG

@woosh/meep-engine

Version:

Pure JavaScript game engine. Fully featured and production ready.

56 lines (44 loc) 1.34 kB
import { assert } from "../../../../../../core/assert.js"; import { isArrayEqual } from "../../../../../../core/collection/array/isArrayEqual.js"; export class FunctionSignature { /** * * @type {FunctionParameterSpecification[]} */ parameters = []; /** * * @type {BinaryDataType} */ return_type = null; /** * * @param {FunctionSignature} parameters * @param {BinaryDataType} return_type * @returns {FunctionSignature} */ static from(parameters, return_type) { assert.isArray(parameters, 'parameters'); assert.defined(return_type, 'return_type'); const r = new FunctionSignature(); r.parameters = parameters; r.return_type = return_type; return r; } /** * * @param {FunctionSignature} other * @returns {boolean} */ equals(other) { return this.return_type.equals(other.return_type) && isArrayEqual(this.parameters, other.parameters); } toString() { return `FunctionParameterSignature{ parameters:[${this.parameters.map(p => p.toString()).join(', ')}], return_type:${this.return_type} }`; } } /** * @readonly * @type {boolean} */ FunctionSignature.prototype.isFunctionSignature = true;