From 3482fb1291207b23f23e5de600c8eeaa611205da Mon Sep 17 00:00:00 2001 From: Chirayu Krishnappa Date: Wed, 1 Oct 2014 16:57:38 -0700 Subject: [PATCH] feat(facade/lang): support int --- modules/facade/src/lang.dart | 2 +- modules/facade/src/lang.es6 | 19 ++++++++++++------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/modules/facade/src/lang.dart b/modules/facade/src/lang.dart index 82649964ec..6c00582265 100644 --- a/modules/facade/src/lang.dart +++ b/modules/facade/src/lang.dart @@ -1,7 +1,7 @@ library angular.core.facade.async; export 'dart:async' show Future; -export 'dart:core' show Type; +export 'dart:core' show Type, int; class FIELD { const constructor(this.definition); diff --git a/modules/facade/src/lang.es6 b/modules/facade/src/lang.es6 index af42a1bf82..3adf91399d 100644 --- a/modules/facade/src/lang.es6 +++ b/modules/facade/src/lang.es6 @@ -13,11 +13,11 @@ export class IMPLEMENTS {} export class StringWrapper { - static fromCharCode(code:number/*int*/) { + static fromCharCode(code:int) { return String.fromCharCode(code); } - static charCodeAt(s:string, index:number/*int*/) { + static charCodeAt(s:string, index:int) { return s.charCodeAt(index); } } @@ -37,16 +37,16 @@ export class StringJoiner { } export class NumberWrapper { - static parseIntAutoRadix(text:string):number/*int*/ { - var result:number/*int*/ = parseInt(text); + static parseIntAutoRadix(text:string):int { + var result:int = parseInt(text); if (isNaN(result)) { throw new Error("Invalid integer literal when parsing " + text); } return result; } - static parseInt(text:string, radix:number/*int*/):number/*int*/ { - var result:number/*int*/ = parseInt(text, radix); + static parseInt(text:string, radix:int):int { + var result:int = parseInt(text, radix); if (isNaN(result)) { throw new Error("Invalid integer literal when parsing " + text + " in base " + radix); } @@ -54,7 +54,12 @@ export class NumberWrapper { } // TODO: NaN is a valid literal but is returned by parseFloat to indicate an error. - static parseFloat(text:string):number/*int*/ { + static parseFloat(text:string):number { return parseFloat(text); } } + +export function int() {}; +int.assert = function(value) { + return value == null || typeof value == 'number' && value === Math.floor(value); +}