execjs 1.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,12 +4,14 @@ module ExecJS
4
4
  class ExternalRuntime
5
5
  class Context
6
6
  def initialize(runtime, source = "")
7
+ source = source.encode('UTF-8') if source.respond_to?(:encode)
8
+
7
9
  @runtime = runtime
8
10
  @source = source
9
11
  end
10
12
 
11
13
  def eval(source, options = {})
12
- souce = source.encode('UTF-8') if source.respond_to?(:encode)
14
+ source = source.encode('UTF-8') if source.respond_to?(:encode)
13
15
 
14
16
  if /\S/ =~ source
15
17
  exec("return eval(#{MultiJson.encode("(#{source})")})")
@@ -17,7 +19,7 @@ module ExecJS
17
19
  end
18
20
 
19
21
  def exec(source, options = {})
20
- souce = source.encode('UTF-8') if source.respond_to?(:encode)
22
+ source = source.encode('UTF-8') if source.respond_to?(:encode)
21
23
 
22
24
  compile_to_tempfile([@source, source].join("\n")) do |file|
23
25
  extract_result(@runtime.send(:exec_runtime, file.path))
data/lib/execjs/module.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require "rbconfig"
2
2
 
3
3
  module ExecJS
4
- VERSION = "1.1.0"
4
+ VERSION = "1.1.1"
5
5
 
6
6
  class Error < ::StandardError; end
7
7
  class RuntimeError < Error; end
@@ -2,12 +2,14 @@ module ExecJS
2
2
  class MustangRuntime
3
3
  class Context
4
4
  def initialize(source = "")
5
+ source = source.encode('UTF-8') if source.respond_to?(:encode)
6
+
5
7
  @v8_context = ::Mustang::Context.new
6
8
  @v8_context.eval(source)
7
9
  end
8
10
 
9
11
  def exec(source, options = {})
10
- souce = source.encode('UTF-8') if source.respond_to?(:encode)
12
+ source = source.encode('UTF-8') if source.respond_to?(:encode)
11
13
 
12
14
  if /\S/ =~ source
13
15
  eval "(function(){#{source}})()", options
@@ -15,7 +17,7 @@ module ExecJS
15
17
  end
16
18
 
17
19
  def eval(source, options = {})
18
- souce = source.encode('UTF-8') if source.respond_to?(:encode)
20
+ source = source.encode('UTF-8') if source.respond_to?(:encode)
19
21
 
20
22
  if /\S/ =~ source
21
23
  unbox @v8_context.eval("(#{source})")
@@ -2,12 +2,14 @@ module ExecJS
2
2
  class RubyRacerRuntime
3
3
  class Context
4
4
  def initialize(source = "")
5
+ source = source.encode('UTF-8') if source.respond_to?(:encode)
6
+
5
7
  @v8_context = ::V8::Context.new
6
8
  @v8_context.eval(source)
7
9
  end
8
10
 
9
11
  def exec(source, options = {})
10
- souce = source.encode('UTF-8') if source.respond_to?(:encode)
12
+ source = source.encode('UTF-8') if source.respond_to?(:encode)
11
13
 
12
14
  if /\S/ =~ source
13
15
  eval "(function(){#{source}})()", options
@@ -15,7 +17,7 @@ module ExecJS
15
17
  end
16
18
 
17
19
  def eval(source, options = {})
18
- souce = source.encode('UTF-8') if source.respond_to?(:encode)
20
+ source = source.encode('UTF-8') if source.respond_to?(:encode)
19
21
 
20
22
  if /\S/ =~ source
21
23
  unbox @v8_context.eval("(#{source})")
@@ -2,12 +2,15 @@ module ExecJS
2
2
  class RubyRhinoRuntime
3
3
  class Context
4
4
  def initialize(source = "")
5
+ source = source.encode('UTF-8') if source.respond_to?(:encode)
6
+
5
7
  @rhino_context = ::Rhino::Context.new
8
+ fix_memory_limit! @rhino_context
6
9
  @rhino_context.eval(source)
7
10
  end
8
11
 
9
12
  def exec(source, options = {})
10
- souce = source.encode('UTF-8') if source.respond_to?(:encode)
13
+ source = source.encode('UTF-8') if source.respond_to?(:encode)
11
14
 
12
15
  if /\S/ =~ source
13
16
  eval "(function(){#{source}})()", options
@@ -15,7 +18,7 @@ module ExecJS
15
18
  end
16
19
 
17
20
  def eval(source, options = {})
18
- souce = source.encode('UTF-8') if source.respond_to?(:encode)
21
+ source = source.encode('UTF-8') if source.respond_to?(:encode)
19
22
 
20
23
  if /\S/ =~ source
21
24
  unbox @rhino_context.eval("(#{source})")
@@ -51,6 +54,16 @@ module ExecJS
51
54
  value
52
55
  end
53
56
  end
57
+
58
+ private
59
+ # Disables bytecode compiling which limits you to 64K scripts
60
+ def fix_memory_limit!(context)
61
+ if context.respond_to?(:optimization_level=)
62
+ context.optimization_level = -1
63
+ else
64
+ context.instance_eval { @native.setOptimizationLevel(-1) }
65
+ end
66
+ end
54
67
  end
55
68
 
56
69
  def name
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: execjs
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 17
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 1
9
- - 0
10
- version: 1.1.0
9
+ - 1
10
+ version: 1.1.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Sam Stephenson
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-06-01 00:00:00 -05:00
19
+ date: 2011-06-07 00:00:00 -05:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
@@ -35,7 +35,7 @@ dependencies:
35
35
  type: :runtime
36
36
  version_requirements: *id001
37
37
  - !ruby/object:Gem::Dependency
38
- name: mustang
38
+ name: rake
39
39
  prerelease: false
40
40
  requirement: &id002 !ruby/object:Gem::Requirement
41
41
  none: false
@@ -48,34 +48,6 @@ dependencies:
48
48
  version: "0"
49
49
  type: :development
50
50
  version_requirements: *id002
51
- - !ruby/object:Gem::Dependency
52
- name: therubyracer
53
- prerelease: false
54
- requirement: &id003 !ruby/object:Gem::Requirement
55
- none: false
56
- requirements:
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- hash: 3
60
- segments:
61
- - 0
62
- version: "0"
63
- type: :development
64
- version_requirements: *id003
65
- - !ruby/object:Gem::Dependency
66
- name: therubyrhino
67
- prerelease: false
68
- requirement: &id004 !ruby/object:Gem::Requirement
69
- none: false
70
- requirements:
71
- - - ">="
72
- - !ruby/object:Gem::Version
73
- hash: 3
74
- segments:
75
- - 0
76
- version: "0"
77
- type: :development
78
- version_requirements: *id004
79
51
  description: " ExecJS lets you run JavaScript code from Ruby.\n"
80
52
  email:
81
53
  - sstephenson@gmail.com
@@ -131,7 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
131
103
  requirements: []
132
104
 
133
105
  rubyforge_project: execjs
134
- rubygems_version: 1.5.0
106
+ rubygems_version: 1.6.2
135
107
  signing_key:
136
108
  specification_version: 3
137
109
  summary: Run JavaScript code from Ruby