function load(url, callback, opt) {
	    opt = (opt === undefined || opt === null) ?  {} : opt;
	    var isNode = typeof window === 'undefined';
	    var loadFn = isNode && !opt.isUrl ? loadFromFile : loadFromUrl;

	    return new Promise(function (resolve, reject) {
	        loadFn(url, function(err, arrayBuffer) {
	            if (err) {
	                if (callback) {
	                    return callback(err);
	                } else {
	                    reject(err);
	                }
	            }
	            var font;
	            try {
	                font = parseBuffer(arrayBuffer, opt);
	            } catch (e) {
	                if (callback) {
	                    return callback(e, null);
	                } else {
	                    reject(e);
	                }
	            }
	            if (callback) {
	                return callback(null, font);
	            } else {
	                resolve(font);
	            }
	        });
	    });
	}
Synchronously load the font from a URL or file.
When done, returns the font object or throws an error.
@alias opentype.loadSync
@param  {string} url - The URL of the font to load.
@param  {Object} opt - opt.lowMemory
@return {opentype.Font}