'use strict'; // The OpenType spec mentions that the follow tables are required for a font to // function correctly. We'll have all the tables listed except for OS/2, which // is not present in all fonts on Mac OS. // https://docs.microsoft.com/en-us/typography/opentype/spec/otff#font-tables const BASE_TABLES = [ 'cmap', 'head', 'hhea', 'hmtx', 'maxp', 'name', 'post', ]; const MAC_FONTS = new Map([ ['Monaco', { postscriptName: 'Monaco', fullName: 'Monaco', family: 'Monaco', style: 'Regular', }], ['Menlo-Regular', { postscriptName: 'Menlo-Regular', fullName: 'Menlo Regular', family: 'Menlo', style: 'Regular', }], ]); const WIN_FONTS = new Map([ ['Verdana', { postscriptName: 'Verdana', fullName: 'Verdana', family: 'Verdana', style: 'Regular', }], ]); const LINUX_FONTS = new Map([ ['Ahem', { postscriptName: 'Ahem', fullName: 'Ahem', family: 'Ahem', style: 'Regular', }], ]); // Returns a map of known system fonts, mapping a font's postscript name to // FontData. function getTestData() { let output = undefined; if (navigator.platform.indexOf("Win") !== -1) { output = WIN_FONTS; } else if (navigator.platform.indexOf("Mac") !== -1) { output = MAC_FONTS; } else if (navigator.platform.indexOf("Linux") !== -1) { output = LINUX_FONTS; } assert_not_equals( output, undefined, 'Cannot get test set due to unsupported platform.'); return output; }