123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- define([
- 'require', './kernel-checks', './brikz', './kernel-fundamentals', './kernel-language'
- ], function (require, _, Brikz, Fundamentals, 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;
- });
- });
- };
- }
-
- function AMDBrik (brikz, st) {
- st.amdRequire = require;
- st.defaultTransportType = st.defaultTransportType || "amd";
- st.defaultAmdNamespace = st.defaultAmdNamespace || "amber/core";
- }
- var api = {};
- var brikz = Brikz(api);
- Object.defineProperty(brikz, "commonGlobals", {value: globals});
- Object.defineProperty(brikz, "commonEmit", {value: emit});
- Fundamentals.configure(brikz);
- LanguageFactory(Fundamentals.specialConstructors, emit).configure(brikz);
- brikz.stInit = SmalltalkInitBrik;
- brikz.amd = AMDBrik;
- 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
- };
- });
|