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:
commit
82dbb78f71
2 changed files with 9 additions and 2 deletions
4
.github/workflows/ci.yml
vendored
4
.github/workflows/ci.yml
vendored
|
@ -29,6 +29,10 @@ jobs:
|
||||||
- name: Set TRUFFLERUBYOPT
|
- name: Set TRUFFLERUBYOPT
|
||||||
run: echo "TRUFFLERUBYOPT=--jvm --polyglot" >> $GITHUB_ENV
|
run: echo "TRUFFLERUBYOPT=--jvm --polyglot" >> $GITHUB_ENV
|
||||||
if: startsWith(matrix.ruby, 'truffleruby+graalvm')
|
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
|
- name: Run test
|
||||||
run: rake
|
run: rake
|
||||||
- name: Install gem
|
- name: Install gem
|
||||||
|
|
|
@ -51,7 +51,7 @@ module ExecJS
|
||||||
def translate
|
def translate
|
||||||
convert_js_to_ruby yield
|
convert_js_to_ruby yield
|
||||||
rescue ForeignException => e
|
rescue ForeignException => e
|
||||||
if e.message.start_with?('SyntaxError:')
|
if e.message && e.message.start_with?('SyntaxError:')
|
||||||
error_class = ExecJS::RuntimeError
|
error_class = ExecJS::RuntimeError
|
||||||
else
|
else
|
||||||
error_class = ExecJS::ProgramError
|
error_class = ExecJS::ProgramError
|
||||||
|
@ -96,8 +96,10 @@ module ExecJS
|
||||||
|
|
||||||
def convert_ruby_to_js(value)
|
def convert_ruby_to_js(value)
|
||||||
case value
|
case value
|
||||||
when nil, true, false, Integer, Float, String
|
when nil, true, false, Integer, Float
|
||||||
value
|
value
|
||||||
|
when String
|
||||||
|
Truffle::Interop.as_truffle_string value
|
||||||
when Symbol
|
when Symbol
|
||||||
value.to_s
|
value.to_s
|
||||||
when Array
|
when Array
|
||||||
|
@ -136,6 +138,7 @@ module ExecJS
|
||||||
|
|
||||||
unless Polyglot.languages.include? "js"
|
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 "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
|
warn "Note that you need TruffleRuby+GraalVM and not just the TruffleRuby standalone to use #{self.class}", uplevel: 0 if $VERBOSE
|
||||||
return @available = false
|
return @available = false
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue