aboutsummaryrefslogtreecommitdiffstats
path: root/Godeps/_workspace/src/github.com/robertkrimen/otto/script.go
diff options
context:
space:
mode:
Diffstat (limited to 'Godeps/_workspace/src/github.com/robertkrimen/otto/script.go')
-rw-r--r--Godeps/_workspace/src/github.com/robertkrimen/otto/script.go122
1 files changed, 0 insertions, 122 deletions
diff --git a/Godeps/_workspace/src/github.com/robertkrimen/otto/script.go b/Godeps/_workspace/src/github.com/robertkrimen/otto/script.go
deleted file mode 100644
index ed8aebbf4..000000000
--- a/Godeps/_workspace/src/github.com/robertkrimen/otto/script.go
+++ /dev/null
@@ -1,122 +0,0 @@
-package otto
-
-import (
- "bytes"
- "encoding/gob"
- "errors"
-
- "github.com/robertkrimen/otto/parser"
-)
-
-var ErrVersion = errors.New("version mismatch")
-
-var scriptVersion = "2014-04-13/1"
-
-// Script is a handle for some (reusable) JavaScript.
-// Passing a Script value to a run method will evaluate the JavaScript.
-//
-type Script struct {
- version string
- program *_nodeProgram
- filename string
- src string
-}
-
-// Compile will parse the given source and return a Script value or nil and
-// an error if there was a problem during compilation.
-//
-// script, err := vm.Compile("", `var abc; if (!abc) abc = 0; abc += 2; abc;`)
-// vm.Run(script)
-//
-func (self *Otto) Compile(filename string, src interface{}) (*Script, error) {
- {
- src, err := parser.ReadSource(filename, src)
- if err != nil {
- return nil, err
- }
-
- program, err := self.runtime.parse(filename, src)
- if err != nil {
- return nil, err
- }
-
- cmpl_program := cmpl_parse(program)
-
- script := &Script{
- version: scriptVersion,
- program: cmpl_program,
- filename: filename,
- src: string(src),
- }
-
- return script, nil
- }
-}
-
-func (self *Script) String() string {
- return "// " + self.filename + "\n" + self.src
-}
-
-// MarshalBinary will marshal a script into a binary form. A marshalled script
-// that is later unmarshalled can be executed on the same version of the otto runtime.
-//
-// The binary format can change at any time and should be considered unspecified and opaque.
-//
-func (self *Script) marshalBinary() ([]byte, error) {
- var bfr bytes.Buffer
- encoder := gob.NewEncoder(&bfr)
- err := encoder.Encode(self.version)
- if err != nil {
- return nil, err
- }
- err = encoder.Encode(self.program)
- if err != nil {
- return nil, err
- }
- err = encoder.Encode(self.filename)
- if err != nil {
- return nil, err
- }
- err = encoder.Encode(self.src)
- if err != nil {
- return nil, err
- }
- return bfr.Bytes(), nil
-}
-
-// UnmarshalBinary will vivify a marshalled script into something usable. If the script was
-// originally marshalled on a different version of the otto runtime, then this method
-// will return an error.
-//
-// The binary format can change at any time and should be considered unspecified and opaque.
-//
-func (self *Script) unmarshalBinary(data []byte) error {
- decoder := gob.NewDecoder(bytes.NewReader(data))
- err := decoder.Decode(&self.version)
- if err != nil {
- goto error
- }
- if self.version != scriptVersion {
- err = ErrVersion
- goto error
- }
- err = decoder.Decode(&self.program)
- if err != nil {
- goto error
- }
- err = decoder.Decode(&self.filename)
- if err != nil {
- goto error
- }
- err = decoder.Decode(&self.src)
- if err != nil {
- goto error
- }
- return nil
-error:
- self.version = ""
- self.program = nil
- self.filename = ""
- self.src = ""
- return err
-}