This commit is contained in:
Michael Bebenita 2015-01-26 17:52:55 -08:00
Родитель fca56c8086 bf62372057
Коммит d590b22c71
22 изменённых файлов: 468 добавлений и 58 удалений

1
.gitignore поставляемый
Просмотреть файл

@ -7,6 +7,7 @@ certs/j2se_test.ks
tests/Testlets.java
output/
build/
config/build.js
# These are generated by the Java pre-processor. They're generated from
# their *.jpp equivalents. Keep them up-to-date when you add *.jpp files!

Просмотреть файл

@ -12,6 +12,9 @@ before_script:
- wget -P /tmp/j2me.js -N https://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/31.0/runtimes/xulrunner-31.0.en-US.linux-x86_64.tar.bz2
- tar x -C /tmp -f /tmp/j2me.js/xulrunner-31.0.en-US.linux-x86_64.tar.bz2
- export SLIMERJSLAUNCHER=/tmp/xulrunner/xulrunner
- wget -P /tmp/j2me.js -N http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/36.0b1-candidates/build1/jsshell-linux-x86_64.zip
- unzip -d /tmp/js /tmp/j2me.js/jsshell-linux-x86_64.zip
- export PATH=$PATH:/tmp/js
script:
- make test
sudo: false

Просмотреть файл

@ -1,9 +1,10 @@
.PHONY: all test tests j2me java certs app clean jasmin aot shumway
.PHONY: all test tests j2me java certs app clean jasmin aot shumway config-build
BASIC_SRCS=$(shell find . -maxdepth 2 -name "*.ts" -not -path "./build/*")
JIT_SRCS=$(shell find jit -name "*.ts" -not -path "./build/*")
SHUMWAY_SRCS=$(shell find shumway -name "*.ts")
RELEASE ?= 0
all: java jasmin tests j2me shumway aot
all: config-build java jasmin tests j2me shumway aot
test: all
tests/runtests.py
@ -26,14 +27,15 @@ build/jsc.js: jsc.ts build/j2me-jsc.js
j2me: build/j2me.js build/jsc.js
aot: build/classes.jar.js
build/classes.jar.js: java/classes.jar build/jsc.js
build/classes.jar.js: java/classes.jar build/jsc.js aot-methods.txt
@echo "Compiling ..."
js build/jsc.js -cp java/classes.jar -d -jf java/classes.jar -mff aot-methods.txt > build/classes.jar.js
build/tests.jar.js: tests/tests.jar build/jsc.js
build/tests.jar.js: tests/tests.jar build/jsc.js aot-methods.txt
js build/jsc.js -cp java/classes.jar tests/tests.jar -d -jf tests/tests.jar -mff aot-methods.txt > build/tests.jar.js
build/program.jar.js: program.jar build/jsc.js
build/program.jar.js: program.jar build/jsc.js aot-methods.txt
js build/jsc.js -cp java/classes.jar program.jar -d -jf program.jar -mff aot-methods.txt > build/program.jar.js
closure: build/classes.jar.js build/j2me.js
@ -46,6 +48,9 @@ shumway: build/shumway.js
build/shumway.js: $(SHUMWAY_SRCS)
node tools/tsc.js --sourcemap --target ES5 shumway/references.ts --out build/shumway.js
config-build:
echo "config.release = ${RELEASE};" > config/build.js
tests/tests.jar: tests
tests:
make -C tests
@ -58,12 +63,13 @@ certs:
make -C certs
# Makes an output/ directory containing the packaged open web app files.
app: java certs
app: config-build java certs
tools/package.sh
clean:
rm -f j2me.js `find . -name "*~"`
rm -rf build
rm -f config/build.js
make -C tools/jasmin-2.4 clean
make -C tests clean
make -C java clean

Просмотреть файл

@ -26,7 +26,7 @@ index.html is a webapp that runs j2me.js. The URL parameters you pass to index.h
### URL parameters
See full list at libs/urlparams.js
You can specify URL parameters to override the configuration. See the full list of parameters at config/urlparams.js.
* `main` - default is `com/sun/midp/main/MIDletSuiteLoader`
* `midletClassName` - must be set to the main class to run. Only valid when default `main` parameter is used. Defaults to `RunTests`

Просмотреть файл

@ -1 +1,349 @@
java/util/Vector.indexOf.(Ljava/lang/Object;I)I
java/util/PropertyPermission.getActions.(I)Ljava/lang/String;
java/util/Vector.addElement.(Ljava/lang/Object;)V
java/util/Vector.size.()I
java/util/Vector.elementAt.(I)Ljava/lang/Object;
java/util/Vector.ensureCapacityHelper.(I)V
javax/microedition/lcdui/Graphics.getClipX.()I
javax/microedition/lcdui/Graphics.getClipY.()I
javax/microedition/lcdui/Graphics.getClipWidth.()I
javax/microedition/lcdui/Graphics.getClipHeight.()I
java/io/DataInputStream.read.()I
javax/microedition/lcdui/Graphics.setClip.(IIII)V
java/lang/Math.max.(II)I
javax/microedition/lcdui/Graphics.clipRect.(IIII)V
com/sun/cldc/i18n/uclc/DefaultCaseConverter.isDigit.(C)Z
com/nokia/mid/ui/DirectUtils.getDirectGraphics.(Ljavax/microedition/lcdui/Graphics;)Lcom/nokia/mid/ui/DirectGraphics;
com/nokia/mid/ui/DirectGraphicsImp.<init>.(Ljavax/microedition/lcdui/Graphics;)V
javax/microedition/lcdui/Font.getHeight.()I
java/security/Permission.<init>.(Ljava/lang/String;)V
java/security/BasicPermission.init.(Ljava/lang/String;)V
java/security/AccessController.checkPermission.(Ljava/security/Permission;)V
java/lang/Character.digit.(CI)I
com/sun/cldc/i18n/uclc/DefaultCaseConverter.digit.(CI)I
java/util/PropertyPermission.getMask.(Ljava/lang/String;)I
java/lang/System.getProperty.(Ljava/lang/String;)Ljava/lang/String;
java/util/PropertyPermission.<init>.(Ljava/lang/String;Ljava/lang/String;)V
java/security/BasicPermission.<init>.(Ljava/lang/String;Ljava/lang/String;)V
java/util/PropertyPermission.init.(I)V
java/security/Permission.getName.()Ljava/lang/String;
javax/microedition/lcdui/Graphics.setColor.(I)V
javax/microedition/lcdui/Graphics.getFont.()Ljavax/microedition/lcdui/Font;
javax/microedition/lcdui/Graphics.getColor.()I
java/util/Vector.<init>.(II)V
java/util/Vector.<init>.(I)V
javax/microedition/lcdui/Graphics.setFont.(Ljavax/microedition/lcdui/Font;)V
java/util/Vector.<init>.()V
javax/microedition/lcdui/Graphics.grayVal.(III)I
java/util/Vector.copyInto.([Ljava/lang/Object;)V
com/sun/midp/events/Event.getType.()I
java/lang/Integer.parseInt.(Ljava/lang/String;I)I
java/lang/Integer.parseInt.(Ljava/lang/String;)I
java/lang/Integer.<init>.(I)V
java/io/DataInputStream.readInt.()I
java/io/DataOutputStream.write.(I)V
javax/microedition/lcdui/Canvas.repaint.(IIII)V
java/util/Vector.removeAllElements.()V
com/sun/midp/events/EventQueue.post.(Lcom/sun/midp/events/Event;)V
javax/microedition/lcdui/Font.getDefaultFont.()Ljavax/microedition/lcdui/Font;
javax/microedition/lcdui/Graphics.resetGC.()V
javax/microedition/lcdui/DisplayableLFImpl.lIsShown.()Z
javax/microedition/lcdui/DisplayableLFImpl.lRequestPaint.(IIIILjava/lang/Object;)V
javax/microedition/lcdui/Display.isShown.(Ljavax/microedition/lcdui/DisplayableLF;)Z
com/sun/midp/lcdui/RepaintEvent.setRepaintFields.(Lcom/sun/midp/lcdui/DisplayEventConsumer;IIIILjava/lang/Object;)V
javax/microedition/lcdui/Display.repaintImpl.(Ljavax/microedition/lcdui/DisplayableLF;IIIILjava/lang/Object;)V
com/sun/midp/lcdui/RepaintEventProducer.scheduleRepaint.(Lcom/sun/midp/lcdui/DisplayEventConsumer;IIIILjava/lang/Object;)V
javax/microedition/lcdui/Font.getBaselinePosition.()I
javax/microedition/lcdui/CanvasLFImpl.lRepaint.(IIIILjava/lang/Object;)V
java/util/Hashtable.put.(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
java/util/HashtableEntry.<init>.()V
java/lang/Integer.hashCode.()I
java/io/DataInputStream.readFully.([BII)V
java/io/DataInputStream.read.([BII)I
javax/microedition/lcdui/ImageData.getWidth.()I
javax/microedition/lcdui/ImageData.getHeight.()I
java/lang/String.valueOf.(Ljava/lang/Object;)Ljava/lang/String;
com/nokia/mid/ui/CanvasItem.getParent.()Ljava/lang/Object;
java/util/Vector.removeElementAt.(I)V
java/lang/ref/WeakReference.<init>.(Ljava/lang/Object;)V
java/lang/ref/Reference.<init>.(Ljava/lang/Object;)V
javax/microedition/lcdui/ImageDataFactory.getImageDataFactory.()Ljavax/microedition/lcdui/AbstractImageDataFactory;
javax/microedition/lcdui/Image.<init>.(Ljavax/microedition/lcdui/ImageData;)V
javax/microedition/lcdui/ImageData.<init>.(IIZ)V
com/sun/midp/events/Event.<init>.(I)V
javax/microedition/lcdui/Displayable.getHeight.()I
javax/microedition/lcdui/DisplayableLFImpl.lGetHeight.()I
javax/microedition/lcdui/Displayable.getWidth.()I
javax/microedition/lcdui/DisplayableLFImpl.lGetWidth.()I
java/lang/Object.wait.()V
java/lang/Boolean.booleanValue.()Z
com/sun/midp/rms/RecordStoreUtil.getInt.([BI)I
com/sun/midp/events/EventQueue.run.()V
com/sun/midp/lcdui/LCDUIEvent.<init>.(I)V
com/sun/midp/lcdui/LCDUIEventListener.preprocess.(Lcom/sun/midp/events/Event;Lcom/sun/midp/events/Event;)Z
java/util/Stack.empty.()Z
java/io/OutputStream.write.([B)V
com/sun/midp/lcdui/LCDUIEvent.createBasicEvent.(Lcom/sun/midp/lcdui/DisplayEventConsumer;I)Lcom/sun/midp/lcdui/LCDUIEvent;
com/sun/midp/lcdui/LCDUIEventListener.preprocessAllowOnlyOneEvent.(Lcom/sun/midp/events/Event;Lcom/sun/midp/events/Event;)Z
javax/microedition/lcdui/Display.callSerially.(Ljava/lang/Runnable;)V
com/sun/midp/lcdui/DisplayEventProducer.sendCallSeriallyEvent.(Lcom/sun/midp/lcdui/DisplayEventConsumer;)V
javax/microedition/lcdui/Display.getCallSerially.()V
java/util/Vector.elements.()Ljava/util/Enumeration;
java/util/VectorEnumerator.<init>.(Ljava/util/Vector;)V
java/util/VectorEnumerator.hasMoreElements.()Z
com/sun/midp/lcdui/LCDUIEventListener.process.(Lcom/sun/midp/events/Event;)V
javax/microedition/lcdui/Graphics.reset.(IIII)V
javax/microedition/lcdui/Display.callPaint.(IIIILjava/lang/Object;)V
javax/microedition/lcdui/DisplayableLFImpl.uIsScrollNative.()Z
javax/microedition/lcdui/CanvasLFImpl.uCallPaint.(Ljavax/microedition/lcdui/Graphics;Ljava/lang/Object;)V
javax/microedition/lcdui/DisplayableLFImpl.uCallPaint.(Ljavax/microedition/lcdui/Graphics;Ljava/lang/Object;)V
com/sun/midp/lcdui/DisplayDevice.refresh.(IIIII)V
javax/microedition/lcdui/Display$DisplayEventConsumerImpl.handleCallSeriallyEvent.()V
javax/microedition/lcdui/Display.access$700.(Ljavax/microedition/lcdui/Display;)V
com/sun/midp/lcdui/RepaintEventProducer.preprocess.(Lcom/sun/midp/events/Event;Lcom/sun/midp/events/Event;)Z
com/sun/midp/lcdui/RepaintEventProducer.process.(Lcom/sun/midp/events/Event;)V
javax/microedition/lcdui/Display$DisplayEventConsumerImpl.handleRepaintEvent.(IIIILjava/lang/Object;)V
java/io/OutputStream.write.([BII)V
com/sun/midp/events/NativeEventPool.get.()Lcom/sun/midp/events/NativeEvent;
com/sun/midp/events/NativeEventPool.putBack.(Lcom/sun/midp/events/NativeEvent;)V
com/sun/midp/events/NativeEvent.clear.()V
com/sun/midp/lcdui/DisplayContainer.findDisplayById.(I)Lcom/sun/midp/lcdui/DisplayAccess;
javax/microedition/lcdui/Display.access$200.(Ljavax/microedition/lcdui/Display;)Ljavax/microedition/lcdui/DisplayableLF;
javax/microedition/lcdui/Display$DisplayAccessImpl.getDisplayId.()I
com/sun/midp/lcdui/DisplayEventListener.preprocess.(Lcom/sun/midp/events/Event;Lcom/sun/midp/events/Event;)Z
com/sun/midp/lcdui/DisplayEventListener.process.(Lcom/sun/midp/events/Event;)V
com/sun/midp/lcdui/DisplayContainer.findDisplayEventConsumer.(I)Lcom/sun/midp/lcdui/DisplayEventConsumer;
javax/microedition/lcdui/Display$DisplayAccessImpl.getDisplayEventConsumer.()Lcom/sun/midp/lcdui/DisplayEventConsumer;
java/lang/Character.isDigit.(C)Z
com/nokia/mid/ui/CanvasItem.setPosition.(II)V
com/nokia/mid/ui/gestures/GestureEventImpl.getStartX.()I
com/nokia/mid/ui/gestures/GestureEventImpl.getStartY.()I
com/nokia/mid/ui/gestures/GestureEventImpl.getType.()I
com/sun/midp/events/NativeEventMonitor.run.()V
javax/microedition/lcdui/Image.getWidth.()I
java/util/Hashtable.get.(Ljava/lang/Object;)Ljava/lang/Object;
javax/microedition/lcdui/Image.getHeight.()I
java/lang/Object.equals.(Ljava/lang/Object;)Z
java/io/PrintStream.ensureOpen.()V
java/io/OutputStreamWriter.ensureOpen.()V
com/sun/cldc/i18n/j2me/UTF_8_Writer.write.([CII)V
javax/microedition/lcdui/Image.getRGB.([IIIIIII)V
javax/microedition/lcdui/Graphics.setDimensions.(II)V
javax/microedition/lcdui/Graphics.<init>.()V
com/nokia/mid/ui/DirectUtils.createImage.(III)Ljavax/microedition/lcdui/Image;
javax/microedition/lcdui/Image.createImage.(II)Ljavax/microedition/lcdui/Image;
javax/microedition/lcdui/ImageDataFactory.createOffScreenImageData.(II)Ljavax/microedition/lcdui/ImageData;
javax/microedition/lcdui/Image.getGraphics.()Ljavax/microedition/lcdui/Graphics;
javax/microedition/lcdui/Image.isMutable.()Z
javax/microedition/lcdui/ImageData.isMutable.()Z
javax/microedition/lcdui/Graphics.getImageGraphics.(Ljavax/microedition/lcdui/Image;)Ljavax/microedition/lcdui/Graphics;
java/lang/Math.abs.(I)I
javax/microedition/lcdui/Graphics.translate.(II)V
javax/microedition/lcdui/Image.createRGBImage.([IIIZ)Ljavax/microedition/lcdui/Image;
javax/microedition/lcdui/ImageDataFactory.createImmutableImageData.([IIIZ)Ljavax/microedition/lcdui/ImageData;
java/util/Vector.setElementAt.(Ljava/lang/Object;I)V
com/sun/midp/rms/RecordStoreFile.read.([B)I
com/sun/midp/rms/RecordStoreFile.read.([BII)I
com/sun/midp/rms/RecordStoreFile.seek.(I)V
com/nokia/mid/ui/TextEditor.isMultiline.()Z
java/io/DataOutputStream.writeLong.(J)V
java/lang/Integer.toString.(II)Ljava/lang/String;
java/lang/Integer.toString.(I)Ljava/lang/String;
javax/microedition/rms/RecordStore.isOpen.()Z
javax/microedition/lcdui/Display$DisplayEventConsumerImpl.handlePointerEvent.(III)V
javax/microedition/lcdui/DisplayableLFImpl.uCallPointerEvent.(III)V
com/nokia/mid/ui/gestures/GestureRegistrationManager.callListener.(Lcom/nokia/mid/ui/gestures/GestureEvent;)V
com/nokia/mid/ui/gestures/GestureEventImpl.<init>.(IIIIIFIIIIIIIIII)V
javax/microedition/lcdui/Display$DisplayEventConsumerImpl.handleGestureEvent.(Lcom/nokia/mid/ui/gestures/GestureEvent;)V
com/nokia/mid/ui/gestures/GestureInteractiveZone.contains.(II)Z
com/nokia/mid/ui/gestures/GestureInteractiveZone.supports.(I)Z
java/lang/Long.<init>.(J)V
com/sun/midp/rms/RecordStoreUtil.calculateBlockSize.(I)I
javax/microedition/lcdui/CanvasLFImpl.uCallPointerDragged.(II)V
com/sun/cldc/io/ResourceInputStream.read.([BII)I
com/nokia/mid/ui/gestures/GestureEventImpl.getDragDistanceX.()I
com/nokia/mid/ui/gestures/GestureEventImpl.getDragDistanceY.()I
java/io/PrintStream.println.(Ljava/lang/String;)V
java/io/PrintStream.print.(Ljava/lang/String;)V
java/io/PrintStream.write.(Ljava/lang/String;)V
java/io/Writer.write.(Ljava/lang/String;)V
java/io/OutputStreamWriter.write.(Ljava/lang/String;II)V
java/io/Writer.write.(Ljava/lang/String;II)V
java/io/PrintStream.newLine.()V
java/io/OutputStreamWriter.write.(I)V
java/io/Writer.write.(I)V
com/nokia/mid/ui/TextEditor.getFont.()Ljavax/microedition/lcdui/Font;
com/nokia/mid/ui/TextEditor.getVisibleContentPosition.()I
com/sun/midp/rms/RecordStoreSharedDBHeader.getHeaderData.()[B
java/util/Vector.indexOf.(Ljava/lang/Object;)I
java/lang/Long.longValue.()J
java/lang/Long.hashCode.()I
java/util/Hashtable.containsKey.(Ljava/lang/Object;)Z
javax/microedition/rms/RecordStore.checkOpen.()V
java/lang/Long.equals.(Ljava/lang/Object;)Z
javax/microedition/rms/RecordEnumerationImpl.checkDestroyed.()V
java/io/DataOutputStream.flush.()V
com/sun/midp/midletsuite/MIDletSuiteImpl.guaranteeMIDletSuiteLocked.(Ljava/lang/String;)V
com/sun/cldc/i18n/j2me/UTF_8_Reader.read.([CII)I
java/io/DataOutputStream.write.([BII)V
com/sun/midp/rms/IntToIntMapper.setElementAt.(II)V
java/io/DataOutputStream.writeUTF.(Ljava/lang/String;)V
java/io/DataOutputStream.writeUTF.(Ljava/lang/String;Ljava/io/DataOutput;)I
java/io/InputStream.<init>.()V
java/lang/Character.<init>.(C)V
java/io/InputStream.read.([B)I
com/sun/midp/midlet/MIDletStateHandler.getMIDletSuite.()Lcom/sun/midp/midlet/MIDletSuite;
java/io/Reader.read.([C)I
java/io/InputStreamReader.read.([CII)I
java/io/InputStreamReader.ensureOpen.()V
java/io/DataOutputStream.writeByte.(I)V
java/io/ByteArrayOutputStream.toByteArray.()[B
java/lang/Integer.intValue.()I
java/io/OutputStream.<init>.()V
java/lang/Character.toString.()Ljava/lang/String;
com/sun/midp/security/SecurityToken.checkIfPermissionAllowed.(I)V
com/sun/midp/security/SecurityToken.checkIfPermissionAllowed.(ILjava/lang/String;)V
com/sun/midp/events/EventQueue.registerEventListener.(ILcom/sun/midp/events/EventListener;)V
com/sun/midp/midletsuite/MIDletSuiteImpl.getID.()I
com/sun/midp/midlet/MIDletStateHandler.getMidletStateHandler.()Lcom/sun/midp/midlet/MIDletStateHandler;
com/sun/midp/events/DispatchData.<init>.(Lcom/sun/midp/events/EventListener;)V
java/lang/Integer.toUnsignedString.(II)Ljava/lang/String;
com/ibm/oti/connection/file/FCOutputStream.flush.()V
com/ibm/oti/connection/file/FCOutputStream.write.([BII)V
javax/microedition/lcdui/Canvas.repaint.()V
javax/microedition/lcdui/CanvasLFImpl.lRepaint.()V
javax/microedition/lcdui/DisplayableLFImpl.lRequestPaintContents.()V
com/sun/midp/util/isolate/InterIsolateMutex.lock.()V
com/sun/midp/rms/RecordStoreSharedDBHeader.updateCachedData.()V
java/io/ByteArrayOutputStream.reset.()V
com/sun/midp/rms/RecordStoreLock.obtain.()V
java/io/DataInputStream.<init>.(Ljava/io/InputStream;)V
com/sun/midp/rms/RecordStoreLock.release.()V
com/sun/midp/util/isolate/InterIsolateMutex.unlock.()V
com/ibm/oti/connection/file/Connection.isOpen.()Z
com/sun/midp/rms/RecordStoreImpl.getVersion.()I
java/lang/Object.toString.()Ljava/lang/String;
java/lang/Integer.toHexString.(I)Ljava/lang/String;
com/sun/midp/rms/RecordStoreIndex.getRecordHeader_SearchFromTo.(I[BII)I
com/sun/midp/rms/RecordStoreImpl.lockRecordStore.()V
com/sun/midp/rms/RecordStoreSharedDBHeader.recordStoreLocked.()V
com/sun/midp/rms/RecordStoreImpl.unlockRecordStore.()V
com/sun/midp/rms/RecordStoreSharedDBHeader.recordStoreAboutToBeUnlocked.()V
java/lang/StringBuffer.append.(Ljava/lang/Object;)Ljava/lang/StringBuffer;
com/sun/midp/rms/IntToIntMapper.elementAt.(I)I
javax/microedition/io/Connector.checkProtocolName.(Ljava/lang/String;)V
javax/microedition/rms/RecordStore.openRecordStore.(Ljava/lang/String;Z)Ljavax/microedition/rms/RecordStore;
javax/microedition/rms/RecordStore.doOpen.(ILjava/lang/String;Z)Ljavax/microedition/rms/RecordStore;
javax/microedition/rms/RecordStore.closeRecordStore.()V
com/sun/midp/rms/RecordStoreImpl.getSize.()I
javax/microedition/rms/RecordEnumerationImpl.hasNextElement.()Z
java/util/Hashtable.<init>.(I)V
javax/microedition/rms/RecordEnumerationImpl.nextRecordId.()I
javax/microedition/rms/RecordStore.getRecord.(I)[B
com/sun/midp/rms/RecordStoreImpl.getRecord.(I)[B
com/sun/midp/rms/RecordStoreIndex.getRecordHeader.(I[B)I
com/sun/midp/rms/RecordStoreIndex.ensureIndexValidity.()V
com/sun/midp/rms/RecordStoreIndex.getRecordHeader_NoCache.(I[B)I
com/sun/midp/rms/IntToIntMapper.addElement.(II)V
com/sun/midp/util/Properties.setProperty.(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
java/lang/Thread.init.(Ljava/lang/Runnable;Ljava/lang/String;)V
java/lang/Thread.getPriority.()I
java/lang/Thread.setPriority.(I)V
java/lang/Thread.checkAccess.()V
java/lang/RuntimePermission.<init>.(Ljava/lang/String;)V
java/security/BasicPermission.<init>.(Ljava/lang/String;)V
java/util/Vector.setSize.(I)V
java/io/ByteArrayOutputStream.size.()I
java/lang/Thread.nextThreadNum.()I
com/sun/cldc/io/ResourceInputStream.fixResourceName.(Ljava/lang/String;)Ljava/lang/String;
java/lang/Thread.start.()V
java/lang/Thread.start.(Ljava/lang/Thread;)V
com/ibm/oti/connection/file/Connection.checkRead.()V
com/ibm/oti/connection/file/Connection.checkRead.(Ljava/lang/String;)V
java/util/Hashtable.<init>.()V
com/ibm/oti/connection/file/Connection.parseDirectory.()V
javax/microedition/io/Connector.open.(Ljava/lang/String;I)Ljavax/microedition/io/Connection;
javax/microedition/io/Connector.open.(Ljava/lang/String;IZ)Ljavax/microedition/io/Connection;
javax/microedition/io/Connector.openPrim.(Ljava/lang/String;IZ)Ljavax/microedition/io/Connection;
com/ibm/oti/connection/file/Connection.existsInternal.()Z
javax/microedition/lcdui/Display$DisplayEventConsumerImpl.handleKeyEvent.(II)V
javax/microedition/lcdui/DisplayableLFImpl.uCallKeyEvent.(II)V
javax/microedition/lcdui/CanvasLFImpl.allowKey.(I)Z
com/ibm/oti/connection/file/Connection.isDirectoryInternal.()Z
java/util/Vector.isEmpty.()Z
java/util/Hashtable.rehash.()V
java/lang/Class.getResourceAsStream.(Ljava/lang/String;)Ljava/io/InputStream;
com/sun/cldc/io/ResourceInputStream.<init>.(Ljava/lang/String;)V
com/sun/midp/io/j2me/file/Protocol.<init>.()V
com/sun/midp/io/j2me/file/Protocol.openPrim.(Ljava/lang/String;IZ)Ljavax/microedition/io/Connection;
com/ibm/oti/connection/file/Connection.<init>.()V
com/ibm/oti/connection/file/Connection.setParameters2.(Ljava/lang/String;IZ)Ljavax/microedition/io/Connection;
com/ibm/oti/connection/file/Connection.setParameters.(Ljava/lang/String;IZ)V
com/ibm/oti/connection/file/Connection.validateSpec.(Ljava/lang/String;)Ljava/lang/String;
com/ibm/oti/connection/file/Connection.setPaths.(Ljava/lang/String;)V
com/ibm/oti/connection/file/Connection.getPlatformPath.(Ljava/lang/String;)Ljava/lang/String;
com/ibm/oti/connection/file/Connection.checkSecurity.(Ljava/lang/String;)V
java/lang/Thread.<init>.()V
java/lang/Boolean.equals.(Ljava/lang/Object;)Z
com/ibm/oti/connection/file/Connection.close.()V
java/lang/Integer.equals.(Ljava/lang/Object;)Z
com/sun/cldc/io/ResourceInputStream.close.()V
java/io/DataInputStream.readByte.()B
java/io/OutputStream.close.()V
com/nokia/mid/ui/TextEditorThread.run.()V
java/util/Vector.insertElementAt.(Ljava/lang/Object;I)V
java/io/ByteArrayOutputStream.close.()V
java/util/Hashtable$HashtableEnumerator.hasMoreElements.()Z
com/ibm/oti/connection/file/Connection.fileSize.()J
java/lang/Exception.<init>.()V
java/lang/Throwable.<init>.()V
java/io/ByteArrayOutputStream.<init>.(I)V
javax/microedition/lcdui/ImageDataFactory.getImageDataFromStream.(Ljavax/microedition/lcdui/ImageData;Ljava/io/InputStream;)V
javax/microedition/lcdui/CanvasLFImpl.uCallKeyReleased.(I)V
javax/microedition/lcdui/Canvas.keyReleased.(I)V
com/ibm/oti/connection/file/Connection.exists.()Z
com/sun/midp/security/SecurityInitializer.requestToken.(Lcom/sun/midp/security/ImplicitlyTrustedClass;)Lcom/sun/midp/security/SecurityToken;
com/sun/midp/security/SecurityInitializerImpl.requestToken.(Lcom/sun/midp/security/ImplicitlyTrustedClass;)Lcom/sun/midp/security/SecurityToken;
com/sun/midp/security/SecurityInitializerImpl.isTrusted.(Ljava/lang/Object;)Z
java/io/DataOutputStream.<init>.(Ljava/io/OutputStream;)V
java/io/DataOutputStream.close.()V
javax/microedition/lcdui/CanvasLFImpl.uCallKeyPressed.(I)V
javax/microedition/lcdui/Canvas.keyPressed.(I)V
com/sun/midp/events/NativeEvent.<init>.(I)V
com/ibm/oti/connection/file/Connection.openOutputStream.(J)Ljava/io/OutputStream;
com/ibm/oti/connection/file/FCOutputStream.<init>.([BJLcom/ibm/oti/connection/file/Connection;)V
com/sun/midp/rms/RecordStoreImpl.<init>.(Lcom/sun/midp/security/SecurityToken;ILjava/lang/String;Z)V
java/lang/Character.toUpperCase.(C)C
com/sun/midp/events/NativeEvent.<init>.()V
java/util/Hashtable.clear.()V
com/sun/cldc/util/j2me/CalendarImpl.floorDivide.(II[I)I
java/io/ByteArrayInputStream.close.()V
com/sun/cldc/i18n/Helper.normalizeEncodingName.(Ljava/lang/String;)Ljava/lang/String;
com/sun/midp/midletsuite/MIDletSuiteImpl.getProperty.(Ljava/lang/String;)Ljava/lang/String;
com/sun/midp/midletsuite/SuiteProperties.getProperty.(Ljava/lang/String;)Ljava/lang/String;
com/sun/midp/util/Properties.getProperty.(Ljava/lang/String;)Ljava/lang/String;
com/ibm/oti/connection/file/Connection.checkWrite.()V
javax/microedition/lcdui/DisplayableLFImpl.lGetDisplayable.()Ljavax/microedition/lcdui/Displayable;
com/sun/midp/security/SecurityInitializerImpl.<init>.(Lcom/sun/midp/security/SecurityToken;[Ljava/lang/String;)V
com/sun/midp/midletsuite/SuiteProperties.loadProperties.()V
com/sun/midp/rms/RecordStoreIndex.getRecordIDs.()[I
java/io/DataInputStream.readLong.()J
com/sun/midp/main/MIDletProxyList.notifyListenersOfProxyUpdate.(Lcom/sun/midp/main/MIDletProxy;I)V
com/nokia/mid/s40/codec/DataEncoder.<init>.(Ljava/lang/String;)V
java/lang/Exception.<init>.(Ljava/lang/String;)V
java/lang/Throwable.<init>.(Ljava/lang/String;)V
java/util/Vector.removeElement.(Ljava/lang/Object;)Z
com/ibm/oti/connection/file/FCOutputStream.close.()V
com/ibm/oti/connection/file/Connection.notifyOutputStreamClosed.()V
javax/microedition/lcdui/Display.getCurrent.()Ljavax/microedition/lcdui/Displayable;
javax/microedition/lcdui/Image.createImage.(Ljava/lang/String;)Ljavax/microedition/lcdui/Image;
javax/microedition/lcdui/ImageDataFactory.createResourceImageData.(Ljava/lang/String;)Ljavax/microedition/lcdui/ImageData;
javax/microedition/lcdui/ImageData.<init>.()V
javax/microedition/lcdui/ImageDataFactory.loadAndCreateImmutableImageDataFromCache.(Ljavax/microedition/lcdui/ImageData;Ljava/lang/String;)Z
javax/microedition/lcdui/SuiteImageCacheImpl.loadAndCreateImmutableImageData.(Ljavax/microedition/lcdui/ImageData;Ljava/lang/String;)Z
com/sun/midp/io/Util.toJavaString.([B)Ljava/lang/String;
java/util/Hashtable$HashtableEnumerator.nextElement.()Ljava/lang/Object;
com/sun/midp/lcdui/DisplayDevice.isPrimaryDisplay.()Z
com/sun/midp/main/MIDletProxy.getClassName.()Ljava/lang/String;
com/sun/midp/rms/RmsEnvironment.getSecureFilenameBase.(I)Ljava/lang/String;
com/sun/midp/midletsuite/SuiteContainerAdapter.getSecureFilenameBase.(I)Ljava/lang/String;

9
config/app.js Normal file
Просмотреть файл

@ -0,0 +1,9 @@
/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
// Instead of being loaded directly, this is appended to config/midlet.js
// by package.sh at `make app` build time, so it only applies when the app
// is loaded as an open web app.
config.autosize = "1";
config.logConsole = "web";

Просмотреть файл

@ -1,4 +1,7 @@
// Midlet-specific customization code.
/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
'use strict';
var MIDlet = {
name: "aMIDlet",
@ -12,6 +15,8 @@ var MIDlet = {
};
var config = {
main: "com/sun/midp/main/MIDletSuiteLoader",
midletClassName: "RunTests",
};
// The base directory of the app, relative to the current page. Normally this

5
config/midlet.js Normal file
Просмотреть файл

@ -0,0 +1,5 @@
/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
'use strict';

Просмотреть файл

@ -30,7 +30,7 @@
* Keep this list up-to-date!
*/
var urlParams = (function() {
(function() {
var params = {};
location.search.substring(1).split("&").forEach(function (param) {
@ -42,9 +42,11 @@ var urlParams = (function() {
params.args = (params.args || "").split(",");
if ("midletClassName" in params) {
params.midletClassName = params.midletClassName.replace(/\//g, '.');
}
for (var name in params) {
config[name] = params[name];
}
return params;
})();

Просмотреть файл

@ -7,8 +7,10 @@
<link rel="stylesheet" type="text/css" href="style/index.css">
<script type="text/javascript" src="libs/load.js" defer></script>
<script type="text/javascript" src="libs/promise-6.0.0.js" defer></script>
<script type="text/javascript" src="midlet.js" defer></script>
<script type="text/javascript" src="libs/urlparams.js" defer></script>
<script type="text/javascript" src="config/default.js" defer></script>
<script type="text/javascript" src="config/midlet.js" defer></script>
<script type="text/javascript" src="config/build.js" defer></script>
<script type="text/javascript" src="config/urlparams.js" defer></script>
<script type="text/javascript" src="timer.js" defer></script>
<script type="text/javascript" src="index.js" defer></script>
</head>

Просмотреть файл

@ -7,9 +7,8 @@
* Pre-load dependencies and then load the main page.
*/
(function() {
var midletClassName = config.midletClassName ? config.midletClassName.replace(/\//g, '.') : "RunTests";
var loadingPromises = [];
if (midletClassName == "RunTests") {
if (config.midletClassName == "RunTests") {
loadingPromises.push(loadScript("tests/contacts.js"),
loadScript("tests/index.js"));
}

Просмотреть файл

@ -70,9 +70,6 @@ module J2ME {
"java/lang/Class.invoke_clinit.()V": YieldReason.Root,
"java/lang/Class.newInstance.()Ljava/lang/Object;": YieldReason.Root,
"java/lang/Thread.yield.()V": YieldReason.Root,
"javax/microedition/lcdui/Graphics.drawString.(Ljava/lang/String;III)V": YieldReason.Root,
"javax/microedition/lcdui/Graphics.drawSubstring.(Ljava/lang/String;IIIII)V": YieldReason.Root,
"javax/microedition/lcdui/Graphics.drawChars.([CIIIII)V": YieldReason.Root,
// Test Files:
"gnu/testlet/vm/NativeTest.throwExceptionAfterPause.()V": YieldReason.Root,
"gnu/testlet/vm/NativeTest.returnAfterPause.()I": YieldReason.Root,

Просмотреть файл

@ -236,7 +236,7 @@ module J2ME {
var failedCompilations = 0;
function compileClassInfo(emitter: Emitter, classInfo: ClassInfo,
methodFilter: (methodInfo: MethodInfo) => boolean,
methodFilterList: string[],
ctx: Context): CompiledMethodInfo [] {
var writer = emitter.writer;
var mangledClassName = classInfo.mangledName;
@ -272,7 +272,7 @@ module J2ME {
if (!method.code) {
continue;
}
if (!methodFilter(method)) {
if (methodFilterList !== null && methodFilterList.indexOf(method.implKey) < 0) {
continue;
}
var mangledMethodName = method.mangledName;
@ -296,6 +296,9 @@ module J2ME {
failedCompilations ++;
}
if (compiledMethod && compiledMethod.body) {
if (methodFilterList) {
methodFilterList.splice(methodFilterList.indexOf(method.implKey), 1);
}
var compiledMethodName = mangledClassAndMethodName;
writer.enter("function " + compiledMethodName + "(" + compiledMethod.args.join(",") + ") {");
writer.writeLns(compiledMethod.body);
@ -356,7 +359,7 @@ module J2ME {
export function compile(jvm: any,
jarFilter: (jarFile: string) => boolean,
classFilter: (classInfo: ClassInfo) => boolean,
methodFilter: (methodInfo: MethodInfo) => boolean,
methodFilterList: string[],
fileFilter: string, debugInfo: boolean, tsDefinitions: boolean) {
var runtime = new Runtime(jvm);
var jarFiles = CLASSES.jarFiles;
@ -440,7 +443,7 @@ module J2ME {
var methods = classInfo.methods;
for (var j = 0; j < methods.length; j++) {
var method = methods[j];
if (methodFilter(method)) {
if (methodFilterList === null || methodFilterList.indexOf(method.implKey) >= 0) {
// If at least one method is found, compile the class.
filteredClassInfoList.push(classInfo);
break;
@ -458,7 +461,7 @@ module J2ME {
if (classInfo.isInterface) {
continue;
}
ArrayUtilities.pushMany(compiledMethods, compileClassInfo(emitter, classInfo, methodFilter, ctx));
ArrayUtilities.pushMany(compiledMethods, compileClassInfo(emitter, classInfo, methodFilterList, ctx));
}
var color = failedCompilations ? IndentingWriter.YELLOW : IndentingWriter.GREEN;

35
jsc.ts
Просмотреть файл

@ -211,7 +211,7 @@ module J2ME {
classNameList = file.replace(/\r?\n/g, "\n").split("\n");
}
}
var methodNameList;
var methodFilterList = null;
if (methodFileFilterOption.value) {
var file;
try {
@ -220,10 +220,16 @@ module J2ME {
}
if (file) {
methodNameList = file.replace(/\r?\n/g, "\n").split("\n");
// Trim Whitespace
methodNameList = methodNameList.map(x => x.replace(/^\s+|\s+$/g, ""));
methodFilterList = [];
var lines = file.replace(/\r?\n/g, "\n").split("\n");
for (var i = 0; i < lines.length; i++) {
// Trim Whitespace
var line = lines[i].replace(/^\s+|\s+$/g, "");
if (line === "") {
continue;
}
methodFilterList.push(line);
}
}
}
@ -241,17 +247,20 @@ module J2ME {
}
return false;
}
function methodFilter(methodInfo: MethodInfo): boolean {
if (methodNameList) {
return methodNameList.indexOf(methodInfo.implKey) >= 0;
} else if (!methodFilterOption.value) {
return true;
}
return methodInfo.implKey === methodFilterOption.value;
if (methodFilterOption.value) {
methodFilterList = [methodFilterOption.value];
}
stdoutWriter.writeLn("var start = performance.now();");
compile(jvm, jarFilter, classFilter, methodFilter, fileFilterOption.value, debuggerOption.value, definitionOption.value);
compile(jvm, jarFilter, classFilter, methodFilterList, fileFilterOption.value, debuggerOption.value, definitionOption.value);
stdoutWriter.writeLn("console.log(\"Loaded " + jarFileFilterOption.value + " in \" + (performance.now() - start).toFixed(2) + \" ms.\");");
if (methodFilterList !== null && methodFilterList.length) {
stderrWriter.enter("The following method(s) in the method filter list failed to compile or were not found:");
for (var i = 0; i < methodFilterList.length; i++) {
stderrWriter.errorLn(methodFilterList[i]);
}
stderrWriter.leave("");
}
if (verboseOption.value) {
// ...
}

Просмотреть файл

@ -24,7 +24,7 @@
* terminal: a faster canvas based console if Shumway.js is included.
*/
var ENABLED_CONSOLE_TYPES = (config.logConsole || "page").split(",");
var minLogLevel = LOG_LEVELS[config.logLevel || "log"];
var minLogLevel = LOG_LEVELS[config.logLevel || (config.release ? "error" : "log")];
//================================================================

Просмотреть файл

@ -25,7 +25,7 @@ var initialFiles = [
var initFS = new Promise(function(resolve, reject) {
fs.init(resolve);
}).then(function() {
if (typeof MIDP !== "undefined" && MIDP.midletClassName == "RunTests") {
if (typeof config !== "undefined" && config.midletClassName == "RunTests") {
initialDirs.push("/tcktestdir");
}
@ -43,7 +43,7 @@ var initFS = new Promise(function(resolve, reject) {
}).then(function() {
var filePromises = [];
if (typeof MIDP !== "undefined" && MIDP.midletClassName == "RunTests") {
if (typeof config !== "undefined" && config.midletClassName == "RunTests") {
initialFiles.push({ sourcePath: "certs/_test.ks", targetPath: "/_test.ks" });
}

Просмотреть файл

@ -10,12 +10,13 @@
<link rel="stylesheet" type="text/css" href="style/drawer.css">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1">
<script type="text/javascript" src="midlet.js" defer></script>
<script type="text/javascript" src="config/default.js" defer></script>
<script type="text/javascript" src="config/midlet.js" defer></script>
<script type="text/javascript" src="config/build.js" defer></script>
<script type="text/javascript" src="config/urlparams.js" defer></script>
<!-- Uncomment the line below to enable the profiler. -->
<!--<script type="text/javascript" src="build/shumway.js" defer></script>-->
<!--<script type="text/javascript" src="libs/terminal.js" defer></script>-->
<script type="text/javascript" src="libs/urlparams.js" defer></script>
<script type="text/javascript" src="libs/console.js" defer></script>
<script type="text/javascript" src="legacy.js" defer></script>
<script type="text/javascript" src="blackBox.js" defer></script>
@ -61,7 +62,7 @@
<script type="text/javascript" src="game-ui.js" defer></script>
<!-- run make aot to generate these -->
<!--<script type="text/javascript" src="build/classes.jar.js" defer></script>-->
<script type="text/javascript" src="build/classes.jar.js" defer></script>
<!--<script type="text/javascript" src="build/program.jar.js" defer></script>-->
<!--<script type="text/javascript" src="build/tests.jar.js" defer></script>-->
<script type="text/javascript" src="main.js" defer></script>

12
main.js
Просмотреть файл

@ -3,21 +3,15 @@
'use strict';
// To launch the unit tests: ?main=RunTests
// To launch the MIDP demo: ?main=com/sun/midp/main/MIDletSuiteLoader&midletClassName=HelloCommandMIDlet
// To launch a JAR file: ?main=com/sun/midp/main/MIDletSuiteLoader&args=app.jar
var jvm = new JVM();
var main = config.main || "com/sun/midp/main/MIDletSuiteLoader";
if ("gamepad" in config && !/no|0/.test(config.gamepad)) {
document.documentElement.classList.add('gamepad');
}
var jars = ["java/classes.jar"];
if (MIDP.midletClassName == "RunTests") {
if (config.midletClassName == "RunTests") {
jars.push("tests/tests.jar");
}
@ -171,7 +165,7 @@ if (config.downloadJAD) {
}));
}
if (MIDP.midletClassName == "RunTests") {
if (config.midletClassName == "RunTests") {
loadingPromises.push(loadScript("tests/native.js"),
loadScript("tests/override.js"),
loadScript("tests/mozactivitymock.js"));
@ -194,7 +188,7 @@ function start() {
CLASSES.initializeBuiltinClasses();
profiler && profiler.start(2000, false);
bigBang = performance.now();
jvm.startIsolate0(main, config.args);
jvm.startIsolate0(config.main, config.args);
}
Promise.all(loadingPromises).then(start);

Просмотреть файл

@ -8,8 +8,6 @@ var MIDP = {
MIDP.manifest = {};
MIDP.midletClassName = config.midletClassName ? config.midletClassName.replace(/\//g, '.') : "RunTests";
Native["com/sun/midp/jarutil/JarReader.readJarEntry0.(Ljava/lang/String;Ljava/lang/String;)[B"] = function(jar, entryName) {
var bytes = CLASSES.loadFileFromJar(util.fromJavaString(jar), util.fromJavaString(entryName));
if (!bytes)
@ -254,9 +252,9 @@ Native["com/sun/midp/main/CldcPlatformRequest.dispatchPlatformRequest.(Ljava/lan
};
Native["com/sun/midp/main/CommandState.restoreCommandState.(Lcom/sun/midp/main/CommandState;)V"] = function(state) {
var suiteId = (MIDP.midletClassName === "internal") ? -1 : 1;
var suiteId = (config.midletClassName === "internal") ? -1 : 1;
state.klass.classInfo.getField("I.suiteId.I").set(state, suiteId);
state.klass.classInfo.getField("I.midletClassName.Ljava/lang/String;").set(state, J2ME.newString(MIDP.midletClassName));
state.klass.classInfo.getField("I.midletClassName.Ljava/lang/String;").set(state, J2ME.newString(config.midletClassName));
var args = config.args;
state.klass.classInfo.getField("I.arg0.Ljava/lang/String;").set(state, J2ME.newString((args.length > 0) ? args[0] : ""));
state.klass.classInfo.getField("I.arg1.Ljava/lang/String;").set(state, J2ME.newString((args.length > 1) ? args[1] : ""));
@ -400,7 +398,7 @@ Native["com/sun/midp/main/Configuration.getProperty0.(Ljava/lang/String;)Ljava/l
var value;
switch (util.fromJavaString(key)) {
case "com.sun.midp.publickeystore.WebPublicKeyStore":
if (MIDP.midletClassName == "RunTests") {
if (config.midletClassName == "RunTests") {
value = "_test.ks";
} else {
value = "_main.ks";

Просмотреть файл

@ -1194,7 +1194,7 @@ module J2ME {
// Some Native MethodInfos are constructed but never called;
// that's fine, unless we actually try to call them.
return function missingImplementation() {
stderrWriter.errorLn("implKey " + methodInfo.name + " is native but does not have an implementation.");
stderrWriter.errorLn("implKey " + methodInfo.implKey + " is native but does not have an implementation.");
}
}
} else if (implKey in Override) {

Просмотреть файл

@ -31,6 +31,12 @@ cp -R classfile $PACKAGE_DIR/.
# copy entire contents of libs dir
cp -R libs $PACKAGE_DIR/.
# copy entire contents of config dir
cp -R config $PACKAGE_DIR/.
# Merge app.js into a config file that gets loaded.
cat $PACKAGE_DIR/config/app.js >> $PACKAGE_DIR/config/midlet.js && rm $PACKAGE_DIR/config/app.js
# copy entire contents of midp dir
cp -R midp $PACKAGE_DIR/.

Просмотреть файл

@ -965,6 +965,27 @@ module J2ME {
}
export module HashUtilities {
// Copyright (c) 2011 Gary Court
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// https://github.com/garycourt/murmurhash-js
export function hashBytesTo32BitsMurmur(data: Uint8Array, offset: number, length: number) {
var l = length, h = 0x12345678 ^ l, i = offset, k;
@ -992,6 +1013,7 @@ module J2ME {
h ^= h >>> 15;
return h >>> 0;
}
// end of imported section
export function hashBytesTo32BitsAdler(data: Uint8Array, offset: number, length: number): number {
var a = 1;