<commit_before>## 0.9.0 (edge)

* Fixed usage of JS keywords as instance variable names for:
    * `Kernel#instance_variable_set`
    * `Kernel#instance_variable_get`
    * `Kernel#instance_variables`

* Renamed:
    * `Hash.keys` => `Hash.$$keys`
    * `Hash.map` => `Hash.$$map`
    * `Hash.smap` => `Hash.$$smap`

* A `console` wrapper has been added to the stdlib, requiring it will make available the `$console` global variable.

* `Kernel#pp` no longer forwards arguments directly to `console.log`, this behavior has been replaced by stdlib's own `console.rb` (see above).

* `method_added`, `method_removed` and `method_undefined` reflection now works.

* `singleton_method_added`, `singleton_method_removed` and `singleton_method_undefined` reflection now works.

* Now you can bridge a native class to a Ruby class that inherits from another Ruby class

* `Numeric` semantics are now compliant with Ruby.

* `Complex` has been fully implemented.

* `Rational` has been fully implemented.

* `Opal::Sprockets.javascript_include_tag` has been add to allow easy debug mode (i.e. with source maps) when including a sprockets asset into an HTML page.

* `Opal::Processor.load_asset_code(sprockets, name)` has been deprecated in favor of `Opal::Sprockets.load_asset(name, sprockets)`.

* `Struct#hash` now works properly based on struct contents

* No longer crashes when calling a method with an opt arg followed by an optional kwarg when called without the kwarg

* Newly compliant with RubySpec:
    * `Enumerable#chunk`
    * `Enumerable#each_cons`
    * `Enumerable#minmax`

* Operator methods (e.g. `+`, `<`, etc.) can be handled by `method_missing`

* `OpenStruct` - fixed `#method missing`, `#inspect`, `#to_s`, `#delete_field`. Fully compliant except for frozen and marshal behavior.

* Fix issue where passing a block after a parameter and a hash was causing block to not be passed (e.g. `method1 some_param, 'a' => 1, &block`)

* `Kernel#raise` now properly re-raises exceptions (regardless of how many levels deep you are) and works properly if supplied a class that has an exception method.

* `Exception#exception`, `Exception::exception`, `Exception#message`, and `Exception#to_s` are fully implemented

* Method defs issued inside `Module#instance_eval` and `Class#instance_eval`, and the respective `exec` now create class methods

* You can make direct JavaScript method calls on using the `recv.JS.method`syntax. Has support for method calls, final callback (as a block), property getter and setter (via `#[]` and `#[]=`), splats, JavaScript keywords (via the `::JS` module) and global functions (after `require "js"`).

* `Set#superset?`, `Set#subset?`, and the respective 'proper_' variant of each are now implemented

* Now with enabled arity checks calling a method with more arguments than those supported by its signature raises an `ArgumentError` as well.

* `NameError` and `NoMethodError` - add `#name` and `#args` attributes

* Previously arity checks would raise an error without clearing the block for a method, the could lead to strange bugs in case the error was rescued.

* `RegExp#match` now works correctly in multiline mode with white space

* `Regexp#===` returns false when the right hand side of the expression cannot be coereced to a string (instead of throwing a TypeError)

* `Regexp#options` has been optimized and correctly returns 0 when called on a Regexp literal without any options (e.g. //)

* Fix `Kernel#exit` to allow exit inside `#at_exit`

* `BasicObject#instance_eval` now compliant with a string argument (needs `require "opal-parser"`)

## 0.8.1 2015-10-12<commit_msg>Add a changelog entry for #1212<commit_after>## 0.9.0 (edge)

* Fixed usage of JS keywords as instance variable names for:
    * `Kernel#instance_variable_set`
    * `Kernel#instance_variable_get`
    * `Kernel#instance_variables`

* Renamed:
    * `Hash.keys` => `Hash.$$keys`
    * `Hash.map` => `Hash.$$map`
    * `Hash.smap` => `Hash.$$smap`

* A `console` wrapper has been added to the stdlib, requiring it will make available the `$console` global variable.

* `Kernel#pp` no longer forwards arguments directly to `console.log`, this behavior has been replaced by stdlib's own `console.rb` (see above).

* `method_added`, `method_removed` and `method_undefined` reflection now works.

* `singleton_method_added`, `singleton_method_removed` and `singleton_method_undefined` reflection now works.

* Now you can bridge a native class to a Ruby class that inherits from another Ruby class

* `Numeric` semantics are now compliant with Ruby.

* `Complex` has been fully implemented.

* `Rational` has been fully implemented.

* `Opal::Sprockets.javascript_include_tag` has been add to allow easy debug mode (i.e. with source maps) when including a sprockets asset into an HTML page.

* `Opal::Processor.load_asset_code(sprockets, name)` has been deprecated in favor of `Opal::Sprockets.load_asset(name, sprockets)`.

* `Struct#hash` now works properly based on struct contents

* No longer crashes when calling a method with an opt arg followed by an optional kwarg when called without the kwarg

* Newly compliant with RubySpec:
    * `Enumerable#chunk`
    * `Enumerable#each_cons`
    * `Enumerable#minmax`

* Operator methods (e.g. `+`, `<`, etc.) can be handled by `method_missing`

* `OpenStruct` - fixed `#method missing`, `#inspect`, `#to_s`, `#delete_field`. Fully compliant except for frozen and marshal behavior.

* Fix issue where passing a block after a parameter and a hash was causing block to not be passed (e.g. `method1 some_param, 'a' => 1, &block`)

* `Kernel#raise` now properly re-raises exceptions (regardless of how many levels deep you are) and works properly if supplied a class that has an exception method.

* `Exception#exception`, `Exception::exception`, `Exception#message`, and `Exception#to_s` are fully implemented

* Method defs issued inside `Module#instance_eval` and `Class#instance_eval`, and the respective `exec` now create class methods

* You can make direct JavaScript method calls on using the `recv.JS.method`syntax. Has support for method calls, final callback (as a block), property getter and setter (via `#[]` and `#[]=`), splats, JavaScript keywords (via the `::JS` module) and global functions (after `require "js"`).

* `Set#superset?`, `Set#subset?`, and the respective 'proper_' variant of each are now implemented

* Now with enabled arity checks calling a method with more arguments than those supported by its signature raises an `ArgumentError` as well.

* `NameError` and `NoMethodError` - add `#name` and `#args` attributes

* Previously arity checks would raise an error without clearing the block for a method, the could lead to strange bugs in case the error was rescued.

* `RegExp#match` now works correctly in multiline mode with white space

* `Regexp#===` returns false when the right hand side of the expression cannot be coereced to a string (instead of throwing a TypeError)

* `Regexp#options` has been optimized and correctly returns 0 when called on a Regexp literal without any options (e.g. //)

* Fix `Kernel#exit` to allow exit inside `#at_exit`

* `BasicObject#instance_eval` now compliant with a string argument (needs `require "opal-parser"`)

* Fixed `Native()` when used with `Array` instances containing native objects (which weren't wrapped properly) – #1212

## 0.8.1 2015-10-12
{'fraction_non_alphanumeric': 0.09991887506760411, 'fraction_numerical': 0.005678745267712277, 'mean_word_length': 4.861331220285262, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 11, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1815236', 'n_tokens_mistral': 2161, 'n_tokens_neox': 2089, 'n_words': 922}