1
0
Fork 0
mirror of https://github.com/rails/execjs synced 2023-03-27 23:21:20 -04:00

Merge pull request #115 from eregon/gu_install_js

GraalVM 22.2+ needs `gu install js` for JavaScript to be available
This commit is contained in:
Jean Boussier 2022-07-08 15:40:00 +02:00 committed by GitHub
commit 82dbb78f71
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 2 deletions

View file

@ -29,6 +29,10 @@ jobs:
- name: Set TRUFFLERUBYOPT
run: echo "TRUFFLERUBYOPT=--jvm --polyglot" >> $GITHUB_ENV
if: startsWith(matrix.ruby, 'truffleruby+graalvm')
- name: Install GraalVM js component
run: if ! gu list | grep '^js '; then gu install js; fi
if: startsWith(matrix.ruby, 'truffleruby+graalvm')
- name: Run test
run: rake
- name: Install gem

View file

@ -51,7 +51,7 @@ module ExecJS
def translate
convert_js_to_ruby yield
rescue ForeignException => e
if e.message.start_with?('SyntaxError:')
if e.message && e.message.start_with?('SyntaxError:')
error_class = ExecJS::RuntimeError
else
error_class = ExecJS::ProgramError
@ -96,8 +96,10 @@ module ExecJS
def convert_ruby_to_js(value)
case value
when nil, true, false, Integer, Float, String
when nil, true, false, Integer, Float
value
when String
Truffle::Interop.as_truffle_string value
when Symbol
value.to_s
when Array
@ -136,6 +138,7 @@ module ExecJS
unless Polyglot.languages.include? "js"
warn "The language 'js' is not available, you likely need to `export TRUFFLERUBYOPT='--jvm --polyglot'`", uplevel: 0 if $VERBOSE
warn "You also need to install the 'js' component with 'gu install js' on GraalVM 22.2+", uplevel: 0 if $VERBOSE
warn "Note that you need TruffleRuby+GraalVM and not just the TruffleRuby standalone to use #{self.class}", uplevel: 0 if $VERBOSE
return @available = false
end