Sha256: cdf2c3bdbcf653f4f0a8665210d705a7804b0d27abe3b0ec5205fff923415089

Contents?: true

Size: 500 Bytes

Versions: 8

Compression:

Stored size: 500 Bytes

Contents

require 'execjs'

module Sqreen
  module Js
    class ExecjsAdapter < JsServiceAdapter
      def preprocess(_rule_name, code)
        ExecJsRunnable.new(ExecJS.compile(code))
      end

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

    class ExecJsRunnable < ExecutableJs
      def initialize(compiled)
        @compiled = compiled
      end

      def run_js_cb(cbname, _budget, arguments)
        @compiled.call(cbname, *arguments)
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
sqreen-1.14.1-java lib/sqreen/js/execjs_adapter.rb
sqreen-1.14.1 lib/sqreen/js/execjs_adapter.rb
sqreen-1.14.0-java lib/sqreen/js/execjs_adapter.rb
sqreen-1.14.0 lib/sqreen/js/execjs_adapter.rb
sqreen-1.14.0.beta3-java lib/sqreen/js/execjs_adapter.rb
sqreen-1.14.0.beta3 lib/sqreen/js/execjs_adapter.rb
sqreen-1.14.0.beta2 lib/sqreen/js/execjs_adapter.rb
sqreen-1.14.0.beta1 lib/sqreen/js/execjs_adapter.rb