Size: a a a

2020 July 20

DK

Dmitriy Kovalenko in graalvm_ru
Art
В силу некоторых причин я не могу изменить JS код, но спасибо!
Можновыполнить этот кусочек до выполнения основного js
источник

A

Art in graalvm_ru
То есть выполнить два eval ?
источник

DK

Dmitriy Kovalenko in graalvm_ru
да, сейчас покажу пример
источник

A

Art in graalvm_ru
И вправду, что то не подумал, казалось что eval отдает conext, но он всего лишь меняет состояние Context
источник

DK

Dmitriy Kovalenko in graalvm_ru
источник

DK

Dmitriy Kovalenko in graalvm_ru
Context context = Context.create();
context.eval("js", polyfillContents);
context.eval(Source.newBuilder("js", componentReader, componentSourceName).build());
источник

A

Art in graalvm_ru
🙏
источник

A

Art in graalvm_ru
Да, заработало, спасибо!
источник

OS

Oleg Shelajev in graalvm_ru
// Could move this to a file if desired
   private static final String polyfillContents = "var window = this; " +
           "window.setTimeout = function (){}; " +
           "window.clearTimeout = function (){};";



как топорно - я в восхищении
источник

DK

Dmitriy Kovalenko in graalvm_ru
Есть ли другие варианты? с работающими таймерами
источник

OS

Oleg Shelajev in graalvm_ru
не, ну я уверен что можно нормально написать с таймаутом
источник

OS

Oleg Shelajev in graalvm_ru
но я не знаю примера
источник

DK

Dmitriy Kovalenko in graalvm_ru
Это функции браузера - их нет в graaljs
источник

DK

Dmitriy Kovalenko in graalvm_ru
поэтому и http запросы не получится выполнить напрямую из js
источник

DK

Dmitriy Kovalenko in graalvm_ru
Если найдете адекватные таймаут функции - делитесь 🙂
источник

OS

Oleg Shelajev in graalvm_ru
типа
class WindowPolyfill { 
  public void setTimeout(Supplier f, long ms) throws Exception {
      Thread.currentThread().sleep(ms);
      f.get();
   }
}


:)
источник

OS

Oleg Shelajev in graalvm_ru
мне надо подумать
источник

OS

Oleg Shelajev in graalvm_ru
Oleg Shelajev
мне надо подумать
говорят - непросто это сделать
источник

OS

Oleg Shelajev in graalvm_ru
я думал! и мне кажется через js — конечно правильнее делать
источник

OS

Oleg Shelajev in graalvm_ru
нету границы будет лучше компилироваться
источник