Hello community,

here is the log from the commit of package rubygem-execjs for openSUSE:Factory 
checked in at 2015-03-09 10:09:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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-02-11 16:45:32.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.rubygem-execjs.new/rubygem-execjs.changes       
2015-03-09 10:09:48.000000000 +0100
@@ -1,0 +2,5 @@
+Fri Mar  6 05:31:26 UTC 2015 - co...@suse.com
+
+- updated to version 2.4.0
+
+-------------------------------------------------------------------

Old:
----
  execjs-2.3.0.gem

New:
----
  execjs-2.4.0.gem

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ rubygem-execjs.spec ++++++
--- /var/tmp/diff_new_pack.CG60zf/_old  2015-03-09 10:09:49.000000000 +0100
+++ /var/tmp/diff_new_pack.CG60zf/_new  2015-03-09 10:09:49.000000000 +0100
@@ -24,7 +24,7 @@
 #
 
 Name:           rubygem-execjs
-Version:        2.3.0
+Version:        2.4.0
 Release:        0
 %define mod_name execjs
 %define mod_full_name %{mod_name}-%{version}

++++++ execjs-2.3.0.gem -> execjs-2.4.0.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/README.md new/README.md
--- old/README.md       2015-02-03 22:53:33.000000000 +0100
+++ new/README.md       2015-03-05 20:41:51.000000000 +0100
@@ -64,7 +64,7 @@
 only count on ES3 features being available. Prefer feature checking these APIs
 rather than hard coding support for specific runtimes.
 
-**Can I ExecJS be used to sandbox scripts?**
+**Can ExecJS be used to sandbox scripts?**
 
 No, ExecJS shouldn't be used for any security related sandboxing. Since 
runtimes
 are automatically detected, each runtime has different sandboxing properties.
Files old/checksums.yaml.gz and new/checksums.yaml.gz differ
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-02-03 22:53:33.000000000 +0100
+++ new/lib/execjs/external_runtime.rb  2015-03-05 20:41:51.000000000 +0100
@@ -24,12 +24,12 @@
 
       def exec(source, options = {})
         source = encode(source)
-        source = "#{@source}\n#{source}" if @source
+        source = "#{@source}\n#{source}" if @source != ""
         source = @runtime.compile_source(source)
 
         tmpfile = write_to_tempfile(source)
         begin
-          extract_result(@runtime.exec_runtime(tmpfile.path))
+          extract_result(@runtime.exec_runtime(tmpfile.path), tmpfile.path)
         ensure
           File.unlink(tmpfile)
         end
@@ -57,14 +57,25 @@
           tmpfile
         end
 
-        def extract_result(output)
-          status, value = output.empty? ? [] : ::JSON.parse(output, 
create_additions: false)
+        def extract_result(output, filename)
+          status, value, stack = output.empty? ? [] : ::JSON.parse(output, 
create_additions: false)
           if status == "ok"
             value
-          elsif value =~ /SyntaxError:/
-            raise RuntimeError, value
           else
-            raise ProgramError, value
+            stack ||= ""
+            real_filename = File.realpath(filename)
+            stack = stack.split("\n").map do |line|
+              line.sub(" at ", "")
+                  .sub(real_filename, "(execjs)")
+                  .sub(filename, "(execjs)")
+                  .strip
+            end
+            stack.reject! { |line| ["eval code", "eval@[native 
code]"].include?(line) }
+            stack.shift unless stack[0].to_s.include?("(execjs)")
+            error_class = value =~ /SyntaxError:/ ? RuntimeError : ProgramError
+            error = error_class.new(value)
+            error.set_backtrace(stack + caller)
+            raise error
           end
         end
     end
@@ -158,7 +169,7 @@
           if $?.success?
             output
           else
-            raise RuntimeError, output
+            raise exec_runtime_error(output)
           end
         end
 
@@ -181,7 +192,7 @@
           if $?.success?
             output
           else
-            raise RuntimeError, output
+            raise exec_runtime_error(output)
           end
         end
       else
@@ -193,13 +204,22 @@
           if $?.success?
             output
           else
-            raise RuntimeError, output
+            raise exec_runtime_error(output)
           end
         end
       end
       # Internally exposed for Context.
       public :exec_runtime
 
+      def exec_runtime_error(output)
+        error = RuntimeError.new(output)
+        lines = output.split("\n")
+        lineno = lines[0][/:(\d+)$/, 1] if lines[0]
+        lineno ||= 1
+        error.set_backtrace(["(execjs):#{lineno}"] + caller)
+        error
+      end
+
       def which(command)
         Array(command).find do |name|
           name, args = name.split(/\s+/, 2)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/execjs/ruby_racer_runtime.rb 
new/lib/execjs/ruby_racer_runtime.rb
--- old/lib/execjs/ruby_racer_runtime.rb        2015-02-03 22:53:33.000000000 
+0100
+++ new/lib/execjs/ruby_racer_runtime.rb        2015-03-05 20:41:51.000000000 
+0100
@@ -12,11 +12,7 @@
           begin
             @v8_context.eval(source)
           rescue ::V8::JSError => e
-            if e.value["name"] == "SyntaxError"
-              raise RuntimeError, e.value.to_s
-            else
-              raise ProgramError, e.value.to_s
-            end
+            raise wrap_error(e)
           end
         end
       end
@@ -37,11 +33,7 @@
             begin
               unbox @v8_context.eval("(#{source})")
             rescue ::V8::JSError => e
-              if e.value["name"] == "SyntaxError"
-                raise RuntimeError, e.value.to_s
-              else
-                raise ProgramError, e.value.to_s
-              end
+              raise wrap_error(e)
             end
           end
         end
@@ -52,11 +44,7 @@
           begin
             unbox @v8_context.eval(properties).call(*args)
           rescue ::V8::JSError => e
-            if e.value["name"] == "SyntaxError"
-              raise RuntimeError, e.value.to_s
-            else
-              raise ProgramError, e.value.to_s
-            end
+            raise wrap_error(e)
           end
         end
       end
@@ -96,6 +84,20 @@
             result
           end
         end
+
+        def wrap_error(e)
+          error_class = e.value["name"] == "SyntaxError" ? RuntimeError : 
ProgramError
+
+          stack = e.value["stack"] || ""
+          stack = stack.split("\n")
+          stack.shift
+          stack = [e.message[/<eval>:\d+:\d+/, 0]].compact if stack.empty?
+          stack = stack.map { |line| line.sub(" at ", "").sub("<eval>", 
"(execjs)").strip }
+
+          error = error_class.new(e.value.to_s)
+          error.set_backtrace(stack + caller)
+          error
+        end
     end
 
     def name
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/execjs/ruby_rhino_runtime.rb 
new/lib/execjs/ruby_rhino_runtime.rb
--- old/lib/execjs/ruby_rhino_runtime.rb        2015-02-03 22:53:33.000000000 
+0100
+++ new/lib/execjs/ruby_rhino_runtime.rb        2015-03-05 20:41:51.000000000 
+0100
@@ -10,7 +10,7 @@
         fix_memory_limit! @rhino_context
         @rhino_context.eval(source)
       rescue Exception => e
-        reraise_error(e)
+        raise wrap_error(e)
       end
 
       def exec(source, options = {})
@@ -28,13 +28,13 @@
           unbox @rhino_context.eval("(#{source})")
         end
       rescue Exception => e
-        reraise_error(e)
+        raise wrap_error(e)
       end
 
       def call(properties, *args)
         unbox @rhino_context.eval(properties).call(*args)
       rescue Exception => e
-        reraise_error(e)
+        raise wrap_error(e)
       end
 
       def unbox(value)
@@ -58,17 +58,18 @@
         end
       end
 
-      def reraise_error(e)
-        case e
-        when ::Rhino::JSError
-          if e.message == "syntax error"
-            raise RuntimeError, e.message
-          else
-            raise ProgramError, e.message
-          end
-        else
-          raise e
-        end
+      def wrap_error(e)
+        return e unless e.is_a?(::Rhino::JSError)
+
+        error_class = e.message == "syntax error" ? RuntimeError : ProgramError
+
+        stack = e.backtrace
+        stack = stack.map { |line| line.sub(" at ", "").sub("<eval>", 
"(execjs)").strip }
+        stack.unshift("(execjs):1") if e.javascript_backtrace.empty?
+
+        error = error_class.new(e.value.to_s)
+        error.set_backtrace(stack)
+        error
       end
 
       private
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/execjs/support/jsc_runner.js 
new/lib/execjs/support/jsc_runner.js
--- old/lib/execjs/support/jsc_runner.js        2015-02-03 22:53:33.000000000 
+0100
+++ new/lib/execjs/support/jsc_runner.js        2015-03-05 20:41:51.000000000 
+0100
@@ -9,10 +9,10 @@
       try {
         print(JSON.stringify(['ok', result]));
       } catch (err) {
-        print('["err"]');
+        print(JSON.stringify(['err', '' + err, err.stack]));
       }
     }
   } catch (err) {
-    print(JSON.stringify(['err', '' + err]));
+    print(JSON.stringify(['err', '' + err, err.stack]));
   }
 });
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/execjs/support/jscript_runner.js 
new/lib/execjs/support/jscript_runner.js
--- old/lib/execjs/support/jscript_runner.js    2015-02-03 22:53:33.000000000 
+0100
+++ new/lib/execjs/support/jscript_runner.js    2015-03-05 20:41:51.000000000 
+0100
@@ -13,10 +13,10 @@
       try {
         print(JSON.stringify(['ok', result]));
       } catch (err) {
-        print('["err"]');
+        print(JSON.stringify(['err', err.name + ': ' + err.message, 
err.stack]));
       }
     }
   } catch (err) {
-    print(JSON.stringify(['err', err.name + ': ' + err.message]));
+    print(JSON.stringify(['err', err.name + ': ' + err.message, err.stack]));
   }
 });
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/execjs/support/node_runner.js 
new/lib/execjs/support/node_runner.js
--- old/lib/execjs/support/node_runner.js       2015-02-03 22:53:33.000000000 
+0100
+++ new/lib/execjs/support/node_runner.js       2015-03-05 20:41:51.000000000 
+0100
@@ -11,10 +11,10 @@
       try {
         print(JSON.stringify(['ok', result]));
       } catch (err) {
-        print('["err"]');
+        print(JSON.stringify(['err', '' + err, err.stack]));
       }
     }
   } catch (err) {
-    print(JSON.stringify(['err', '' + err]));
+    print(JSON.stringify(['err', '' + err, err.stack]));
   }
 });
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/execjs/support/spidermonkey_runner.js 
new/lib/execjs/support/spidermonkey_runner.js
--- old/lib/execjs/support/spidermonkey_runner.js       2015-02-03 
22:53:33.000000000 +0100
+++ new/lib/execjs/support/spidermonkey_runner.js       2015-03-05 
20:41:51.000000000 +0100
@@ -9,10 +9,10 @@
       try {
         print(JSON.stringify(['ok', result]));
       } catch (err) {
-        print('["err"]');
+        print(JSON.stringify(['err', '' + err, err.stack]));
       }
     }
   } catch (err) {
-    print(JSON.stringify(['err', '' + err]));
+    print(JSON.stringify(['err', '' + err, err.stack]));
   }
 });
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-02-03 22:53:33.000000000 +0100
+++ new/lib/execjs/version.rb   2015-03-05 20:41:51.000000000 +0100
@@ -1,3 +1,3 @@
 module ExecJS
-  VERSION = "2.3.0"
+  VERSION = "2.4.0"
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata        2015-02-03 22:53:33.000000000 +0100
+++ new/metadata        2015-03-05 20:41:51.000000000 +0100
@@ -1,7 +1,7 @@
 --- !ruby/object:Gem::Specification
 name: execjs
 version: !ruby/object:Gem::Version
-  version: 2.3.0
+  version: 2.4.0
 platform: ruby
 authors:
 - Sam Stephenson
@@ -9,7 +9,7 @@
 autorequire: 
 bindir: bin
 cert_chain: []
-date: 2015-02-03 00:00:00.000000000 Z
+date: 2015-03-05 00:00:00.000000000 Z
 dependencies:
 - !ruby/object:Gem::Dependency
   name: rake
@@ -70,7 +70,7 @@
       version: '0'
 requirements: []
 rubyforge_project: 
-rubygems_version: 2.2.2
+rubygems_version: 2.4.5
 signing_key: 
 specification_version: 4
 summary: Run JavaScript code from Ruby

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to