summaryrefslogtreecommitdiff
path: root/module/language/ecmascript
AgeCommit message (Collapse)AuthorFilesLines
2019-09-27Deprecate passing a non-zero size to make-moduleAndy Wingo1-1/+1
* module/ice-9/boot-9.scm (make-module): Issue a deprecation warning if users pass a non-zero size. (nested-define-module!, make-modules-in, beautify-user-module!) (resolve-interface, make-autoload-interface, %cond-expand-table): * module/ice-9/popen.scm (port/pid-table): * module/ice-9/session.scm (make-fold-modules): * module/language/ecmascript/function.scm (*program-wrappers*): * module/scripts/api-diff.scm (read-api-alist-file): * module/srfi/srfi-10.scm (reader-ctors): Update callers. Also remove some make-hash-table sizes.
2016-10-25Fix tree-il code generation for ECMAscript `new' expression.Julian Graham1-4/+4
The compiler was producing `((toplevel foo))' instead of `(toplevel foo)'. Changed to use `call' form with target type and spliced constructor arguments. * module/language/ecmascript/compile-tree-il.scm (comp): Replace `@impl' shorthand with `call' + `@implv' for better control over resulting tree-il. * test-suite/tests/ecmascript.test (compiler): Add test for "new Object();" Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2015-01-23The GOOPS "unbound" value is a unique pairAndy Wingo1-2/+4
* libguile/goops.c (SCM_GOOPS_UNBOUND, SCM_GOOPS_UNBOUNDP): Remove internal macros. (scm_make_unbound, scm_unbound_p): Remove internal functions. (scm_sys_clear_fields_x): Add "unbound" parameter, for the init value. * module/oop/goops.scm (*unbound*): Define in Scheme as a simple heap-allocated value. (unbound?): New definition. (%allocate-instance): Pass *unbound* to %clear-fields!. (make-class, slot-definition-init-value) (slot-definition-init-form, make-closure-variable): Use *unbound* instead of (make-unbound), which is now gone. * module/oop/goops/active-slot.scm (compute-get-n-set): Use *unbound* instead of make-unbound. This module uses the GOOPS internals module; perhaps we should export make-unbound or something... * module/oop/goops/save.scm (make-unbound): Export our own make-unbound definition, for use by residualized save code. * module/language/ecmascript/base.scm (<undefined>, *undefined*): Use a unique object kind and instance for the undefined value. * libguile/vm.c (scm_i_vm_mark_stack): Fill the stack with SCM_UNSPECIFIED instead of SCM_UNBOUND.
2013-08-11Adapt ecmascript compiler to tree-il prompt changes, again.Mark H Weaver1-4/+1
* module/language/ecmascript/compile-tree-il.scm (with-return-prompt): The body of an escape-only prompt is no longer a thunk. Adapt.
2013-08-07Adapt ecmascript compiler to recent tree-il changes for prompts.Mark H Weaver1-5/+10
* module/language/ecmascript/compile-tree-il.scm (with-return-prompt): Adapt to the changes in 178a40928ab5221f6ce57c5af1067abe30a342b3. Prompt tree-il nodes now contain an explicit 'escape-only?' flag, and the body and handler are now both lambdas.
2013-01-31Merge remote-tracking branch 'origin/stable-2.0'Andy Wingo1-2/+3
Conflicts: module/ice-9/psyntax-pp.scm module/ice-9/psyntax.scm module/language/bytecode/spec.scm module/language/tree-il/spec.scm
2013-01-26ecmascript: Fix conversion to boolean for non-numbers.Ludovic Courtès1-2/+3
* module/language/ecmascript/base.scm (->boolean): Call `zero?' and `nan?' only when X is a number. * test-suite/tests/ecmascript.test ("compiler"): Add test case.
2012-07-06Merge remote-tracking branch 'origin/stable-2.0'Andy Wingo1-3/+24
Conflicts: libguile/expand.c libguile/hashtab.c libguile/ports.c libguile/vectors.c libguile/weaks.c module/language/ecmascript/compile-tree-il.scm module/language/tree-il/effects.scm module/language/tree-il/fix-letrec.scm module/language/tree-il/peval.scm test-suite/tests/peval.test
2012-07-05compile ecmascript's `return' as an abortAndy Wingo1-3/+24
* module/language/ecmascript/compile-tree-il.scm (current-return-tag): (with-return-prompt, comp): Compile `return' as an abort instead of a primcall to `return'. Fixes beta-reduction by the optimizer -- it doesn't make sense for `return' to move from one function to another!
2012-06-22Merge remote-tracking branch 'origin/stable-2.0'Andy Wingo1-3/+3
Conflicts: libguile/deprecated.c libguile/ports.c libguile/ports.h libguile/strports.c test-suite/tests/cse.test
2012-06-08Fix unbound variables and unbound valuesSjoerd van Leent1-3/+3
* module/language/ecmascript/base.scm: fix two wrong variable names and a wrong number of arguments in a function call.
2011-09-29Merge remote-tracking branch 'origin/stable-2.0'Andy Wingo1-22/+14
This was a pretty big merge involving a fair amount of porting, especially to peval and its tests. I did not update psyntax-pp.scm, that comes in the next commit. Conflicts: module/ice-9/boot-9.scm module/ice-9/psyntax-pp.scm module/language/ecmascript/compile-tree-il.scm module/language/tree-il.scm module/language/tree-il/analyze.scm module/language/tree-il/inline.scm test-suite/tests/tree-il.test
2011-09-02more define-syntax-rule usageAndy Wingo1-22/+14
* module/ice-9/boot-9.scm: * module/ice-9/control.scm: * module/ice-9/futures.scm: * module/ice-9/optargs.scm: * module/ice-9/poll.scm: * module/ice-9/receive.scm: * module/ice-9/threads.scm: * module/ice-9/vlist.scm: * module/language/assembly/compile-bytecode.scm: * module/language/ecmascript/compile-tree-il.scm: * module/language/tree-il.scm: * module/oop/goops.scm: * module/oop/goops/simple.scm: * module/oop/goops/stklos.scm: * module/srfi/srfi-1.scm: * module/srfi/srfi-35.scm: * module/srfi/srfi-39.scm: * module/srfi/srfi-45.scm: * module/srfi/srfi-67/compare.scm: * module/sxml/match.scm: * module/system/repl/error-handling.scm: * module/system/repl/repl.scm: * module/system/vm/inspect.scm: * module/texinfo.scm: * module/web/server.scm: Use define-syntax-rule, where it makes sense.
2011-06-02rename <application> to <call>Andy Wingo1-86/+86
* doc/ref/compiler.texi (The Scheme Compiler): Update docs. * libguile/expand.h: * libguile/expand.c: * module/language/tree-il.scm: Rename <application> to <call>. Change the external representation from (apply proc arg ...) to (call proc arg ...). * libguile/memoize.c: * module/ice-9/psyntax-pp.scm: * module/ice-9/psyntax.scm: * module/language/brainfuck/compile-tree-il.scm: * module/language/ecmascript/compile-tree-il.scm: * module/language/elisp/compile-tree-il.scm: * module/language/tree-il/analyze.scm: * module/language/tree-il/compile-glil.scm: * module/language/tree-il/fix-letrec.scm: * module/language/tree-il/inline.scm: * module/language/tree-il/primitives.scm: * test-suite/tests/tree-il.test: Update all callers.
2011-01-26Parse Decimal NumbersNoah Lavine1-0/+1
* module/language/ecmascript/parse.scm: handle numbers with leading decimals correctly. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2011-01-26Fix Hex ConstantsNoah Lavine1-1/+1
* module/language/ecmascript/tokenize.scm: hexadecimal constants can now use 'X' in addition to 'x'. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2011-01-26Ecmascript SyntaxNoah Lavine1-1/+1
* module/language/ecmascript/tokenize.scm: an unbreakable space counts as whitespace. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2011-01-26Ecmascript Syntax FixNoah Lavine1-1/+2
* module/language/ecmascript/parse.scm: allow empty function bodies. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2011-01-17Add ECMAScript Unicode literal supportNoah Lavine1-2/+6
* module/language/ecmascript/tokenize.scm: add unicode literals * test-suite/tests/ecmascript.test ("parser"): Add new tests for Latin-1 and Unicode escapes in string literals. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2011-01-05Tiny style improvement in the ECMAScript compiler.Ludovic Courtès1-2/+2
Followup to 8891bd1b166b7210c241a0c1a730fc3af7f45b8a ("Fix ECMAScript object creation."). * module/language/ecmascript/compile-tree-il.scm (comp): Use `@implv' for `new-object'. Suggested by Kan-Ru Chen <kanru@kanru.info>.
2011-01-04Fix ECMAScript object creation.Noah Lavine1-10/+10
* module/language/ecmascript/compile-tree-il.scm (compile-tree-il): generate correct tree-il for construction of new objects. * test-suite/tests/ecmascript.test (ecompile): Add pattern with EXPECTED omitted. ("compiler"): test whether we generate new objects correctly. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2010-11-18better errors for ecmascript parser tooAndy Wingo1-2/+9
* module/language/ecmascript/parse.scm (syntax-error): Better errors here too.
2010-11-18ecmascript tokenization errors report source locationAndy Wingo1-77/+97
* module/language/ecmascript/tokenize.scm (syntax-error): Report source locations. Adapt all callers to pass source locations.
2010-11-18fix ecmascript at the replAndy Wingo1-8/+11
* module/language/ecmascript/tokenize.scm (syntax-error): Reorder args to throw vals in the right order. (make-tokenizer/1): Fix. Broken since the lalr refactor...
2010-11-16ecmascript syntax errors throw to 'syntax-errorAndy Wingo2-2/+2
* module/language/ecmascript/parse.scm (syntax-error): * module/language/ecmascript/tokenize.scm (syntax-error): Throw to 'syntax-error as psyntax does.
2010-05-02remove `version' field from <language>Andy Wingo1-3/+2
* module/system/base/language.scm (<language>): Remove the `version' field from languages. It just wasn't useful. * module/language/assembly/spec.scm: * module/language/brainfuck/spec.scm: * module/language/bytecode/spec.scm: * module/language/ecmascript/spec.scm: * module/language/elisp/spec.scm: * module/language/glil/spec.scm: * module/language/objcode/spec.scm: * module/language/scheme/spec.scm: * module/language/tree-il/spec.scm: * module/language/value/spec.scm: Remove #:version from all language definitions. Shorten some language names (e.g. "Guile Scheme" -> "Scheme").
2010-03-31fix array bugs in ecmascriptAndy Wingo1-4/+4
* module/language/ecmascript/array.scm (pput, *array-prototype*): Fix bugs in ecmascript array runtime.
2010-03-31Adapt ECMAScript parser and lexer to `(system base lalr)'.Ludovic Courtès3-2016/+297
* module/language/ecmascript/tokenize.scm: Use `make-lexical-token' and related procedures instead of pairs as tokens passed to the parser. Pass source location information in the form of `source-location' objects. * module/language/ecmascript/parse.scm (read-ecmascript, read-ecmascript/1): Instantiate a new parser at each call. (parse-ecmascript): Rename to... (make-parser): ... this. Change `->' to `:' in the grammar syntax. * module/language/ecmascript/parse-lalr.scm: Remove. * module/Makefile.am (ECMASCRIPT_LANG_SOURCES): Remove `language/ecmascript/parse-lalr.scm'.
2009-11-15Revert "implement #:predicate" and remove predicate from <lambda-case>Andy Wingo1-7/+7
Turns out this was not a very useful idea, and semantically tricky to boot. This reverts commit 24bf130fd15afbc8b3a2ccdc50a027f9b6c9e623, and makes the following additional changes: * module/ice-9/optargs.scm (parse-lambda-case, let-optional) (let-optional*, let-keywords, let-keywords*): * module/language/tree-il.scm: (<lambda-case>, parse-tree-il) (unparse-tree-il, tree-il->scheme, tree-il-fold, make-tree-il-folder) (post-order!, pre-order!): * module/language/tree-il/analyze.scm (analyze-lexicals): * module/language/tree-il/compile-glil.scm (compile-glil): * module/language/tree-il/inline.scm (inline!): Remove all traces of #:predicate from tree-il. * module/ice-9/psyntax.scm (build-simple-lambda, build-lambda-case) (chi-lambda-case): Adapt to tree-il change. * module/ice-9/psyntax-pp.scm: Regenerated. * module/language/brainfuck/compile-tree-il.scm (compile-body): * module/language/ecmascript/compile-tree-il.scm (comp, comp-body): * test-suite/tests/tree-il.test: Adapt to tree-il change. * doc/ref/api-procedures.texi (Case-lambda): Remove mention of #:predicate.
2009-11-14fix bugs in ecmascript compilerAndy Wingo1-22/+28
* module/language/ecmascript/compile-tree-il.scm: Fix a number of bugs, fallen out from the ghil->tree-il conversion. * module/language/tree-il/compile-glil.scm (*primcall-ops*): Add a hack for "return" for javascript. Scheme shouldn't see this because it's not an "interesting primitive".
2009-10-23separate "inits" field in <lambda-case>; compile fixes for inits, kwargsAndy Wingo1-7/+7
* module/language/tree-il.scm (<lambda-case>): Add "inits" field, so we don't have to parse it out of opt and kw. Adapt the traversal procedures. * module/language/tree-il/analyze.scm (analyze-lexicals): Analyze lexicals in the <lambda-case> init expressions as well. Fix keyword allocation. * module/language/tree-il/compile-glil.scm (compile-glil): Adapt to make-lambda-case change. (flatten): Adapt to "inits" slot, actually init uninitialized args, and fix bugs related to keyword arguments. * module/language/tree-il/inline.scm (inline!): Adapt a little bit -- but with no effect. * module/language/glil/compile-assembly.scm (glil->assembly): Flesh out <glil-kw-prelude> compilation some more. Add a "bound?" op for <glil-lexical>, which will push #t if the local is bound. * module/ice-9/psyntax.scm (build-simple-lambda, build-lambda-case): Update for new signature of make-lambda-case. * module/ice-9/psyntax-pp.scm: Regenerated. * module/language/brainfuck/compile-tree-il.scm (compile-body): * module/language/ecmascript/compile-tree-il.scm (comp): * test-suite/tests/tree-il.test ("lambda"): Update for new lambda-case syntax.
2009-10-23finish support for optional & keyword args; update ecmascript compilerAndy Wingo1-59/+65
* libguile/_scm.h (SCM_OBJCODE_MINOR_VERSION): Bump. * libguile/vm-i-system.c (br-if-nargs-ne, br-if-args-lt) (br-if-nargs-gt): New instructions, for use by different lambda cases. (bind-optionals, bind-optionals/shuffle, bind-kwargs): New instructions, for binding optional and keyword arguments. Renumber other ops. * module/language/ecmascript/compile-tree-il.scm (comp, comp-body): Update for new tree-il. Use the new optional argument mechanism instead of emulating it with rest arguments. * module/language/glil/compile-assembly.scm (glil->assembly): Tweaks for optional and keyword argument compilation. * module/language/tree-il.scm (parse-tree-il, unparse-tree-il): Make the else case optional, in the s-expression serialization of tree-il. * module/language/tree-il/compile-glil.scm (flatten): Handle all of the lambda-case capabilities.
2009-10-22Fix typos leading to unbound variable references.Ludovic Courtès1-5/+5
* module/ice-9/session.scm (help): Fix unbound reference to `env'. * module/system/vm/program.scm (program-property): Fix typo. * module/system/vm/frame.scm: Add missing `#:use-module (system vm objcode)'. * module/system/repl/command.scm (guile:load): New. (load): Use either `primitive-load' or `load'. * module/srfi/srfi-18.scm (thread-sleep!): Fix typo. * module/srfi/srfi-19.scm: Use `(ice-9 rdelim)'. (date->broken-down-time, priv:year-day, priv:char->int): Fix typo. (time-*->time-*, time-*->time-*!): Fix reference to unbound variable `caller'. * module/oop/goops.scm (bound-check-get): Fix typo. * module/language/glil/compile-assembly.scm (glil->assembly): Fix typo. * module/language/glil.scm (parse-glil): Fix typo. * module/language/ecmascript/base.scm (object->value/string, object->value/number, ->number): Fix typos. * module/language/assembly/disassemble.scm (disassemble-free-vars): Fix typo.
2009-10-16language-readers receive environment as an argAndy Wingo1-1/+1
* module/language/assembly/spec.scm: * module/language/brainfuck/spec.scm: * module/language/bytecode/spec.scm: * module/language/ecmascript/spec.scm: * module/language/glil/spec.scm: * module/language/scheme/spec.scm: * module/language/tree-il/spec.scm: Language-readers now take two arguments: the port and the environment. This should allow for compile-environment-specific reader behavior. * module/system/base/compile.scm (read-and-compile): * module/system/repl/common.scm (repl-read): Pass the environment to the language-reader. * module/system/repl/repl.scm (meta-reader, prompting-meta-read): * module/system/repl/command.scm (define-meta-command): Use the second argument to repl-reader, so we avoid frobbing current-reader.
2009-09-21Remove unused variables in system/language.Ludovic Courtès2-12/+11
* module/language/assembly.scm (byte-length): Don't match unused record slots. * module/language/tree-il.scm (tree-il->scheme, post-order!, pre-order!): Likewise. * module/language/tree-il/analyze.scm (analyze-lexicals): Likewise. * module/language/tree-il/compile-glil.scm (flatten): Likewise. * module/language/assembly/disassemble.scm (disassemble-load-program): Don't match unused list elements. * module/language/glil/decompile-assembly.scm (decompile-toplevel, decompile-load-program): Likewise. * module/system/xref.scm (program-callee-rev-vars): Likewise. * module/language/assembly/compile-bytecode.scm (write-bytecode)[write-sized-loader]: Remove. * module/language/assembly/decompile-bytecode.scm (decode-load-program): Factorize `pad' variables. * module/language/ecmascript/base.scm (object->value/string, object->value/number)[v]: Remove. * module/language/ecmascript/tokenize.scm (read-slash)[c0]: Remove. * module/language/objcode/spec.scm (decompile-value)[nargs]: Remove. * module/system/repl/command.scm (time)[vms-start, vms-end]: Remove. * module/system/repl/repl.scm (prompting-meta-read): Use `prompt'.
2009-08-12debitrot the ecmascript compilerAndy Wingo4-564/+552
* module/Makefile.am (ECMASCRIPT_LANG_SOURCES): * module/language/ecmascript/compile-ghil.scm: * module/language/ecmascript/compile-tree-il.scm: SOURCES): Replace the GHIL compiler with a ->tree-il compiler. Not fully functional, but the basics work. * module/language/ecmascript/spec.scm: Only include the tree-il compiler. * module/language/ecmascript/tokenize.scm (read-punctuation): Avoid mutating a constant.
2009-06-17Change Guile license to LGPLv3+Neil Jerram9-124/+117
(Not quite finished, the following will be done tomorrow. module/srfi/*.scm module/rnrs/*.scm module/scripts/*.scm testsuite/*.scm guile-readline/* )
2009-06-09some attempts to solve the ecmascript stack overflow problemAndy Wingo1-12/+1
* module/language/ecmascript/compile-ghil.scm (comp): Just use pmatch, not ormatch. Now with syncase running over everything, it doesn't matter. * module/ice-9/boot-9.scm (false-if-exception): Avoid saving stacks inside false-if-exception. There's probably a more general solution to this, though. Fixes getting bogus backtraces sometimes. * module/Makefile.am (ECMASCRIPT_LANG_SOURCES): Reorder things so that spec comes last.
2009-05-24update docs, clean up VM vestiges, macro docs, fix (/ a b c)Andy Wingo1-1/+0
* doc/ref/api-procedures.texi (Compiled Procedures): Fix for API changes. * doc/ref/compiler.texi (Compiling to the Virtual Machine): Replace GHIL docs with Tree-IL docs. Update the bits about the Scheme compiler to talk about Tree-IL and the expander instead of GHIL. Remove <glil-argument>. Add placeholder sections for assembly and bytecode. * doc/ref/vm.texi: Update examples with what currently happens. Reword some things. Fix a couple errors. * libguile/vm-i-system.c (externals): Remove this instruction, it's not used. * module/ice-9/documentation.scm (object-documentation): If the object is a macro, try to return documentation on the macro transformer. * module/language/assembly/disassemble.scm (disassemble-load-program): Fix problem in which we skipped the first element of the object vector, because of changes to procedure layouts a few months ago. * module/language/scheme/spec.scm (read-file): Remove read-file definition. * module/language/tree-il.scm: Reorder exports. Remove <lexical>, it was a compat shim to something that was never released. Fix `location'. * module/language/tree-il/primitives.scm (/): Fix expander for more than two args to /. * module/system/base/compile.scm (read-file-in): Remove unused definition. * module/system/base/language.scm (system): Remove language-read-file. * module/language/ecmascript/spec.scm (ecmascript): Remove read-file definition.
2009-04-16compilation passes return third value: the continuation environmentAndy Wingo1-0/+1
* module/system/base/compile.scm: Expect compile passes to produce three values, not two. The third is the "continuation environment", the environment that can be used to compile a subsequent expression from the same source language. For example, expansion-time side effects can set the current module, which would be reflected appropriately in the continuation environment. * module/language/assembly/compile-bytecode.scm: * module/language/bytecode/spec.scm: * module/language/ecmascript/compile-ghil.scm: * module/language/ghil/compile-glil.scm: * module/language/glil/spec.scm: * module/language/objcode/spec.scm: * module/language/scheme/compile-ghil.scm: * module/system/base/compile.scm: Update compile passes to return a continuation environment.
2009-02-27make the ES compiler more readable via use of ->Andy Wingo1-303/+314
* module/language/ecmascript/compile-ghil.scm: Use -> to make the ES compiler more readable. Fix bugs in do, while, and for, whereby we were missing ->boolean calls.
2009-02-22parse division vs regexps properlyAndy Wingo1-1/+4
* module/language/ecmascript/tokenize.scm (make-tokenizer/1): Whoops, fix the cases in which we detect that division is valid.
2009-02-22compile for-inAndy Wingo4-27/+65
* module/language/ecmascript/base.scm (prop-keys): New method, returns the list of keys of props of this instance. * module/language/ecmascript/impl.scm: Refactor the global object into a special kind of module object. Provide a prop-keys implementation for module objects. * module/language/ecmascript/compile-ghil.scm (comp): Compile for-in. * module/language/ecmascript/impl.scm: Reshuffly things, and implement make-enumerator, a helper for use in for-in statements. * module/language/ecmascript/parse.scm (parse-ecmascript): Fix parsing of for (var foo in bar) {}...
2009-02-22fix "for" compilationAndy Wingo1-2/+2
* module/language/ecmascript/compile-ghil.scm (comp): Whoops, fix `for' compilation.
2009-02-22add scheme integration to js via `require'Andy Wingo1-0/+26
* module/language/ecmascript/impl.scm: Add <js-module-object>, that wraps a module. Add js-require, a javascript-happy function that returns an object that wraps a Guile module. Bind it to `require' in the default environment.
2009-02-22ecmascript tokens have source infoAndy Wingo1-31/+38
* module/language/ecmascript/tokenize.scm: Attach source information to tokens. We have to enhance the lalr parser to actually let this information propagate through, though...
2009-02-22throw SyntaxError on bad syntaxAndy Wingo2-20/+26
* module/language/ecmascript/parse.scm (syntax-error): * module/language/ecmascript/tokenize.scm (syntax-error): Throw an error on bad syntax.
2009-02-22more arithmetic on non-numbersAndy Wingo2-2/+32
* module/language/ecmascript/compile-ghil.scm (comp): Convert to number on unary +. * module/language/ecmascript/impl.scm: Define -, *, /, <, <=, >=, > operations on non-numbers.
2009-02-22+ for strings, global js object, new Foo() worksAndy Wingo6-34/+96
* module/language/ecmascript/array.scm (*array-prototype*): Declare the constructor. * module/language/ecmascript/base.scm (pput, pdel): Remove some needless checks. (new): Move definition of new here, and use the constructor. * module/language/ecmascript/compile-ghil.scm (compile-ghil): Add a stub so that when we load a compiled JS program, we make sure the runtime has been booted. * module/language/ecmascript/function.scm (js-constructor): Export a js-constructor method instead of a new method. * module/language/ecmascript/impl.scm (<js-global-object>): Define a new class for the global "this" object, wrapping bindings from the current module. (init-js-bindings!): Define the dozen or so global properties, in the current module. (+): Define addition operations for non-numbers. This is efficient because the generics are only dispatched if the fast-path fails.
2009-02-21compile ecmascript's parser. yay! instant load-time!Andy Wingo1-0/+2
* module/language/ghil/compile-glil.scm (codegen): If there are more than 255 arguments, make a list and use apply instead of calling directly. * module/language/Makefile.am: Now we can compile parse.scm. Yay! * module/language/scheme/compile-ghil.scm: Add a note. * module/language/ecmascript/compile-ghil.scm: Add a note.