mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-05 13:26:48 +08:00
Merge pull request #806 from NativeScript/console.dump-for-ios
console.dump implemented for ios
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
import definition = require("console");
|
import definition = require("console");
|
||||||
import trace = require("trace");
|
import trace = require("trace");
|
||||||
|
import platform = require("platform");
|
||||||
|
|
||||||
export class Console implements definition.Console {
|
export class Console implements definition.Console {
|
||||||
private TAG: string = "JS";
|
private TAG: string = "JS";
|
||||||
@@ -249,29 +250,6 @@ export class Console implements definition.Console {
|
|||||||
if (!test) {
|
if (!test) {
|
||||||
Array.prototype.shift.apply(arguments);
|
Array.prototype.shift.apply(arguments);
|
||||||
this.error(this.formatParams.apply(this, arguments));
|
this.error(this.formatParams.apply(this, arguments));
|
||||||
|
|
||||||
// duplicating trace code here because android version shows only 2 frames and if we call trace()
|
|
||||||
// this would be assert() and trace() which leaves all important stack frames out of our view
|
|
||||||
|
|
||||||
//this._nativeClass.log('=== trace(): JS stack ===')
|
|
||||||
//if (i.TargetOS.Android == targetOS) {
|
|
||||||
// var e = <any>new Error('console.trace()');
|
|
||||||
// this.log(e.stack);
|
|
||||||
//}
|
|
||||||
//else if (i.TargetOS.iOS == targetOS) {
|
|
||||||
// var callstack = [];
|
|
||||||
// var currentFunction = arguments.callee.caller;
|
|
||||||
// while (currentFunction) {
|
|
||||||
// var fn = currentFunction.toString();
|
|
||||||
// var fname = fn.substring(fn.indexOf('function') + 8, fn.indexOf('{')).trim() || 'anonymous';
|
|
||||||
// if ('()' === fname) {
|
|
||||||
// fname = 'anonymous';
|
|
||||||
// }
|
|
||||||
// callstack.push(fname);
|
|
||||||
// currentFunction = currentFunction.caller;
|
|
||||||
// this.log(callstack.join('\n'));
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -380,7 +358,13 @@ export class Console implements definition.Console {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public dump(obj: any): void {
|
public dump(obj: any): void {
|
||||||
this.log(this.createDump(obj));
|
var dump = this.createDump(obj);
|
||||||
|
|
||||||
|
if (platform.device.os === platform.platformNames.android) {
|
||||||
|
this.log(dump);
|
||||||
|
} else if (platform.device.os === platform.platformNames.ios) {
|
||||||
|
console.log(dump);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public dir = this.dump;
|
public dir = this.dump;
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ global.moduleMerge = function (sourceExports: any, destExports: any) {
|
|||||||
destExports[key] = sourceExports[key];
|
destExports[key] = sourceExports[key];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
import platform = require("platform");
|
||||||
import types = require("utils/types");
|
import types = require("utils/types");
|
||||||
import timer = require("timer");
|
import timer = require("timer");
|
||||||
import consoleModule = require("console");
|
import consoleModule = require("console");
|
||||||
@@ -30,9 +30,12 @@ if (typeof global.__decorate !== "function") {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Temporary workaround for console in iOS. We will use runtime console instead our implementation.
|
var c = new consoleModule.Console();
|
||||||
if (types.isUndefined(global.NSObject)) {
|
|
||||||
global.console = new consoleModule.Console();
|
if (platform.device.os === platform.platformNames.android) {
|
||||||
|
global.console = c;
|
||||||
|
} else if (platform.device.os === platform.platformNames.ios) {
|
||||||
|
global.console.dump = function (args) { c.dump(args); };
|
||||||
}
|
}
|
||||||
|
|
||||||
global.XMLHttpRequest = xhr.XMLHttpRequest;
|
global.XMLHttpRequest = xhr.XMLHttpRequest;
|
||||||
|
|||||||
Reference in New Issue
Block a user