text: /**
   * Copyright 2015 The AMP HTML Authors. All Rights Reserved.
   *
   * 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.
   */
  
  // Importing the document-register-element module has the side effect
  // of installing the custom elements polyfill if necessary.
  import installCustomElements from
    'document-register-element/build/document-register-element.node';
  import {
    install as installDOMTokenListToggle,
  } from './polyfills/domtokenlist-toggle';
  import {install as installDocContains} from './polyfills/document-contains';
  import {install as installMathSign} from './polyfills/math-sign';
  import {install as installObjectAssign} from './polyfills/object-assign';
  import {install as installPromise} from './polyfills/promise';
  import {install as installArrayIncludes} from './polyfills/array-includes';
  import {getMode} from './mode';
  
  /**
    Only install in closure binary and not in babel/browserify binary, since in
    the closure binary we strip out the `document-register-element` install side
    effect so we can tree shake the dependency correctly and we have to make
    sure to not `install` it during dev since the `install` is done as a side
    effect in importing the module.
  */
  if (!getMode().localDev) {
    installCustomElements(self, 'auto');
  }
  installDOMTokenListToggle(self);
  installMathSign(self);
  installObjectAssign(self);
  installPromise(self);
  installDocContains(self);
  installArrayIncludes(self);
  