/**
 * Copyright (c) 2016-2018 Dmitry Panyushkin
 * Available under MIT license
 */ import * as ko from "knockout" ; const prefix = "__ko_decorators_" ; export let PATCHED_KEY = prefix + "patched__" ; export let EXTENDERS_KEY = prefix + "extenders__" ; export let SUBSCRIPTIONS_KEY = prefix + "subscriptions__" ; if ( typeof Symbol !== "undefined" ) { PATCHED_KEY = Symbol ( PATCHED_KEY ) ; EXTENDERS_KEY = Symbol ( EXTENDERS_KEY ) ; SUBSCRIPTIONS_KEY = Symbol ( SUBSCRIPTIONS_KEY ) ; } export const ArrayPrototype = Array . prototype ; export function defineProperty ( instance , key , descriptor ) { descriptor . configurable = true ; Object . defineProperty ( instance , key , descriptor ) ; } export const extendObject = ko . utils . extend ; export const objectForEach = ko . utils . objectForEach ; export const isArray = Array . isArray . bind ( Array ) ; export const getPrototypeOf = Object . getPrototypeOf . bind ( Object ) ; export const getOwnPropertyDescriptor = Object . getOwnPropertyDescriptor . bind ( Object ) ; export const hasOwnProperty = Function . prototype . call . bind ( Object . prototype . hasOwnProperty ) ; export const arraySlice = Function . prototype . call . bind ( ArrayPrototype . slice ) ;