Sha256: 9a9f9f4e152a0164a894fd263fc4d60605fcc184f6e8b898fb03117953f94b09

Contents?: true

Size: 664 Bytes

Versions: 6

Compression:

Stored size: 664 Bytes

Contents

# helpers: deny_frozen_access
# backtick_javascript: true

class Enumerator
  class Generator
    include ::Enumerable

    def initialize(&block)
      `$deny_frozen_access(self)`

      ::Kernel.raise ::LocalJumpError, 'no block given' unless block

      @block = block
    end

    def each(*args, &block)
      yielder = Yielder.new(&block)

      %x{
        try {
          args.unshift(#{yielder});

          Opal.yieldX(#{@block}, args);
        }
        catch (e) {
          if (e && e.$thrower_type == "breaker") {
            return e.$v;
          }
          else {
            throw e;
          }
        }
      }

      self
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
opal-1.8.3.rc1 opal/corelib/enumerator/generator.rb
opal-1.8.2 opal/corelib/enumerator/generator.rb
opal-1.8.1 opal/corelib/enumerator/generator.rb
opal-1.8.0 opal/corelib/enumerator/generator.rb
opal-1.8.0.beta1 opal/corelib/enumerator/generator.rb
opal-1.8.0.alpha1 opal/corelib/enumerator/generator.rb