UNPKG

lettuce

Version:

Lettuce JS, Mini Mobile Framework for Romantic with DSL.

92 lines (82 loc) 2.5 kB
/* * MelonJS Game Engine * Copyright (C) 2011 - 2014, Olivier Biot, Jason Oster * http://www.melonjs.org/ * */ (function () { /** * Convert first character of a string to uppercase, if it's a letter. * @ignore * @function * @name capitalize * @param {String} str Input string. * @return {String} String with first letter made uppercase. */ var capitalize = function (str) { return str.substring(0, 1).toUpperCase() + str.substring(1, str.length); }; /** * A collection of utilities to ease porting between different user agents. * @namespace me.agent * @memberOf me */ me.agent = (function () { var api = {}; /** * Known agent vendors * @ignore */ var vendors = [ "ms", "MS", "moz", "webkit", "o" ]; /** * Get a vendor-prefixed property * @public * @name prefixed * @function * @param {String} name Property name * @param {Object} [obj=window] Object or element reference to access * @return {Mixed} Value of property * @memberOf me.agent */ api.prefixed = function (name, obj) { obj = obj || window; if (name in obj) { return obj[name]; } var uc_name = capitalize(name); var result; vendors.some(function (vendor) { var name = vendor + uc_name; return (result = (name in obj) ? obj[name] : undefined); }); return result; }; /** * Set a vendor-prefixed property * @public * @name setPrefixed * @function * @param {String} name Property name * @param {Mixed} value Property value * @param {Object} [obj=window] Object or element reference to access * @memberOf me.agent */ api.setPrefixed = function (name, value, obj) { obj = obj || window; if (name in obj) { obj[name] = value; return; } var uc_name = capitalize(name); vendors.some(function (vendor) { var name = vendor + uc_name; if (name in obj) { obj[name] = value; return true; } return false; }); }; return api; })(); })();