2016-07-05 10 views
0

Mein Code verwendet ES6-Proxy-Klasse. Bei Ausführung mit PhantomJS (v 2.1.1) wurde die Proxy-Klasse nicht gefunden. Ich habe versucht, Harmonie zu reflektieren, aber das funktioniert auch nicht. Es sagt proxies not supported on this platform. On v8/node/iojs, make sure to pass the --harmony_proxies flag. Würde jemand eine Ahnung haben, wie man es zum Laufen bringt (hoffentlich nicht mit dem Gebrauch von Babel)?Verwenden von ES6-Proxy mit PhantomJS

+0

(Babel würde nicht helfen, Proxy kann nicht polyfilled.) –

+0

Was PhantomJS verwendet - navigator.appVersions sagt "5.0 (Macintosh; Intel Mac OS X) AppleWebKit/538.1 (KHTML, wie Gecko) PhantomJS/2.1. 1 Safari/538,1 ". Das scheint irgendwo bei Safari 7/8 zu sein und hat keine Proxy-Klasse. –

+0

Das ist nicht die JavaScript-Engine, das ist der "Browser" (was PhantomJS selbst ist). Aber ignorieren Sie die Frage, ich habe vergessen, dass PhantomJS eine JS-Engine eingebaut hat. –

Antwort

1

PhantomJS verwendet JavaScriptCore, die Standard-JavaScript-Engine für WebKit und Teil des WebKit-Projekts.

JSC unterstützt Proxy noch nicht; es ist on the list und es sieht so aus, als ob ihm mindestens seit Februar jemand zugewiesen wurde.

Da Proxy nicht polyfilled werden kann, werden Sie nicht in der Lage sein PhantomJS verwenden Proxy Code auszuführen, bis JSC Proxy und eine aktualisierte PhantomJS unterstützt wird gegen diese aktualisierte JSC gebaut.

+0

Dies .. ist überraschend. Wenn ich überreagieren und sagen könnte, ist PhatomJS völlig unzuverlässig und unbrauchbar. Sehr großes trauriges Gesicht. Ich hatte gedacht, dass es die Node-Laufzeit verwenden und Phantom-DOM erstellen würde. Und wie ist WebKit so weit zurück? –