yui/yui3 — pull request #949 by clarle (2013-07-01 20:52:53+00:00)
Title: Modified Y.Object.keys() shim for Android 2.3.x. Fixes #658.

This PR fixes issue #658, which had several failing tests in the OOP test suite.

The root cause of the issue was that the test cases used `Y.Object.size(object)` to perform assertions, which uses `Y.Object.keys(object)` underneath. Android 2.3.x (including the latest version, 2.3.7) has a buggy implementation of `Object.propertyIsEnumerable(prop)`, which considers the object's `prototype` to be enumerable.

[A similar problem](https://github.com/yui/yui3/commit/6ed148777f04d35c42c9370c8108484f14be78a2) was solved by @rgrove with Opera 11.50 before. However, Opera 11.50 did not have a native version of `Object.keys()`, which the Android 2.3.x browser does. In that case, `Y.Object.keys()` is just an alias to `Object.keys()`, but since the native Android version is buggy, the tests fail.

This PR fixes that issue by using the YUI shim when `_isProtoEnumBug` is truthy, as well as fixing `YUITest.hasNoKeys()`, which also has the same issue.