Merge m-c to inbound.
authorRyan VanderMeulen <ryanvm@gmail.com>
Wed, 01 Aug 2012 22:23:43 -0400
changeset 101186 5a68b9915e2623bb282bd83339be8a2021e55b5e
parent 101181 7cd42d8f1bfa844bbb7708ee3246db8fdc865ba8 (current diff)
parent 101185 61d7f15ea6a760def8b09109848a6dd2e6481941 (diff)
child 101187 81a6affeaebc22666ea95dc353611efff77574bc
push id12890
push userryanvm@gmail.com
push dateThu, 02 Aug 2012 02:23:58 +0000
treeherdermozilla-inbound@71531b2ece95 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
milestone17.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Merge m-c to inbound.
mobile/android/base/gfx/LayerController.java
new file mode 100644
--- /dev/null
+++ b/b2g/config/mozconfigs/ics_armv7a_gecko/debug
@@ -0,0 +1,20 @@
+mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-b2g
+
+mk_add_options MOZ_MAKE_FLAGS="-j8"
+
+ac_add_options --enable-application=b2g
+ac_add_options --enable-b2g-camera
+
+ac_add_options --target=arm-android-eabi
+ac_add_options --with-gonk="$topsrcdir/gonk-toolchain"
+export TOOLCHAIN_HOST=linux-x86
+export GONK_PRODUCT=generic
+ac_add_options --with-gonk-toolchain-prefix="$topsrcdir/gonk-toolchain/prebuilt/$TOOLCHAIN_HOST/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi-"
+ac_add_options --disable-elf-hack
+ac_add_options --enable-debug-symbols
+ac_add_options --enable-debug
+#ac_add_options --with-ccache
+ac_add_options --enable-marionette
+
+# Enable dump() from JS.
+export CXXFLAGS="-DMOZ_ENABLE_JS_DUMP -include $topsrcdir/gonk-toolchain/gonk-misc/Unicode.h -include $topsrcdir/gonk-toolchain/system/vold/ResponseCode.h"
new file mode 100644
--- /dev/null
+++ b/b2g/config/mozconfigs/ics_armv7a_gecko/nightly
@@ -0,0 +1,20 @@
+mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-b2g
+
+mk_add_options MOZ_MAKE_FLAGS="-j8"
+
+ac_add_options --enable-application=b2g
+ac_add_options --enable-b2g-camera
+
+ac_add_options --target=arm-android-eabi
+ac_add_options --with-gonk="$topsrcdir/gonk-toolchain"
+export TOOLCHAIN_HOST=linux-x86
+export GONK_PRODUCT=generic
+ac_add_options --with-gonk-toolchain-prefix="$topsrcdir/gonk-toolchain/prebuilt/$TOOLCHAIN_HOST/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi-"
+ac_add_options --disable-elf-hack
+ac_add_options --enable-debug-symbols
+ac_add_options --enable-profiling
+#ac_add_options --with-ccache
+ac_add_options --enable-marionette
+
+# Enable dump() from JS.
+export CXXFLAGS="-DMOZ_ENABLE_JS_DUMP -include $topsrcdir/gonk-toolchain/gonk-misc/Unicode.h -include $topsrcdir/gonk-toolchain/system/vold/ResponseCode.h"
new file mode 100644
--- /dev/null
+++ b/b2g/config/tooltool-manifests/ics.manifest
@@ -0,0 +1,14 @@
+[
+{
+"size": 195, 
+"digest": "209d6875524e6f81c158fe7d8c543683747cb186a53ddb729c6437273404f69468d4c91bfd74a26448ad2a726da1a9b48e6243602cbe60b5d0e0f97cdb29e2cc", 
+"algorithm": "sha512", 
+"filename": "setup.sh"
+}, 
+{
+"size": 62014571, 
+"digest": "68327ed36d8a53615fd66a300d5c022517f2f3ea0199b9d95f80683bbf1d0a154266700c8bde235467cc707c4c37341cd3f5e9816bb2c4b66efc96f9e08c92df", 
+"algorithm": "sha512", 
+"filename": "gonk-toolchain-4.tar.bz2"
+}
+]
--- a/js/src/jsstr.cpp
+++ b/js/src/jsstr.cpp
@@ -234,30 +234,36 @@ str_unescape(JSContext *cx, unsigned arg
 {
     CallArgs args = CallArgsFromVp(argc, vp);
 
     /* Step 1. */
     JSLinearString *str = ArgToRootedString(cx, args, 0);
     if (!str)
         return false;
 
+    /*
+     * NB: use signed integers for length/index to allow simple length
+     * comparisons without unsigned-underflow hazards.
+     */
+    JS_STATIC_ASSERT(JSString::MAX_LENGTH <= INT_MAX);
+
     /* Step 2. */
-    size_t length = str->length();
+    int length = str->length();
     const jschar *chars = str->chars();
 
     /* Step 3. */
     StringBuffer sb(cx);
 
     /*
      * Note that the spec algorithm has been optimized to avoid building
      * a string in the case where no escapes are present.
      */
 
     /* Step 4. */
-    size_t k = 0;
+    int k = 0;
     bool building = false;
 
     while (true) {
         /* Step 5. */
         if (k == length) {
             JSLinearString *result;
             if (building) {
                 result = sb.finishString();