All Versions
75
Latest Version
Avg Release Cycle
70 days
Latest Release
617 days ago

Changelog History
Page 6

  • v0.4.4 Changes

    August 13, 2013
    • ✂ Remove native object method calls
    • ➕ Add Struct class
    • ➕ Add method stubs as method_missing option, stubs enabled by default
    • Native is now used to wrap native objects directly
    • 🛠 Fix Hash.new and Hash.allocate for subclasses
    • Generate sourcemaps from fragments
    • 👍 Allow blocks to be passed to zsuper (no args) calls
    • 🛠 Fix yield when given 1 or multiple arguments for block destructuring
  • v0.4.3 Changes

    July 24, 2013
    • Re-implement class system. Classes are now real objects instead of converted Procs. This allows classes to properly inherit methods from each other.
    • 🛠 Fix exception hierarchy. Not all standard exception classes were subclassing the correct parent classes, this is now fixed.
    • 🚚 Move ERB into stdlib. The erb compiler/parser has also been moved into lib/
    • 🏗 Opal::Builder class. A simple port/clone of sprockets general building. This allows us to build projects similar to the way opal-sprockets does.
    • 🚚 Move json.rb to stdlib.
  • v0.4.2 Changes

    July 03, 2013
    • ➕ Added Kernel#rand. (fntzr)

    • ⏪ Restored the bin/opal executable in gemspec.

    • Now .valueOf() is used in #to_n of Boolean, Numeric, Regexp and String to return the naked JavaScript value instead of a wrapping object.

    • 📜 Parser now wraps or-ops in paranthesis to stop variable order from leaking out when minified by uglify. We now have code in this format: (((tmp = lhs) !== false || !==nil) ? tmp : rhs).

  • v0.4.1 Changes

    June 16, 2013
    • 🚚 Move sprockets logic out to external opal-sprockets gem. That now handles the compiling and loading of opal files in sprockets.
  • v0.4.0 Changes

    June 15, 2013
    • ➕ Added fragments to parser. All parser methods now generate one or more Fragments which store the original sexp. This allows us to enumerate over them after parsing to map generated lines back to original line numbers.

    • ⏪ Reverted null for nil. Too buggy at this time.

    • ➕ Add Opal::SprocketsParser as Parser subclass for handling parsing for sprockets environment. This subclass handles require statements and stores them for sprockets to use.

    • ➕ Add :irb option to parser to keep top level lvars stored inside opal runtime so that an irb session can be persisted and maintain access to local variables.

    • ➕ Add Opal::Environment#use_gem() helper to add a gem to opals load path.

    • Stop pre-setting ivars to nil. This is no longer needed as nil is now null or undefined.

    • 👉 Use null as nil in opal. This allows us to send methods to null and undefined, and both act as nil. This makes opal a much better javascript citizen. REVERTED

    • ➕ Add Enumerable#none? with specs.

    • ➕ Add Opal.block_send() runtime helper for sending methods to an object which uses a block.

    • ✂ Remove _klass variable for denoting ruby classes, and use constructor instead. constructor is a javascript property used for the same purpose, and this makes opal fit in as a better js citizen.

    • ➕ Add Class.bridge_class method to bridge a native constructor into an opal class which will set it up with all methods from Object, as well as giving it a scope and name.

    • ➕ Added native #[]= and #to_h methods, for setting properties and converting to a hash respectivaly.

    • 🛠 Fix bug where '::' was parsed as :colon2 instead of :colon3 when in an args scope. Fixes #213

    • ✂ Remove lots of properties added to opal classes. This makes normal js constructors a lot closer to opal classes, making is easier to treat js classes as opal classes.

    • 🔀 Merge Hash.from_native into Hash.new

  • v0.3.44 Changes

    May 31, 2013
    • 🚚 Cleanup runtime, and remove various flags and functions from opal objects and classes (moving them to runtime methods).

    • ✂ Remove some activesupport methods into external lib.

    • ➕ Add/fix lots of String methods, with specs.

    • ➕ Add more methods to MatchData class.

    • Implement $' and $` variables.

    • Opal can now call methods on all native objects, via method missing dispatcher.

    • ➕ Add Opal::Environment as custom sprockets subclass which adds all opal load paths automatically.

  • v0.3.43 Changes

    May 02, 2013
    • 📜 Stop inlining respond_to? inside the parser. This now fully respects an object overriding respond_to?.

    • 🔦 Expose Opal.eval() function when parser is loaded for parsing and running strings of ruby code.

    • ➕ Add erb to corelib (as well as compiler to gem lib). ERB files with .opalerb extension will automatically be compiled into Template constant.

    • ➕ Added some examples into examples/ dir.

    • ➕ Add Opal.send() javascript function for sending methods to ruby objects.

    • Native class for wrapping and interacting with native objects and function calls.

    • ➕ Add local_storage to stdlib as a basic wrapper around localStorage.

    • 👉 Make method_missing more performant by reusing same dispatch function instead of reallocating one for each run.

    • 🛠 Fix Kernel#format to work in firefox. String.prototype.replace() had different semantics for empty matching groups which was breaking Kernel#format.

  • v0.3.42 Changes

    March 21, 2013
    • 🛠 Fix/add lots of language specs.

    • 👍 Seperate sprockets support out to opal-sprockets gem.

    • 👌 Support %r[foo] style regexps.

    • 💎 Use mspec to run specs on corelib and runtime. Rubyspecs are now used, where possible to be as compliant as possible.

  • v0.3.41 Changes

    February 26, 2013
    • ✂ Remove bin/opal - no longer required for building sources.

    • 👍 Depreceate Opal::Environment. The Opal::Server class provides a better method of using the opal load paths. Opal.paths still stores a list of load paths for generic sprockets based apps to use.

  • v0.3.40 Changes

    February 23, 2013
    • ➕ Add Opal::Server as an easy to configure rack server for testing and running Opal based apps.

    • ➕ Added optional arity check mode for parser. When turned on, every method will have code which checks the argument arity. Off by default.

    • 👻 Exception subclasses now relfect their name in webkit/firefox debuggers to show both their class name and message.

    • ➕ Add Class#const_set. Trying to access undefined constants by a literal constant will now also raise a NameError.