UNPKG

google-closure-compiler

Version:

Check, compile, optimize and compress Javascript with Closure-Compiler

285 lines (227 loc) • 7.67 kB
/* * 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 https://es5.github.io/ * @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. * * @record * @template THIS */ function ObjectPropertyDescriptor() {} /** @type {(*|undefined)} */ ObjectPropertyDescriptor.prototype.value; /** @type {(function(this: THIS):?)|undefined} */ ObjectPropertyDescriptor.prototype.get; /** @type {(function(this: THIS, ?):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<string|symbol, !ObjectPropertyDescriptor<?>>=} properties * A map of ObjectPropertyDescriptors. * @return {!Object} * @nosideeffects * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/create */ Object.create = function(proto, properties) {}; /** * @template T * @param {T} obj * @param {string|symbol} prop * @param {!ObjectPropertyDescriptor<T>} descriptor A ObjectPropertyDescriptor. * @return {T} * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineProperty */ Object.defineProperty = function(obj, prop, descriptor) {}; /** * @template T * @param {T} obj * @param {!Object<string|symbol, !ObjectPropertyDescriptor<T>>} props A map of * ObjectPropertyDescriptors. * @return {T} * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineProperties */ Object.defineProperties = function(obj, props) {}; /** * @param {T} obj * @param {string|symbol} prop * @return {!ObjectPropertyDescriptor<T>|undefined} * @nosideeffects * @template T * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor */ Object.getOwnPropertyDescriptor = function(obj, prop) {}; /** * @param {!Object} obj * @return {!Array<string>} * @nosideeffects * @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/keys */ Object.keys = function(obj) {}; /** * @param {!Object} obj * @return {!Array<string>} * @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) {}; /** * We acknowledge that this function does not exist on the `Object.prototype` * and is declared in this file for other reasons. * * When `toJSON` is defined as a property on an object it can be used in * conjunction with the JSON.stringify() function. * * It is defined here to: * (1) Prevent the compiler from renaming the property on internal classes. * (2) Enforce that the signature is correct for users defining it. * * @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. * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#toJSON()_behavior */ 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 */ function JSONType() {} /** * @param {string} jsonStr The string to parse. * @param {(function(this:?, string, *) : *)=} opt_reviver * @return {*} The JSON object. * @this {?} this doesn't require a this type in practice * @throws {Error} */ JSONType.prototype.parse = function(jsonStr, opt_reviver) {}; /** * @param {*} jsonObj Input object. * @param {(Array<string>|(function(this:?, string, *) : *)|null)=} opt_replacer * @param {(number|string)=} opt_space * @return {string} JSON string which represents jsonObj. * @this {?} this doesn't require a this type in practice * @throws {Error} */ JSONType.prototype.stringify = function(jsonObj, opt_replacer, opt_space) {}; /** * @type {!JSONType} * @suppress {duplicate} */ var JSON;