             dpi = DensityUtil.getRuntimeDPI();
         return values.getSource(dpi);
     }
+	
+	
+	/**
+	 * @private
+	 * Returns true if current Flash Player/Air supports image decoding policy.
+	 */
+	protected function hasImageDecodingPolicy(loaderContext:LoaderContext):Boolean {
+		// true for one it's true for all
+		if (!_haveCachedImageDecodePolicy) {
+			_cachedImageDecodePolicy =  ("imageDecodingPolicy" in loaderContext);
+			_haveCachedImageDecodePolicy = true;
+		}
+		
+		return _cachedImageDecodePolicy;
+	}
 
     /**
      *  @private

        var loader:Loader = new Loader();
        var loaderContext:LoaderContext = new LoaderContext();
		
		if (imageDecodingPolicy in loaderContext)
			loaderContext.imageDecodingPolicy = imageDecodingPolicy;
		
        loadingContent = loader.contentLoaderInfo;
        attachLoadingListeners();

    private var sourceInvalid:Boolean;
    private var loadFailed:Boolean;
	private var dpiScale:Number = 1;
	private var _cachedImageDecodePolicy:Boolean;
	private var _haveCachedImageDecodePolicy:Boolean;
	
	
	/**
	 *  Specifies that the image being loaded will be decoded when needed.
	 * 
	 *  @see flash.system.ImageDecodingPolicy
	 * 
	 *  @langversion 3.0
	 *  @playerversion Flash 10
	 *  @playerversion AIR 1.5
	 *  @productversion Flex 4.11
	 */
	public static const ON_DEMAND:String = "onDemand";

	/**
	 *  Specifies that the image being loaded will be decoded on load.
	 * 
	 *  @see flash.system.ImageDecodingPolicy
	 * 
	 *  @langversion 3.0
	 *  @playerversion Flash 10
	 *  @playerversion AIR 1.5
	 *  @productversion Flex 4.11
	 */
	public static const ON_LOAD:String = "onLoad";

    //----------------------------------
    //  bitmapData
