code: function element(name, prototype) {
      if (typeof name !== 'string') {
        var script = prototype || document._currentScript;
        prototype = name;
        name = script && script.parentNode && script.parentNode.getAttribute ?
            script.parentNode.getAttribute('name') : '';
        if (!name) {
          throw 'Element name could not be inferred.';
        }
      }
      if (getRegisteredPrototype(name)) {
        throw 'Already registered (Polymer) prototype for element ' + name;
      }
      // cache the prototype
      registerPrototype(name, prototype);
      // notify the registrar waiting for 'name', if any
      notifyPrototype(name);
    }
docs: imperative implementation: Polymer() specify an 'own' prototype for tag `name`