X-Git-Url: https://code.delx.au/gnu-emacs-elpa/blobdiff_plain/c10ba4bc0ffd0dc1c2acb0443e52044adb2cdeed..54df2598550c8040def7aec80d04847458d990df:/packages/js2-mode/tests/parser.el diff --git a/packages/js2-mode/tests/parser.el b/packages/js2-mode/tests/parser.el index b4f2d8fe2..0dd1502c2 100644 --- a/packages/js2-mode/tests/parser.el +++ b/packages/js2-mode/tests/parser.el @@ -608,6 +608,16 @@ the test." (should export-node) (should (js2-export-node-default export-node)))) +(js2-deftest export-function-no-semicolon "export default function foo() {}" + (js2-mode) + (should (equal nil js2-parsed-warnings))) +(js2-deftest export-default-function-no-semicolon "export function foo() {}" + (js2-mode) + (should (equal nil js2-parsed-warnings))) +(js2-deftest export-anything-else-does-require-a-semicolon "export var obj = {}" + (js2-mode) + (should (not (equal nil js2-parsed-warnings)))) + (js2-deftest-parse parse-export-rexport "export * from 'other/lib';") (js2-deftest-parse parse-export-export-named-list "export {foo, bar as bang};") (js2-deftest-parse parse-re-export-named-list "export {foo, bar as bang} from 'other/lib';") @@ -673,6 +683,9 @@ the test." (js2-deftest-parse parse-super-keyword "class Foo {\n constructor() { super(42);\n}\n foo() { super.foo();\n}\n}") +(js2-deftest-parse parse-class-keywordlike-method + "class C {\n delete() {}\n if() {}\n}") + ;;; Scopes (js2-deftest ast-symbol-table-includes-fn-node "function foo() {}" @@ -696,6 +709,20 @@ the test." (should (= (js2-symbol-decl-type var-entry) js2-VAR)) (should (js2-name-node-p (js2-symbol-ast-node var-entry))))) +(js2-deftest for-node-is-declaration-scope "for (let i = 0; i; ++i) {};" + (js2-mode) + (search-forward "i") + (forward-char -1) + (let ((scope (js2-node-get-enclosing-scope (js2-node-at-point)))) + (should (js2-for-node-p (js2-get-defining-scope scope "i"))))) + +(js2-deftest array-comp-is-result-scope "[x * 2 for (x in y)];" + (js2-mode) + (search-forward "x") + (forward-char -1) + (let ((scope (js2-node-get-enclosing-scope (js2-node-at-point)))) + (should (js2-comp-loop-node-p (js2-get-defining-scope scope "x"))))) + ;;; Tokenizer (js2-deftest get-token "(1+1)" @@ -766,3 +793,15 @@ the test." (js2-deftest function-without-parens-error "function b {}" ;; Should finish the parse. (js2-mode)) + +;;; Comments + +(js2-deftest comment-node-length "//" + (js2-mode) + (let ((node (js2-node-at-point (point-min)))) + (should (= (js2-node-len node) 2)))) + +(js2-deftest comment-node-length-newline "//\n" + (js2-mode) + (let ((node (js2-node-at-point (point-min)))) + (should (= (js2-node-len node) 3))))