использование назначения параллельного массива с therubyracer

при вызове V8::Context#load therubyracer жалуется

Unexpected token [ at /home/dm/contra/app/assets/javascripts/libfigure/figure.js:120:10

Это заканчивается var [ who в середине этой функции:

function allemande_orbit_view(move,pvs) {
    var who = pvs[0]
    var [ who, dir, inner_angle, outer_angle, beats] = pvs
    var [swho,sdir,sinner_angle,souter_angle,sbeats] = parameter_strings(move, pvs)
...

Он жалуется на использование деструктурирующего назначения массива, например:

var [a,b] = [5,6]

Я вижу, что более поздние версии V8 поддерживают это ( Назначение деструктуризации массива не работает в версии 8 с параметром гармонии в Node.js), но если я поставлю gem 'libv8', '~> 5.1', '>= 5.1.281.59.1' в свой Gemfile, тогда упаковщик скажет мне отключиться:

Bundler could not find compatible versions for gem "libv8":
  In Gemfile:
    libv8 (>= 5.1.281.59.1, ~> 5.1)

    therubyracer was resolved to 0.12.2, which depends on
      libv8 (~> 3.16.14.0)

Я смотрю на странице rubyracer github, и вижу последнее обновление год назад, и только тогда для v8 4.5, и похоже, что это не ладилось.

Тааааааааааааааааааа... Я думаю, что мне надоел апгрейд V8, верно?

Кто-нибудь знает, как передать флаг --harmony_restructuring существующему V8?


person Dave Morse    schedule 10.07.2016    source источник


Ответы (1)


libv8 сопровождающий здесь.

К сожалению, на данный момент therubyracer несовместим с версиями V8 выше 3.16.

Если вы используете его только как среду выполнения JS для компиляции ресурсов, вам следует подумать о переходе на новый mini_racer. .

В качестве побочного примечания, вам следует подумать о том, чтобы сначала обратиться к сопровождающим проекта напрямую, например, через их систему отслеживания проблем, прежде чем задавать вопрос в SO. Ваш вопрос, вероятно, остался бы без ответа, если бы я случайно не искал последние вопросы о libv8 здесь.

person ignisf    schedule 11.07.2016