Sha256: 14274842cab06dfdbfe17f993c54084ddca7c2505d6af2a2888441c4f6ae0a71

Contents?: true

Size: 836 Bytes

Versions: 29

Compression:

Stored size: 836 Bytes

Contents

# typed: true

# Copyright (c) 2015 Sqreen. All Rights Reserved.
# Please refer to our terms for more information: https://www.sqreen.com/terms.html

# TODO: => Sqreen::JS:ExecJS

require 'execjs'
require 'weakref'
require 'sqreen/js/executable_js'
require 'sqreen/js/js_service_adapter'
require 'sqreen/js/exec_js_runnable'
require 'sqreen/js/thread_local_exec_js_runnable'

module Sqreen
  module Js
    class ExecjsAdapter < JsServiceAdapter
      def preprocess(rule_name, code)
        if thread_safe?
          ExecJsRunnable.new(ExecJS.compile(code))
        else
          ThreadLocalExecJsRunnable.new(code)
        end
      end

      def variant_name
        ExecJS.runtime.name + ' (ExecJS)'
      end

      private

      def thread_safe?
        ExecJS.runtime.name != 'therubyrhino (Rhino)'
      end
    end
  end
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
sqreen-1.22.0-java lib/sqreen/js/execjs_adapter.rb
sqreen-1.22.0 lib/sqreen/js/execjs_adapter.rb
sqreen-1.21.1-java lib/sqreen/js/execjs_adapter.rb
sqreen-1.21.1 lib/sqreen/js/execjs_adapter.rb
sqreen-1.21.0-java lib/sqreen/js/execjs_adapter.rb
sqreen-1.21.0 lib/sqreen/js/execjs_adapter.rb
sqreen-1.20.4-java lib/sqreen/js/execjs_adapter.rb
sqreen-1.20.4 lib/sqreen/js/execjs_adapter.rb
sqreen-1.21.0.beta3-java lib/sqreen/js/execjs_adapter.rb
sqreen-1.21.0.beta3 lib/sqreen/js/execjs_adapter.rb
sqreen-1.20.4.beta1 lib/sqreen/js/execjs_adapter.rb
sqreen-1.19.4 lib/sqreen/js/execjs_adapter.rb
sqreen-1.20.3 lib/sqreen/js/execjs_adapter.rb
sqreen-1.20.2 lib/sqreen/js/execjs_adapter.rb
sqreen-1.21.0.beta2 lib/sqreen/js/execjs_adapter.rb
sqreen-1.21.0.beta1 lib/sqreen/js/execjs_adapter.rb
sqreen-1.20.1-java lib/sqreen/js/execjs_adapter.rb
sqreen-1.20.1 lib/sqreen/js/execjs_adapter.rb
sqreen-1.20.0-java lib/sqreen/js/execjs_adapter.rb
sqreen-1.20.0 lib/sqreen/js/execjs_adapter.rb