/* * Copyright 2009 The Closure Compiler Authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @fileoverview Definitions for ECMAScript 5. * @see http://www.ecma-international.org/publications/files/drafts/tc39-2009-025.pdf * @externs */ /** * @param {Object|undefined} selfObj Specifies the object to which |this| should * point when the function is run. If the value is null or undefined, it * will default to the global object. * @param {...*} var_args Additional arguments that are partially * applied to fn. * @return {!Function} A partially-applied form of the Function on which * bind() was invoked as a method. * @nosideeffects * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/bind */ Function.prototype.bind = function(selfObj, var_args) {}; /** * @this {String|string} * @return {string} * @nosideeffects * @see http://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/Trim */ String.prototype.trim = function() {}; /** * @this {String|string} * @return {string} * @nosideeffects * @see http://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/TrimLeft */ String.prototype.trimLeft = function() {}; /** * @this {String|string} * @return {string} * @nosideeffects * @see http://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/TrimRight */ String.prototype.trimRight = function() {}; /** * A object property descriptor used by Object.create, Object.defineProperty, * Object.defineProperties, Object.getOwnPropertyDescriptor. * * Note: not a real constructor. * @constructor */ var ObjectPropertyDescriptor = function(){}; /** @type {*} */ ObjectPropertyDescriptor.prototype.value; /** @type {(function():?)||undefined} */ ObjectPropertyDescriptor.prototype.get; /** @type {(function(?):void)||undefined} */ ObjectPropertyDescriptor.prototype.set; /** @type {boolean|undefined} */ ObjectPropertyDescriptor.prototype.writable; /** @type {boolean|undefined} */ ObjectPropertyDescriptor.prototype.enumerable; /** @type {boolean|undefined} */ ObjectPropertyDescriptor.prototype.configurable; /** * @param {Object} proto * @param {Object=} opt_properties A map of ObjectPropertyDescriptors. * @return {!Object} * @nosideeffects * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/create */ Object.create = function(proto, opt_properties) {}; /** * @param {!Object} obj * @param {string} prop * @param {!Object} descriptor A ObjectPropertyDescriptor. * @return {!Object} * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineProperty */ Object.defineProperty = function(obj, prop, descriptor) {}; /** * @param {!Object} obj * @param {!Object} props A map of ObjectPropertyDescriptors. * @return {!Object} * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineProperties */ Object.defineProperties = function(obj, props) {}; /** * @param {!Object} obj * @param {string} prop * @return {!ObjectPropertyDescriptor|undefined} * @nosideeffects * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor */ Object.getOwnPropertyDescriptor = function(obj, prop) {}; /** * @param {!Object} obj * @return {!Array.} * @nosideeffects * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/keys */ Object.keys = function(obj) {}; /** * @param {!Object} obj * @return {!Array.} * @nosideeffects * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames */ Object.getOwnPropertyNames = function(obj) {}; /** * @param {!Object} obj * @return {Object} * @nosideeffects * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/GetPrototypeOf */ Object.getPrototypeOf = function(obj) {}; /** * @param {T} obj * @return {T} * @template T * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/preventExtensions */ Object.preventExtensions = function(obj) {}; /** * @param {T} obj * @return {T} * @template T * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/seal */ Object.seal = function(obj) {}; /** * @param {T} obj * @return {T} * @template T * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/freeze */ Object.freeze = function(obj) {}; /** * @param {!Object} obj * @return {boolean} * @nosideeffects * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isExtensible */ Object.isExtensible = function(obj) {}; /** * @param {!Object} obj * @return {boolean} * @nosideeffects * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isSealed */ Object.isSealed = function(obj) {}; /** * @param {!Object} obj * @return {boolean} * @nosideeffects * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/isFrozen */ Object.isFrozen = function(obj) {}; /** * As per ECMAScript 5, 15.12.3. * @param {string=} opt_key The JSON key for this object. * @return {*} The serializable representation of this object. Note that this * need not be a string. See http://goo.gl/PEUvs. */ Object.prototype.toJSON = function(opt_key) {}; /** * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toISOString * @return {string} */ Date.prototype.toISOString = function() {}; /** * @param {*=} opt_ignoredKey * @return {string} * @override */ Date.prototype.toJSON = function(opt_ignoredKey) {}; /** * A fake type to model the JSON object. * @constructor */ var JSONType = function() {}; /** * @param {string} jsonStr The string to parse. * @param {(function(string, *) : *)=} opt_reviver * @return {*} The JSON object. * @throws {Error} * @nosideeffects */ JSONType.prototype.parse = function(jsonStr, opt_reviver) {}; /** * @param {*} jsonObj Input object. * @param {(Array.|(function(string, *) : *)|null)=} opt_replacer * @param {(number|string)=} opt_space * @return {string} JSON string which represents jsonObj. * @throws {Error} * @nosideeffects */ JSONType.prototype.stringify = function(jsonObj, opt_replacer, opt_space) {}; /** * @type {!JSONType} * @suppress {duplicate} */ var JSON;