Skip to content

Commit 09a3c6c

Browse files
authored
Merge branch 'master' into replace-gapi
2 parents 6ce1f9f + db17a00 commit 09a3c6c

File tree

115 files changed

+2697
-835
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

115 files changed

+2697
-835
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
"flexboxgrid-helpers": "^1.1.3",
5151
"google-oauth-gsi": "^4.0.0",
5252
"hastscript": "^9.0.0",
53-
"js-slang": "^1.0.45",
53+
"js-slang": "^1.0.46",
5454
"js-yaml": "^4.1.0",
5555
"konva": "^9.2.0",
5656
"lodash": "^4.17.21",

src/assets/SA.jpg

28.4 KB
Loading

src/commons/application/ApplicationTypes.ts

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ export interface SALanguage extends Language {
147147
type LanguageFeatures = Partial<{
148148
dataVisualizer: boolean;
149149
substVisualizer: boolean;
150-
envVisualizer: boolean;
150+
cseMachine: boolean;
151151
multiFile: boolean;
152152
repl: boolean;
153153
}>;
@@ -252,8 +252,8 @@ export const sourceLanguages: SALanguage[] = sourceSubLanguages.map(sublang => {
252252
chapter <= Chapter.SOURCE_2 &&
253253
(variant === Variant.DEFAULT || variant === Variant.NATIVE || variant === Variant.TYPED);
254254

255-
// Enable Env Visualizer for Source Chapter 3 and above
256-
supportedFeatures.envVisualizer =
255+
// Enable CSE Machine for Source Chapter 3 and above
256+
supportedFeatures.cseMachine =
257257
chapter >= Chapter.SOURCE_3 && variant !== Variant.CONCURRENT && variant !== Variant.NON_DET;
258258

259259
// Local imports/exports require Source 2+ as Source 1 does not have lists.
@@ -417,10 +417,10 @@ export const defaultWorkspaceManager: WorkspaceManagerState = {
417417
playground: {
418418
...createDefaultWorkspace('playground'),
419419
usingSubst: false,
420-
usingEnv: false,
421-
updateEnv: true,
422-
envSteps: -1,
423-
envStepsTotal: 0,
420+
usingCse: false,
421+
updateCse: true,
422+
currentStep: -1,
423+
stepsTotal: 0,
424424
breakpointSteps: [],
425425
activeEditorTabIndex: 0,
426426
editorTabs: [
@@ -470,10 +470,10 @@ export const defaultWorkspaceManager: WorkspaceManagerState = {
470470
sicp: {
471471
...createDefaultWorkspace('sicp'),
472472
usingSubst: false,
473-
usingEnv: false,
474-
updateEnv: true,
475-
envSteps: -1,
476-
envStepsTotal: 0,
473+
usingCse: false,
474+
updateCse: true,
475+
currentStep: -1,
476+
stepsTotal: 0,
477477
breakpointSteps: [],
478478
activeEditorTabIndex: 0,
479479
editorTabs: [

src/commons/application/__tests__/ApplicationTypes.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ describe('getLanguageConfig', () => {
1616
});
1717

1818
test('throws an error for an invalid chapter/variant combination', () => {
19-
expect(() => getLanguageConfig(5, Variant.DEFAULT)).toThrowErrorMatchingSnapshot();
19+
expect(() => getLanguageConfig(5 as Chapter, Variant.DEFAULT)).toThrowErrorMatchingSnapshot();
2020
});
2121
});
2222

@@ -50,12 +50,12 @@ describe('available Source language configurations', () => {
5050
{
5151
chapter: Chapter.SOURCE_3,
5252
variant: Variant.DEFAULT,
53-
supports: { dataVisualizer: true, envVisualizer: true }
53+
supports: { dataVisualizer: true, cseMachine: true }
5454
},
5555
{
5656
chapter: Chapter.SOURCE_3,
5757
variant: Variant.TYPED,
58-
supports: { dataVisualizer: true, envVisualizer: true }
58+
supports: { dataVisualizer: true, cseMachine: true }
5959
},
6060
{
6161
chapter: Chapter.SOURCE_3,
@@ -66,33 +66,33 @@ describe('available Source language configurations', () => {
6666
{
6767
chapter: Chapter.SOURCE_3,
6868
variant: Variant.NATIVE,
69-
supports: { dataVisualizer: true, envVisualizer: true }
69+
supports: { dataVisualizer: true, cseMachine: true }
7070
},
7171
// Source 4
7272
{
7373
chapter: Chapter.SOURCE_4,
7474
variant: Variant.DEFAULT,
75-
supports: { dataVisualizer: true, envVisualizer: true }
75+
supports: { dataVisualizer: true, cseMachine: true }
7676
},
7777
{
7878
chapter: Chapter.SOURCE_4,
7979
variant: Variant.TYPED,
80-
supports: { dataVisualizer: true, envVisualizer: true }
80+
supports: { dataVisualizer: true, cseMachine: true }
8181
},
8282
{
8383
chapter: Chapter.SOURCE_4,
8484
variant: Variant.GPU,
85-
supports: { dataVisualizer: true, envVisualizer: true }
85+
supports: { dataVisualizer: true, cseMachine: true }
8686
},
8787
{
8888
chapter: Chapter.SOURCE_4,
8989
variant: Variant.NATIVE,
90-
supports: { dataVisualizer: true, envVisualizer: true }
90+
supports: { dataVisualizer: true, cseMachine: true }
9191
},
9292
{
9393
chapter: Chapter.SOURCE_4,
9494
variant: Variant.EXPLICIT_CONTROL,
95-
supports: { dataVisualizer: true, envVisualizer: true }
95+
supports: { dataVisualizer: true, cseMachine: true }
9696
}
9797
];
9898

src/commons/application/__tests__/__snapshots__/ApplicationTypes.ts.snap

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ Array [
7171
"displayName": "Source §1",
7272
"mainLanguage": "JavaScript",
7373
"supports": Object {
74+
"cseMachine": false,
7475
"dataVisualizer": false,
75-
"envVisualizer": false,
7676
"multiFile": false,
7777
"repl": true,
7878
"substVisualizer": true,
@@ -84,8 +84,8 @@ Array [
8484
"displayName": "Source §1 Typed",
8585
"mainLanguage": "JavaScript",
8686
"supports": Object {
87+
"cseMachine": false,
8788
"dataVisualizer": false,
88-
"envVisualizer": false,
8989
"multiFile": false,
9090
"repl": true,
9191
"substVisualizer": true,
@@ -97,8 +97,8 @@ Array [
9797
"displayName": "Source §1 WebAssembly",
9898
"mainLanguage": "JavaScript",
9999
"supports": Object {
100+
"cseMachine": false,
100101
"dataVisualizer": false,
101-
"envVisualizer": false,
102102
"multiFile": false,
103103
"repl": true,
104104
"substVisualizer": false,
@@ -110,8 +110,8 @@ Array [
110110
"displayName": "Source §1 Lazy",
111111
"mainLanguage": "JavaScript",
112112
"supports": Object {
113+
"cseMachine": false,
113114
"dataVisualizer": false,
114-
"envVisualizer": false,
115115
"multiFile": false,
116116
"repl": true,
117117
"substVisualizer": false,
@@ -123,8 +123,8 @@ Array [
123123
"displayName": "Source §1 Native",
124124
"mainLanguage": "JavaScript",
125125
"supports": Object {
126+
"cseMachine": false,
126127
"dataVisualizer": false,
127-
"envVisualizer": false,
128128
"multiFile": false,
129129
"repl": true,
130130
"substVisualizer": true,
@@ -136,8 +136,8 @@ Array [
136136
"displayName": "Source §2",
137137
"mainLanguage": "JavaScript",
138138
"supports": Object {
139+
"cseMachine": false,
139140
"dataVisualizer": true,
140-
"envVisualizer": false,
141141
"multiFile": true,
142142
"repl": true,
143143
"substVisualizer": true,
@@ -149,8 +149,8 @@ Array [
149149
"displayName": "Source §2 Typed",
150150
"mainLanguage": "JavaScript",
151151
"supports": Object {
152+
"cseMachine": false,
152153
"dataVisualizer": true,
153-
"envVisualizer": false,
154154
"multiFile": true,
155155
"repl": true,
156156
"substVisualizer": true,
@@ -162,8 +162,8 @@ Array [
162162
"displayName": "Source §2 Lazy",
163163
"mainLanguage": "JavaScript",
164164
"supports": Object {
165+
"cseMachine": false,
165166
"dataVisualizer": true,
166-
"envVisualizer": false,
167167
"multiFile": true,
168168
"repl": true,
169169
"substVisualizer": false,
@@ -175,8 +175,8 @@ Array [
175175
"displayName": "Source §2 Native",
176176
"mainLanguage": "JavaScript",
177177
"supports": Object {
178+
"cseMachine": false,
178179
"dataVisualizer": true,
179-
"envVisualizer": false,
180180
"multiFile": true,
181181
"repl": true,
182182
"substVisualizer": true,
@@ -188,8 +188,8 @@ Array [
188188
"displayName": "Source §3",
189189
"mainLanguage": "JavaScript",
190190
"supports": Object {
191+
"cseMachine": true,
191192
"dataVisualizer": true,
192-
"envVisualizer": true,
193193
"multiFile": true,
194194
"repl": true,
195195
"substVisualizer": false,
@@ -201,8 +201,8 @@ Array [
201201
"displayName": "Source §3 Typed",
202202
"mainLanguage": "JavaScript",
203203
"supports": Object {
204+
"cseMachine": true,
204205
"dataVisualizer": true,
205-
"envVisualizer": true,
206206
"multiFile": true,
207207
"repl": true,
208208
"substVisualizer": false,
@@ -214,8 +214,8 @@ Array [
214214
"displayName": "Source §3 Concurrent",
215215
"mainLanguage": "JavaScript",
216216
"supports": Object {
217+
"cseMachine": false,
217218
"dataVisualizer": true,
218-
"envVisualizer": false,
219219
"multiFile": true,
220220
"repl": false,
221221
"substVisualizer": false,
@@ -227,8 +227,8 @@ Array [
227227
"displayName": "Source §3 Non-Det",
228228
"mainLanguage": "JavaScript",
229229
"supports": Object {
230+
"cseMachine": false,
230231
"dataVisualizer": true,
231-
"envVisualizer": false,
232232
"multiFile": true,
233233
"repl": true,
234234
"substVisualizer": false,
@@ -240,8 +240,8 @@ Array [
240240
"displayName": "Source §3 Native",
241241
"mainLanguage": "JavaScript",
242242
"supports": Object {
243+
"cseMachine": true,
243244
"dataVisualizer": true,
244-
"envVisualizer": true,
245245
"multiFile": true,
246246
"repl": true,
247247
"substVisualizer": false,
@@ -253,8 +253,8 @@ Array [
253253
"displayName": "Source §4",
254254
"mainLanguage": "JavaScript",
255255
"supports": Object {
256+
"cseMachine": true,
256257
"dataVisualizer": true,
257-
"envVisualizer": true,
258258
"multiFile": true,
259259
"repl": true,
260260
"substVisualizer": false,
@@ -266,8 +266,8 @@ Array [
266266
"displayName": "Source §4 Typed",
267267
"mainLanguage": "JavaScript",
268268
"supports": Object {
269+
"cseMachine": true,
269270
"dataVisualizer": true,
270-
"envVisualizer": true,
271271
"multiFile": true,
272272
"repl": true,
273273
"substVisualizer": false,
@@ -279,8 +279,8 @@ Array [
279279
"displayName": "Source §4 GPU",
280280
"mainLanguage": "JavaScript",
281281
"supports": Object {
282+
"cseMachine": true,
282283
"dataVisualizer": true,
283-
"envVisualizer": true,
284284
"multiFile": true,
285285
"repl": true,
286286
"substVisualizer": false,
@@ -292,8 +292,8 @@ Array [
292292
"displayName": "Source §4 Native",
293293
"mainLanguage": "JavaScript",
294294
"supports": Object {
295+
"cseMachine": true,
295296
"dataVisualizer": true,
296-
"envVisualizer": true,
297297
"multiFile": true,
298298
"repl": true,
299299
"substVisualizer": false,
@@ -305,8 +305,8 @@ Array [
305305
"displayName": "Source §4 Explicit-Control",
306306
"mainLanguage": "JavaScript",
307307
"supports": Object {
308+
"cseMachine": true,
308309
"dataVisualizer": true,
309-
"envVisualizer": true,
310310
"multiFile": true,
311311
"repl": true,
312312
"substVisualizer": false,

src/commons/sagas/AchievementSaga.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -193,16 +193,16 @@ export default function* AchievementSaga(): SagaIterator {
193193
);
194194
if (action.payload.find(e => e === EventType.ERROR)) {
195195
// TODO update this to work with new side content system
196-
// Flash the home icon if there is an error and the user is in the env viz or subst viz tab
196+
// Flash the home icon if there is an error and the user is in the CSE machine or subst viz tab
197197
const introIcon = document.getElementById(SideContentType.introduction + '-icon');
198-
const envTab = document.getElementById(
199-
'bp4-tab-panel_side-content-tabs_' + SideContentType.envVisualizer
198+
const cseTab = document.getElementById(
199+
'bp4-tab-panel_side-content-tabs_' + SideContentType.cseMachine
200200
);
201201
const substTab = document.getElementById(
202202
'bp4-tab-panel_side-content-tabs_' + SideContentType.substVisualizer
203203
);
204204
if (
205-
(envTab && envTab.ariaHidden === 'false') ||
205+
(cseTab && cseTab.ariaHidden === 'false') ||
206206
(substTab && substTab.ariaHidden === 'false')
207207
) {
208208
introIcon && introIcon.classList.add('side-content-tab-alert-error');

src/commons/sagas/PlaygroundSaga.ts

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { compressToEncodedURIComponent } from 'lz-string';
44
import qs from 'query-string';
55
import { SagaIterator } from 'redux-saga';
66
import { call, delay, put, race, select } from 'redux-saga/effects';
7-
import EnvVisualizer from 'src/features/envVisualizer/EnvVisualizer';
7+
import CseMachine from 'src/features/cseMachine/CseMachine';
88

99
import {
1010
changeQueryString,
@@ -22,11 +22,11 @@ import { showSuccessMessage, showWarningMessage } from '../utils/notifications/N
2222
import {
2323
clearReplOutput,
2424
setEditorHighlightedLines,
25-
toggleUpdateEnv,
26-
toggleUsingEnv,
25+
toggleUpdateCse,
26+
toggleUsingCse,
2727
toggleUsingSubst,
28-
updateEnvSteps,
29-
updateEnvStepsTotal
28+
updateCurrentStep,
29+
updateStepsTotal
3030
} from '../workspace/WorkspaceActions';
3131
import { EditorTabState, PlaygroundWorkspaceState } from '../workspace/WorkspaceTypes';
3232
import { safeTakeEvery as takeEvery } from './SafeEffects';
@@ -97,23 +97,23 @@ export default function* PlaygroundSaga(): SagaIterator {
9797
}
9898
}
9999

100-
if (newId !== SideContentType.envVisualizer) {
101-
yield put(toggleUsingEnv(false, workspaceLocation));
102-
yield call([EnvVisualizer, EnvVisualizer.clearEnv]);
103-
yield put(updateEnvSteps(-1, workspaceLocation));
104-
yield put(updateEnvStepsTotal(0, workspaceLocation));
105-
yield put(toggleUpdateEnv(true, workspaceLocation));
100+
if (newId !== SideContentType.cseMachine) {
101+
yield put(toggleUsingCse(false, workspaceLocation));
102+
yield call([CseMachine, CseMachine.clearCse]);
103+
yield put(updateCurrentStep(-1, workspaceLocation));
104+
yield put(updateStepsTotal(0, workspaceLocation));
105+
yield put(toggleUpdateCse(true, workspaceLocation));
106106
yield put(setEditorHighlightedLines(workspaceLocation, 0, []));
107107
}
108108

109109
if (
110110
isSourceLanguage(playgroundSourceChapter) &&
111-
(newId === SideContentType.substVisualizer || newId === SideContentType.envVisualizer)
111+
(newId === SideContentType.substVisualizer || newId === SideContentType.cseMachine)
112112
) {
113113
if (playgroundSourceChapter <= Chapter.SOURCE_2) {
114114
yield put(toggleUsingSubst(true, workspaceLocation));
115115
} else {
116-
yield put(toggleUsingEnv(true, workspaceLocation));
116+
yield put(toggleUsingCse(true, workspaceLocation));
117117
}
118118
}
119119
}

0 commit comments

Comments
 (0)