论坛首页 Web前端技术论坛

超级小巧,可在J2ME手机上流畅运行的JavaScript引擎

浏览 6987 次
精华帖 (1) :: 良好帖 (3) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-05-19  
RockScript -- 可以在J2ME手机上流畅运行的JavaScript引擎

下载试用
  JAR和JAD见附件。
  已在Nokia低端S40手机中测试过。
  打开程序后即可从javascript例程列表中选择一个来显示源文件或直接执行。
  如需测试自己编写的javascript源码,只要将编写好的js文件加入scripts.zip并重新打JAR包即可。

优点
  体积超级小巧,引擎核心在混淆压缩后仅25K
  功能强大,实现了ECMA规范中绝大部分的语言特性
  性能优异,占用内存少,可在低端J2ME手机中流畅运行
  兼容性强,只要支持CLDC1.0/MIDP2.0的J2ME手机都可以运行(少量改动即可兼容MIDP1.0)
  可以轻易的集成在其它软件系统中,可以定制全局对象
  可扩展性强,可以轻易的添加新的本地方法或对象来扩展功能,如加入DOM API来支持DHTML

可用于
  3G时代的手机浏览器,使其真正支持客户端的DHTML和AJAX
  Widget引擎
  WAP浏览器中的WMLScript解释器
  游戏脚本引擎,特别是三引号和字符串内嵌表达式语法的加入特别适合编写有大量对话的游戏脚本
  商业逻辑扩展(DSL),可从服务器更新运算逻辑而不仅仅是数据
  更多,仅受限于您的想象力...

标准ECMA特性
  所有运算符
    一元运算符 !, +, -
    算术运算符 +, -, *, /, %, **
    自增自减运算符 ++, -- (前置/后置)
    赋值运算符 =, +=, -=, *=, /=, %=, **=, &=, |=, ^=, <<=, >>=, >>>=
    逻辑运算符 &&, ||
      支持JavaScript中的特殊用法,如以下代码:
        foo || foo = function() { println("Test!") }
        foo && foo()
    关系运算符 ==, ===, !=, !==, <, <=, >, >=
    位运算符 ~, &, |, ^, <<, >>, >>>
    三元运算符 ? :
    逗号运算符 ,
    其它运算符 in, delete, typeof, instanceof
  所有控制语句
    if ... [else ...]
    while ...
    do ... while
    for (...; ...; ...) ...
    for (... in ...) ...
    switch (...) { case ... : default : ... }
    with (...) ...
    return [...]
    throw ...
    try ... catch ... finally
  对象和数组
  真正的原型对象继承机制
  使用JSON语法创建对象和数组
  所有三种函数创建方式
    使用function关键字声明
    表达式中的函数直接量,如foo = function(x, y) { return x + y }
    用Function构造函数动态创建,如foo = new Function("x", "y", "return x + y")
  自定义构造函数创建对象
  支持eval函数,即可以执行字符串中的JavaScript代码
  使用函数直接量实现的闭包(参见例程中的closure.js和closure1.js)
  全局对象提供以下本地构造函数和属性(可以用例程中的dumpgo.js来查看所有内置属性)
    Object
      hasOwnProperty/toString
    Array
      join/shift/unshift/sort/reverse/push/pop/concat/slice
    Function
      apply/call
    String
      valueOf/charAt/charCodeAt/split/substring/indexOf/lastIndexOf
    Number
      valueOf
    Date
      getTime/setTime
    Error
      toString
    Math
      random
    print/println/alert
    eval
    es: 用来解析字符串中的内嵌表达式如: "My name is $my.name"
    parseInt
  字符串中可以使用\uxxxx来表示任意Unicode字符
  行尾分号可省略
  定义字符串可混用单/双引号


扩展特性(语法糖)
  支持乘方运算符**
  支持使用三引号""" ... """定义大段保持原样输出的字符串(即保留换行)。特别适合定义大段HTML代码,或对话等
  switch语句中case后面可以使用表达式
  支持字符串内嵌表达式(此特性可关闭以保持兼容性)
  提供es函数用来自动解析字符串中的内嵌表达式

目前不支持的ECMA语言特性
  浮点数(主要是性能方面的考虑,在下一版考虑加入可配置的定点数支持)
  正则表达式(因J2ME平台的限制)

作者联系方式
  Email:  rocks@cnjm.net
   发表时间:2010-05-20  
希望有个一个快速的rockscript 能运行大部分程序就行,
目前使用的firefox 的引擎,要比java慢10倍,希望有一个快速的出现。
0 请登录后投票
   发表时间:2010-05-20  
说说用法,不会用
0 请登录后投票
   发表时间:2010-05-20  
To 楼上
这个是运行在J2ME手机上的,如果想在电脑上试用得装个Sun WTK模拟器。
这个本身就是用Java编写的,肯定要比java本身慢很多,您的期望值太高了,呵呵。经我测试,现在的RockScript的性能大概是IE的一半,不过我有信心优化后超过IE的运行速度,不过,想达到FireFox或Chrome的速度恐怕不可能,毕竟那些是C/C++编写的。
0 请登录后投票
   发表时间:2010-05-20  
FireFox 难道他用的不是 Rhino ?
开始认为 FireFox 是java 写的,但现在里边到处是dll,还有jar都搞糊涂了。

Rhino 很慢,比java慢10倍,RockScript 只要能达到只慢2-3倍就很不错了。

WTK 里边能运行,在jdk里边运行应该也不难吧,这个我不是很清楚。

0 请登录后投票
   发表时间:2010-05-20  
去看了一下 原来他有两个版本,一个c的一个java的
0 请登录后投票
   发表时间:2010-05-21  
smilerain 写道
FireFox 难道他用的不是 Rhino ?
开始认为 FireFox 是java 写的,但现在里边到处是dll,还有jar都搞糊涂了。

Rhino 很慢,比java慢10倍,RockScript 只要能达到只慢2-3倍就很不错了。

WTK 里边能运行,在jdk里边运行应该也不难吧,这个我不是很清楚。


Rhino早都已经是历史了。。。
0 请登录后投票
   发表时间:2010-05-22  
那还不错@~!
0 请登录后投票
   发表时间:2010-05-24  
看了一下可以运行
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics