1
0
Fork 0
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:
Joshua Peek 2014-12-22 23:43:14 -06:00
parent 9bd2673329
commit 2bb3fe1d25
3 changed files with 0 additions and 109 deletions

View file

@ -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

View file

@ -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

View file

@ -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,