![](https://seccdn.libravatar.org/avatar/e2145bc5cf53dda95c308a3c75e8fef3.jpg?s=120&d=mm&r=g)
Hello community, here is the log from the commit of package rubygem-execjs for openSUSE:Factory checked in at 2015-04-12 00:10:54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rubygem-execjs (Old) and /work/SRC/openSUSE:Factory/.rubygem-execjs.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "rubygem-execjs" Changes: -------- --- /work/SRC/openSUSE:Factory/rubygem-execjs/rubygem-execjs.changes 2015-03-09 10:09:48.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.rubygem-execjs.new/rubygem-execjs.changes 2015-04-12 00:11:00.000000000 +0200 @@ -1,0 +2,5 @@ +Tue Apr 7 04:35:07 UTC 2015 - coolo@suse.com + +- updated to version 2.5.0 + +------------------------------------------------------------------- Old: ---- execjs-2.4.0.gem New: ---- execjs-2.5.0.gem ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rubygem-execjs.spec ++++++ --- /var/tmp/diff_new_pack.Dhh3rW/_old 2015-04-12 00:11:01.000000000 +0200 +++ /var/tmp/diff_new_pack.Dhh3rW/_new 2015-04-12 00:11:01.000000000 +0200 @@ -24,7 +24,7 @@ # Name: rubygem-execjs -Version: 2.4.0 +Version: 2.5.0 Release: 0 %define mod_name execjs %define mod_full_name %{mod_name}-%{version} @@ -32,7 +32,7 @@ BuildRequires: %{rubygem gem2rpm} BuildRequires: %{ruby} BuildRequires: ruby-macros >= 5 -Url: https://github.com/sstephenson/execjs +Url: https://github.com/rails/execjs Source: http://rubygems.org/gems/%{mod_full_name}.gem Source1: gem2rpm.yml Summary: Run JavaScript code from Ruby ++++++ execjs-2.4.0.gem -> execjs-2.5.0.gem ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/LICENSE new/LICENSE --- old/LICENSE 2015-03-05 20:41:51.000000000 +0100 +++ new/LICENSE 2015-04-06 19:08:07.000000000 +0200 @@ -1,5 +1,5 @@ -Copyright (c) 2014 Sam Stephenson -Copyright (c) 2014 Josh Peek +Copyright (c) 2015 Sam Stephenson +Copyright (c) 2015 Josh Peek Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/README.md new/README.md --- old/README.md 2015-03-05 20:41:51.000000000 +0100 +++ new/README.md 2015-04-06 19:08:07.000000000 +0200 @@ -11,6 +11,7 @@ embedded within Ruby * [therubyrhino](https://github.com/cowboyd/therubyrhino) - Mozilla Rhino embedded within JRuby +* [Duktape.rb](https://github.com/judofyr/duktape.rb) - Duktape JavaScript interpreter * [Node.js](http://nodejs.org/) * Apple JavaScriptCore - Included with Mac OS X * [Microsoft Windows Script Host](http://msdn.microsoft.com/en-us/library/9bbdkx3k.aspx) (JScript) @@ -74,6 +75,6 @@ # License -Copyright (c) 2014 Sam Stephenson and Josh Peek. +Copyright (c) 2015 Sam Stephenson and Josh Peek. Released under the MIT license. See `LICENSE` for details. Files old/checksums.yaml.gz and new/checksums.yaml.gz differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/execjs/duktape_runtime.rb new/lib/execjs/duktape_runtime.rb --- old/lib/execjs/duktape_runtime.rb 1970-01-01 01:00:00.000000000 +0100 +++ new/lib/execjs/duktape_runtime.rb 2015-04-06 19:08:07.000000000 +0200 @@ -0,0 +1,68 @@ +require "execjs/runtime" +require "json" + +module ExecJS + class DuktapeRuntime < Runtime + class Context < Runtime::Context + def initialize(runtime, source = "") + @ctx = Duktape::Context.new(complex_object: nil) + @ctx.exec_string(encode(source), '(execjs)') + rescue Exception => e + raise wrap_error(e) + end + + def exec(source, options = {}) + return unless /\S/ =~ source + @ctx.eval_string("(function(){#{encode(source)}})()", '(execjs)') + rescue Exception => e + raise wrap_error(e) + end + + def eval(source, options = {}) + return unless /\S/ =~ source + @ctx.eval_string("(#{encode(source)})", '(execjs)') + rescue Exception => e + raise wrap_error(e) + end + + def call(identifier, *args) + @ctx.call_prop(identifier.split("."), *args) + rescue Exception => e + raise wrap_error(e) + end + + private + def wrap_error(e) + klass = case e + when Duktape::SyntaxError + RuntimeError + when Duktape::Error + ProgramError + when Duktape::InternalError + RuntimeError + end + + if klass + re = / \(line (\d+)\)$/ + lineno = e.message[re, 1] || 1 + error = klass.new(e.message.sub(re, "")) + error.set_backtrace(["(execjs):#{lineno}"] + e.backtrace) + error + else + e + end + end + end + + def name + "Duktape" + end + + def available? + require "duktape" + true + rescue LoadError + false + end + end +end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/execjs/external_runtime.rb new/lib/execjs/external_runtime.rb --- old/lib/execjs/external_runtime.rb 2015-03-05 20:41:51.000000000 +0100 +++ new/lib/execjs/external_runtime.rb 2015-04-06 19:08:07.000000000 +0200 @@ -28,8 +28,15 @@ source = @runtime.compile_source(source) tmpfile = write_to_tempfile(source) + + if ExecJS.cygwin? + filepath = `cygpath -m #{tmpfile.path}`.rstrip + else + filepath = tmpfile.path + end + begin - extract_result(@runtime.exec_runtime(tmpfile.path), tmpfile.path) + extract_result(@runtime.exec_runtime(filepath), filepath) ensure File.unlink(tmpfile) end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/execjs/module.rb new/lib/execjs/module.rb --- old/lib/execjs/module.rb 2015-03-05 20:41:51.000000000 +0100 +++ new/lib/execjs/module.rb 2015-04-06 19:08:07.000000000 +0200 @@ -34,5 +34,9 @@ def windows? @windows ||= RbConfig::CONFIG["host_os"] =~ /mswin|mingw/ end + + def cygwin? + @cygwin ||= RbConfig::CONFIG["host_os"] =~ /cygwin/ + end end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/execjs/runtimes.rb new/lib/execjs/runtimes.rb --- old/lib/execjs/runtimes.rb 2015-03-05 20:41:51.000000000 +0100 +++ new/lib/execjs/runtimes.rb 2015-04-06 19:08:07.000000000 +0200 @@ -1,5 +1,6 @@ require "execjs/module" require "execjs/disabled_runtime" +require "execjs/duktape_runtime" require "execjs/external_runtime" require "execjs/ruby_racer_runtime" require "execjs/ruby_rhino_runtime" @@ -8,6 +9,8 @@ module Runtimes Disabled = DisabledRuntime.new + Duktape = DuktapeRuntime.new + RubyRacer = RubyRacerRuntime.new RubyRhino = RubyRhinoRuntime.new @@ -43,7 +46,7 @@ def self.autodetect from_environment || best_available || raise(RuntimeUnavailable, "Could not find a JavaScript runtime. " + - "See https://github.com/sstephenson/execjs for a list of available runtimes.") + "See https://github.com/rails/execjs for a list of available runtimes.") end def self.best_available @@ -72,6 +75,7 @@ @runtimes ||= [ RubyRacer, RubyRhino, + Duktape, JavaScriptCore, Node, SpiderMonkey, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/execjs/version.rb new/lib/execjs/version.rb --- old/lib/execjs/version.rb 2015-03-05 20:41:51.000000000 +0100 +++ new/lib/execjs/version.rb 2015-04-06 19:08:07.000000000 +0200 @@ -1,3 +1,3 @@ module ExecJS - VERSION = "2.4.0" + VERSION = "2.5.0" end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata --- old/metadata 2015-03-05 20:41:51.000000000 +0100 +++ new/metadata 2015-04-06 19:08:07.000000000 +0200 @@ -1,7 +1,7 @@ --- !ruby/object:Gem::Specification name: execjs version: !ruby/object:Gem::Version - version: 2.4.0 + version: 2.5.0 platform: ruby authors: - Sam Stephenson @@ -9,7 +9,7 @@ autorequire: bindir: bin cert_chain: [] -date: 2015-03-05 00:00:00.000000000 Z +date: 2015-04-06 00:00:00.000000000 Z dependencies: - !ruby/object:Gem::Dependency name: rake @@ -37,6 +37,7 @@ - README.md - lib/execjs.rb - lib/execjs/disabled_runtime.rb +- lib/execjs/duktape_runtime.rb - lib/execjs/encoding.rb - lib/execjs/external_runtime.rb - lib/execjs/module.rb @@ -50,7 +51,7 @@ - lib/execjs/support/node_runner.js - lib/execjs/support/spidermonkey_runner.js - lib/execjs/version.rb -homepage: https://github.com/sstephenson/execjs +homepage: https://github.com/rails/execjs licenses: - MIT metadata: {} @@ -70,7 +71,7 @@ version: '0' requirements: [] rubyforge_project: -rubygems_version: 2.4.5 +rubygems_version: 2.2.2 signing_key: specification_version: 4 summary: Run JavaScript code from Ruby