function browserSupportsEmoji( type ) {
var canvas = document.createElement( 'canvas' ),
context = canvas.getContext && canvas.getContext( '2d' ),
+ stringFromCharCode = String.fromCharCode,
tone;
if ( ! context || ! context.fillText ) {
* The first two will encode to small images (1-2KB data URLs), the third will encode
* to a larger image (4-5KB data URL).
*/
- context.fillText( String.fromCharCode( 55356, 56806, 55356, 56826 ), 0, 0 );
+ context.fillText( stringFromCharCode( 55356, 56806, 55356, 56826 ), 0, 0 );
return canvas.toDataURL().length > 3000;
} else if ( 'diversity' === type ) {
/*
* emoji with no skin tone specified (in this case, Santa). It then adds a skin tone, and
* compares if the emoji rendering has changed.
*/
- context.fillText( String.fromCharCode( 55356, 57221 ), 0, 0 );
+ context.fillText( stringFromCharCode( 55356, 57221 ), 0, 0 );
tone = context.getImageData( 16, 16, 1, 1 ).data.toString();
- context.fillText( String.fromCharCode( 55356, 57221, 55356, 57343 ), 0, 0 );
+ context.fillText( stringFromCharCode( 55356, 57221, 55356, 57343 ), 0, 0 );
// Chrome has issues comparing arrays, so we compare it as a string, instead.
return tone !== context.getImageData( 16, 16, 1, 1 ).data.toString();
} else {
* center pixel. In browsers that don't support emoji, the character will be rendered
* as an empty square, so the center pixel will be blank.
*/
- context.fillText( String.fromCharCode( 55357, 56835 ), 0, 0 );
+ context.fillText( stringFromCharCode( 55357, 56835 ), 0, 0 );
} else {
/*
* To check for Unicode 8 support, let's try rendering the most important advancement
* that the Unicode Consortium have made in years: the burrito.
*/
- context.fillText( String.fromCharCode( 55356, 57135 ), 0, 0 );
+ context.fillText( stringFromCharCode( 55356, 57135 ), 0, 0 );
}
return context.getImageData( 16, 16, 1, 1 ).data[0] !== 0;
}