55 lines
1.2 KiB
JavaScript
55 lines
1.2 KiB
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
"use strict";
|
|
|
|
function getArrayTypeNames() {
|
|
return [
|
|
"Array",
|
|
"Int8Array",
|
|
"Uint8Array",
|
|
"Int16Array",
|
|
"Uint16Array",
|
|
"Int32Array",
|
|
"Uint32Array",
|
|
"Float32Array",
|
|
"Float64Array",
|
|
"Uint8ClampedArray",
|
|
"BigInt64Array",
|
|
"BigUint64Array",
|
|
];
|
|
}
|
|
|
|
/**
|
|
* Return true if the parameters passed to console.log is supported.
|
|
* The parameters can be either from server side (without getGrip) or client
|
|
* side (with getGrip).
|
|
*
|
|
* @param {Message} parameters
|
|
* @returns {Boolean}
|
|
*/
|
|
function isSupportedByConsoleTable(parameters) {
|
|
const supportedClasses = [
|
|
"Object",
|
|
"Map",
|
|
"Set",
|
|
"WeakMap",
|
|
"WeakSet",
|
|
].concat(getArrayTypeNames());
|
|
|
|
if (!Array.isArray(parameters) || parameters.length === 0 || !parameters[0]) {
|
|
return false;
|
|
}
|
|
|
|
if (parameters[0].getGrip) {
|
|
return supportedClasses.includes(parameters[0].getGrip().class);
|
|
}
|
|
|
|
return supportedClasses.includes(parameters[0].class);
|
|
}
|
|
|
|
module.exports = {
|
|
getArrayTypeNames,
|
|
isSupportedByConsoleTable,
|
|
};
|