Skip to content

Commit 08200d4

Browse files
committed
Snapshot
1 parent 536da68 commit 08200d4

File tree

3 files changed

+158
-30
lines changed

3 files changed

+158
-30
lines changed

ng-sample/app/package.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "tns-template-hello-world",
3-
"main": "starter.js",
3+
"main": "snapshot-starter.js",
44
"version": "1.2.0",
55
"author": "Telerik <support@telerik.com>",
66
"description": "Nativescript hello-world project template",
@@ -21,5 +21,10 @@
2121
"bugs": {
2222
"url": "https://github.com/NativeScript/template-hello-world/issues"
2323
},
24+
"android": {
25+
"v8Flags": "--expose_gc",
26+
"heapSnapshot": "true",
27+
"heapSnapshotScript": "snapshot.js"
28+
},
2429
"homepage": "https://github.com/NativeScript/template-hello-world"
2530
}

ng-sample/app/snapshot-starter.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
android.util.Log.v("SNAPSHOT", "RunApp...");
2+
global.RunApp();

ng-sample/app/snapshot.js

Lines changed: 150 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,16 @@
1-
module.exports =
1+
var global = this;
2+
global.__snapshot = true;
3+
4+
var __trace = function(message) {
5+
global.android && android.util.Log.v("SNAPSHOT", message);
6+
};
7+
8+
global.__extends = (this && this.__extends) || function (d, b) {
9+
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
10+
function __() { this.constructor = d; }
11+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
12+
};
13+
214
/******/ (function(modules) { // webpackBootstrap
315
/******/ // The module cache
416
/******/ var installedModules = {};
@@ -7,8 +19,16 @@ module.exports =
719
/******/ function __webpack_require__(moduleId) {
820

921
/******/ // Check if module is in cache
10-
/******/ if(installedModules[moduleId])
11-
/******/ return installedModules[moduleId].exports;
22+
/******/ if(installedModules[moduleId]) {
23+
/******/ var result = installedModules[moduleId].exports;
24+
25+
if (result && result.evalLazy && !__snapshot) {
26+
__trace("Eval lazy: " + moduleId);
27+
result.evalLazy();
28+
delete result.evalLazy;
29+
}
30+
return result
31+
}
1232

1333
/******/ // Create a new module (and put it into the cache)
1434
/******/ var module = installedModules[moduleId] = {
@@ -22,11 +42,30 @@ module.exports =
2242

2343
/******/ // Flag the module as loaded
2444
/******/ module.loaded = true;
45+
46+
var result = module.exports;
47+
if (result && result.evalLazy && !__snapshot) {
48+
__trace("Eval lazy: " + moduleId);
49+
result.evalLazy();
50+
delete result.evalLazy;
51+
}
2552

2653
/******/ // Return the exports of the module
2754
/******/ return module.exports;
2855
/******/ }
2956

57+
global.__requireOverride = function(moduleId) {
58+
__trace("Require " + moduleId);
59+
60+
if (moduleId == "application") {
61+
return __webpack_require__(15);
62+
}
63+
if (moduleId == "ui/frame") {
64+
return __webpack_require__(9);
65+
}
66+
67+
android.util.Log.v("SNAPSHOT", "Not found " + moduleId);
68+
};
3069

3170
/******/ // expose the modules object (__webpack_modules__)
3271
/******/ __webpack_require__.m = modules;
@@ -38,7 +77,80 @@ module.exports =
3877
/******/ __webpack_require__.p = "";
3978

4079
/******/ // Load entry module and return exports
41-
/******/ return __webpack_require__(0);
80+
/******/ global.RunApp = function() { return __webpack_require__(0); };
81+
82+
__webpack_require__(/*! ./nativescript-angular/application */ 2);
83+
var lang_1 = __webpack_require__(/*! angular2/src/facade/lang */ 105);
84+
var core_1 = __webpack_require__(/*! angular2/core */ 106);
85+
var di_1 = __webpack_require__(/*! angular2/src/core/di */ 109);
86+
var dom_adapter_1 = __webpack_require__(/*! angular2/src/platform/dom/dom_adapter */ 216);
87+
var api_1 = __webpack_require__(/*! angular2/src/core/render/api */ 195);
88+
var renderer_1 = __webpack_require__(/*! ./renderer */ 217);
89+
var dom_adapter_2 = __webpack_require__(/*! ./dom_adapter */ 273);
90+
var xhr_1 = __webpack_require__(/*! angular2/src/compiler/xhr */ 302);
91+
var xhr_2 = __webpack_require__(/*! ./xhr */ 303);
92+
var exception_handler_1 = __webpack_require__(/*! angular2/src/facade/exception_handler */ 119);
93+
var application_common_providers_1 = __webpack_require__(/*! angular2/src/core/application_common_providers */ 213);
94+
var compiler_1 = __webpack_require__(/*! angular2/src/compiler/compiler */ 304);
95+
var platform_common_providers_1 = __webpack_require__(/*! angular2/src/core/platform_common_providers */ 212);
96+
var common_1 = __webpack_require__(/*! angular2/common */ 333);
97+
var ns_directives_1 = __webpack_require__(/*! ./directives/ns-directives */ 381);
98+
var page_1 = __webpack_require__(/*! ui/page */ 66);
99+
var text_view_1 = __webpack_require__(/*! ui/text-view */ 265);
100+
var application = __webpack_require__(/*! application */ 15);
101+
var platform_providers_1 = __webpack_require__(/*! ./platform-providers */ 218);
102+
var _platform = null;
103+
dom_adapter_2.NativeScriptDomAdapter.makeCurrent();
104+
var platformProviders = [
105+
platform_common_providers_1.PLATFORM_COMMON_PROVIDERS,
106+
];
107+
var defaultAppProviders = [
108+
application_common_providers_1.APPLICATION_COMMON_PROVIDERS,
109+
common_1.FORM_PROVIDERS,
110+
di_1.provide(core_1.PLATFORM_PIPES, { useValue: common_1.COMMON_PIPES, multi: true }),
111+
di_1.provide(core_1.PLATFORM_DIRECTIVES, { useValue: common_1.COMMON_DIRECTIVES, multi: true }),
112+
di_1.provide(core_1.PLATFORM_DIRECTIVES, { useValue: ns_directives_1.NS_DIRECTIVES, multi: true }),
113+
di_1.provide(exception_handler_1.ExceptionHandler, { useFactory: function () { return new exception_handler_1.ExceptionHandler(dom_adapter_1.DOM, true); }, deps: [] }),
114+
platform_providers_1.defaultPageProvider,
115+
renderer_1.NativeScriptRootRenderer,
116+
di_1.provide(api_1.RootRenderer, { useClass: renderer_1.NativeScriptRootRenderer }),
117+
renderer_1.NativeScriptRenderer,
118+
di_1.provide(api_1.Renderer, { useClass: renderer_1.NativeScriptRenderer }),
119+
compiler_1.COMPILER_PROVIDERS,
120+
di_1.provide(xhr_1.XHR, { useClass: xhr_2.FileSystemXHR }),
121+
];
122+
var appProviders = [defaultAppProviders];
123+
if (!_platform) {
124+
_platform = core_1.platform(platformProviders);
125+
}
126+
127+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
128+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
129+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
130+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
131+
return c > 3 && r && Object.defineProperty(target, key, r), r;
132+
};
133+
var __metadata = (this && this.__metadata) || function (k, v) {
134+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
135+
};
136+
var core_1 = __webpack_require__(/*! angular2/core */ 106);
137+
var AppComponent = (function () {
138+
function AppComponent() {
139+
this.message = "Hello, Angular!";
140+
}
141+
AppComponent = __decorate([
142+
core_1.Component({
143+
selector: "my-app",
144+
template: "",
145+
}),
146+
__metadata('design:paramtypes', [])
147+
], AppComponent);
148+
return AppComponent;
149+
}());
150+
151+
_platform.application(appProviders); //.bootstrap(AppComponent);
152+
153+
__snapshot = false;
42154
/******/ })
43155
/************************************************************************/
44156
/******/ ([
@@ -54,12 +166,13 @@ module.exports =
54166
(global).timers = new Map();
55167
}
56168
function time() {
57-
if ((global).android) {
58-
return java.lang.System.nanoTime() / 1000000; // 1 ms = 1000000 ns
59-
}
60-
else {
61-
return CACurrentMediaTime() * 1000;
62-
}
169+
return +new Date();
170+
// if ((global).android) {
171+
// return java.lang.System.nanoTime() / 1000000; // 1 ms = 1000000 ns
172+
// }
173+
// else {
174+
// return CACurrentMediaTime() * 1000;
175+
// }
63176
}
64177
var timerEntry = {
65178
totalTime: 0,
@@ -143,6 +256,7 @@ module.exports =
143256
var text_view_1 = __webpack_require__(/*! ui/text-view */ 265);
144257
var application = __webpack_require__(/*! application */ 15);
145258
var platform_providers_1 = __webpack_require__(/*! ./platform-providers */ 218);
259+
core_1.enableProdMode();
146260
var _platform = null;
147261
function bootstrap(appComponentType, customProviders) {
148262
if (customProviders === void 0) { customProviders = null; }
@@ -1313,7 +1427,10 @@ module.exports =
13131427
animationFixed = android.os.Build.VERSION.SDK_INT >= 19 ? 1 : -1;
13141428
}
13151429
}
1316-
var FragmentClass = (function (_super) {
1430+
var FragmentClass;
1431+
var NativeScriptActivity;
1432+
exports.evalLazy = function() {
1433+
FragmentClass = (function (_super) {
13171434
__extends(FragmentClass, _super);
13181435
function FragmentClass() {
13191436
_super.call(this);
@@ -1393,7 +1510,7 @@ module.exports =
13931510
], FragmentClass);
13941511
return FragmentClass;
13951512
}(android.app.Fragment));
1396-
var NativeScriptActivity = (function (_super) {
1513+
NativeScriptActivity = (function (_super) {
13971514
__extends(NativeScriptActivity, _super);
13981515
function NativeScriptActivity() {
13991516
_super.call(this);
@@ -1513,6 +1630,7 @@ module.exports =
15131630
], NativeScriptActivity);
15141631
return NativeScriptActivity;
15151632
}(android.app.Activity));
1633+
}
15161634

15171635

15181636
/***/ },
@@ -4685,7 +4803,9 @@ module.exports =
46854803
var observable = __webpack_require__(/*! data/observable */ 17);
46864804
(global).moduleMerge(appModule, exports);
46874805
var typedExports = exports;
4688-
var NativeScriptApplication = (function (_super) {
4806+
var NativeScriptApplication;
4807+
exports.evalLazy = function() {
4808+
NativeScriptApplication = (function (_super) {
46894809
__extends(NativeScriptApplication, _super);
46904810
function NativeScriptApplication() {
46914811
_super.call(this);
@@ -4711,6 +4831,7 @@ module.exports =
47114831
], NativeScriptApplication);
47124832
return NativeScriptApplication;
47134833
}(android.app.Application));
4834+
}
47144835
function initEvents() {
47154836
var lifecycleCallbacks = new android.app.Application.ActivityLifecycleCallbacks({
47164837
onActivityCreated: function (activity, bundle) {
@@ -5652,14 +5773,14 @@ module.exports =
56525773
};
56535774
knownFolders.currentApp = function () {
56545775
if (!_app) {
5655-
var currentDir = (__dirname);
5656-
var tnsModulesIndex = currentDir.indexOf("/tns_modules");
5657-
var appPath = currentDir;
5658-
if (tnsModulesIndex !== -1) {
5659-
appPath = currentDir.substring(0, tnsModulesIndex);
5660-
}
5776+
// var currentDir = __dirname;
5777+
// var tnsModulesIndex = currentDir.indexOf("/tns_modules");
5778+
// var appPath = currentDir;
5779+
// if (tnsModulesIndex !== -1) {
5780+
// appPath = currentDir.substring(0, tnsModulesIndex);
5781+
// }
56615782
_app = new Folder();
5662-
_app[pathProperty] = appPath;
5783+
_app[pathProperty] = getFileAccess().getLogicalRootPath() + '/app';
56635784
_app[isKnownProperty] = true;
56645785
}
56655786
return _app;
@@ -6870,11 +6991,11 @@ module.exports =
68706991
return Animation;
68716992
}(common.Animation));
68726993
exports.Animation = Animation;
6873-
var easeIn = new android.view.animation.AccelerateInterpolator(1);
6874-
var easeOut = new android.view.animation.DecelerateInterpolator(1);
6875-
var easeInOut = new android.view.animation.AccelerateDecelerateInterpolator();
6876-
var linear = new android.view.animation.LinearInterpolator();
6877-
var bounce = new android.view.animation.BounceInterpolator();
6994+
var easeIn; // = new android.view.animation.AccelerateInterpolator(1);
6995+
var easeOut; // = new android.view.animation.DecelerateInterpolator(1);
6996+
var easeInOut; // = new android.view.animation.AccelerateDecelerateInterpolator();
6997+
var linear; //= new android.view.animation.LinearInterpolator();
6998+
var bounce; // = new android.view.animation.BounceInterpolator();
68786999
function _resolveAnimationCurve(curve) {
68797000
switch (curve) {
68807001
case enums.AnimationCurve.easeIn:
@@ -19770,8 +19891,8 @@ module.exports =
1977019891
var platform = __webpack_require__(/*! platform */ 39);
1977119892
var types = __webpack_require__(/*! utils/types */ 13);
1977219893
var trace = __webpack_require__(/*! trace */ 26);
19773-
var _sdkVersion = parseInt(platform.device.sdkVersion);
19774-
var _defaultInterpolator = new android.view.animation.AccelerateDecelerateInterpolator();
19894+
var _sdkVersion; // = parseInt(platform.device.sdkVersion);
19895+
var _defaultInterpolator; // = new android.view.animation.AccelerateDecelerateInterpolator();
1977519896
var ENTER_POPEXIT_TRANSITION = "ENTER_POPEXIT_TRANSITION";
1977619897
var EXIT_POPENTER_TRANSITION = "EXIT_POPENTER_TRANSITION";
1977719898
var COMPLETE_PAGE_ADDITION_WHEN_TRANSITION_ENDS = "COMPLETE_PAGE_ADDITION_WHEN_TRANSITION_ENDS";
@@ -20145,8 +20266,8 @@ module.exports =
2014520266

2014620267
var transition = __webpack_require__(/*! ui/transition */ 84);
2014720268
var platform = __webpack_require__(/*! platform */ 39);
20148-
var screenWidth = platform.screen.mainScreen.widthPixels;
20149-
var screenHeight = platform.screen.mainScreen.heightPixels;
20269+
var screenWidth; // = platform.screen.mainScreen.widthPixels;
20270+
var screenHeight; // = platform.screen.mainScreen.heightPixels;
2015020271
var SlideTransition = (function (_super) {
2015120272
__extends(SlideTransition, _super);
2015220273
function SlideTransition(direction, duration, curve) {

0 commit comments

Comments
 (0)