summaryrefslogtreecommitdiffhomepage
path: root/doc
diff options
context:
space:
mode:
authorDaniel Bovensiepen <[email protected]>2016-02-12 03:32:41 +0800
committerDaniel Bovensiepen <[email protected]>2016-02-12 03:32:41 +0800
commit46fbd5349b1d31065cf3bba03913850726d538f7 (patch)
treeabc2a66d094d78bd76fa19d886fec5cfb80069b0 /doc
parent37344ecaadf601d74cd7b5c006cabf7005208830 (diff)
downloadmruby-46fbd5349b1d31065cf3bba03913850726d538f7.tar.gz
mruby-46fbd5349b1d31065cf3bba03913850726d538f7.zip
Add more limitations:
- defined? - alias on global variables - Operator modification - Kernel.binding missing
Diffstat (limited to 'doc')
-rw-r--r--doc/limitations.md65
1 files changed, 65 insertions, 0 deletions
diff --git a/doc/limitations.md b/doc/limitations.md
index d5d89cbc7..83bedc8fb 100644
--- a/doc/limitations.md
+++ b/doc/limitations.md
@@ -141,3 +141,68 @@ true
true
true
```
+
+## defined?
+
+The ```defined?``` keyword is considered to complex to be fully
+implemented. It is recommended to use ```const_defined?``` and
+other reflection methods instead.
+
+```ruby
+defined?(Foo)
+```
+
+#### Ruby [ruby 2.0.0p645 (2015-04-13 revision 50299)]
+
+```
+nil
+```
+
+#### mruby [1.2.0 (2015-11-17)]
+
+```NameError``` is raised.
+
+## ```alias``` on global variables
+
+Aliasing a global variable works in CRuby but is not part
+of the ISO standard.
+
+```ruby
+alias $a $__a__
+```
+
+#### Ruby [ruby 2.0.0p645 (2015-04-13 revision 50299)]
+
+```nil```
+
+#### mruby [1.2.0 (2015-11-17)]
+
+Syntax error
+
+## Operator modification
+
+An operator can't be overwritten by the user.
+
+```ruby
+class String
+ def +
+ end
+end
+
+'a' + 'b'
+```
+
+#### Ruby [ruby 2.0.0p645 (2015-04-13 revision 50299)]
+
+```ArgumentError``` is raised.
+The re-defined ```+``` operator does not accept any arguments.
+
+#### mruby [1.2.0 (2015-11-17)]
+
+```'ab'```
+Behavior of the operator wasn't changed.
+
+## ```Kernel.binding``` missing
+
+```Kernel.binding``` is not implemented as it is not in the
+ISO standard.