diff --git a/packages/core/debugger/InspectorBackendCommands.ios.ts b/packages/core/debugger/InspectorBackendCommands.ios.ts
index 6fde5b794..2f3c070c6 100644
--- a/packages/core/debugger/InspectorBackendCommands.ios.ts
+++ b/packages/core/debugger/InspectorBackendCommands.ios.ts
@@ -50,6 +50,7 @@ export namespace HeapDomain {
// Returns the strongly referenced Runtime.RemoteObject for a Heap.HeapObjectId.
getRemoteObject(params: GetRemoteObjectMethodArguments): { result: RuntimeDomain.RemoteObject };
}
+ @NativeClass()
export class HeapFrontend {
// Information about the garbage collection.
garbageCollected(collection: GarbageCollection): void {
@@ -325,6 +326,7 @@ export namespace DebuggerDomain {
// Sets overlay message.
setOverlayMessage(params: SetOverlayMessageMethodArguments): void;
}
+ @NativeClass()
export class DebuggerFrontend {
// Called when global has been cleared and debugger client should reset its state. Happens upon navigation or reload.
globalObjectCleared(): void {
@@ -758,6 +760,7 @@ export namespace RuntimeDomain {
// Returns a list of basic blocks for the given sourceID with information about their text ranges and whether or not they have executed.
getBasicBlocks(params: GetBasicBlocksMethodArguments): { basicBlocks: BasicBlock[] };
}
+ @NativeClass()
export class RuntimeFrontend {
// Issued when new execution context is created.
executionContextCreated(context: ExecutionContextDescription): void {
@@ -832,6 +835,7 @@ export namespace ConsoleDomain {
// Enables console to refer to the node with given id via $0 (see Command Line API for more details).
addInspectedNode(params: AddInspectedNodeMethodArguments): void;
}
+ @NativeClass()
export class ConsoleFrontend {
// Issued when new console message is added.
messageAdded(message: ConsoleMessage): void {
@@ -1130,6 +1134,7 @@ export namespace PageDomain {
// Grab an archive of the page.
archive(): { data: string };
}
+ @NativeClass()
export class PageFrontend {
domContentEventFired(timestamp: number): void {
__inspectorSendEvent(
@@ -1377,6 +1382,7 @@ export namespace NetworkDomain {
// Loads a resource in the context of a frame on the inspected page without cross origin checks.
loadResource(params: LoadResourceMethodArguments): { content: string; mimeType: string; status: number };
}
+ @NativeClass()
export class NetworkFrontend {
// Fired when page is about to send HTTP request.
requestWillBeSent(requestId: RequestId, frameId: FrameId, loaderId: LoaderId, documentURL: string, request: Request, timestamp: Timestamp, initiator: Initiator, redirectResponse?: Response, type?: PageDomain.ResourceType): void {
@@ -1750,6 +1756,7 @@ export namespace DOMDomain {
// Resolves JavaScript node object for given node id.
resolveNode(params: ResolveNodeMethodArguments): { object: RuntimeDomain.RemoteObject };
}
+ @NativeClass()
export class DOMFrontend {
// Fired when Document
has been totally updated. Node ids are no longer valid.
documentUpdated(): void {
@@ -2133,6 +2140,7 @@ export namespace CSSDomain {
// Returns the current textual content and the URL for a stylesheet.
getStyleSheetText(params: GetStyleSheetTextMethodArguments): { text: string };
}
+ @NativeClass()
export class CSSFrontend {
// Fires whenever a MediaQuery result changes (for example, after a browser window has been resized.) The current implementation considers only viewport-dependent media features.
mediaQueryResultChanged(): void {
diff --git a/packages/core/debugger/devtools-elements.common.ts b/packages/core/debugger/devtools-elements.common.ts
index c1e9f00b7..9ded50a01 100644
--- a/packages/core/debugger/devtools-elements.common.ts
+++ b/packages/core/debugger/devtools-elements.common.ts
@@ -1,5 +1,5 @@
// Types
-import { ViewBase } from '../ui/core/view-base';
+import type { ViewBase } from '../ui/core/view-base';
//Requires
import { getNodeById } from './dom-node';
diff --git a/packages/core/debugger/dom-node.d.ts b/packages/core/debugger/dom-node.d.ts
index dbbe4e070..39fe817d2 100644
--- a/packages/core/debugger/dom-node.d.ts
+++ b/packages/core/debugger/dom-node.d.ts
@@ -1,5 +1,5 @@
-import { ViewBase } from '../ui/core/view-base';
-import { CSSComputedStyleProperty } from './css-agent';
+import type { ViewBase } from '../ui/core/view-base';
+import type { CSSComputedStyleProperty } from './css-agent';
export declare function getNodeById(id: number): DOMNode;
declare class WeakRef {
constructor(obj: T);
diff --git a/packages/core/debugger/dom-node.ts b/packages/core/debugger/dom-node.ts
index 6c167c775..6ad46fcd1 100644
--- a/packages/core/debugger/dom-node.ts
+++ b/packages/core/debugger/dom-node.ts
@@ -2,7 +2,7 @@ import { CSSComputedStyleProperty } from './css-agent';
import { InspectorEvents } from './devtools-elements-interfaces';
// Needed for typings only
-import { ViewBase } from '../ui/core/view-base';
+import type { ViewBase } from '../ui/core/view-base';
const registeredDomNodes = {};
const ELEMENT_NODE_TYPE = 1;
diff --git a/packages/core/debugger/tsconfig.debugger.json b/packages/core/debugger/tsconfig.debugger.json
new file mode 100644
index 000000000..5fd9d166f
--- /dev/null
+++ b/packages/core/debugger/tsconfig.debugger.json
@@ -0,0 +1,19 @@
+{
+ "compilerOptions": {
+ "outDir": "../../../dist/packages/core/debugger",
+ "rootDirs": ["."],
+ "module": "commonjs",
+ "target": "es5",
+ "moduleResolution": "node",
+ "declaration": false,
+ "experimentalDecorators": true,
+ "emitDecoratorMetadata": true,
+ "noEmitHelpers": false,
+ "noEmitOnError": true,
+ "removeComments": true,
+ "skipLibCheck": true,
+ "baseUrl": "."
+ },
+ "include": ["../references.d.ts", "./devtools-elements-interfaces.ts"],
+ "files": ["index.ts", "devtools-elements.common.ts", "devtools-elements.android.ts", "devtools-elements.ios.ts", "dom-node.ts", "InspectorBackendCommands.ios.ts", "webinspector-css.ios.ts", "webinspector-dom.ios.ts", "webinspector-network.ios.ts"]
+}
diff --git a/packages/core/debugger/webinspector-css.ios.ts b/packages/core/debugger/webinspector-css.ios.ts
index bd02bde6b..08e8d5cfc 100644
--- a/packages/core/debugger/webinspector-css.ios.ts
+++ b/packages/core/debugger/webinspector-css.ios.ts
@@ -5,6 +5,7 @@ import * as debuggerDomains from '.';
import { attachCSSInspectorCommandCallbacks } from './devtools-elements';
+@NativeClass()
@inspectorCommands.DomainDispatcher('CSS')
export class CSSDomainDebugger implements inspectorCommandTypes.CSSDomain.CSSDomainDispatcher {
private _enabled: boolean;
diff --git a/packages/core/debugger/webinspector-dom.ios.ts b/packages/core/debugger/webinspector-dom.ios.ts
index 302d67a3b..ab0123211 100644
--- a/packages/core/debugger/webinspector-dom.ios.ts
+++ b/packages/core/debugger/webinspector-dom.ios.ts
@@ -5,6 +5,7 @@ import * as debuggerDomains from '.';
import { attachDOMInspectorEventCallbacks, attachDOMInspectorCommandCallbacks } from './devtools-elements';
+@NativeClass()
@inspectorCommands.DomainDispatcher('DOM')
export class DOMDomainDebugger implements inspectorCommandTypes.DOMDomain.DOMDomainDispatcher {
private _enabled: boolean;
diff --git a/packages/core/debugger/webinspector-network.ios.ts b/packages/core/debugger/webinspector-network.ios.ts
index 21d27bce9..653cee8fb 100644
--- a/packages/core/debugger/webinspector-network.ios.ts
+++ b/packages/core/debugger/webinspector-network.ios.ts
@@ -31,6 +31,7 @@ const documentTypeByMimeType = {
'text/typescript': 'Script',
};
+@NativeClass()
export class Request {
private _resourceType: string;
private _data: any;
@@ -118,6 +119,7 @@ export class Request {
}
}
+@NativeClass()
@inspectorCommands.DomainDispatcher('Network')
export class NetworkDomainDebugger implements inspectorCommandTypes.NetworkDomain.NetworkDomainDispatcher {
private _enabled: boolean;
diff --git a/packages/core/inspector_modules.ios.ts b/packages/core/inspector_modules.ios.ts
index b228c93d4..cf4c0bddb 100644
--- a/packages/core/inspector_modules.ios.ts
+++ b/packages/core/inspector_modules.ios.ts
@@ -1,6 +1,38 @@
console.log('Loading inspector modules...');
-import './globals';
-require('./debugger/webinspector-network');
-require('./debugger/webinspector-dom');
-require('./debugger/webinspector-css');
+// ts-helpers
+// Required by V8 snapshot generator
+if (!(global).__extends) {
+ (global).__extends = function (d, b) {
+ for (let p in b) {
+ if (b.hasOwnProperty(p)) {
+ d[p] = b[p];
+ }
+ }
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : ((__.prototype = b.prototype), new __());
+ };
+}
+
+import * as tslib from 'tslib';
+
+// Bind the tslib helpers to global scope.
+// This is needed when we don't use importHelpers, which
+// breaks extending native-classes
+for (const fnName of Object.keys(tslib)) {
+ if (typeof tslib[fnName] !== 'function') {
+ continue;
+ }
+
+ if (fnName in global) {
+ // Don't override globals that are already defined (ex. __extends)
+ continue;
+ }
+
+ global[fnName] = tslib[fnName];
+}
+import './debugger/webinspector-network';
+import './debugger/webinspector-dom';
+import './debugger/webinspector-css';
console.log('Finished loading inspector modules.');