Use own implementation of replaceAll which is known to be always available
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Sun, 24 Apr 2016 08:28:22 +0200
changeset 19346d578ccd680a
parent 1933 3c9060276b2d
child 1935 81a7a4fcaf46
Use own implementation of replaceAll which is known to be always available
rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java
     1.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java	Sun Apr 24 06:51:32 2016 +0200
     1.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java	Sun Apr 24 08:28:22 2016 +0200
     1.3 @@ -758,13 +758,21 @@
     1.4                    "\n}, function(exports) {\n"
     1.5                  + "  var vm = {};\n");
     1.6              append("  function link(n, assign) {\n"
     1.7 +                + "    function replaceAll(s, o, n) {\n"
     1.8 +                + "      var pos = 0;\n"
     1.9 +                + "      for (;;) {\n"
    1.10 +                + "         var indx = s.indexOf(o, pos);\n"
    1.11 +                + "         if (indx === -1) {\n"
    1.12 +                + "           return s;\n"
    1.13 +                + "         }\n"
    1.14 +                + "         pos = indx + n.length;\n"
    1.15 +                + "         s = s.substring(0, indx) + n + s.substring(indx + o.length);\n"
    1.16 +                + "      }\n"
    1.17 +                + "    }\n"
    1.18                  + "    return function() {\n"
    1.19 -                + "      var no_ = n['replace__Ljava_lang_String_2Ljava_lang_CharSequence_2Ljava_lang_CharSequence_2']"
    1.20 -                                       + "('_', '_1').toString();\n"
    1.21 -                + "      var cls = no_['replace__Ljava_lang_String_2CC']"
    1.22 -                                       + "('/', '_').toString();\n"
    1.23 -                + "      var dot = n['replace__Ljava_lang_String_2CC']"
    1.24 -                                       + "('/', '.').toString();\n"
    1.25 +                + "      var no_ = replaceAll(n, '_', '_1');\n"
    1.26 +                + "      var cls = replaceAll(no_, '/', '_');\n"
    1.27 +                + "      var dot = replaceAll(n, '/', '.');\n"
    1.28                  + "      exports.loadClass(dot);\n"
    1.29                  + "      assign(exports[cls]);\n"
    1.30                  + "      return exports[cls](arguments);\n"