123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- define([
- 'require', './kernel-checks', './brikz', './kernel-fundamentals', './kernel-language'
- ], function (require, _, Brikz, FundamentalsFactory, LanguageFactory) {
- "use strict";
- var globals = Object.create(global);
- var emit = Object.create(null);
- var runtimeLoadedPromise = new Promise(function (resolve, reject) {
- require(['./kernel-runtime'], resolve, reject);
- });
- function SmalltalkInitBrik (brikz, st) {
- var initialized = false;
- globals.SmalltalkSettings = {};
-
- st.initialize = function () {
- return runtimeLoadedPromise.then(function (RuntimeFactory) {
- if (initialized) return;
- brikz.classes.bootstrapHierarchy(globals.Class);
- RuntimeFactory(globals, emit).configure(brikz);
- return Promise.resolve(brikz.startImage.run())
- .then(function () {
- initialized = true;
- });
- });
- };
- }
- var api = {};
- var brikz = Brikz(api);
- var fundamentals = FundamentalsFactory(globals, emit);
- fundamentals.configure(brikz);
- LanguageFactory(fundamentals.specialConstructors, emit).configure(brikz);
- brikz.stInit = SmalltalkInitBrik;
- brikz();
-
- Object.defineProperty(globals, "CharacterArray", {
- enumerable: true,
- configurable: true,
- get: function () {
- return this.String;
- }
- });
- return {
- api: api,
- nilAsReceiver: brikz.nil.nilAsReceiver,
- nilAsValue: brikz.nil.nilAsValue,
- nilAsClass: brikz.classes.nilAsClass,
- globals: globals,
- asReceiver: brikz.classes.asReceiver
- };
- });
|