нет полифиллов для document.register, работающих в phantomjs

Предположим, я пишу следующий веб-компонент или пользовательский элемент:

<!doctype html>

<html>
  <head>
    <script src="js/MutationObserver.js"></script>
    <script src="js/CustomElements.js"></script>

    <script>
      var proto = Object.create(HTMLElement.prototype);

      proto.createdCallback = function() { console.log('created');};
      proto.enteredViewCallback = function() {};

      document.register('x-foo', {prototype: proto});

      document.createElement('x-foo');
    </script>
  </head>

  <body>
  </body>
</html>

(polyfill на github) Это работает в Chrome. Но когда я пытаюсь запустить это в PhantomJS, я получаю следующую ошибку:

TypeError: instanceof called on an object with an invalid prototype property.

http://localhost/~me/js/CustomElements.js:18
http://localhost/~me/js/CustomElements.js:217 in instantiate
http://localhost/~me/js/CustomElements.js:333
http://localhost/~me/js/CustomElements.js:342 in createElement
...

Если вы хотите воспроизвести, вот мой скрипт phantomjs

var page = require('webpage').create();
page.open('http://localhost/~me/test.html', function() {
  phantom.exit();
});

Я пробовал другие полифилы, такие как

но на самом деле ни один из них не работал. Любые идеи, как это исправить ?


person Jeanluca Scaljeri    schedule 18.12.2013    source источник
comment
возможный дубликат http://stackoverflow.com/questions/6998981/why-doesnt-the-shim-for-watch-and-unwatch-at-https-gist-github-com-384583   -  person Paul Sweatte    schedule 15.04.2014


Ответы (1)