/** * Built-ins that postdate the oldest platform this UI supports (webOS 3.x / LG 2017, Chromium 38) * and that nothing else installs for us. * * Deliberately small: the web player bundle installs `Object.assign`, `Object.values`, * `Object.entries`, `Array.prototype.find`/`findIndex`/`includes`, `String.prototype.includes`/ * `startsWith`/`endsWith`, `Map`, `WeakMap` and `Promise` while it is being evaluated, and a UI can * only be constructed around an existing player, so UI runtime code already has those. `Array.from` * is the one the player does not install, and `Object.assign` is kept because this module is loaded * first and cannot assume the player bundle was evaluated before it. * * Both main.ts and Component.ts import this module first, so the polyfills are available during * module evaluation even for direct framework imports that construct a Component via prefixCss(). * spec/Polyfills.spec.ts guards both entry paths. */ /** * Installs `value` unless the platform, or the player bundle, already provides it. Uses * defineProperty so prototype members would not become enumerable, and so that an existing * non-configurable polyfill is left alone rather than assigned over. */ declare function define(owner: any, member: string, value: (...args: any[]) => any): void;