mirror of
https://github.com/rails/execjs
synced 2023-03-27 23:21:20 -04:00
Remove Johnson
No longer even compiles
This commit is contained in:
parent
9bd2673329
commit
2bb3fe1d25
3 changed files with 0 additions and 109 deletions
1
Gemfile
1
Gemfile
|
@ -3,7 +3,6 @@ source 'https://rubygems.org'
|
|||
gemspec
|
||||
|
||||
group :test do
|
||||
gem 'johnson'
|
||||
gem 'therubyracer', platform: :mri
|
||||
gem 'therubyrhino', ">=1.73.3", platform: :jruby
|
||||
gem 'minitest', require: false
|
||||
|
|
|
@ -1,104 +0,0 @@
|
|||
require "execjs/runtime"
|
||||
|
||||
module ExecJS
|
||||
class JohnsonRuntime < Runtime
|
||||
class Context < Runtime::Context
|
||||
def initialize(runtime, source = "")
|
||||
source = encode(source)
|
||||
|
||||
@runtime = Johnson::Runtime.new
|
||||
@runtime.evaluate(source)
|
||||
end
|
||||
|
||||
def exec(source, options = {})
|
||||
source = encode(source)
|
||||
|
||||
if /\S/ =~ source
|
||||
eval "(function(){#{source}})()", options
|
||||
end
|
||||
end
|
||||
|
||||
def eval(source, options = {})
|
||||
source = encode(source)
|
||||
|
||||
if /\S/ =~ source
|
||||
unbox @runtime.evaluate("(#{source})")
|
||||
end
|
||||
rescue Johnson::Error => e
|
||||
if syntax_error?(e)
|
||||
raise RuntimeError, e.message
|
||||
else
|
||||
raise ProgramError, e.message
|
||||
end
|
||||
end
|
||||
|
||||
def call(properties, *args)
|
||||
unbox @runtime.evaluate(properties).call(*args)
|
||||
rescue Johnson::Error => e
|
||||
if syntax_error?(e)
|
||||
raise RuntimeError, e.message
|
||||
else
|
||||
raise ProgramError, e.message
|
||||
end
|
||||
end
|
||||
|
||||
def unbox(value)
|
||||
case
|
||||
when function?(value)
|
||||
nil
|
||||
when string?(value)
|
||||
value.force_encoding('UTF-8')
|
||||
when array?(value)
|
||||
value.map { |v| unbox(v) }
|
||||
when object?(value)
|
||||
value.inject({}) do |vs, (k, v)|
|
||||
vs[k] = unbox(v) unless function?(v)
|
||||
vs
|
||||
end
|
||||
else
|
||||
value
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
def syntax_error?(error)
|
||||
error.message =~ /^syntax error at /
|
||||
end
|
||||
|
||||
def function?(value)
|
||||
value.respond_to?(:function?) && value.function?
|
||||
end
|
||||
|
||||
def string?(value)
|
||||
value.is_a?(String)
|
||||
end
|
||||
|
||||
def array?(value)
|
||||
array_test.call(value)
|
||||
end
|
||||
|
||||
def object?(value)
|
||||
value.respond_to?(:inject)
|
||||
end
|
||||
|
||||
def array_test
|
||||
@array_test ||= @runtime.evaluate("(function(a) {return a instanceof [].constructor})")
|
||||
end
|
||||
end
|
||||
|
||||
def name
|
||||
"Johnson (SpiderMonkey)"
|
||||
end
|
||||
|
||||
def available?
|
||||
require "johnson"
|
||||
true
|
||||
rescue LoadError
|
||||
false
|
||||
end
|
||||
|
||||
def deprecated?
|
||||
false
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,7 +1,6 @@
|
|||
require "execjs/module"
|
||||
require "execjs/disabled_runtime"
|
||||
require "execjs/external_runtime"
|
||||
require "execjs/johnson_runtime"
|
||||
require "execjs/ruby_racer_runtime"
|
||||
require "execjs/ruby_rhino_runtime"
|
||||
|
||||
|
@ -13,8 +12,6 @@ module ExecJS
|
|||
|
||||
RubyRhino = RubyRhinoRuntime.new
|
||||
|
||||
Johnson = JohnsonRuntime.new
|
||||
|
||||
Node = ExternalRuntime.new(
|
||||
name: "Node.js (V8)",
|
||||
command: ["nodejs", "node"],
|
||||
|
@ -75,7 +72,6 @@ module ExecJS
|
|||
@runtimes ||= [
|
||||
RubyRacer,
|
||||
RubyRhino,
|
||||
Johnson,
|
||||
JavaScriptCore,
|
||||
Node,
|
||||
SpiderMonkey,
|
||||
|
|
Loading…
Add table
Reference in a new issue