defineSuite([
        'Core/FeatureDetection'
    ], function(
        FeatureDetection) {
    'use strict';

    //generally, these tests just make sure the function runs, the test can't expect a value of true or false
    it('detects fullscreen support', function() {
        var supportsFullscreen = FeatureDetection.supportsFullscreen();
        expect(typeof supportsFullscreen).toEqual('boolean');
    });

    it('detects web worker support', function() {
        var supportsWebWorkers = FeatureDetection.supportsWebWorkers();
        expect(typeof supportsWebWorkers).toEqual('boolean');
    });

    it('detects typed array support', function() {
        var supportsTypedArrays = FeatureDetection.supportsTypedArrays();
        expect(typeof supportsTypedArrays).toEqual('boolean');
    });

    it('detects web assembly support', function() {
        var supportsWebAssembly = FeatureDetection.supportsWebAssembly();
        expect(typeof supportsWebAssembly).toEqual('boolean');
    });

    function checkVersionArray(array) {
        expect(Array.isArray(array)).toEqual(true);
        array.forEach(function(d) {
            expect(typeof d).toEqual('number');
        });
    }

    it('detects Chrome', function() {
        var isChrome = FeatureDetection.isChrome();
        expect(typeof isChrome).toEqual('boolean');

        if (isChrome) {
            var chromeVersion = FeatureDetection.chromeVersion();
            checkVersionArray(chromeVersion);

            console.log('detected Chrome ' + chromeVersion.join('.'));
        }
    });

    it('detects Safari', function() {
        var isSafari = FeatureDetection.isSafari();
        expect(typeof isSafari).toEqual('boolean');

        if (isSafari) {
            var safariVersion = FeatureDetection.safariVersion();
            checkVersionArray(safariVersion);

            console.log('detected Safari ' + safariVersion.join('.'));
        }
    });

    it('detects Webkit', function() {
        var isWebkit = FeatureDetection.isWebkit();
        expect(typeof isWebkit).toEqual('boolean');

        if (isWebkit) {
            var webkitVersion = FeatureDetection.webkitVersion();
            checkVersionArray(webkitVersion);
            expect(typeof webkitVersion.isNightly).toEqual('boolean');

            console.log('detected Webkit ' + webkitVersion.join('.') + (webkitVersion.isNightly ? ' (Nightly)' : ''));
        }
    });

    it('detects Internet Explorer', function() {
        var isInternetExplorer = FeatureDetection.isInternetExplorer();
        expect(typeof isInternetExplorer).toEqual('boolean');

        if (isInternetExplorer) {
            var internetExplorerVersion = FeatureDetection.internetExplorerVersion();
            checkVersionArray(internetExplorerVersion);

            console.log('detected Internet Explorer ' + internetExplorerVersion.join('.'));
        }
    });

    it('detects Edge', function() {
        var isEdge = FeatureDetection.isEdge();
        expect(typeof isEdge).toEqual('boolean');

        if (isEdge) {
            var edgeVersion = FeatureDetection.edgeVersion();
            checkVersionArray(edgeVersion);

            console.log('detected Edge ' + edgeVersion.join('.'));
        }
    });

    it('detects Firefox', function() {
        var isFirefox = FeatureDetection.isFirefox();
        expect(typeof isFirefox).toEqual('boolean');

        if (isFirefox) {
            var firefoxVersion = FeatureDetection.firefoxVersion();

            checkVersionArray(firefoxVersion);

            console.log('detected Firefox ' + firefoxVersion.join('.'));
        }
    });

    it('detects imageRendering support', function() {
        var supportsImageRenderingPixelated = FeatureDetection.supportsImageRenderingPixelated();
        expect(typeof supportsImageRenderingPixelated).toEqual('boolean');
        if (supportsImageRenderingPixelated) {
            expect(FeatureDetection.imageRenderingValue()).toBeDefined();
        } else {
            expect(FeatureDetection.imageRenderingValue()).not.toBeDefined();
        }
    });

    it('detects WebP support', function() {
        return FeatureDetection.supportsWebP()
            .then(function(supportsWebP) {
                expect(typeof supportsWebP).toEqual('boolean');
                expect(FeatureDetection.supportsWebPSync()).toEqual(supportsWebP);
            });
    });

    it('detects fetch API support', function() {
        var supportsFetchApi = FeatureDetection.supportsFetchApi();
        expect(typeof supportsFetchApi).toEqual('boolean');
    });

    it('detects createImageBitmap support', function() {
        var supportsCreateImageBitmap = FeatureDetection.supportsCreateImageBitmap();
        expect(typeof supportsCreateImageBitmap).toEqual('boolean');
    });

    it('detects ImageBitmapOptions support', function() {
        if (FeatureDetection.supportsCreateImageBitmap()) {
            expect(FeatureDetection.supportsImageBitmapOptionsSync()).not.toBeDefined();
        }

        return FeatureDetection.supportsImageBitmapOptions()
            .then(function(supportsImageBitmapOptions) {
                expect(typeof supportsImageBitmapOptions).toEqual('boolean');
                expect(FeatureDetection.supportsImageBitmapOptionsSync()).toEqual(supportsImageBitmapOptions);
            });
    });
});

@@ -4858,168 +4858,8 @@
 ) %7B%0A
-        if (FeatureDetection.supportsCreateImageBitmap()) %7B%0A            expect(FeatureDetection.supportsImageBitmapOptionsSync()).not.toBeDefined();%0A        %7D%0A%0A
     

Make ImageBitmapOptions spec more robust