Skip to content
Permalink
Browse files

Another spec runs.

  • Loading branch information
alex committed Jul 6, 2013
1 parent f8f91b8 commit 30e66da01485fcf9968229dfd2e77b467a773d2a
Showing with 12 additions and 6 deletions.
  1. +1 −0 spec/tags/language/return_tags.txt
  2. +9 −3 tests/test_interpreter.py
  3. +0 −2 topaz.mspec
  4. +1 −1 topaz/interpreter.py
  5. +1 −0 topaz/objects/fiberobject.py
@@ -1 +1,2 @@
fails:The return keyword in a Thread raises a LocalJumpError if used to exit a thread
fails:The return keyword within define_method goes through the method via a closure
@@ -1582,11 +1582,17 @@ def outer
@block.call
end
def inner
yield
end
def start
outer do
@block = proc do
self.record = :before_return
return :return_value
inner do
@block = proc do
self.record = :before_return
return :return_value
end
end
end
self.record = :bottom_of_start
@@ -30,8 +30,6 @@ class MSpecScript
"^#{Rubyspec}/language/predefined_spec.rb",
# Void expression: ``break true or false``
"^#{Rubyspec}/language/or_spec.rb",
# rubyspec/languages/fixtures/start.rb
"^#{Rubyspec}/language/return_spec.rb",
]

command_line = ["#{Rubyspec}/command_line"]
@@ -339,7 +339,7 @@ def BUILD_BLOCK(self, space, bytecode, frame, pc, n_cells):
assert isinstance(w_code, W_CodeObject)
frame.push(space.newproc(
w_code, frame.w_self, frame.lexical_scope, cells, frame.block,
self, frame.parent_interp or self, frame.regexp_match_cell
self, frame.top_parent_interp or self, frame.regexp_match_cell
))

def BUILD_LAMBDA(self, space, bytecode, frame, pc):
@@ -91,6 +91,7 @@ def method_initialize(self, space, block):
self.w_block.bytecode, w_self=self.w_block.w_self,
lexical_scope=self.w_block.lexical_scope, block=self.w_block.block,
parent_interp=self.w_block.parent_interp,
top_parent_interp=self.w_block.top_parent_interp,
regexp_match_cell=self.w_block.regexp_match_cell,
)
for idx, cell in enumerate(self.w_block.cells):

0 comments on commit 30e66da

Please sign in to comment.