If you simply build with DEVICE_ORIENTATION enabled, DeviceOrientationController::DeviceOrientationController(WebCore::Page*, WebCore::DeviceOrientationClient*)) will always assert because there is no client created in the default build.
This is working as intended. DeviceOrientation, like most features, requires that a non-null client is supplied. Platforms need to make sure that they supply non-null clients for all such features they choose to enable. See the comment for the PageClients structure in Page.h.