Sha256: eb1e080dcba149d72508d1dfe917b7a3c56085538c4ca2aa2b23dc585f59a133

Contents?: true

Size: 838 Bytes

Versions: 10

Compression:

Stored size: 838 Bytes

Contents

# typed: ignore

# 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

10 entries across 10 versions & 1 rubygems

Version Path
sqreen-1.25.1 lib/sqreen/js/execjs_adapter.rb
sqreen-1.25.0 lib/sqreen/js/execjs_adapter.rb
sqreen-1.24.3 lib/sqreen/js/execjs_adapter.rb
sqreen-1.24.2 lib/sqreen/js/execjs_adapter.rb
sqreen-1.24.1 lib/sqreen/js/execjs_adapter.rb
sqreen-1.24.0 lib/sqreen/js/execjs_adapter.rb
sqreen-1.23.2 lib/sqreen/js/execjs_adapter.rb
sqreen-1.23.1 lib/sqreen/js/execjs_adapter.rb
sqreen-1.23.0 lib/sqreen/js/execjs_adapter.rb
sqreen-1.22.1 lib/sqreen/js/execjs_adapter.rb