Compare commits

..

7 Commits

Author SHA1 Message Date
cb8fc33adb Change CUT_RELEASE_PR to BUILD_RELEASE for out-yml (#4214)
Change CUT_RELEASE_PR to BUILD_RELEASE
2024-10-18 12:46:12 -04:00
2dc8b429ff Cut release v0.26.0 (#4196) 2024-10-18 09:17:13 -07:00
19ffa220e8 Fix reading files from WebAssembly (#4183) 2024-10-18 14:43:01 +00:00
5332ddd88e Add more Machine API capabilities (#4203) 2024-10-18 10:25:54 -04:00
11d9a2ee00 Fix test settings to actually get used (#4191)
* Fix test settings to actually get used

Co-authored-by: Frank Noirot <frank@zoo.dev>

* Export file size changed out from under us again, relax this test to just be above a reasonable size

* Missed on updated export expectation

* Wrong check, should just be greater than

* Fix E2E test, remove console log

* fmt

* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)

* Sketchy rectangle commit fix

* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)

* Re-run CI

* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)

* Revert "A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)"

This reverts commit 2ace7a3b0e.

* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)

* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)

* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)

* Bump timeouts for snapshots

* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)

* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)

* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)

* Re-run CI

---------

Co-authored-by: Frank Noirot <frank@zoo.dev>
Co-authored-by: Frank Noirot <frank@kittycad.io>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-10-18 08:31:00 +00:00
bfebc41a5c Franknoirot/adhoc/revert-dedupe-commits (#4213)
* Revert "KCL: Fix duplicate 'type' key"

This reverts commit f650281855.

* Revert "Remove duplicate "type" field in the snapshots (#4211)"

This reverts commit 824b4c823e.
2024-10-18 02:16:44 -04:00
824b4c823e Remove duplicate "type" field in the snapshots (#4211)
* Remove duplicate "type" field in the snapshots

* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)

* Confirm

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Jonathan Tran <jonnytran@gmail.com>
2024-10-18 01:32:03 -04:00
89 changed files with 471 additions and 47 deletions

View File

@ -211,7 +211,7 @@ jobs:
out/*-x86_64-linux.* out/*-x86_64-linux.*
- uses: actions/upload-artifact@v3 - uses: actions/upload-artifact@v3
if: ${{ env.CUT_RELEASE_PR == 'true' }} if: ${{ env.BUILD_RELEASE == 'true' }}
with: with:
name: out-yml name: out-yml
path: | path: |

View File

@ -1,6 +1,6 @@
The MIT License (MIT) The MIT License (MIT)
ALL YOUR BASE BELONG TO LEE Copyright (c) 2023 The Zoo Authors
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View File

@ -104,7 +104,7 @@ test(
}, },
{ timeout: 15_000 } { timeout: 15_000 }
) )
.toBe(431341) .toBeGreaterThan(300_000)
// clean up output.gltf // clean up output.gltf
await fsp.rm('output.gltf') await fsp.rm('output.gltf')
@ -179,7 +179,7 @@ test(
}, },
{ timeout: 15_000 } { timeout: 15_000 }
) )
.toBe(102040) .toBeGreaterThan(100_000)
// clean up output.gltf // clean up output.gltf
await fsp.rm('output.gltf') await fsp.rm('output.gltf')

View File

@ -1,6 +1,16 @@
import { test, expect } from '@playwright/test' import { test, expect } from '@playwright/test'
import fsp from 'fs/promises'
import { uuidv4 } from 'lib/utils' import { uuidv4 } from 'lib/utils'
import { getUtils, setup, tearDown } from './test-utils' import {
darkModeBgColor,
darkModePlaneColorXZ,
executorInputPath,
getUtils,
setup,
setupElectron,
tearDown,
} from './test-utils'
import { join } from 'path'
test.beforeEach(async ({ context, page }, testInfo) => { test.beforeEach(async ({ context, page }, testInfo) => {
await setup(context, page, testInfo) await setup(context, page, testInfo)
@ -974,4 +984,84 @@ test.describe('Editor tests', () => {
|> close(%) |> close(%)
|> extrude(5, %)`) |> extrude(5, %)`)
}) })
test(
`Can use the import stdlib function on a local OBJ file`,
{ tag: '@electron' },
async ({ browserName }, testInfo) => {
const { electronApp, page } = await setupElectron({
testInfo,
folderSetupFn: async (dir) => {
const bracketDir = join(dir, 'cube')
await fsp.mkdir(bracketDir, { recursive: true })
await fsp.copyFile(
executorInputPath('cube.obj'),
join(bracketDir, 'cube.obj')
)
await fsp.writeFile(join(bracketDir, 'main.kcl'), '')
},
})
const viewportSize = { width: 1200, height: 500 }
await page.setViewportSize(viewportSize)
// Locators and constants
const u = await getUtils(page)
const projectLink = page.getByRole('link', { name: 'cube' })
const gizmo = page.locator('[aria-label*=gizmo]')
const resetCameraButton = page.getByRole('button', { name: 'Reset view' })
const locationToHavColor = async (
position: { x: number; y: number },
color: [number, number, number]
) => {
return u.getGreatestPixDiff(position, color)
}
const notTheOrigin = {
x: viewportSize.width * 0.55,
y: viewportSize.height * 0.3,
}
const origin = { x: viewportSize.width / 2, y: viewportSize.height / 2 }
const errorIndicators = page.locator('.cm-lint-marker-error')
await test.step(`Open the empty file, see the default planes`, async () => {
await projectLink.click()
await u.waitForPageLoad()
await expect
.poll(
async () => locationToHavColor(notTheOrigin, darkModePlaneColorXZ),
{
timeout: 5000,
message: 'XZ plane color is visible',
}
)
.toBeLessThan(15)
})
await test.step(`Write the import function line`, async () => {
await u.codeLocator.fill(`import('cube.obj')`)
await page.waitForTimeout(800)
})
await test.step(`Reset the camera before checking`, async () => {
await u.doAndWaitForCmd(async () => {
await gizmo.click({ button: 'right' })
await resetCameraButton.click()
}, 'zoom_to_fit')
})
await test.step(`Verify that we see the imported geometry and no errors`, async () => {
await expect(errorIndicators).toHaveCount(0)
await expect
.poll(async () => locationToHavColor(origin, darkModePlaneColorXZ), {
timeout: 3000,
message: 'Plane color should not be visible',
})
.toBeGreaterThan(15)
await expect
.poll(async () => locationToHavColor(origin, darkModeBgColor), {
timeout: 3000,
message: 'Background color should not be visible',
})
.toBeGreaterThan(15)
})
await electronApp.close()
}
)
}) })

View File

@ -255,7 +255,7 @@ test.describe('Can export from electron app', () => {
}, },
{ timeout: 15_000 } { timeout: 15_000 }
) )
.toBe(431341) .toBeGreaterThan(300_000)
// clean up output.gltf // clean up output.gltf
await fsp.rm('output.gltf') await fsp.rm('output.gltf')
@ -851,7 +851,7 @@ test(
} }
) )
test( test.fixme(
'When the project folder is empty, user can create new project and open it.', 'When the project folder is empty, user can create new project and open it.',
{ tag: '@electron' }, { tag: '@electron' },
async ({ browserName }, testInfo) => { async ({ browserName }, testInfo) => {
@ -861,6 +861,12 @@ test(
page.on('console', console.log) page.on('console', console.log)
// Locators and constants
const gizmo = page.locator('[aria-label*=gizmo]')
const resetCameraButton = page.getByRole('button', { name: 'Reset view' })
const pointOnModel = { x: 660, y: 250 }
const expectedStartCamZPosition = 15633.47
// expect to see text "No Projects found" // expect to see text "No Projects found"
await expect(page.getByText('No Projects found')).toBeVisible() await expect(page.getByText('No Projects found')).toBeVisible()
@ -873,16 +879,7 @@ test(
await page.getByText('project-000').click() await page.getByText('project-000').click()
await expect(page.getByTestId('loading')).toBeAttached() await u.waitForPageLoad()
await expect(page.getByTestId('loading')).not.toBeAttached({
timeout: 20_000,
})
await expect(
page.getByRole('button', { name: 'Start Sketch' })
).toBeEnabled({
timeout: 20_000,
})
await page.locator('.cm-content').fill(`sketch001 = startSketchOn('XZ') await page.locator('.cm-content').fill(`sketch001 = startSketchOn('XZ')
|> startProfileAt([-87.4, 282.92], %) |> startProfileAt([-87.4, 282.92], %)
@ -892,8 +889,28 @@ test(
|> lineTo([profileStartX(%), profileStartY(%)], %) |> lineTo([profileStartX(%), profileStartY(%)], %)
|> close(%) |> close(%)
extrude001 = extrude(200, sketch001)`) extrude001 = extrude(200, sketch001)`)
await page.waitForTimeout(800)
const pointOnModel = { x: 660, y: 250 } async function getCameraZValue() {
return page
.getByTestId('cam-z-position')
.inputValue()
.then((value) => parseFloat(value))
}
await test.step(`Reset camera`, async () => {
await u.openDebugPanel()
await u.clearCommandLogs()
await u.doAndWaitForCmd(async () => {
await gizmo.click({ button: 'right' })
await resetCameraButton.click()
}, 'zoom_to_fit')
await expect
.poll(getCameraZValue, {
message: 'Camera Z should be at expected position after reset',
})
.toEqual(expectedStartCamZPosition)
})
// gray at this pixel means the stream has loaded in the most // gray at this pixel means the stream has loaded in the most
// user way we can verify it (pixel color) // user way we can verify it (pixel color)
@ -901,7 +918,7 @@ extrude001 = extrude(200, sketch001)`)
.poll(() => u.getGreatestPixDiff(pointOnModel, [143, 143, 143]), { .poll(() => u.getGreatestPixDiff(pointOnModel, [143, 143, 143]), {
timeout: 10_000, timeout: 10_000,
}) })
.toBeLessThan(15) .toBeLessThan(30)
await expect(async () => { await expect(async () => {
await page.mouse.move(0, 0, { steps: 5 }) await page.mouse.move(0, 0, { steps: 5 })

View File

@ -471,7 +471,7 @@ test(
await page.mouse.move(startXPx + PUR * 30, 500 - PUR * 20, { steps: 10 }) await page.mouse.move(startXPx + PUR * 30, 500 - PUR * 20, { steps: 10 })
await page.waitForTimeout(300) await page.waitForTimeout(1000)
await expect(page).toHaveScreenshot({ await expect(page).toHaveScreenshot({
maxDiffPixels: 100, maxDiffPixels: 100,
@ -528,6 +528,7 @@ test(
// Draw the rectangle // Draw the rectangle
await page.mouse.click(startXPx + PUR * 20, 500 - PUR * 30) await page.mouse.click(startXPx + PUR * 20, 500 - PUR * 30)
await page.mouse.move(startXPx + PUR * 10, 500 - PUR * 10, { steps: 5 }) await page.mouse.move(startXPx + PUR * 10, 500 - PUR * 10, { steps: 5 })
await page.waitForTimeout(800)
// Ensure the draft rectangle looks the same as it usually does // Ensure the draft rectangle looks the same as it usually does
await expect(page).toHaveScreenshot({ await expect(page).toHaveScreenshot({
@ -895,7 +896,7 @@ test(
// Wait for the second extrusion to appear // Wait for the second extrusion to appear
// TODO: Find a way to truly know that the objects have finished // TODO: Find a way to truly know that the objects have finished
// rendering, because an execution-done message is not sufficient. // rendering, because an execution-done message is not sufficient.
await page.waitForTimeout(1000) await page.waitForTimeout(2000)
await expect(page).toHaveScreenshot({ await expect(page).toHaveScreenshot({
maxDiffPixels: 100, maxDiffPixels: 100,
@ -939,7 +940,7 @@ test(
// Wait for the second extrusion to appear // Wait for the second extrusion to appear
// TODO: Find a way to truly know that the objects have finished // TODO: Find a way to truly know that the objects have finished
// rendering, because an execution-done message is not sufficient. // rendering, because an execution-done message is not sufficient.
await page.waitForTimeout(1000) await page.waitForTimeout(2000)
await expect(page).toHaveScreenshot({ await expect(page).toHaveScreenshot({
maxDiffPixels: 100, maxDiffPixels: 100,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 36 KiB

View File

@ -47,6 +47,14 @@ export const commonPoints = {
num2: 14.44, num2: 14.44,
} }
/** A semi-reliable color to check the default XZ plane on
* in dark mode in the default camera position
*/
export const darkModePlaneColorXZ: [number, number, number] = [50, 50, 99]
/** A semi-reliable color to check the default dark mode bg color against */
export const darkModeBgColor: [number, number, number] = [27, 27, 27]
export const editorSelector = '[role="textbox"][data-language="kcl"]' export const editorSelector = '[role="textbox"][data-language="kcl"]'
type PaneId = 'variables' | 'code' | 'files' | 'logs' type PaneId = 'variables' | 'code' | 'files' | 'logs'
@ -882,8 +890,8 @@ export async function setupElectron({
appSettings appSettings
? { settings: appSettings } ? { settings: appSettings }
: { : {
...TEST_SETTINGS,
settings: { settings: {
...TEST_SETTINGS,
app: { app: {
...TEST_SETTINGS.app, ...TEST_SETTINGS.app,
projectDirectory: projectDirName, projectDirectory: projectDirName,

2
interface.d.ts vendored
View File

@ -23,8 +23,8 @@ export interface IElectronAPI {
key: string, key: string,
callback: (eventType: string, path: string) => void callback: (eventType: string, path: string) => void
) => void ) => void
readFile: typeof fs.readFile
watchFileOff: (path: string, key: string) => void watchFileOff: (path: string, key: string) => void
readFile: (path: string) => ReturnType<fs.readFile>
writeFile: ( writeFile: (
path: string, path: string,
data: string | Uint8Array data: string | Uint8Array

View File

@ -1,6 +1,6 @@
{ {
"name": "zoo-modeling-app", "name": "zoo-modeling-app",
"version": "0.25.6", "version": "0.26.0",
"private": true, "private": true,
"productName": "Zoo Modeling App", "productName": "Zoo Modeling App",
"author": { "author": {

View File

@ -135,7 +135,9 @@ function CommandArgOptionInput({
<Combobox.Input <Combobox.Input
id="option-input" id="option-input"
ref={inputRef} ref={inputRef}
onChange={(event) => setQuery(event.target.value)} onChange={(event) =>
!event.target.disabled && setQuery(event.target.value)
}
className="flex-grow px-2 py-1 border-b border-b-chalkboard-100 dark:border-b-chalkboard-80 !bg-transparent focus:outline-none" className="flex-grow px-2 py-1 border-b border-b-chalkboard-100 dark:border-b-chalkboard-80 !bg-transparent focus:outline-none"
onKeyDown={(event) => { onKeyDown={(event) => {
if (event.metaKey && event.key === 'k') if (event.metaKey && event.key === 'k')
@ -175,9 +177,18 @@ function CommandArgOptionInput({
<Combobox.Option <Combobox.Option
key={option.name} key={option.name}
value={option} value={option}
disabled={option.disabled}
className="flex items-center gap-2 px-4 py-1 first:mt-2 last:mb-2 ui-active:bg-primary/10 dark:ui-active:bg-chalkboard-90" className="flex items-center gap-2 px-4 py-1 first:mt-2 last:mb-2 ui-active:bg-primary/10 dark:ui-active:bg-chalkboard-90"
> >
<p className="flex-grow">{option.name} </p> <p
className={`flex-grow ${
(option.disabled &&
'text-chalkboard-70 dark:text-chalkboard-50 cursor-not-allowed') ||
''
}`}
>
{option.name}
</p>
{option.value === currentOption?.value && ( {option.value === currentOption?.value && (
<small className="text-chalkboard-70 dark:text-chalkboard-50"> <small className="text-chalkboard-70 dark:text-chalkboard-50">
current current

View File

@ -140,7 +140,7 @@ const FileTreeItem = ({
async (eventType, path) => { async (eventType, path) => {
// Don't try to read a file that was removed. // Don't try to read a file that was removed.
if (isCurrentFile && eventType !== 'unlink') { if (isCurrentFile && eventType !== 'unlink') {
let code = await window.electron.readFile(path) let code = await window.electron.readFile(path, { encoding: 'utf-8' })
code = normalizeLineEndings(code) code = normalizeLineEndings(code)
codeManager.updateCodeStateEditor(code) codeManager.updateCodeStateEditor(code)
} }

View File

@ -12,7 +12,6 @@ export const NetworkMachineIndicator = ({
const machineCount = machineManager.machineCount() const machineCount = machineManager.machineCount()
const reason = machineManager.noMachinesReason() const reason = machineManager.noMachinesReason()
const machines = machineManager.machines const machines = machineManager.machines
console.log('react machines', machines)
return isDesktop() ? ( return isDesktop() ? (
<Popover className="relative"> <Popover className="relative">
@ -55,12 +54,6 @@ export const NetworkMachineIndicator = ({
<p className="text-chalkboard-60 dark:text-chalkboard-50 text-xs"> <p className="text-chalkboard-60 dark:text-chalkboard-50 text-xs">
{machine.make_model.model} {machine.make_model.model}
</p> </p>
<p className="text-chalkboard-60 dark:text-chalkboard-50 text-xs">
{machine.state.state.toUpperCase()}
{machine.state.state === 'failed' && machine.state.message
? ': ' + machine.state.message
: ''}
</p>
{machine.extra && {machine.extra &&
machine.extra.type === 'bambu' && machine.extra.type === 'bambu' &&
machine.extra.nozzle_diameter && ( machine.extra.nozzle_diameter && (
@ -68,6 +61,17 @@ export const NetworkMachineIndicator = ({
Nozzle Diameter: {machine.extra.nozzle_diameter} Nozzle Diameter: {machine.extra.nozzle_diameter}
</p> </p>
)} )}
<p className="text-chalkboard-60 dark:text-chalkboard-50 text-xs">
{`Status: ${machine.state.state
.charAt(0)
.toUpperCase()}${machine.state.state.slice(1)}`}
{machine.state.state === 'failed' && machine.state.message
? ` (${machine.state.message})`
: ''}
{machine.state.state === 'running' && machine.progress
? ` (${Math.round(machine.progress)}%)`
: ''}
</p>
</li> </li>
) )
})} })}

View File

@ -41,7 +41,7 @@ beforeAll(async () => {
}, },
}) })
}) })
}, 20_000) }, 30_000)
afterAll(() => { afterAll(() => {
engineCommandManager.tearDown() engineCommandManager.tearDown()

View File

@ -18,7 +18,7 @@ class FileSystemManager {
return Promise.resolve(window.electron.path.join(dir, path)) return Promise.resolve(window.electron.path.join(dir, path))
} }
async readFile(path: string): Promise<Uint8Array | void> { async readFile(path: string): Promise<Uint8Array> {
// Using local file system only works from desktop. // Using local file system only works from desktop.
if (!isDesktop()) { if (!isDesktop()) {
return Promise.reject( return Promise.reject(

View File

@ -194,10 +194,24 @@ export const modelingMachineCommandConfig: StateMachineCommandSetConfig<
`${machine.id} (${ `${machine.id} (${
machine.make_model.model || machine.make_model.manufacturer machine.make_model.model || machine.make_model.manufacturer
}) (${machine.state.state})` + }) (${machine.state.state})` +
(machine.extra && (machine.hardware_configuration &&
machine.extra.type === 'bambu' && machine.hardware_configuration.type !== 'none' &&
machine.extra.nozzle_diameter machine.hardware_configuration.config.nozzle_diameter
? ` - Nozzle Diameter: ${machine.extra.nozzle_diameter}` ? ` - Nozzle Diameter: ${machine.hardware_configuration.config.nozzle_diameter}`
: '') +
(machine.hardware_configuration &&
machine.hardware_configuration.type !== 'none' &&
machine.hardware_configuration.config.filaments &&
machine.hardware_configuration.config.filaments[0]
? ` - ${
machine.hardware_configuration.config.filaments[0].name
} #${
machine.hardware_configuration.config &&
machine.hardware_configuration.config.filaments[0].color?.slice(
0,
6
)
}`
: ''), : ''),
isCurrent: false, isCurrent: false,
disabled: machine.state.state !== 'idle', disabled: machine.state.state !== 'idle',

View File

@ -258,5 +258,6 @@ export type CommandArgumentWithName<
export type CommandArgumentOption<A> = { export type CommandArgumentOption<A> = {
name: string name: string
isCurrent?: boolean isCurrent?: boolean
disabled?: boolean
value: A value: A
} }

View File

@ -448,7 +448,9 @@ export const readProjectSettingsFile = async (
} }
} }
const configToml = await window.electron.readFile(settingsPath) const configToml = await window.electron.readFile(settingsPath, {
encoding: 'utf-8',
})
const configObj = parseProjectSettings(configToml) const configObj = parseProjectSettings(configToml)
if (err(configObj)) { if (err(configObj)) {
return Promise.reject(configObj) return Promise.reject(configObj)
@ -467,7 +469,9 @@ export const readAppSettingsFile = async () => {
// The file exists, read it and parse it. // The file exists, read it and parse it.
if (window.electron.exists(settingsPath)) { if (window.electron.exists(settingsPath)) {
const configToml = await window.electron.readFile(settingsPath) const configToml = await window.electron.readFile(settingsPath, {
encoding: 'utf-8',
})
const parsedAppConfig = parseAppSettings(configToml) const parsedAppConfig = parseAppSettings(configToml)
if (err(parsedAppConfig)) { if (err(parsedAppConfig)) {
return Promise.reject(parsedAppConfig) return Promise.reject(parsedAppConfig)
@ -527,7 +531,9 @@ export const readTokenFile = async () => {
let settingsPath = await getTokenFilePath() let settingsPath = await getTokenFilePath()
if (window.electron.exists(settingsPath)) { if (window.electron.exists(settingsPath)) {
const token: string = await window.electron.readFile(settingsPath) const token: string = await window.electron.readFile(settingsPath, {
encoding: 'utf-8',
})
if (!token) return '' if (!token) return ''
return token return token

View File

@ -109,7 +109,9 @@ export const fileLoader: LoaderFunction = async (
) )
} }
code = await window.electron.readFile(currentFilePath) code = await window.electron.readFile(currentFilePath, {
encoding: 'utf-8',
})
code = normalizeLineEndings(code) code = normalizeLineEndings(code)
// Update both the state and the editor's code. // Update both the state and the editor's code.

View File

@ -74,7 +74,7 @@ const watchFileOff = (path: string, key: string) => {
fsWatchListeners.set(path, watchers) fsWatchListeners.set(path, watchers)
} }
} }
const readFile = (path: string) => fs.readFile(path, 'utf-8') const readFile = fs.readFile
// It seems like from the node source code this does not actually block but also // It seems like from the node source code this does not actually block but also
// don't trust me on that (jess). // don't trust me on that (jess).
const exists = (path: string) => fsSync.existsSync(path) const exists = (path: string) => fsSync.existsSync(path)

View File

@ -494,7 +494,7 @@ impl From<&BodyItem> for SourceRange {
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema, Bake)] #[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema, Bake)]
#[databake(path = kcl_lib::ast::types)] #[databake(path = kcl_lib::ast::types)]
#[ts(export)] #[ts(export)]
#[serde(untagged)] #[serde(tag = "type")]
pub enum Expr { pub enum Expr {
Literal(Box<Literal>), Literal(Box<Literal>),
Identifier(Box<Identifier>), Identifier(Box<Identifier>),

View File

@ -23,11 +23,13 @@ expression: actual
"name": "boxSketch" "name": "boxSketch"
}, },
"init": { "init": {
"type": "PipeExpression",
"type": "PipeExpression", "type": "PipeExpression",
"start": 18, "start": 18,
"end": 143, "end": 143,
"body": [ "body": [
{ {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 18, "start": 18,
"end": 39, "end": 39,
@ -39,11 +41,13 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "ArrayExpression",
"type": "ArrayExpression", "type": "ArrayExpression",
"start": 32, "start": 32,
"end": 38, "end": 38,
"elements": [ "elements": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 33, "start": 33,
"end": 34, "end": 34,
@ -51,6 +55,7 @@ expression: actual
"raw": "0" "raw": "0"
}, },
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 36, "start": 36,
"end": 37, "end": 37,
@ -63,6 +68,7 @@ expression: actual
"optional": false "optional": false
}, },
{ {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 47, "start": 47,
"end": 63, "end": 63,
@ -74,11 +80,13 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "ArrayExpression",
"type": "ArrayExpression", "type": "ArrayExpression",
"start": 52, "start": 52,
"end": 59, "end": 59,
"elements": [ "elements": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 53, "start": 53,
"end": 54, "end": 54,
@ -86,6 +94,7 @@ expression: actual
"raw": "0" "raw": "0"
}, },
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 56, "start": 56,
"end": 58, "end": 58,
@ -95,6 +104,7 @@ expression: actual
] ]
}, },
{ {
"type": "PipeSubstitution",
"type": "PipeSubstitution", "type": "PipeSubstitution",
"start": 61, "start": 61,
"end": 62 "end": 62
@ -103,6 +113,7 @@ expression: actual
"optional": false "optional": false
}, },
{ {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 71, "start": 71,
"end": 96, "end": 96,
@ -114,11 +125,13 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "ArrayExpression",
"type": "ArrayExpression", "type": "ArrayExpression",
"start": 85, "start": 85,
"end": 92, "end": 92,
"elements": [ "elements": [
{ {
"type": "UnaryExpression",
"type": "UnaryExpression", "type": "UnaryExpression",
"start": 86, "start": 86,
"end": 88, "end": 88,
@ -133,6 +146,7 @@ expression: actual
} }
}, },
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 90, "start": 90,
"end": 91, "end": 91,
@ -142,6 +156,7 @@ expression: actual
] ]
}, },
{ {
"type": "PipeSubstitution",
"type": "PipeSubstitution", "type": "PipeSubstitution",
"start": 94, "start": 94,
"end": 95 "end": 95
@ -150,6 +165,7 @@ expression: actual
"optional": false "optional": false
}, },
{ {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 104, "start": 104,
"end": 121, "end": 121,
@ -161,11 +177,13 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "ArrayExpression",
"type": "ArrayExpression", "type": "ArrayExpression",
"start": 109, "start": 109,
"end": 117, "end": 117,
"elements": [ "elements": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 110, "start": 110,
"end": 111, "end": 111,
@ -173,6 +191,7 @@ expression: actual
"raw": "5" "raw": "5"
}, },
{ {
"type": "UnaryExpression",
"type": "UnaryExpression", "type": "UnaryExpression",
"start": 113, "start": 113,
"end": 116, "end": 116,
@ -189,6 +208,7 @@ expression: actual
] ]
}, },
{ {
"type": "PipeSubstitution",
"type": "PipeSubstitution", "type": "PipeSubstitution",
"start": 119, "start": 119,
"end": 120 "end": 120
@ -197,6 +217,7 @@ expression: actual
"optional": false "optional": false
}, },
{ {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 129, "start": 129,
"end": 143, "end": 143,
@ -208,6 +229,7 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 137, "start": 137,
"end": 139, "end": 139,
@ -215,6 +237,7 @@ expression: actual
"raw": "10" "raw": "10"
}, },
{ {
"type": "PipeSubstitution",
"type": "PipeSubstitution", "type": "PipeSubstitution",
"start": 141, "start": 141,
"end": 142 "end": 142

View File

@ -23,6 +23,7 @@ expression: actual
"name": "sg" "name": "sg"
}, },
"init": { "init": {
"type": "UnaryExpression",
"type": "UnaryExpression", "type": "UnaryExpression",
"start": 11, "start": 11,
"end": 17, "end": 17,

View File

@ -12,6 +12,7 @@ expression: actual
"start": 0, "start": 0,
"end": 23, "end": 23,
"expression": { "expression": {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 0, "start": 0,
"end": 23, "end": 23,
@ -23,6 +24,7 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "ObjectExpression",
"type": "ObjectExpression", "type": "ObjectExpression",
"start": 7, "start": 7,
"end": 22, "end": 22,
@ -38,11 +40,13 @@ expression: actual
"name": "to" "name": "to"
}, },
"value": { "value": {
"type": "ArrayExpression",
"type": "ArrayExpression", "type": "ArrayExpression",
"start": 13, "start": 13,
"end": 20, "end": 20,
"elements": [ "elements": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 14, "start": 14,
"end": 15, "end": 15,
@ -50,6 +54,7 @@ expression: actual
"raw": "0" "raw": "0"
}, },
{ {
"type": "UnaryExpression",
"type": "UnaryExpression", "type": "UnaryExpression",
"start": 17, "start": 17,
"end": 19, "end": 19,

View File

@ -23,10 +23,12 @@ expression: actual
"name": "myArray" "name": "myArray"
}, },
"init": { "init": {
"type": "ArrayRangeExpression",
"type": "ArrayRangeExpression", "type": "ArrayRangeExpression",
"start": 16, "start": 16,
"end": 23, "end": 23,
"startElement": { "startElement": {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 17, "start": 17,
"end": 18, "end": 18,
@ -34,6 +36,7 @@ expression: actual
"raw": "0" "raw": "0"
}, },
"endElement": { "endElement": {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 20, "start": 20,
"end": 22, "end": 22,

View File

@ -23,6 +23,7 @@ expression: actual
"name": "firstPrimeNumber" "name": "firstPrimeNumber"
}, },
"init": { "init": {
"type": "FunctionExpression",
"type": "FunctionExpression", "type": "FunctionExpression",
"start": 27, "start": 27,
"end": 57, "end": 57,
@ -37,6 +38,7 @@ expression: actual
"start": 43, "start": 43,
"end": 51, "end": 51,
"argument": { "argument": {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 50, "start": 50,
"end": 51, "end": 51,
@ -57,6 +59,7 @@ expression: actual
"start": 62, "start": 62,
"end": 80, "end": 80,
"expression": { "expression": {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 62, "start": 62,
"end": 80, "end": 80,

View File

@ -23,6 +23,7 @@ expression: actual
"name": "thing" "name": "thing"
}, },
"init": { "init": {
"type": "FunctionExpression",
"type": "FunctionExpression", "type": "FunctionExpression",
"start": 11, "start": 11,
"end": 49, "end": 49,
@ -48,6 +49,7 @@ expression: actual
"start": 32, "start": 32,
"end": 43, "end": 43,
"argument": { "argument": {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 39, "start": 39,
"end": 43, "end": 43,
@ -68,6 +70,7 @@ expression: actual
"start": 54, "start": 54,
"end": 66, "end": 66,
"expression": { "expression": {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 54, "start": 54,
"end": 66, "end": 66,
@ -79,6 +82,7 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 60, "start": 60,
"end": 65, "end": 65,

View File

@ -23,11 +23,13 @@ expression: actual
"name": "mySketch" "name": "mySketch"
}, },
"init": { "init": {
"type": "PipeExpression",
"type": "PipeExpression", "type": "PipeExpression",
"start": 17, "start": 17,
"end": 165, "end": 165,
"body": [ "body": [
{ {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 17, "start": 17,
"end": 37, "end": 37,
@ -39,11 +41,13 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "ArrayExpression",
"type": "ArrayExpression", "type": "ArrayExpression",
"start": 31, "start": 31,
"end": 36, "end": 36,
"elements": [ "elements": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 32, "start": 32,
"end": 33, "end": 33,
@ -51,6 +55,7 @@ expression: actual
"raw": "0" "raw": "0"
}, },
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 34, "start": 34,
"end": 35, "end": 35,
@ -63,6 +68,7 @@ expression: actual
"optional": false "optional": false
}, },
{ {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 49, "start": 49,
"end": 75, "end": 75,
@ -74,11 +80,13 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "ArrayExpression",
"type": "ArrayExpression", "type": "ArrayExpression",
"start": 56, "start": 56,
"end": 62, "end": 62,
"elements": [ "elements": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 57, "start": 57,
"end": 58, "end": 58,
@ -86,6 +94,7 @@ expression: actual
"raw": "0" "raw": "0"
}, },
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 60, "start": 60,
"end": 61, "end": 61,
@ -95,11 +104,13 @@ expression: actual
] ]
}, },
{ {
"type": "PipeSubstitution",
"type": "PipeSubstitution", "type": "PipeSubstitution",
"start": 64, "start": 64,
"end": 65 "end": 65
}, },
{ {
"type": "TagDeclarator",
"type": "TagDeclarator", "type": "TagDeclarator",
"start": 67, "start": 67,
"end": 74, "end": 74,
@ -109,6 +120,7 @@ expression: actual
"optional": false "optional": false
}, },
{ {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 87, "start": 87,
"end": 104, "end": 104,
@ -120,11 +132,13 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "ArrayExpression",
"type": "ArrayExpression", "type": "ArrayExpression",
"start": 94, "start": 94,
"end": 100, "end": 100,
"elements": [ "elements": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 95, "start": 95,
"end": 96, "end": 96,
@ -132,6 +146,7 @@ expression: actual
"raw": "1" "raw": "1"
}, },
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 98, "start": 98,
"end": 99, "end": 99,
@ -141,6 +156,7 @@ expression: actual
] ]
}, },
{ {
"type": "PipeSubstitution",
"type": "PipeSubstitution", "type": "PipeSubstitution",
"start": 102, "start": 102,
"end": 103 "end": 103
@ -149,6 +165,7 @@ expression: actual
"optional": false "optional": false
}, },
{ {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 116, "start": 116,
"end": 145, "end": 145,
@ -160,11 +177,13 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "ArrayExpression",
"type": "ArrayExpression", "type": "ArrayExpression",
"start": 123, "start": 123,
"end": 129, "end": 129,
"elements": [ "elements": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 124, "start": 124,
"end": 125, "end": 125,
@ -172,6 +191,7 @@ expression: actual
"raw": "1" "raw": "1"
}, },
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 127, "start": 127,
"end": 128, "end": 128,
@ -181,11 +201,13 @@ expression: actual
] ]
}, },
{ {
"type": "PipeSubstitution",
"type": "PipeSubstitution", "type": "PipeSubstitution",
"start": 131, "start": 131,
"end": 132 "end": 132
}, },
{ {
"type": "TagDeclarator",
"type": "TagDeclarator", "type": "TagDeclarator",
"start": 134, "start": 134,
"end": 144, "end": 144,
@ -195,6 +217,7 @@ expression: actual
"optional": false "optional": false
}, },
{ {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 157, "start": 157,
"end": 165, "end": 165,
@ -206,6 +229,7 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "PipeSubstitution",
"type": "PipeSubstitution", "type": "PipeSubstitution",
"start": 163, "start": 163,
"end": 164 "end": 164

View File

@ -23,11 +23,13 @@ expression: actual
"name": "mySketch" "name": "mySketch"
}, },
"init": { "init": {
"type": "PipeExpression",
"type": "PipeExpression", "type": "PipeExpression",
"start": 17, "start": 17,
"end": 70, "end": 70,
"body": [ "body": [
{ {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 17, "start": 17,
"end": 37, "end": 37,
@ -39,11 +41,13 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "ArrayExpression",
"type": "ArrayExpression", "type": "ArrayExpression",
"start": 31, "start": 31,
"end": 36, "end": 36,
"elements": [ "elements": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 32, "start": 32,
"end": 33, "end": 33,
@ -51,6 +55,7 @@ expression: actual
"raw": "0" "raw": "0"
}, },
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 34, "start": 34,
"end": 35, "end": 35,
@ -63,6 +68,7 @@ expression: actual
"optional": false "optional": false
}, },
{ {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 41, "start": 41,
"end": 58, "end": 58,
@ -74,11 +80,13 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "ArrayExpression",
"type": "ArrayExpression", "type": "ArrayExpression",
"start": 48, "start": 48,
"end": 54, "end": 54,
"elements": [ "elements": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 49, "start": 49,
"end": 50, "end": 50,
@ -86,6 +94,7 @@ expression: actual
"raw": "1" "raw": "1"
}, },
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 52, "start": 52,
"end": 53, "end": 53,
@ -95,6 +104,7 @@ expression: actual
] ]
}, },
{ {
"type": "PipeSubstitution",
"type": "PipeSubstitution", "type": "PipeSubstitution",
"start": 56, "start": 56,
"end": 57 "end": 57
@ -103,6 +113,7 @@ expression: actual
"optional": false "optional": false
}, },
{ {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 62, "start": 62,
"end": 70, "end": 70,
@ -114,6 +125,7 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "PipeSubstitution",
"type": "PipeSubstitution", "type": "PipeSubstitution",
"start": 68, "start": 68,
"end": 69 "end": 69

View File

@ -23,6 +23,7 @@ expression: actual
"name": "myBox" "name": "myBox"
}, },
"init": { "init": {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 14, "start": 14,
"end": 30, "end": 30,
@ -34,6 +35,7 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "Identifier",
"type": "Identifier", "type": "Identifier",
"start": 28, "start": 28,
"end": 29, "end": 29,

View File

@ -23,11 +23,13 @@ expression: actual
"name": "myBox" "name": "myBox"
}, },
"init": { "init": {
"type": "PipeExpression",
"type": "PipeExpression", "type": "PipeExpression",
"start": 14, "start": 14,
"end": 29, "end": 29,
"body": [ "body": [
{ {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 14, "start": 14,
"end": 18, "end": 18,
@ -39,6 +41,7 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 16, "start": 16,
"end": 17, "end": 17,
@ -49,6 +52,7 @@ expression: actual
"optional": false "optional": false
}, },
{ {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 22, "start": 22,
"end": 29, "end": 29,
@ -60,6 +64,7 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 24, "start": 24,
"end": 25, "end": 25,
@ -67,6 +72,7 @@ expression: actual
"raw": "2" "raw": "2"
}, },
{ {
"type": "PipeSubstitution",
"type": "PipeSubstitution", "type": "PipeSubstitution",
"start": 27, "start": 27,
"end": 28 "end": 28

View File

@ -23,11 +23,13 @@ expression: actual
"name": "myBox" "name": "myBox"
}, },
"init": { "init": {
"type": "PipeExpression",
"type": "PipeExpression", "type": "PipeExpression",
"start": 14, "start": 14,
"end": 49, "end": 49,
"body": [ "body": [
{ {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 14, "start": 14,
"end": 30, "end": 30,
@ -39,6 +41,7 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "Identifier",
"type": "Identifier", "type": "Identifier",
"start": 28, "start": 28,
"end": 29, "end": 29,
@ -48,6 +51,7 @@ expression: actual
"optional": false "optional": false
}, },
{ {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 34, "start": 34,
"end": 49, "end": 49,
@ -59,11 +63,13 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "ArrayExpression",
"type": "ArrayExpression", "type": "ArrayExpression",
"start": 39, "start": 39,
"end": 45, "end": 45,
"elements": [ "elements": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 40, "start": 40,
"end": 41, "end": 41,
@ -71,6 +77,7 @@ expression: actual
"raw": "0" "raw": "0"
}, },
{ {
"type": "Identifier",
"type": "Identifier", "type": "Identifier",
"start": 43, "start": 43,
"end": 44, "end": 44,
@ -79,6 +86,7 @@ expression: actual
] ]
}, },
{ {
"type": "PipeSubstitution",
"type": "PipeSubstitution", "type": "PipeSubstitution",
"start": 47, "start": 47,
"end": 48 "end": 48

View File

@ -12,6 +12,7 @@ expression: actual
"start": 0, "start": 0,
"end": 22, "end": 22,
"expression": { "expression": {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 0, "start": 0,
"end": 22, "end": 22,
@ -23,6 +24,7 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "ObjectExpression",
"type": "ObjectExpression", "type": "ObjectExpression",
"start": 7, "start": 7,
"end": 21, "end": 21,
@ -38,11 +40,13 @@ expression: actual
"name": "to" "name": "to"
}, },
"value": { "value": {
"type": "ArrayExpression",
"type": "ArrayExpression", "type": "ArrayExpression",
"start": 13, "start": 13,
"end": 19, "end": 19,
"elements": [ "elements": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 14, "start": 14,
"end": 15, "end": 15,
@ -50,6 +54,7 @@ expression: actual
"raw": "0" "raw": "0"
}, },
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 17, "start": 17,
"end": 18, "end": 18,

View File

@ -12,6 +12,7 @@ expression: actual
"start": 0, "start": 0,
"end": 36, "end": 36,
"expression": { "expression": {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 0, "start": 0,
"end": 36, "end": 36,
@ -23,6 +24,7 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "ObjectExpression",
"type": "ObjectExpression", "type": "ObjectExpression",
"start": 7, "start": 7,
"end": 35, "end": 35,
@ -38,11 +40,13 @@ expression: actual
"name": "to" "name": "to"
}, },
"value": { "value": {
"type": "ArrayExpression",
"type": "ArrayExpression", "type": "ArrayExpression",
"start": 13, "start": 13,
"end": 19, "end": 19,
"elements": [ "elements": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 14, "start": 14,
"end": 15, "end": 15,
@ -50,6 +54,7 @@ expression: actual
"raw": "0" "raw": "0"
}, },
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 17, "start": 17,
"end": 18, "end": 18,
@ -70,11 +75,13 @@ expression: actual
"name": "from" "name": "from"
}, },
"value": { "value": {
"type": "ArrayExpression",
"type": "ArrayExpression", "type": "ArrayExpression",
"start": 27, "start": 27,
"end": 33, "end": 33,
"elements": [ "elements": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 28, "start": 28,
"end": 29, "end": 29,
@ -82,6 +89,7 @@ expression: actual
"raw": "3" "raw": "3"
}, },
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 31, "start": 31,
"end": 32, "end": 32,

View File

@ -12,6 +12,7 @@ expression: actual
"start": 0, "start": 0,
"end": 19, "end": 19,
"expression": { "expression": {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 0, "start": 0,
"end": 19, "end": 19,
@ -23,6 +24,7 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "ObjectExpression",
"type": "ObjectExpression", "type": "ObjectExpression",
"start": 7, "start": 7,
"end": 18, "end": 18,
@ -38,11 +40,13 @@ expression: actual
"name": "to" "name": "to"
}, },
"value": { "value": {
"type": "ArrayExpression",
"type": "ArrayExpression", "type": "ArrayExpression",
"start": 11, "start": 11,
"end": 17, "end": 17,
"elements": [ "elements": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 12, "start": 12,
"end": 13, "end": 13,
@ -50,6 +54,7 @@ expression: actual
"raw": "0" "raw": "0"
}, },
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 15, "start": 15,
"end": 16, "end": 16,

View File

@ -12,6 +12,7 @@ expression: actual
"start": 0, "start": 0,
"end": 35, "end": 35,
"expression": { "expression": {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 0, "start": 0,
"end": 35, "end": 35,
@ -23,6 +24,7 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "ObjectExpression",
"type": "ObjectExpression", "type": "ObjectExpression",
"start": 7, "start": 7,
"end": 34, "end": 34,
@ -38,11 +40,13 @@ expression: actual
"name": "to" "name": "to"
}, },
"value": { "value": {
"type": "ArrayExpression",
"type": "ArrayExpression", "type": "ArrayExpression",
"start": 13, "start": 13,
"end": 19, "end": 19,
"elements": [ "elements": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 14, "start": 14,
"end": 15, "end": 15,
@ -50,6 +54,7 @@ expression: actual
"raw": "0" "raw": "0"
}, },
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 17, "start": 17,
"end": 18, "end": 18,
@ -70,11 +75,13 @@ expression: actual
"name": "from" "name": "from"
}, },
"value": { "value": {
"type": "ArrayExpression",
"type": "ArrayExpression", "type": "ArrayExpression",
"start": 27, "start": 27,
"end": 33, "end": 33,
"elements": [ "elements": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 28, "start": 28,
"end": 29, "end": 29,
@ -82,6 +89,7 @@ expression: actual
"raw": "3" "raw": "3"
}, },
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 31, "start": 31,
"end": 32, "end": 32,

View File

@ -12,6 +12,7 @@ expression: actual
"start": 0, "start": 0,
"end": 35, "end": 35,
"expression": { "expression": {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 0, "start": 0,
"end": 35, "end": 35,
@ -23,6 +24,7 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "ObjectExpression",
"type": "ObjectExpression", "type": "ObjectExpression",
"start": 7, "start": 7,
"end": 34, "end": 34,
@ -38,11 +40,13 @@ expression: actual
"name": "to" "name": "to"
}, },
"value": { "value": {
"type": "ArrayExpression",
"type": "ArrayExpression", "type": "ArrayExpression",
"start": 13, "start": 13,
"end": 19, "end": 19,
"elements": [ "elements": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 14, "start": 14,
"end": 15, "end": 15,
@ -50,6 +54,7 @@ expression: actual
"raw": "0" "raw": "0"
}, },
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 17, "start": 17,
"end": 18, "end": 18,
@ -70,11 +75,13 @@ expression: actual
"name": "from" "name": "from"
}, },
"value": { "value": {
"type": "ArrayExpression",
"type": "ArrayExpression", "type": "ArrayExpression",
"start": 26, "start": 26,
"end": 32, "end": 32,
"elements": [ "elements": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 27, "start": 27,
"end": 28, "end": 28,
@ -82,6 +89,7 @@ expression: actual
"raw": "3" "raw": "3"
}, },
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 30, "start": 30,
"end": 31, "end": 31,

View File

@ -23,6 +23,7 @@ expression: actual
"name": "mySketch" "name": "mySketch"
}, },
"init": { "init": {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 17, "start": 17,
"end": 37, "end": 37,
@ -34,11 +35,13 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "ArrayExpression",
"type": "ArrayExpression", "type": "ArrayExpression",
"start": 31, "start": 31,
"end": 36, "end": 36,
"elements": [ "elements": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 32, "start": 32,
"end": 33, "end": 33,
@ -46,6 +49,7 @@ expression: actual
"raw": "0" "raw": "0"
}, },
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 34, "start": 34,
"end": 35, "end": 35,

View File

@ -12,6 +12,7 @@ expression: actual
"start": 0, "start": 0,
"end": 28, "end": 28,
"expression": { "expression": {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 0, "start": 0,
"end": 28, "end": 28,
@ -23,6 +24,7 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 4, "start": 4,
"end": 5, "end": 5,
@ -30,6 +32,7 @@ expression: actual
"raw": "5" "raw": "5"
}, },
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 7, "start": 7,
"end": 14, "end": 14,
@ -37,6 +40,7 @@ expression: actual
"raw": "\"hello\"" "raw": "\"hello\""
}, },
{ {
"type": "Identifier",
"type": "Identifier", "type": "Identifier",
"start": 16, "start": 16,
"end": 27, "end": 27,

View File

@ -12,6 +12,7 @@ expression: actual
"start": 0, "start": 0,
"end": 7, "end": 7,
"expression": { "expression": {
"type": "BinaryExpression",
"type": "BinaryExpression", "type": "BinaryExpression",
"start": 0, "start": 0,
"end": 7, "end": 7,

View File

@ -12,6 +12,7 @@ expression: actual
"start": 0, "start": 0,
"end": 15, "end": 15,
"expression": { "expression": {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 0, "start": 0,
"end": 15, "end": 15,
@ -23,11 +24,13 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "ArrayExpression",
"type": "ArrayExpression", "type": "ArrayExpression",
"start": 5, "start": 5,
"end": 11, "end": 11,
"elements": [ "elements": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 6, "start": 6,
"end": 7, "end": 7,
@ -35,6 +38,7 @@ expression: actual
"raw": "0" "raw": "0"
}, },
{ {
"type": "Identifier",
"type": "Identifier", "type": "Identifier",
"start": 9, "start": 9,
"end": 10, "end": 10,
@ -43,6 +47,7 @@ expression: actual
] ]
}, },
{ {
"type": "PipeSubstitution",
"type": "PipeSubstitution", "type": "PipeSubstitution",
"start": 13, "start": 13,
"end": 14 "end": 14

View File

@ -23,11 +23,13 @@ expression: actual
"name": "cylinder" "name": "cylinder"
}, },
"init": { "init": {
"type": "PipeExpression",
"type": "PipeExpression", "type": "PipeExpression",
"start": 17, "start": 17,
"end": 107, "end": 107,
"body": [ "body": [
{ {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 17, "start": 17,
"end": 36, "end": 36,
@ -39,6 +41,7 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 31, "start": 31,
"end": 35, "end": 35,
@ -49,6 +52,7 @@ expression: actual
"optional": false "optional": false
}, },
{ {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 44, "start": 44,
"end": 85, "end": 85,
@ -60,6 +64,7 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "ObjectExpression",
"type": "ObjectExpression", "type": "ObjectExpression",
"start": 51, "start": 51,
"end": 81, "end": 81,
@ -75,11 +80,13 @@ expression: actual
"name": "center" "name": "center"
}, },
"value": { "value": {
"type": "ArrayExpression",
"type": "ArrayExpression", "type": "ArrayExpression",
"start": 61, "start": 61,
"end": 67, "end": 67,
"elements": [ "elements": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 62, "start": 62,
"end": 63, "end": 63,
@ -87,6 +94,7 @@ expression: actual
"raw": "0" "raw": "0"
}, },
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 65, "start": 65,
"end": 66, "end": 66,
@ -107,6 +115,7 @@ expression: actual
"name": "radius" "name": "radius"
}, },
"value": { "value": {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 77, "start": 77,
"end": 79, "end": 79,
@ -117,6 +126,7 @@ expression: actual
] ]
}, },
{ {
"type": "PipeSubstitution",
"type": "PipeSubstitution", "type": "PipeSubstitution",
"start": 83, "start": 83,
"end": 84 "end": 84
@ -125,6 +135,7 @@ expression: actual
"optional": false "optional": false
}, },
{ {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 93, "start": 93,
"end": 107, "end": 107,
@ -136,6 +147,7 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 101, "start": 101,
"end": 103, "end": 103,
@ -143,6 +155,7 @@ expression: actual
"raw": "14" "raw": "14"
}, },
{ {
"type": "PipeSubstitution",
"type": "PipeSubstitution", "type": "PipeSubstitution",
"start": 105, "start": 105,
"end": 106 "end": 106

View File

@ -23,6 +23,7 @@ expression: actual
"name": "f" "name": "f"
}, },
"init": { "init": {
"type": "FunctionExpression",
"type": "FunctionExpression", "type": "FunctionExpression",
"start": 7, "start": 7,
"end": 49, "end": 49,
@ -48,6 +49,7 @@ expression: actual
"start": 21, "start": 21,
"end": 47, "end": 47,
"argument": { "argument": {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 28, "start": 28,
"end": 47, "end": 47,
@ -59,12 +61,14 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "Identifier",
"type": "Identifier", "type": "Identifier",
"start": 36, "start": 36,
"end": 41, "end": 41,
"name": "angle" "name": "angle"
}, },
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 43, "start": 43,
"end": 46, "end": 46,

View File

@ -23,11 +23,13 @@ expression: actual
"name": "numbers" "name": "numbers"
}, },
"init": { "init": {
"type": "ArrayExpression",
"type": "ArrayExpression", "type": "ArrayExpression",
"start": 14, "start": 14,
"end": 91, "end": 91,
"elements": [ "elements": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 28, "start": 28,
"end": 29, "end": 29,
@ -35,6 +37,7 @@ expression: actual
"raw": "1" "raw": "1"
}, },
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 79, "start": 79,
"end": 80, "end": 80,

View File

@ -23,11 +23,13 @@ expression: actual
"name": "numbers" "name": "numbers"
}, },
"init": { "init": {
"type": "ArrayExpression",
"type": "ArrayExpression", "type": "ArrayExpression",
"start": 14, "start": 14,
"end": 91, "end": 91,
"elements": [ "elements": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 28, "start": 28,
"end": 29, "end": 29,
@ -35,6 +37,7 @@ expression: actual
"raw": "1" "raw": "1"
}, },
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 43, "start": 43,
"end": 44, "end": 44,

View File

@ -23,6 +23,7 @@ expression: actual
"name": "props" "name": "props"
}, },
"init": { "init": {
"type": "ObjectExpression",
"type": "ObjectExpression", "type": "ObjectExpression",
"start": 12, "start": 12,
"end": 80, "end": 80,
@ -38,6 +39,7 @@ expression: actual
"name": "a" "name": "a"
}, },
"value": { "value": {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 29, "start": 29,
"end": 30, "end": 30,
@ -56,6 +58,7 @@ expression: actual
"name": "c" "name": "c"
}, },
"value": { "value": {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 68, "start": 68,
"end": 69, "end": 69,

View File

@ -23,6 +23,7 @@ expression: actual
"name": "props" "name": "props"
}, },
"init": { "init": {
"type": "ObjectExpression",
"type": "ObjectExpression", "type": "ObjectExpression",
"start": 12, "start": 12,
"end": 79, "end": 79,
@ -38,6 +39,7 @@ expression: actual
"name": "a" "name": "a"
}, },
"value": { "value": {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 29, "start": 29,
"end": 30, "end": 30,
@ -56,6 +58,7 @@ expression: actual
"name": "c" "name": "c"
}, },
"value": { "value": {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 68, "start": 68,
"end": 69, "end": 69,

View File

@ -23,6 +23,7 @@ expression: actual
"name": "myVar" "name": "myVar"
}, },
"init": { "init": {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 14, "start": 14,
"end": 36, "end": 36,
@ -34,6 +35,7 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 18, "start": 18,
"end": 19, "end": 19,
@ -41,6 +43,7 @@ expression: actual
"raw": "5" "raw": "5"
}, },
{ {
"type": "UnaryExpression",
"type": "UnaryExpression", "type": "UnaryExpression",
"start": 22, "start": 22,
"end": 35, "end": 35,
@ -58,6 +61,7 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 30, "start": 30,
"end": 31, "end": 31,
@ -65,6 +69,7 @@ expression: actual
"raw": "5" "raw": "5"
}, },
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 33, "start": 33,
"end": 34, "end": 34,

View File

@ -23,11 +23,13 @@ expression: actual
"name": "sketch001" "name": "sketch001"
}, },
"init": { "init": {
"type": "PipeExpression",
"type": "PipeExpression", "type": "PipeExpression",
"start": 19, "start": 19,
"end": 132, "end": 132,
"body": [ "body": [
{ {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 19, "start": 19,
"end": 38, "end": 38,
@ -39,6 +41,7 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 33, "start": 33,
"end": 37, "end": 37,
@ -49,6 +52,7 @@ expression: actual
"optional": false "optional": false
}, },
{ {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 115, "start": 115,
"end": 132, "end": 132,
@ -60,6 +64,7 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "PipeSubstitution",
"type": "PipeSubstitution", "type": "PipeSubstitution",
"start": 130, "start": 130,
"end": 131 "end": 131

View File

@ -23,6 +23,7 @@ expression: actual
"name": "my14" "name": "my14"
}, },
"init": { "init": {
"type": "BinaryExpression",
"type": "BinaryExpression", "type": "BinaryExpression",
"start": 14, "start": 14,
"end": 31, "end": 31,

View File

@ -23,10 +23,12 @@ expression: actual
"name": "x" "name": "x"
}, },
"init": { "init": {
"type": "IfExpression",
"type": "IfExpression", "type": "IfExpression",
"start": 10, "start": 10,
"end": 74, "end": 74,
"cond": { "cond": {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 13, "start": 13,
"end": 17, "end": 17,
@ -43,6 +45,7 @@ expression: actual
"start": 32, "start": 32,
"end": 33, "end": 33,
"expression": { "expression": {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 32, "start": 32,
"end": 33, "end": 33,
@ -63,6 +66,7 @@ expression: actual
"start": 63, "start": 63,
"end": 64, "end": 64,
"expression": { "expression": {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 63, "start": 63,
"end": 64, "end": 64,

View File

@ -23,10 +23,12 @@ expression: actual
"name": "x" "name": "x"
}, },
"init": { "init": {
"type": "IfExpression",
"type": "IfExpression", "type": "IfExpression",
"start": 10, "start": 10,
"end": 121, "end": 121,
"cond": { "cond": {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 13, "start": 13,
"end": 17, "end": 17,
@ -43,6 +45,7 @@ expression: actual
"start": 32, "start": 32,
"end": 33, "end": 33,
"expression": { "expression": {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 32, "start": 32,
"end": 33, "end": 33,
@ -58,6 +61,7 @@ expression: actual
"start": 44, "start": 44,
"end": 90, "end": 90,
"cond": { "cond": {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 52, "start": 52,
"end": 64, "end": 64,
@ -69,6 +73,7 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "Identifier",
"type": "Identifier", "type": "Identifier",
"start": 57, "start": 57,
"end": 63, "end": 63,
@ -87,6 +92,7 @@ expression: actual
"start": 79, "start": 79,
"end": 80, "end": 80,
"expression": { "expression": {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 79, "start": 79,
"end": 80, "end": 80,
@ -109,6 +115,7 @@ expression: actual
"start": 110, "start": 110,
"end": 111, "end": 111,
"expression": { "expression": {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 110, "start": 110,
"end": 111, "end": 111,

View File

@ -23,6 +23,7 @@ expression: actual
"name": "x" "name": "x"
}, },
"init": { "init": {
"type": "BinaryExpression",
"type": "BinaryExpression", "type": "BinaryExpression",
"start": 8, "start": 8,
"end": 14, "end": 14,

View File

@ -23,6 +23,7 @@ expression: actual
"name": "x" "name": "x"
}, },
"init": { "init": {
"type": "BinaryExpression",
"type": "BinaryExpression", "type": "BinaryExpression",
"start": 8, "start": 8,
"end": 14, "end": 14,

View File

@ -23,6 +23,7 @@ expression: actual
"name": "x" "name": "x"
}, },
"init": { "init": {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 4, "start": 4,
"end": 5, "end": 5,

View File

@ -23,6 +23,7 @@ expression: actual
"name": "obj" "name": "obj"
}, },
"init": { "init": {
"type": "ObjectExpression",
"type": "ObjectExpression", "type": "ObjectExpression",
"start": 12, "start": 12,
"end": 42, "end": 42,
@ -38,11 +39,13 @@ expression: actual
"name": "center" "name": "center"
}, },
"value": { "value": {
"type": "ArrayExpression",
"type": "ArrayExpression", "type": "ArrayExpression",
"start": 22, "start": 22,
"end": 30, "end": 30,
"elements": [ "elements": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 23, "start": 23,
"end": 25, "end": 25,
@ -50,6 +53,7 @@ expression: actual
"raw": "10" "raw": "10"
}, },
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 27, "start": 27,
"end": 29, "end": 29,
@ -70,6 +74,7 @@ expression: actual
"name": "radius" "name": "radius"
}, },
"value": { "value": {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 40, "start": 40,
"end": 41, "end": 41,

View File

@ -23,6 +23,7 @@ expression: actual
"name": "myVar" "name": "myVar"
}, },
"init": { "init": {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 14, "start": 14,
"end": 35, "end": 35,
@ -34,6 +35,7 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "UnaryExpression",
"type": "UnaryExpression", "type": "UnaryExpression",
"start": 18, "start": 18,
"end": 31, "end": 31,
@ -51,6 +53,7 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 26, "start": 26,
"end": 27, "end": 27,
@ -58,6 +61,7 @@ expression: actual
"raw": "5" "raw": "5"
}, },
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 29, "start": 29,
"end": 30, "end": 30,
@ -69,6 +73,7 @@ expression: actual
} }
}, },
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 33, "start": 33,
"end": 34, "end": 34,

View File

@ -23,11 +23,13 @@ expression: actual
"name": "myVar" "name": "myVar"
}, },
"init": { "init": {
"type": "PipeExpression",
"type": "PipeExpression", "type": "PipeExpression",
"start": 14, "start": 14,
"end": 36, "end": 36,
"body": [ "body": [
{ {
"type": "BinaryExpression",
"type": "BinaryExpression", "type": "BinaryExpression",
"start": 14, "start": 14,
"end": 19, "end": 19,
@ -50,6 +52,7 @@ expression: actual
} }
}, },
{ {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 23, "start": 23,
"end": 36, "end": 36,
@ -61,6 +64,7 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 30, "start": 30,
"end": 32, "end": 32,
@ -68,6 +72,7 @@ expression: actual
"raw": "45" "raw": "45"
}, },
{ {
"type": "PipeSubstitution",
"type": "PipeSubstitution", "type": "PipeSubstitution",
"start": 34, "start": 34,
"end": 35 "end": 35

View File

@ -23,6 +23,7 @@ expression: actual
"name": "x" "name": "x"
}, },
"init": { "init": {
"type": "BinaryExpression",
"type": "BinaryExpression", "type": "BinaryExpression",
"start": 10, "start": 10,
"end": 27, "end": 27,

View File

@ -23,6 +23,7 @@ expression: actual
"name": "x" "name": "x"
}, },
"init": { "init": {
"type": "BinaryExpression",
"type": "BinaryExpression", "type": "BinaryExpression",
"start": 8, "start": 8,
"end": 18, "end": 18,

View File

@ -23,6 +23,7 @@ expression: actual
"name": "x" "name": "x"
}, },
"init": { "init": {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 10, "start": 10,
"end": 11, "end": 11,

View File

@ -23,6 +23,7 @@ expression: actual
"name": "x" "name": "x"
}, },
"init": { "init": {
"type": "FunctionExpression",
"type": "FunctionExpression", "type": "FunctionExpression",
"start": 7, "start": 7,
"end": 58, "end": 58,
@ -37,6 +38,7 @@ expression: actual
"start": 23, "start": 23,
"end": 32, "end": 32,
"argument": { "argument": {
"type": "Identifier",
"type": "Identifier", "type": "Identifier",
"start": 30, "start": 30,
"end": 32, "end": 32,
@ -49,6 +51,7 @@ expression: actual
"start": 41, "start": 41,
"end": 50, "end": 50,
"argument": { "argument": {
"type": "Identifier",
"type": "Identifier", "type": "Identifier",
"start": 48, "start": 48,
"end": 50, "end": 50,

View File

@ -23,6 +23,7 @@ expression: actual
"name": "obj" "name": "obj"
}, },
"init": { "init": {
"type": "ObjectExpression",
"type": "ObjectExpression", "type": "ObjectExpression",
"start": 12, "start": 12,
"end": 26, "end": 26,
@ -38,6 +39,7 @@ expression: actual
"name": "a" "name": "a"
}, },
"value": { "value": {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 17, "start": 17,
"end": 18, "end": 18,
@ -56,6 +58,7 @@ expression: actual
"name": "b" "name": "b"
}, },
"value": { "value": {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 23, "start": 23,
"end": 24, "end": 24,
@ -86,6 +89,7 @@ expression: actual
"name": "height" "name": "height"
}, },
"init": { "init": {
"type": "BinaryExpression",
"type": "BinaryExpression", "type": "BinaryExpression",
"start": 46, "start": 46,
"end": 55, "end": 55,

View File

@ -23,6 +23,7 @@ expression: actual
"name": "obj" "name": "obj"
}, },
"init": { "init": {
"type": "ObjectExpression",
"type": "ObjectExpression", "type": "ObjectExpression",
"start": 12, "start": 12,
"end": 26, "end": 26,
@ -38,6 +39,7 @@ expression: actual
"name": "a" "name": "a"
}, },
"value": { "value": {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 17, "start": 17,
"end": 18, "end": 18,
@ -56,6 +58,7 @@ expression: actual
"name": "b" "name": "b"
}, },
"value": { "value": {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 23, "start": 23,
"end": 24, "end": 24,
@ -86,6 +89,7 @@ expression: actual
"name": "height" "name": "height"
}, },
"init": { "init": {
"type": "BinaryExpression",
"type": "BinaryExpression", "type": "BinaryExpression",
"start": 47, "start": 47,
"end": 59, "end": 59,

View File

@ -23,6 +23,7 @@ expression: actual
"name": "obj" "name": "obj"
}, },
"init": { "init": {
"type": "ObjectExpression",
"type": "ObjectExpression", "type": "ObjectExpression",
"start": 12, "start": 12,
"end": 26, "end": 26,
@ -38,6 +39,7 @@ expression: actual
"name": "a" "name": "a"
}, },
"value": { "value": {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 17, "start": 17,
"end": 18, "end": 18,
@ -56,6 +58,7 @@ expression: actual
"name": "b" "name": "b"
}, },
"value": { "value": {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 23, "start": 23,
"end": 24, "end": 24,
@ -86,6 +89,7 @@ expression: actual
"name": "height" "name": "height"
}, },
"init": { "init": {
"type": "BinaryExpression",
"type": "BinaryExpression", "type": "BinaryExpression",
"start": 46, "start": 46,
"end": 58, "end": 58,

View File

@ -23,6 +23,7 @@ expression: actual
"name": "obj" "name": "obj"
}, },
"init": { "init": {
"type": "ObjectExpression",
"type": "ObjectExpression", "type": "ObjectExpression",
"start": 12, "start": 12,
"end": 26, "end": 26,
@ -38,6 +39,7 @@ expression: actual
"name": "a" "name": "a"
}, },
"value": { "value": {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 17, "start": 17,
"end": 18, "end": 18,
@ -56,6 +58,7 @@ expression: actual
"name": "b" "name": "b"
}, },
"value": { "value": {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 23, "start": 23,
"end": 24, "end": 24,
@ -86,11 +89,13 @@ expression: actual
"name": "height" "name": "height"
}, },
"init": { "init": {
"type": "ArrayExpression",
"type": "ArrayExpression", "type": "ArrayExpression",
"start": 46, "start": 46,
"end": 63, "end": 63,
"elements": [ "elements": [
{ {
"type": "BinaryExpression",
"type": "BinaryExpression", "type": "BinaryExpression",
"start": 47, "start": 47,
"end": 59, "end": 59,
@ -127,6 +132,7 @@ expression: actual
} }
}, },
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 61, "start": 61,
"end": 62, "end": 62,

View File

@ -23,6 +23,7 @@ expression: actual
"name": "obj" "name": "obj"
}, },
"init": { "init": {
"type": "ObjectExpression",
"type": "ObjectExpression", "type": "ObjectExpression",
"start": 12, "start": 12,
"end": 26, "end": 26,
@ -38,6 +39,7 @@ expression: actual
"name": "a" "name": "a"
}, },
"value": { "value": {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 17, "start": 17,
"end": 18, "end": 18,
@ -56,6 +58,7 @@ expression: actual
"name": "b" "name": "b"
}, },
"value": { "value": {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 23, "start": 23,
"end": 24, "end": 24,
@ -86,11 +89,13 @@ expression: actual
"name": "height" "name": "height"
}, },
"init": { "init": {
"type": "ArrayExpression",
"type": "ArrayExpression", "type": "ArrayExpression",
"start": 46, "start": 46,
"end": 63, "end": 63,
"elements": [ "elements": [
{ {
"type": "BinaryExpression",
"type": "BinaryExpression", "type": "BinaryExpression",
"start": 47, "start": 47,
"end": 59, "end": 59,
@ -127,6 +132,7 @@ expression: actual
} }
}, },
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 61, "start": 61,
"end": 62, "end": 62,

View File

@ -23,6 +23,7 @@ expression: actual
"name": "obj" "name": "obj"
}, },
"init": { "init": {
"type": "ObjectExpression",
"type": "ObjectExpression", "type": "ObjectExpression",
"start": 12, "start": 12,
"end": 26, "end": 26,
@ -38,6 +39,7 @@ expression: actual
"name": "a" "name": "a"
}, },
"value": { "value": {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 17, "start": 17,
"end": 18, "end": 18,
@ -56,6 +58,7 @@ expression: actual
"name": "b" "name": "b"
}, },
"value": { "value": {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 23, "start": 23,
"end": 24, "end": 24,
@ -86,11 +89,13 @@ expression: actual
"name": "height" "name": "height"
}, },
"init": { "init": {
"type": "ArrayExpression",
"type": "ArrayExpression", "type": "ArrayExpression",
"start": 46, "start": 46,
"end": 62, "end": 62,
"elements": [ "elements": [
{ {
"type": "BinaryExpression",
"type": "BinaryExpression", "type": "BinaryExpression",
"start": 47, "start": 47,
"end": 58, "end": 58,
@ -127,6 +132,7 @@ expression: actual
} }
}, },
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 60, "start": 60,
"end": 61, "end": 61,

View File

@ -23,6 +23,7 @@ expression: actual
"name": "height" "name": "height"
}, },
"init": { "init": {
"type": "BinaryExpression",
"type": "BinaryExpression", "type": "BinaryExpression",
"start": 15, "start": 15,
"end": 24, "end": 24,

View File

@ -23,6 +23,7 @@ expression: actual
"name": "six" "name": "six"
}, },
"init": { "init": {
"type": "BinaryExpression",
"type": "BinaryExpression", "type": "BinaryExpression",
"start": 12, "start": 12,
"end": 21, "end": 21,

View File

@ -23,6 +23,7 @@ expression: actual
"name": "five" "name": "five"
}, },
"init": { "init": {
"type": "BinaryExpression",
"type": "BinaryExpression", "type": "BinaryExpression",
"start": 13, "start": 13,
"end": 22, "end": 22,

View File

@ -23,11 +23,13 @@ expression: actual
"name": "height" "name": "height"
}, },
"init": { "init": {
"type": "ArrayExpression",
"type": "ArrayExpression", "type": "ArrayExpression",
"start": 15, "start": 15,
"end": 30, "end": 30,
"elements": [ "elements": [
{ {
"type": "MemberExpression",
"type": "MemberExpression", "type": "MemberExpression",
"start": 17, "start": 17,
"end": 25, "end": 25,
@ -49,6 +51,7 @@ expression: actual
"computed": false "computed": false
}, },
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 27, "start": 27,
"end": 28, "end": 28,

View File

@ -23,6 +23,7 @@ expression: actual
"name": "obj" "name": "obj"
}, },
"init": { "init": {
"type": "ObjectExpression",
"type": "ObjectExpression", "type": "ObjectExpression",
"start": 12, "start": 12,
"end": 26, "end": 26,
@ -38,6 +39,7 @@ expression: actual
"name": "a" "name": "a"
}, },
"value": { "value": {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 17, "start": 17,
"end": 18, "end": 18,
@ -56,6 +58,7 @@ expression: actual
"name": "b" "name": "b"
}, },
"value": { "value": {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 23, "start": 23,
"end": 24, "end": 24,
@ -86,6 +89,7 @@ expression: actual
"name": "height" "name": "height"
}, },
"init": { "init": {
"type": "MemberExpression",
"type": "MemberExpression", "type": "MemberExpression",
"start": 46, "start": 46,
"end": 54, "end": 54,

View File

@ -23,6 +23,7 @@ expression: actual
"name": "prop" "name": "prop"
}, },
"init": { "init": {
"type": "MemberExpression",
"type": "MemberExpression", "type": "MemberExpression",
"start": 13, "start": 13,
"end": 27, "end": 27,

View File

@ -23,6 +23,7 @@ expression: actual
"name": "pt1" "name": "pt1"
}, },
"init": { "init": {
"type": "MemberExpression",
"type": "MemberExpression", "type": "MemberExpression",
"start": 12, "start": 12,
"end": 17, "end": 17,

View File

@ -23,6 +23,7 @@ expression: actual
"name": "prop" "name": "prop"
}, },
"init": { "init": {
"type": "MemberExpression",
"type": "MemberExpression", "type": "MemberExpression",
"start": 13, "start": 13,
"end": 34, "end": 34,

View File

@ -23,6 +23,7 @@ expression: actual
"name": "pt1" "name": "pt1"
}, },
"init": { "init": {
"type": "MemberExpression",
"type": "MemberExpression", "type": "MemberExpression",
"start": 12, "start": 12,
"end": 17, "end": 17,

View File

@ -23,6 +23,7 @@ expression: actual
"name": "pt1" "name": "pt1"
}, },
"init": { "init": {
"type": "MemberExpression",
"type": "MemberExpression", "type": "MemberExpression",
"start": 12, "start": 12,
"end": 22, "end": 22,

View File

@ -23,6 +23,7 @@ expression: actual
"name": "pt1" "name": "pt1"
}, },
"init": { "init": {
"type": "MemberExpression",
"type": "MemberExpression", "type": "MemberExpression",
"start": 12, "start": 12,
"end": 19, "end": 19,

View File

@ -23,6 +23,7 @@ expression: actual
"name": "sg" "name": "sg"
}, },
"init": { "init": {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 11, "start": 11,
"end": 29, "end": 29,
@ -34,6 +35,7 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "Identifier",
"type": "Identifier", "type": "Identifier",
"start": 25, "start": 25,
"end": 28, "end": 28,

View File

@ -23,11 +23,13 @@ expression: actual
"name": "sg" "name": "sg"
}, },
"init": { "init": {
"type": "PipeExpression",
"type": "PipeExpression", "type": "PipeExpression",
"start": 11, "start": 11,
"end": 53, "end": 53,
"body": [ "body": [
{ {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 11, "start": 11,
"end": 29, "end": 29,
@ -39,6 +41,7 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "Identifier",
"type": "Identifier", "type": "Identifier",
"start": 25, "start": 25,
"end": 28, "end": 28,
@ -48,6 +51,7 @@ expression: actual
"optional": false "optional": false
}, },
{ {
"type": "CallExpression",
"type": "CallExpression", "type": "CallExpression",
"start": 33, "start": 33,
"end": 53, "end": 53,
@ -59,11 +63,13 @@ expression: actual
}, },
"arguments": [ "arguments": [
{ {
"type": "ArrayExpression",
"type": "ArrayExpression", "type": "ArrayExpression",
"start": 38, "start": 38,
"end": 49, "end": 49,
"elements": [ "elements": [
{ {
"type": "Literal",
"type": "Literal", "type": "Literal",
"start": 39, "start": 39,
"end": 40, "end": 40,
@ -71,6 +77,7 @@ expression: actual
"raw": "0" "raw": "0"
}, },
{ {
"type": "UnaryExpression",
"type": "UnaryExpression", "type": "UnaryExpression",
"start": 42, "start": 42,
"end": 48, "end": 48,
@ -86,6 +93,7 @@ expression: actual
] ]
}, },
{ {
"type": "PipeSubstitution",
"type": "PipeSubstitution", "type": "PipeSubstitution",
"start": 51, "start": 51,
"end": 52 "end": 52