When a DeviceFound message is handled by BluetoothDBusService.cpp's EventLoop function, the dbus iterator is wrapped in an NS_ASSERTION, meaning that it won't get called at all if it's being built in release. This causes very weird crashes.
Created attachment 645109 [details] [diff] [review] Patch 1 (v1): Fix initializer creation to not be wrapped in NS_ASSERTION
FWIW, you can use MOZ_ASSERT_ALWAYS_TRUE for that. This is going to assert if the expression is false in debug build but will still run the expression in release builds.