Socket
Socket
Sign inDemoInstall

babylon

Package Overview
Dependencies
Maintainers
4
Versions
132
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

babylon - npm Package Versions

1
14

6.13.0

Diff

Changelog

Source

v6.13.0 (2016-10-21)

:eyeglasses: Spec Compliancy

Property variance type annotations for Flow plugin (#161) (Sam Goldman)

See https://flowtype.org/docs/variance.html for more information

type T = { +p: T };
interface T { -p: T };
declare class T { +[k:K]: V };
class T { -[k:K]: V };
class C2 { +p: T = e };

Raise error on duplicate definition of proto (#183) (Moti Zilberman)

({ __proto__: 1, __proto__: 2 }) // Throws an error now

:bug: Bug Fix

Flow: Allow class properties to be named static (#184) (Moti Zilberman)

declare class A {
  static: T;
}

Allow "async" as identifier for object literal property shorthand (#187) (Andrew Levine)

var foo = { async, bar };

:nail_care: Polish

Fix flowtype and add inType to state (#189) (Daniel Tschinder)

This improves the performance slightly (because of hidden classes)

:house: Internal

Fix .gitattributes line ending setting (#191) (Moti Zilberman)

Increase test coverage (#175 (Moti Zilberman)

Readd missin .eslinignore for IDEs (Daniel Tschinder)

Error on missing expected.json fixture in CI (#188) (Moti Zilberman)

Add .gitattributes and .editorconfig for LF line endings (#179) (Moti Zilberman)

Fixes two tests that are failing after the merge of #172 (#177) (Moti Zilberman)

hzoo
published 6.12.0 •

Changelog

Source

v6.12.0 (2016-10-14)

:eyeglasses: Spec Compliancy

Implement import() syntax (#163) (Jordan Gensler)

Dynamic Import
  • Proposal Repo: https://github.com/domenic/proposal-dynamic-import
  • Championed by @domenic
  • stage-2
  • sept-28 tc39 notes

This repository contains a proposal for adding a "function-like" import() module loading syntactic form to JavaScript

import(`./section-modules/${link.dataset.entryModule}.js`)
.then(module => {
  module.loadPageInto(main);
})

Add EmptyTypeAnnotation (#171) (Sam Goldman)

EmptyTypeAnnotation

Just wasn't covered before.

type T = empty;

:bug: Bug Fix

Fix crash when exporting with destructuring and sparse array (#170) (Jeroen Engels)

// was failing due to sparse array
export const { foo: [ ,, qux7 ] } = bar;

Allow keyword in Flow object declaration property names with type parameters (#146) (Dan Harper)

declare class X {
  foobar<T>(): void;
  static foobar<T>(): void;
}

Allow keyword in object/class property names with Flow type parameters (#145) (Dan Harper)

class Foo {
  delete<T>(item: T): T {
    return item;
  }
}

Allow typeAnnotations for yield expressions (#174)) (Daniel Tschinder)

function *foo() {
  const x = (yield 5: any);
}

:nail_care: Polish

Annotate more errors with expected token (#172)) (Moti Zilberman)

// Unexpected token, expected ; (1:6)
{ set 1 }

:house: Internal

Remove kcheck (#173)) (Daniel Tschinder)

Also run flow, linting, babel tests on seperate instances (add back node 0.10)

hzoo
published 6.11.6 •

Changelog

Source

v6.11.6 (2016-10-12)

:bug: Bug Fix/Regression

Fix crash when exporting with destructuring and sparse array (#170) (Jeroen Engels)

// was failing with `Cannot read property 'type' of null` because of null identifiers
export const { foo: [ ,, qux7 ] } = bar;
hzoo
published 6.11.5 •

Changelog

Source

v6.11.5 (2016-10-12)

:eyeglasses: Spec Compliancy

Fix: Check for duplicate named exports in exported destructuring assignments (#144) (Kai Cataldo)

// `foo` has already been exported. Exported identifiers must be unique. (2:20)
export function foo() {};
export const { a: [{foo}] } = bar;

Fix: Check for duplicate named exports in exported rest elements/properties (#164) (Kai Cataldo)

// `foo` has already been exported. Exported identifiers must be unique. (2:22)
export const foo = 1;
export const [bar, ...foo] = baz;

:bug: Bug Fix

Fix: Allow identifier async for default param in arrow expression (#165) (Kai Cataldo)

// this is ok now
const test = ({async = true}) => {};

:nail_care: Polish

Babylon will now print out the token it's expecting if there's a SyntaxError (#150) (Daniel Tschinder)

# So in the case of a missing ending curly (`}`)
Module build failed: SyntaxError: Unexpected token, expected } (30:0)
  28 |   }
  29 |
> 30 |
     | ^
hzoo
published 6.11.4 •

Changelog

Source

v6.11.4 (2016-10-03)

Temporary rollback for erroring on trailing comma with spread (#154) (Henry Zhu)

hzoo
published 6.11.3 •

Changelog

Source

v6.11.3 (2016-10-01)

:eyeglasses: Spec Compliancy

Add static errors for object rest (#149) (@danez)

https://github.com/sebmarkbage/ecmascript-rest-spread

Object rest copies the rest of properties from the right hand side obj starting from the left to right.

let { x, y, ...z } =  { x: 1, y: 2, z: 3 };
// x = 1
// y = 2
// z = { z: 3 }
New Syntax Errors:

SyntaxError: The rest element has to be the last element when destructuring (1:10)

> 1 | let { ...x, y, z } = { x: 1, y: 2, z: 3};
    |           ^
# Previous behavior:
# x = { x: 1, y: 2, z: 3 }
# y = 2
# z = 3

Before, this was just a more verbose way of shallow copying obj since it doesn't actually do what you think.

SyntaxError: Cannot have multiple rest elements when destructuring (1:13)

> 1 | let { x, ...y, ...z } = { x: 1, y: 2, z: 3};
    |              ^
# Previous behavior:
# x = 1
# y = { y: 2, z: 3 }
# z = { y: 2, z: 3 }

Before y and z would just be the same value anyway so there is no reason to need to have both.

SyntaxError: A trailing comma is not permitted after the rest element (1:16)

let { x, y, ...z, } = obj;

The rationale for this is that the use case for trailing comma is that you can add something at the end without affecting the line above. Since a RestProperty always has to be the last property it doesn't make sense.


get / set are valid property names in default assignment (#142) (@jezell)

// valid
function something({ set = null, get = null }) {}
hzoo
published 6.11.2 •

Changelog

Source

v6.11.2 (2016-09-23)

Bug Fix

  • #139 Don't do the duplicate check if not an identifier (#140) @hzoo
// regression with duplicate export check
SyntaxError: ./typography.js: `undefined` has already been exported. Exported identifiers must be unique. (22:13)
  20 |
  21 | export const { rhythm } = typography;
> 22 | export const { TypographyStyle } = typography

Bail out for now, and make a change to account for destructuring in the next release.

hzoo
published 6.11.1 •

Changelog

Source

6.11.1 (2016-09-22)

Bug Fix

  • #137 - Fix a regression with duplicate exports - it was erroring on all keys in Object.prototype. @danez
export toString from './toString';
`toString` has already been exported. Exported identifiers must be unique. (1:7)
> 1 | export toString from './toString';
    |        ^
  2 |
hzoo
published 6.11.0 •

Changelog

Source

6.11.0 (2016-09-22)

Spec Compliancy (will break CI)

  • Disallow duplicate named exports (#107) @kaicataldo
// Only one default export allowed per module. (2:9)
export default function() {};
export { foo as default };

// Only one default export allowed per module. (2:0)
export default {};
export default function() {};

// `Foo` has already been exported. Exported identifiers must be unique. (2:0)
export { Foo };
export class Foo {};

New Feature (Syntax)

  • Add support for computed class property names (#121) @motiz88
// AST
interface ClassProperty <: Node {
  type: "ClassProperty";
  key: Identifier;
  value: Expression;
  computed: boolean; // added
}
// with "plugins": ["classProperties"]
class Foo {
  [x]
  ['y']
}

class Bar {
  [p]
  [m] () {}
}

Bug Fix

  • Fix static property falling through in the declare class Flow AST (#135) @danharper
declare class X {
    a: number;
    static b: number; // static
    c: number; // this was being marked as static in the AST as well
}

Polish

  • Rephrase "assigning/binding to rvalue" errors to include context (#119) @motiz88
// Used to error with:
// SyntaxError: Assigning to rvalue (1:0)

// Now:
// Invalid left-hand side in assignment expression (1:0)
3 = 4

// Invalid left-hand side in for-in statement (1:5)
for (+i in {});

Internal

  • Fix call to this.parseMaybeAssign with correct arguments (#133) @danez
  • Add semver note to changelog (#131) @hzoo
hzoo
published 6.10.0 •

Changelog

Source

6.10.0 (2016-09-19)

We plan to include some spec compliancy bugs in patch versions. An example was the multiple default exports issue.

Spec Compliancy

  • Implement ES2016 check for simple parameter list in strict mode (#106) (Timothy Gu)

It is a Syntax Error if ContainsUseStrict of FunctionBody is true and IsSimpleParameterList of FormalParameters is false. https://tc39.github.io/ecma262/2016/#sec-function-definitions-static-semantics-early-errors

More Context: tc39-notes

For example:

// this errors because it uses destructuring and default parameters
// in a function with a "use strict" directive
function a([ option1, option2 ] = []) {
  "use strict";
}

The solution would be to use a top level "use strict" or to remove the destructuring or default parameters when using a function + "use strict" or to.

New Feature

  • Exact object type annotations for Flow plugin (#104) (Basil Hosmer)

Added to flow in https://github.com/facebook/flow/commit/c710c40aa2a115435098d6c0dfeaadb023cd39b8

Looks like:

var a : {| x: number, y: string |} = { x: 0, y: 'foo' };

Bug Fixes

  • Include typeParameter location in ArrowFunctionExpression (#126) (Daniel Tschinder)
  • Error on invalid flow type annotation with default assignment (#122) (Dan Harper)
  • Fix Flow return types on arrow functions (#124) (Dan Harper)

Misc

  • Add tests for export extensions (#127) (Daniel Tschinder)
  • Fix Contributing guidelines [skip ci] (Daniel Tschinder)
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc