diff --git a/camera/camera.android.ts b/camera/camera.android.ts index f8acf8207..0f1744411 100644 --- a/camera/camera.android.ts +++ b/camera/camera.android.ts @@ -2,6 +2,7 @@ import appModule = require("application"); import fileSystem = require("file-system"); import utils = require("utils/utils"); +import types = require("utils/types"); import definition = require("camera"); import common = require("./camera-common"); @@ -14,7 +15,7 @@ export var takePicture = function (options?: definition.CameraOptions): Promise< if (options) { var reqWidth = options.width ? options.width * density : 0; var reqHeight = options.height ? options.height * density : reqWidth; - var shouldKeepAspectRatio = (options.keepAspectRatio === null || options.keepAspectRatio === undefined) ? true : options.keepAspectRatio; + var shouldKeepAspectRatio = types.isNullOrUndefined(options.keepAspectRatio) ? true : options.keepAspectRatio; } var takePictureIntent = new android.content.Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); var dateStamp = createDateTimeStamp(); diff --git a/camera/camera.ios.ts b/camera/camera.ios.ts index 30b7b3376..e282166f0 100644 --- a/camera/camera.ios.ts +++ b/camera/camera.ios.ts @@ -2,6 +2,7 @@ import frame = require("ui/frame"); import definition = require("camera"); import common = require("./camera-common"); +import types = require("utils/types"); class UIImagePickerControllerDelegateImpl extends NSObject implements UIImagePickerControllerDelegate { public static ObjCProtocols = [UIImagePickerControllerDelegate]; @@ -26,7 +27,7 @@ class UIImagePickerControllerDelegateImpl extends NSObject implements UIImagePic if (options) { this._width = options.width; this._height = options.height; - this._keepAspectRatio = (options.keepAspectRatio === null || options.keepAspectRatio === undefined) ? true : options.keepAspectRatio; + this._keepAspectRatio = types.isNullOrUndefined(options.keepAspectRatio) ? true : options.keepAspectRatio; } return this; } @@ -76,7 +77,7 @@ export var takePicture = function (options?: definition.CameraOptions): Promise< if (options) { reqWidth = options.width || 0; reqHeight = options.height || reqWidth; - keepAspectRatio = (options.keepAspectRatio === null || options.keepAspectRatio === undefined) ? true : options.keepAspectRatio; + keepAspectRatio = types.isNullOrUndefined(options.keepAspectRatio) ? true : options.keepAspectRatio; } if (reqWidth && reqHeight) { listener = UIImagePickerControllerDelegateImpl.new().initWithCallbackAndOptions(resolve, { width: reqWidth, height: reqHeight, keepAspectRatio: keepAspectRatio }); diff --git a/ui/core/bindable.ts b/ui/core/bindable.ts index 1ddfbf55a..58bb9cb84 100644 --- a/ui/core/bindable.ts +++ b/ui/core/bindable.ts @@ -44,7 +44,7 @@ export class Bindable extends dependencyObservable.DependencyObservable implemen if (!bindingSource) { bindingSource = this.bindingContext; } - if (bindingSource) { + if (!types.isNullOrUndefined(bindingSource)) { binding.bind(bindingSource); } } @@ -109,7 +109,7 @@ export class Bindable extends dependencyObservable.DependencyObservable implemen " targetProperty: " + binding.options.targetProperty + " to the changed context: " + newValue, trace.categories.Binding); binding.unbind(); - if (newValue) { + if (!types.isNullOrUndefined(newValue)) { binding.bind(newValue); } } @@ -134,7 +134,7 @@ export class Binding { } public bind(obj: Object) { - if (!obj) { + if (types.isNullOrUndefined(obj)) { throw new Error("Expected valid object reference as a source in the Binding.bind method."); } @@ -344,7 +344,7 @@ export class Binding { currentObject = currentObject[properties[i]]; } - if (currentObject !== undefined && currentObject !== null) { + if (!types.isNullOrUndefined(currentObject)) { options = { instance: new WeakRef(currentObject), property: properties[properties.length - 1] diff --git a/ui/tab-view/tab-view.android.ts b/ui/tab-view/tab-view.android.ts index 47c3fecae..17aa0311c 100644 --- a/ui/tab-view/tab-view.android.ts +++ b/ui/tab-view/tab-view.android.ts @@ -4,6 +4,7 @@ import dependencyObservable = require("ui/core/dependency-observable"); import view = require("ui/core/view"); import trace = require("trace"); import imageSource = require("image-source"); +import types = require("utils/types"); var VIEWS_STATES = "_viewStates"; @@ -436,7 +437,7 @@ export class TabView extends common.TabView { } private _setNativeSelectedIndex(index: number) { - if (index === undefined || index === null) { + if (types.isNullOrUndefined(index)) { return; } diff --git a/ui/tab-view/tab-view.ios.ts b/ui/tab-view/tab-view.ios.ts index 4e0071b36..360ece8e0 100644 --- a/ui/tab-view/tab-view.ios.ts +++ b/ui/tab-view/tab-view.ios.ts @@ -6,6 +6,7 @@ import trace = require("trace"); import utils = require("utils/utils"); import view = require("ui/core/view"); import imageSource = require("image-source"); +import types = require("utils/types"); // merge the exports of the common file with the exports of this file declare var exports; @@ -206,7 +207,7 @@ export class TabView extends common.TabView { var newIndex = data.newValue; trace.write("TabView._onSelectedIndexPropertyChangedSetNativeValue(" + newIndex + ")", trace.categories.Debug); - if (newIndex === undefined || newIndex === null) { + if (types.isNullOrUndefined(newIndex)) { return; } diff --git a/utils/types.d.ts b/utils/types.d.ts index 18fdb6408..49e7b9206 100644 --- a/utils/types.d.ts +++ b/utils/types.d.ts @@ -28,12 +28,19 @@ export function isUndefined(value: any): boolean; /** - * A function that checks if something is defined (not null and not undefined). + * A function that checks if something is defined (not undefined). * @param value The value which will be checked. * Returns true if value is defined. */ export function isDefined(value: any): boolean; + /** + * A function that checks if something is not defined (null or undefined). + * @param value The value which will be checked. + * Returns true if value is null or undefined. + */ + export function isNullOrUndefined(value: any): boolean; + /** * A function that checks if something is a valid function. * @param value The value which will be checked. diff --git a/utils/types.ts b/utils/types.ts index 3ad4ea32c..16a1d0c06 100644 --- a/utils/types.ts +++ b/utils/types.ts @@ -21,6 +21,10 @@ export function isDefined(value: any): boolean { return typeof value !== "undefined"; } +export function isNullOrUndefined(value: any): boolean { + return (typeof value === "undefined") || (value === null); +} + export function verifyCallback(value: any) { if (value && !isFunction(value)) { throw new TypeError("Callback must be a valid function.");