test262: Refactored LogWrapper so it is C instead of Obj-C so it may be reused for Android.
test262: Android: Creating a new version of test262 that is more C-based for performance comparison to the Java-based version.

This is mostly a straight copy from the other version, except I started adding Test262HelperAndroid and CommonUtils.

We are investigating performance issues and see that the Dalvik garbage collector seems to be a big problem. Having a version in C to compare against will help us verify if this is really the issue.
test262: Android: waypoint commit. Compilable, but un-runnable C implementation of the main test run body for Android. Additional wiring is needed to hook this up to the main program so it can actually be invoked.

Implementation has commented out out GUI callbacks.
test262: Resync’d Logger from official.
test262: Android: Initial running, but incomplete, C-centric version of test262.

GUI is not hooked up. Logging is not fully integrated. Lots of debugging stuff to clean up.

Initial results are unfair since there is no GUI, but I’m seeing a roughly 10 min vs. 16 min runtimes for C vs. Java versions. In the Java version, at casual glance, I see 20ms garbage collection waits every loop. Back of the envelope calculations for 12000 loops puts that at 4 minutes of wait time for just GC.
test262: Android: Changed Zeroconf behavior to not advertise when the app is backgrounded. Also added more debug stuff.

There seems to be a bug in Android’s zeroconf implementation where if the process exits uncleanly (crash, adb install while running), the current advertisement persists and seems to be kept alive by the OS until a reboot. (Can’t connect failures fail to unregister from the zeroconf cache until the device is rebooted.) Removing the advertisement during backgrounding can help reduce the number of accidental cases where the app is reinstalled while it is still running. However, this doesn’t fix the fundamental problem.

Also discovered the hard way that double registration (same service on the same port results in double registrations). The onCreate() and onResume() code both start up zeroconf which resulted in a double registration which onPause() didn’t handle leaving the service still mysteriously running. The quick solution was to put a quick check in the NsdHelper.java itselff, though maybe a better solution is needed.

Some additional debugging stuff is added, so of which probably should be removed in the future.
Android: JavaScriptCore: Minor updates to build instructions.
test262: Sync’d with SimpleThread to get detach thread.
test262: Android: Significant overhaul for C-centric version of Android test262.

Logic and infrastructure is now in place. GUI function callbacks are also in place, but are empty functions. The tests run, but the GUI needs to be wired into the new callbacks for the final step.

SocketServer is now shared among all the implementations. The socket and URL components were fixed to deal with subtle differences between Apple and Linux/Android. IPv6 for http URL generation is fixed. NetworkHelper.java is sort of a counterpart to the NetworkHelper.m in the Apple versions. It is mostly a launching pad to call the C-based SocketServer plus coordinate native platform Zeroconf implementations into the mix. The old LoggingConnection and other Java socket server stuff are now obsolete and should eventually be removed. (The HTTP stuff is still relevant.)

Logger bindings generated via SWIG were brought into help allow calling Logger as needed from the Java side. However, it turns out I didn’t need them at this time.
test262: Android: Finished reconnecting GUI to new C-centric backend. Some bugs remain.

Time diff is not coming in correctly; might be casting problem or put the argument in the wrong position problem.

I learned the hard way that I need to call DeleteLocalRef for string creation. Something about this run test loop seems to avoid trigging the Android GC to my surprise (I expected repeated calls across JNI would eventually lead to GC). But instead, I run out of slots/resources (512) part way through the test.

I think I can remove the class object in the user data because I never use it, so I don’t need a second NewGlobalRef.
test262: Android: Fixed missing argument which was causing the bug.
test262: Android: Some cleanup/deletion of unneeded code.
test262: Android: More cleanup/deletion of unneeded code.
test262: Android: Added multiple text views to Android C-centric version to make presentation similar to Mac/iOS version.

Java version needs to be updated next.
test262: Android: Switched back to release build.
test262: Android: Renamed android/test262 directory to test262j for slightly more clarity.
test262: Android: Updated test262j GUI to match test262c. Worked around Android performance problem with strlcpy. Added -DNDEBUG to test262c makefile.

I discovered strlcpy was causing a serious performance bottleneck in test262c. Running through the loop took about 9 (full) seconds. Switching to strncpy, brought down the entire loop to 14 _milli_seconds.

Also added LogWrapper_NoFormat because I was using it to debug the performance problem.
test262: Android: Added ABOUT.txt to explain the difference between test262j and test262c.
test262: Android: Bug fix for register/unregister zeroconf (need to distinguish between advertisement and actual service). But fix for LogWrapper return type.
Merge branch 'javascriptcore-wp8-test262' of github.com:appcelerator/webkit into javascriptcore-wp8-test262