Prompt:
Convert this CoffeeScript to JavaScript.
```coffeescript
path = require('path')
fs = require('fs')

suite 'Tests specific to issues:', ->
  test 'Issue #239: Not possible to build a list of non-unique elements non-contiguously with JSON', ->

    obj = root:
      '#text1': [
        { node: 'value1' }
        { node: 'value2' }
      ]
      '#comment': 'comment node'
      '#text2': [
        { node: 'value3' }
        { node: 'value4' }
      ]

    doc = xml(obj, { headless: true })

    eq(
      doc.end({ pretty: true })
      """
      <root>
        <node>value1</node>
        <node>value2</node>
        <!-- comment node -->
        <node>value3</node>
        <node>value4</node>
      </root>
      """
    )
```

Response:
var fs, path;

path = require('path');

fs = require('fs');

suite('Tests specific to issues:', function() {
  return test('Issue #239: Not possible to build a list of non-unique elements non-contiguously with JSON', function() {
    var doc, obj;
    obj = {
      root: {
        '#text1': [
          {
            node: 'value1'
          },
          {
            node: 'value2'
          }
        ],
        '#comment': 'comment node',
        '#text2': [
          {
            node: 'value3'
          },
          {
            node: 'value4'
          }
        ]
      }
    };
    doc = xml(obj, {
      headless: true
    });
    return eq(doc.end({
      pretty: true
    }), `<root>
  <node>value1</node>
  <node>value2</node>
  <!-- comment node -->
  <node>value3</node>
  <node>value4</node>
</root>`);
  });
});


Prompt:
Convert this JavaScript to CoffeeScript.
```javascript
var fs, path;

path = require('path');

fs = require('fs');

suite('Tests specific to issues:', function() {
  return test('Issue #239: Not possible to build a list of non-unique elements non-contiguously with JSON', function() {
    var doc, obj;
    obj = {
      root: {
        '#text1': [
          {
            node: 'value1'
          },
          {
            node: 'value2'
          }
        ],
        '#comment': 'comment node',
        '#text2': [
          {
            node: 'value3'
          },
          {
            node: 'value4'
          }
        ]
      }
    };
    doc = xml(obj, {
      headless: true
    });
    return eq(doc.end({
      pretty: true
    }), `<root>
  <node>value1</node>
  <node>value2</node>
  <!-- comment node -->
  <node>value3</node>
  <node>value4</node>
</root>`);
  });
});
```

Response:
path = require('path')
fs = require('fs')

suite 'Tests specific to issues:', ->
  test 'Issue #239: Not possible to build a list of non-unique elements non-contiguously with JSON', ->

    obj = root:
      '#text1': [
        { node: 'value1' }
        { node: 'value2' }
      ]
      '#comment': 'comment node'
      '#text2': [
        { node: 'value3' }
        { node: 'value4' }
      ]

    doc = xml(obj, { headless: true })

    eq(
      doc.end({ pretty: true })
      """
      <root>
        <node>value1</node>
        <node>value2</node>
        <!-- comment node -->
        <node>value3</node>
        <node>value4</node>
      </root>
      """
    )


Prompt:
path = require('path')
fs = require('fs')

suite 'Tests specific to issues:', ->
  test 'Issue #239: Not possible to build a list of non-unique elements non-contiguously with JSON', ->

    obj = root:
      '#text1': [
        { node: 'value1' }
        { node: 'value2' }
      ]
      '#comment': 'comment node'
      '#text2': [
        { node: 'value3' }
        { node: 'value4' }

Response:
]

    doc = xml(obj, { headless: true })

    eq(
      doc.end({ pretty: true })
      """
      <root>
        <node>value1</node>
        <node>value2</node>
        <!-- comment node -->
        <node>value3</node>
        <node>value4</node>
      </root>
      """
    )


Response:
webdriverSync = require('webdriver-sync')

global.browser = if process.env.HEADLESS
  new webdriverSync.PhantomJSDriver()
else
  new webdriverSync.ChromeDriver()

browser.eval = (code) ->
  browser.executeScript("return #{code}")


Prompt:
Convert this CoffeeScript to JavaScript.
```coffeescript
webdriverSync = require('webdriver-sync')

global.browser = if process.env.HEADLESS
  new webdriverSync.PhantomJSDriver()
else
  new webdriverSync.ChromeDriver()

browser.eval = (code) ->
  browser.executeScript("return #{code}")
```

Response:
var webdriverSync;

webdriverSync = require('webdriver-sync');

global.browser = process.env.HEADLESS ? new webdriverSync.PhantomJSDriver() : new webdriverSync.ChromeDriver();

browser.eval = function(code) {
  return browser.executeScript(`return ${code}`);
};


Prompt:
Convert this JavaScript to CoffeeScript.
```javascript
var webdriverSync;

webdriverSync = require('webdriver-sync');

global.browser = process.env.HEADLESS ? new webdriverSync.PhantomJSDriver() : new webdriverSync.ChromeDriver();

browser.eval = function(code) {
  return browser.executeScript(`return ${code}`);
};
```

Response:
webdriverSync = require('webdriver-sync')

global.browser = if process.env.HEADLESS
  new webdriverSync.PhantomJSDriver()
else
  new webdriverSync.ChromeDriver()

browser.eval = (code) ->
  browser.executeScript("return #{code}")


Prompt:
webdriverSync = require('webdriver-sync')

global.browser = if process.env.HEADLESS
  new webdriverSync.PhantomJSDriver()

Response:
else
  new webdriverSync.ChromeDriver()

browser.eval = (code) ->
  browser.executeScript("return #{code}")


Response:
wd = require('webdriver-sync')

beforeAll ->
  global.browser = if process.env.HEADLESS then new wd.PhantomJSDriver() else new wd.ChromeDriver()
  browser.eval = (code) -> browser.executeScript("return #{code}")


Prompt:
Convert this CoffeeScript to JavaScript.
```coffeescript
wd = require('webdriver-sync')

beforeAll ->
  global.browser = if process.env.HEADLESS then new wd.PhantomJSDriver() else new wd.ChromeDriver()
  browser.eval = (code) -> browser.executeScript("return #{code}")
```

Response:
var wd;

wd = require('webdriver-sync');

beforeAll(function() {
  global.browser = process.env.HEADLESS ? new wd.PhantomJSDriver() : new wd.ChromeDriver();
  return browser.eval = function(code) {
    return browser.executeScript(`return ${code}`);
  };
});


Prompt:
Convert this JavaScript to CoffeeScript.
```javascript
var wd;

wd = require('webdriver-sync');

beforeAll(function() {
  global.browser = process.env.HEADLESS ? new wd.PhantomJSDriver() : new wd.ChromeDriver();
  return browser.eval = function(code) {
    return browser.executeScript(`return ${code}`);
  };
});
```

Response:
wd = require('webdriver-sync')

beforeAll ->
  global.browser = if process.env.HEADLESS then new wd.PhantomJSDriver() else new wd.ChromeDriver()
  browser.eval = (code) -> browser.executeScript("return #{code}")


Prompt: wd = require('webdriver-sync')

Response:
beforeAll ->
  global.browser = if process.env.HEADLESS then new wd.PhantomJSDriver() else new wd.ChromeDriver()
  browser.eval = (code) -> browser.executeScript("return #{code}")


Response:
wd = require('webdriver-sync')

beforeAll ->
  global.browser = new wd.ChromeDriver()
  browser.eval = (code) -> browser.executeScript("return #{code}")


Prompt:
Convert this CoffeeScript to JavaScript.
```coffeescript
wd = require('webdriver-sync')

beforeAll ->
  global.browser = new wd.ChromeDriver()
  browser.eval = (code) -> browser.executeScript("return #{code}")
```

Response:
var wd;

wd = require('webdriver-sync');

beforeAll(function() {
  global.browser = new wd.ChromeDriver();
  return browser.eval = function(code) {
    return browser.executeScript(`return ${code}`);
  };
});


Prompt:
Convert this JavaScript to CoffeeScript.
```javascript
var wd;

wd = require('webdriver-sync');

beforeAll(function() {
  global.browser = new wd.ChromeDriver();
  return browser.eval = function(code) {
    return browser.executeScript(`return ${code}`);
  };
});
```

Response:
wd = require('webdriver-sync')

beforeAll ->
  global.browser = new wd.ChromeDriver()
  browser.eval = (code) -> browser.executeScript("return #{code}")


Prompt: wd = require('webdriver-sync')

Response:
beforeAll ->
  global.browser = new wd.ChromeDriver()
  browser.eval = (code) -> browser.executeScript("return #{code}")


Response:
wd = require 'webdriver-sync'

beforeEach ->
  global.browser = new wd.ChromeDriver()

afterEach ->
  browser.quit()


Prompt:
Convert this CoffeeScript to JavaScript.
```coffeescript
wd = require 'webdriver-sync'

beforeEach ->
  global.browser = new wd.ChromeDriver()

afterEach ->
  browser.quit()
```

Response:
var wd;

wd = require('webdriver-sync');

beforeEach(function() {
  return global.browser = new wd.ChromeDriver();
});

afterEach(function() {
  return browser.quit();
});


Prompt:
Convert this JavaScript to CoffeeScript.
```javascript
var wd;

wd = require('webdriver-sync');

beforeEach(function() {
  return global.browser = new wd.ChromeDriver();
});

afterEach(function() {
  return browser.quit();
});
```

Response:
wd = require 'webdriver-sync'

beforeEach ->
  global.browser = new wd.ChromeDriver()

afterEach ->
  browser.quit()


Prompt:
wd = require 'webdriver-sync'

beforeEach ->

Response:
global.browser = new wd.ChromeDriver()

afterEach ->
  browser.quit()


Response:
wd = require 'wd'

beforeEach (done) ->
  global.browser = wd.remote()
  browser.init
    browserName: process.env.USE_BROWSER || 'phantomjs'
  , done

afterEach ->
  browser.quit()


Prompt:
Convert this CoffeeScript to JavaScript.
```coffeescript
wd = require 'wd'

beforeEach (done) ->
  global.browser = wd.remote()
  browser.init
    browserName: process.env.USE_BROWSER || 'phantomjs'
  , done

afterEach ->
  browser.quit()
```

Response:
var wd;

wd = require('wd');

beforeEach(function(done) {
  global.browser = wd.remote();
  return browser.init({
    browserName: process.env.USE_BROWSER || 'phantomjs'
  }, done);
});

afterEach(function() {
  return browser.quit();
});


Prompt:
Convert this JavaScript to CoffeeScript.
```javascript
var wd;

wd = require('wd');

beforeEach(function(done) {
  global.browser = wd.remote();
  return browser.init({
    browserName: process.env.USE_BROWSER || 'phantomjs'
  }, done);
});

afterEach(function() {
  return browser.quit();
});
```

Response:
wd = require 'wd'

beforeEach (done) ->
  global.browser = wd.remote()
  browser.init
    browserName: process.env.USE_BROWSER || 'phantomjs'
  , done

afterEach ->
  browser.quit()


Prompt:
wd = require 'wd'

beforeEach (done) ->
  global.browser = wd.remote()
  browser.init

Response:
browserName: process.env.USE_BROWSER || 'phantomjs'
  , done

afterEach ->
  browser.quit()


Response:
wd = require 'wd'

beforeAll (done) ->
  global.browser = wd.remote()
  browser.init
    browserName: process.env.USE_BROWSER || 'phantomjs'
  , done


Prompt:
Convert this CoffeeScript to JavaScript.
```coffeescript
wd = require 'wd'

beforeAll (done) ->
  global.browser = wd.remote()
  browser.init
    browserName: process.env.USE_BROWSER || 'phantomjs'
  , done
```

Response:
var wd;

wd = require('wd');

beforeAll(function(done) {
  global.browser = wd.remote();
  return browser.init({
    browserName: process.env.USE_BROWSER || 'phantomjs'
  }, done);
});


Prompt:
Convert this JavaScript to CoffeeScript.
```javascript
var wd;

wd = require('wd');

beforeAll(function(done) {
  global.browser = wd.remote();
  return browser.init({
    browserName: process.env.USE_BROWSER || 'phantomjs'
  }, done);
});
```

Response:
wd = require 'wd'

beforeAll (done) ->
  global.browser = wd.remote()
  browser.init
    browserName: process.env.USE_BROWSER || 'phantomjs'
  , done


Prompt:
wd = require 'wd'

beforeAll (done) ->

Response:
global.browser = wd.remote()
  browser.init
    browserName: process.env.USE_BROWSER || 'phantomjs'
  , done


Response:
fs           = require 'fs'
_            = require 'underscore'

# Use CodeMirror in Node for syntax highlighting, per
# https://github.com/codemirror/CodeMirror/blob/master/bin/source-highlight
CodeMirror   = require 'codemirror/addon/runmode/runmode.node.js'
require 'codemirror/mode/coffeescript/coffeescript.js'
require 'codemirror/mode/javascript/javascript.js'

CoffeeScript = require '../../lib/coffeescript'

module.exports = ->
  (file, run = no) ->
    cs = fs.readFileSync "documentation/examples/#{file}.coffee", 'utf-8'
    js = CoffeeScript.compile cs, bare: yes # This is just the initial JavaScript output; it is replaced by dynamic compilation on changes of the CoffeeScript pane.
    render = _.template fs.readFileSync('documentation/v2/code.html', 'utf-8')
    include = (file) -> fs.readFileSync("documentation/v2/#{file}", 'utf-8')

    highlight = (language, code) ->
      # Adapted from https://github.com/codemirror/CodeMirror/blob/master/bin/source-highlight.
      html = ''
      curStyle = null
      accum = ''

      esc = (str) ->
        str.replace /[<&]/g, (ch) ->
          if ch is '&' then '&' else '<'

      flush = ->
        if curStyle
          html += "#{esc accum}"
        else
          html += esc accum

      CodeMirror.runMode code, {name: language}, (text, style) ->
        if style isnt curStyle
          flush()
          curStyle = style
          accum = text
        else
          accum += text
      flush()

      html

    output = render {file, cs, js, highlight, include, run}


Prompt:
Convert this CoffeeScript to JavaScript.
```coffeescript
fs           = require 'fs'
_            = require 'underscore'

# Use CodeMirror in Node for syntax highlighting, per
# https://github.com/codemirror/CodeMirror/blob/master/bin/source-highlight
CodeMirror   = require 'codemirror/addon/runmode/runmode.node.js'
require 'codemirror/mode/coffeescript/coffeescript.js'
require 'codemirror/mode/javascript/javascript.js'

CoffeeScript = require '../../lib/coffeescript'

module.exports = ->
  (file, run = no) ->
    cs = fs.readFileSync "documentation/examples/#{file}.coffee", 'utf-8'
    js = CoffeeScript.compile cs, bare: yes # This is just the initial JavaScript output; it is replaced by dynamic compilation on changes of the CoffeeScript pane.
    render = _.template fs.readFileSync('documentation/v2/code.html', 'utf-8')
    include = (file) -> fs.readFileSync("documentation/v2/#{file}", 'utf-8')

    highlight = (language, code) ->
      # Adapted from https://github.com/codemirror/CodeMirror/blob/master/bin/source-highlight.
      html = ''
      curStyle = null
      accum = ''

      esc = (str) ->
        str.replace /[<&]/g, (ch) ->
          if ch is '&' then '&' else '<'

      flush = ->
        if curStyle
          html += "<span class=\"#{curStyle.replace /(^|\s+)/g, '$1cm-'}\">#{esc accum}</span>"
        else
          html += esc accum

      CodeMirror.runMode code, {name: language}, (text, style) ->
        if style isnt curStyle
          flush()
          curStyle = style
          accum = text
        else
          accum += text
      flush()

      html

    output = render {file, cs, js, highlight, include, run}
```

Response:
var CodeMirror, CoffeeScript, _, fs;

fs = require('fs');

_ = require('underscore');

// Use CodeMirror in Node for syntax highlighting, per
// https://github.com/codemirror/CodeMirror/blob/master/bin/source-highlight
CodeMirror = require('codemirror/addon/runmode/runmode.node.js');

require('codemirror/mode/coffeescript/coffeescript.js');

require('codemirror/mode/javascript/javascript.js');

CoffeeScript = require('../../lib/coffeescript');

module.exports = function() {
  return function(file, run = false) {
    var cs, highlight, include, js, output, render;
    cs = fs.readFileSync(`documentation/examples/${file}.coffee`, 'utf-8');
    js = CoffeeScript.compile(cs, {
      bare: true // This is just the initial JavaScript output; it is replaced by dynamic compilation on changes of the CoffeeScript pane.
    });
    render = _.template(fs.readFileSync('documentation/v2/code.html', 'utf-8'));
    include = function(file) {
      return fs.readFileSync(`documentation/v2/${file}`, 'utf-8');
    };
    highlight = function(language, code) {
      var accum, curStyle, esc, flush, html;
      // Adapted from https://github.com/codemirror/CodeMirror/blob/master/bin/source-highlight.
      html = '';
      curStyle = null;
      accum = '';
      esc = function(str) {
        return str.replace(/[<&]/g, function(ch) {
          if (ch === '&') {
            return '&';
          } else {
            return '<';
          }
        });
      };
      flush = function() {
        if (curStyle) {
          return html += `<span class=\"${curStyle.replace(/(^|\s+)/g, '$1cm-')}\">${esc(accum)}</span>`;
        } else {
          return html += esc(accum);
        }
      };
      CodeMirror.runMode(code, {
        name: language
      }, function(text, style) {
        if (style !== curStyle) {
          flush();
          curStyle = style;
          return accum = text;
        } else {
          return accum += text;
        }
      });
      flush();
      return html;
    };
    return output = render({file, cs, js, highlight, include, run});
  };
};


Prompt:
Convert this JavaScript to CoffeeScript.
```javascript
var CodeMirror, CoffeeScript, _, fs;

fs = require('fs');

_ = require('underscore');

// Use CodeMirror in Node for syntax highlighting, per
// https://github.com/codemirror/CodeMirror/blob/master/bin/source-highlight
CodeMirror = require('codemirror/addon/runmode/runmode.node.js');

require('codemirror/mode/coffeescript/coffeescript.js');

require('codemirror/mode/javascript/javascript.js');

CoffeeScript = require('../../lib/coffeescript');

module.exports = function() {
  return function(file, run = false) {
    var cs, highlight, include, js, output, render;
    cs = fs.readFileSync(`documentation/examples/${file}.coffee`, 'utf-8');
    js = CoffeeScript.compile(cs, {
      bare: true // This is just the initial JavaScript output; it is replaced by dynamic compilation on changes of the CoffeeScript pane.
    });
    render = _.template(fs.readFileSync('documentation/v2/code.html', 'utf-8'));
    include = function(file) {
      return fs.readFileSync(`documentation/v2/${file}`, 'utf-8');
    };
    highlight = function(language, code) {
      var accum, curStyle, esc, flush, html;
      // Adapted from https://github.com/codemirror/CodeMirror/blob/master/bin/source-highlight.
      html = '';
      curStyle = null;
      accum = '';
      esc = function(str) {
        return str.replace(/[<&]/g, function(ch) {
          if (ch === '&') {
            return '&';
          } else {
            return '<';
          }
        });
      };
      flush = function() {
        if (curStyle) {
          return html += `<span class=\"${curStyle.replace(/(^|\s+)/g, '$1cm-')}\">${esc(accum)}</span>`;
        } else {
          return html += esc(accum);
        }
      };
      CodeMirror.runMode(code, {
        name: language
      }, function(text, style) {
        if (style !== curStyle) {
          flush();
          curStyle = style;
          return accum = text;
        } else {
          return accum += text;
        }
      });
      flush();
      return html;
    };
    return output = render({file, cs, js, highlight, include, run});
  };
};
```

Response:
fs           = require 'fs'
_            = require 'underscore'

# Use CodeMirror in Node for syntax highlighting, per
# https://github.com/codemirror/CodeMirror/blob/master/bin/source-highlight
CodeMirror   = require 'codemirror/addon/runmode/runmode.node.js'
require 'codemirror/mode/coffeescript/coffeescript.js'
require 'codemirror/mode/javascript/javascript.js'

CoffeeScript = require '../../lib/coffeescript'

module.exports = ->
  (file, run = no) ->
    cs = fs.readFileSync "documentation/examples/#{file}.coffee", 'utf-8'
    js = CoffeeScript.compile cs, bare: yes # This is just the initial JavaScript output; it is replaced by dynamic compilation on changes of the CoffeeScript pane.
    render = _.template fs.readFileSync('documentation/v2/code.html', 'utf-8')
    include = (file) -> fs.readFileSync("documentation/v2/#{file}", 'utf-8')

    highlight = (language, code) ->
      # Adapted from https://github.com/codemirror/CodeMirror/blob/master/bin/source-highlight.
      html = ''
      curStyle = null
      accum = ''

      esc = (str) ->
        str.replace /[<&]/g, (ch) ->
          if ch is '&' then '&amp;' else '&lt;'

      flush = ->
        if curStyle
          html += "<span class=\"#{curStyle.replace /(^|\s+)/g, '$1cm-'}\">#{esc accum}</span>"
        else
          html += esc accum

      CodeMirror.runMode code, {name: language}, (text, style) ->
        if style isnt curStyle
          flush()
          curStyle = style
          accum = text
        else
          accum += text
      flush()

      html

    output = render {file, cs, js, highlight, include, run}


Prompt:
fs           = require 'fs'
_            = require 'underscore'

# Use CodeMirror in Node for syntax highlighting, per
# https://github.com/codemirror/CodeMirror/blob/master/bin/source-highlight
CodeMirror   = require 'codemirror/addon/runmode/runmode.node.js'
require 'codemirror/mode/coffeescript/coffeescript.js'
require 'codemirror/mode/javascript/javascript.js'

CoffeeScript = require '../../lib/coffeescript'

module.exports = ->
  (file, run = no) ->
    cs = fs.readFileSync "documentation/examples/#{file}.coffee", 'utf-8'
    js = CoffeeScript.compile cs, bare: yes # This is just the initial JavaScript output; it is replaced by dynamic compilation on changes of the CoffeeScript pane.
    render = _.template fs.readFileSync('documentation/v2/code.html', 'utf-8')
    include = (file) -> fs.readFileSync("documentation/v2/#{file}", 'utf-8')

    highlight = (language, code) ->
      # Adapted from https://github.com/codemirror/CodeMirror/blob/master/bin/source-highlight.
      html = ''
      curStyle = null

Response:
accum = ''

      esc = (str) ->
        str.replace /[<&]/g, (ch) ->
          if ch is '&' then '&amp;' else '&lt;'

      flush = ->
        if curStyle
          html += "<span class=\"#{curStyle.replace /(^|\s+)/g, '$1cm-'}\">#{esc accum}</span>"
        else
          html += esc accum

      CodeMirror.runMode code, {name: language}, (text, style) ->
        if style isnt curStyle
          flush()
          curStyle = style
          accum = text
        else
          accum += text
      flush()

      html

    output = render {file, cs, js, highlight, include, run}


Response:
fs           = require 'fs'
_            = require 'underscore'
CoffeeScript = require '../../lib/coffeescript'

module.exports = ->
  (file, run = no) ->
    cs = fs.readFileSync "documentation/examples/#{file}.coffee", 'utf-8'
    js = CoffeeScript.compile cs, bare: yes # This is just the initial JavaScript output; it is replaced by dynamic compilation on changes of the CoffeeScript pane
    render = _.template fs.readFileSync('documentation/v2/code.html', 'utf-8')
    output = render {file, cs, js, run}


Prompt:
Convert this CoffeeScript to JavaScript.
```coffeescript
fs           = require 'fs'
_            = require 'underscore'
CoffeeScript = require '../../lib/coffeescript'

module.exports = ->
  (file, run = no) ->
    cs = fs.readFileSync "documentation/examples/#{file}.coffee", 'utf-8'
    js = CoffeeScript.compile cs, bare: yes # This is just the initial JavaScript output; it is replaced by dynamic compilation on changes of the CoffeeScript pane
    render = _.template fs.readFileSync('documentation/v2/code.html', 'utf-8')
    output = render {file, cs, js, run}
```

Response:
var CoffeeScript, _, fs;

fs = require('fs');

_ = require('underscore');

CoffeeScript = require('../../lib/coffeescript');

module.exports = function() {
  return function(file, run = false) {
    var cs, js, output, render;
    cs = fs.readFileSync(`documentation/examples/${file}.coffee`, 'utf-8');
    js = CoffeeScript.compile(cs, {
      bare: true // This is just the initial JavaScript output; it is replaced by dynamic compilation on changes of the CoffeeScript pane
    });
    render = _.template(fs.readFileSync('documentation/v2/code.html', 'utf-8'));
    return output = render({file, cs, js, run});
  };
};


Prompt:
Convert this JavaScript to CoffeeScript.
```javascript
var CoffeeScript, _, fs;

fs = require('fs');

_ = require('underscore');

CoffeeScript = require('../../lib/coffeescript');

module.exports = function() {
  return function(file, run = false) {
    var cs, js, output, render;
    cs = fs.readFileSync(`documentation/examples/${file}.coffee`, 'utf-8');
    js = CoffeeScript.compile(cs, {
      bare: true // This is just the initial JavaScript output; it is replaced by dynamic compilation on changes of the CoffeeScript pane
    });
    render = _.template(fs.readFileSync('documentation/v2/code.html', 'utf-8'));
    return output = render({file, cs, js, run});
  };
};
```

Response:
fs           = require 'fs'
_            = require 'underscore'
CoffeeScript = require '../../lib/coffeescript'

module.exports = ->
  (file, run = no) ->
    cs = fs.readFileSync "documentation/examples/#{file}.coffee", 'utf-8'
    js = CoffeeScript.compile cs, bare: yes # This is just the initial JavaScript output; it is replaced by dynamic compilation on changes of the CoffeeScript pane
    render = _.template fs.readFileSync('documentation/v2/code.html', 'utf-8')
    output = render {file, cs, js, run}


Prompt:
fs           = require 'fs'
_            = require 'underscore'
CoffeeScript = require '../../lib/coffeescript'

Response:
module.exports = ->
  (file, run = no) ->
    cs = fs.readFileSync "documentation/examples/#{file}.coffee", 'utf-8'
    js = CoffeeScript.compile cs, bare: yes # This is just the initial JavaScript output; it is replaced by dynamic compilation on changes of the CoffeeScript pane
    render = _.template fs.readFileSync('documentation/v2/code.html', 'utf-8')
    output = render {file, cs, js, run}


Response:
fs           = require 'fs'
_            = require 'underscore'
CoffeeScript = require '../../lib/coffee-script'

module.exports = ->
  (file, run = no) ->
    cs = fs.readFileSync "documentation/examples/#{file}.coffee", 'utf-8'
    js = CoffeeScript.compile cs, bare: yes # This is just the initial JavaScript output; it is replaced by dynamic compilation on changes of the CoffeeScript pane
    render = _.template fs.readFileSync('documentation/v2/code.html', 'utf-8')
    output = render {file, cs, js, run}


Prompt:
Convert this CoffeeScript to JavaScript.
```coffeescript
fs           = require 'fs'
_            = require 'underscore'
CoffeeScript = require '../../lib/coffee-script'

module.exports = ->
  (file, run = no) ->
    cs = fs.readFileSync "documentation/examples/#{file}.coffee", 'utf-8'
    js = CoffeeScript.compile cs, bare: yes # This is just the initial JavaScript output; it is replaced by dynamic compilation on changes of the CoffeeScript pane
    render = _.template fs.readFileSync('documentation/v2/code.html', 'utf-8')
    output = render {file, cs, js, run}
```

Response:
var CoffeeScript, _, fs;

fs = require('fs');

_ = require('underscore');

CoffeeScript = require('../../lib/coffee-script');

module.exports = function() {
  return function(file, run = false) {
    var cs, js, output, render;
    cs = fs.readFileSync(`documentation/examples/${file}.coffee`, 'utf-8');
    js = CoffeeScript.compile(cs, {
      bare: true // This is just the initial JavaScript output; it is replaced by dynamic compilation on changes of the CoffeeScript pane
    });
    render = _.template(fs.readFileSync('documentation/v2/code.html', 'utf-8'));
    return output = render({file, cs, js, run});
  };
};


Prompt:
Convert this JavaScript to CoffeeScript.
```javascript
var CoffeeScript, _, fs;

fs = require('fs');

_ = require('underscore');

CoffeeScript = require('../../lib/coffee-script');

module.exports = function() {
  return function(file, run = false) {
    var cs, js, output, render;
    cs = fs.readFileSync(`documentation/examples/${file}.coffee`, 'utf-8');
    js = CoffeeScript.compile(cs, {
      bare: true // This is just the initial JavaScript output; it is replaced by dynamic compilation on changes of the CoffeeScript pane
    });
    render = _.template(fs.readFileSync('documentation/v2/code.html', 'utf-8'));
    return output = render({file, cs, js, run});
  };
};
```

Response:
fs           = require 'fs'
_            = require 'underscore'
CoffeeScript = require '../../lib/coffee-script'

module.exports = ->
  (file, run = no) ->
    cs = fs.readFileSync "documentation/examples/#{file}.coffee", 'utf-8'
    js = CoffeeScript.compile cs, bare: yes # This is just the initial JavaScript output; it is replaced by dynamic compilation on changes of the CoffeeScript pane
    render = _.template fs.readFileSync('documentation/v2/code.html', 'utf-8')
    output = render {file, cs, js, run}


Prompt:
fs           = require 'fs'
_            = require 'underscore'
CoffeeScript = require '../../lib/coffee-script'

Response:
module.exports = ->
  (file, run = no) ->
    cs = fs.readFileSync "documentation/examples/#{file}.coffee", 'utf-8'
    js = CoffeeScript.compile cs, bare: yes # This is just the initial JavaScript output; it is replaced by dynamic compilation on changes of the CoffeeScript pane
    render = _.template fs.readFileSync('documentation/v2/code.html', 'utf-8')
    output = render {file, cs, js, run}


Response:
fs           = require 'fs'
CoffeeScript = require '../../lib/coffee-script'

module.exports = ->
  (file, executable = no, showLoad = yes) ->
    cs = fs.readFileSync "documentation/examples/#{file}.coffee", 'utf-8'
    js = CoffeeScript.compile cs, bare: yes
    """

            <textarea class="coffee-example">#{cs}</textarea>

            <textarea class="javascript-output">#{js}</textarea>

    """


Prompt:
Convert this CoffeeScript to JavaScript.
```coffeescript
fs           = require 'fs'
CoffeeScript = require '../../lib/coffee-script'

module.exports = ->
  (file, executable = no, showLoad = yes) ->
    cs = fs.readFileSync "documentation/examples/#{file}.coffee", 'utf-8'
    js = CoffeeScript.compile cs, bare: yes
    """
      <aside class="container-fluid">
        <div class="row">
          <div class="col-md-6">
            <textarea class="coffee-example">#{cs}</textarea>
          </div>
          <div class="col-md-6">
            <textarea class="javascript-output">#{js}</textarea>
          </div>
        </div>
      </aside>
    """
```

Response:
var CoffeeScript, fs;

fs = require('fs');

CoffeeScript = require('../../lib/coffee-script');

module.exports = function() {
  return function(file, executable = false, showLoad = true) {
    var cs, js;
    cs = fs.readFileSync(`documentation/examples/${file}.coffee`, 'utf-8');
    js = CoffeeScript.compile(cs, {
      bare: true
    });
    return `<aside class="container-fluid">
  <div class="row">
    <div class="col-md-6">
      <textarea class="coffee-example">${cs}</textarea>
    </div>
    <div class="col-md-6">
      <textarea class="javascript-output">${js}</textarea>
    </div>
  </div>
</aside>`;
  };
};


Prompt:
Convert this JavaScript to CoffeeScript.
```javascript
var CoffeeScript, fs;

fs = require('fs');

CoffeeScript = require('../../lib/coffee-script');

module.exports = function() {
  return function(file, executable = false, showLoad = true) {
    var cs, js;
    cs = fs.readFileSync(`documentation/examples/${file}.coffee`, 'utf-8');
    js = CoffeeScript.compile(cs, {
      bare: true
    });
    return `<aside class="container-fluid">
  <div class="row">
    <div class="col-md-6">
      <textarea class="coffee-example">${cs}</textarea>
    </div>
    <div class="col-md-6">
      <textarea class="javascript-output">${js}</textarea>
    </div>
  </div>
</aside>`;
  };
};
```

Response:
fs           = require 'fs'
CoffeeScript = require '../../lib/coffee-script'

module.exports = ->
  (file, executable = no, showLoad = yes) ->
    cs = fs.readFileSync "documentation/examples/#{file}.coffee", 'utf-8'
    js = CoffeeScript.compile cs, bare: yes
    """
      <aside class="container-fluid">
        <div class="row">
          <div class="col-md-6">
            <textarea class="coffee-example">#{cs}</textarea>
          </div>
          <div class="col-md-6">
            <textarea class="javascript-output">#{js}</textarea>
          </div>
        </div>
      </aside>
    """


Prompt:
fs           = require 'fs'
CoffeeScript = require '../../lib/coffee-script'

module.exports = ->
  (file, executable = no, showLoad = yes) ->
    cs = fs.readFileSync "documentation/examples/#{file}.coffee", 'utf-8'
    js = CoffeeScript.compile cs, bare: yes
    """
      <aside class="container-fluid">

Response:
<div class="row">
          <div class="col-md-6">
            <textarea class="coffee-example">#{cs}</textarea>
          </div>
          <div class="col-md-6">
            <textarea class="javascript-output">#{js}</textarea>
          </div>
        </div>
      </aside>
    """


Response:
module.exports = (grunt) ->
  grunt.initConfig
    pkg: grunt.file.readJSON("package.json")
    coffee:
      compile:
        files:
          'bucky.js': 'bucky.coffee'
          'spec/bucky.spec.js': 'spec/bucky.spec.coffee'

    watch:
      coffee:
        files: ['bucky.coffee', 'spec/bucky.spec.coffee']
        tasks: ["coffee", "uglify"]

    uglify:
      options:
        banner: "/*! <%= pkg.name %> <%= pkg.version %> */\n"

      dist:
        src: 'bucky.js'
        dest: 'bucky.min.js'

    jasmine:
      options:
        specs: ['spec/bucky.spec.js']
      src: [
        'spec/vendor/jquery-1.10.2/jquery.js',
        'spec/vendor/underscore-1.5.2/underscore.js',
        'spec/vendor/backbone-1.0.0/backbone.js',
        'spec/vendor/sinon-1.7.3/sinon.js',
        'bucky.js'
      ]

  grunt.loadNpmTasks 'grunt-contrib-watch'
  grunt.loadNpmTasks 'grunt-contrib-uglify'
  grunt.loadNpmTasks 'grunt-contrib-coffee'
  grunt.loadNpmTasks 'grunt-contrib-jasmine'

  grunt.registerTask 'default', ['coffee', 'uglify']
  grunt.registerTask 'build', ['coffee', 'uglify', 'jasmine']
  grunt.registerTask 'test', ['coffee', 'uglify', 'jasmine']


Prompt:
Convert this CoffeeScript to JavaScript.
```coffeescript
module.exports = (grunt) ->
  grunt.initConfig
    pkg: grunt.file.readJSON("package.json")
    coffee:
      compile:
        files:
          'bucky.js': 'bucky.coffee'
          'spec/bucky.spec.js': 'spec/bucky.spec.coffee'

    watch:
      coffee:
        files: ['bucky.coffee', 'spec/bucky.spec.coffee']
        tasks: ["coffee", "uglify"]

    uglify:
      options:
        banner: "/*! <%= pkg.name %> <%= pkg.version %> */\n"

      dist:
        src: 'bucky.js'
        dest: 'bucky.min.js'

    jasmine:
      options:
        specs: ['spec/bucky.spec.js']
      src: [
        'spec/vendor/jquery-1.10.2/jquery.js',
        'spec/vendor/underscore-1.5.2/underscore.js',
        'spec/vendor/backbone-1.0.0/backbone.js',
        'spec/vendor/sinon-1.7.3/sinon.js',
        'bucky.js'
      ]

  grunt.loadNpmTasks 'grunt-contrib-watch'
  grunt.loadNpmTasks 'grunt-contrib-uglify'
  grunt.loadNpmTasks 'grunt-contrib-coffee'
  grunt.loadNpmTasks 'grunt-contrib-jasmine'

  grunt.registerTask 'default', ['coffee', 'uglify']
  grunt.registerTask 'build', ['coffee', 'uglify', 'jasmine']
  grunt.registerTask 'test', ['coffee', 'uglify', 'jasmine']
```

Response:
module.exports = function(grunt) {
  grunt.initConfig({
    pkg: grunt.file.readJSON("package.json"),
    coffee: {
      compile: {
        files: {
          'bucky.js': 'bucky.coffee',
          'spec/bucky.spec.js': 'spec/bucky.spec.coffee'
        }
      }
    },
    watch: {
      coffee: {
        files: ['bucky.coffee', 'spec/bucky.spec.coffee'],
        tasks: ["coffee", "uglify"]
      }
    },
    uglify: {
      options: {
        banner: "/*! <%= pkg.name %> <%= pkg.version %> */\n"
      },
      dist: {
        src: 'bucky.js',
        dest: 'bucky.min.js'
      }
    },
    jasmine: {
      options: {
        specs: ['spec/bucky.spec.js']
      },
      src: ['spec/vendor/jquery-1.10.2/jquery.js', 'spec/vendor/underscore-1.5.2/underscore.js', 'spec/vendor/backbone-1.0.0/backbone.js', 'spec/vendor/sinon-1.7.3/sinon.js', 'bucky.js']
    }
  });
  grunt.loadNpmTasks('grunt-contrib-watch');
  grunt.loadNpmTasks('grunt-contrib-uglify');
  grunt.loadNpmTasks('grunt-contrib-coffee');
  grunt.loadNpmTasks('grunt-contrib-jasmine');
  grunt.registerTask('default', ['coffee', 'uglify']);
  grunt.registerTask('build', ['coffee', 'uglify', 'jasmine']);
  return grunt.registerTask('test', ['coffee', 'uglify', 'jasmine']);
};


Prompt:
Convert this JavaScript to CoffeeScript.
```javascript
module.exports = function(grunt) {
  grunt.initConfig({
    pkg: grunt.file.readJSON("package.json"),
    coffee: {
      compile: {
        files: {
          'bucky.js': 'bucky.coffee',
          'spec/bucky.spec.js': 'spec/bucky.spec.coffee'
        }
      }
    },
    watch: {
      coffee: {
        files: ['bucky.coffee', 'spec/bucky.spec.coffee'],
        tasks: ["coffee", "uglify"]
      }
    },
    uglify: {
      options: {
        banner: "/*! <%= pkg.name %> <%= pkg.version %> */\n"
      },
      dist: {
        src: 'bucky.js',
        dest: 'bucky.min.js'
      }
    },
    jasmine: {
      options: {
        specs: ['spec/bucky.spec.js']
      },
      src: ['spec/vendor/jquery-1.10.2/jquery.js', 'spec/vendor/underscore-1.5.2/underscore.js', 'spec/vendor/backbone-1.0.0/backbone.js', 'spec/vendor/sinon-1.7.3/sinon.js', 'bucky.js']
    }
  });
  grunt.loadNpmTasks('grunt-contrib-watch');
  grunt.loadNpmTasks('grunt-contrib-uglify');
  grunt.loadNpmTasks('grunt-contrib-coffee');
  grunt.loadNpmTasks('grunt-contrib-jasmine');
  grunt.registerTask('default', ['coffee', 'uglify']);
  grunt.registerTask('build', ['coffee', 'uglify', 'jasmine']);
  return grunt.registerTask('test', ['coffee', 'uglify', 'jasmine']);
};
```

Response:
module.exports = (grunt) ->
  grunt.initConfig
    pkg: grunt.file.readJSON("package.json")
    coffee:
      compile:
        files:
          'bucky.js': 'bucky.coffee'
          'spec/bucky.spec.js': 'spec/bucky.spec.coffee'

    watch:
      coffee:
        files: ['bucky.coffee', 'spec/bucky.spec.coffee']
        tasks: ["coffee", "uglify"]

    uglify:
      options:
        banner: "/*! <%= pkg.name %> <%= pkg.version %> */\n"

      dist:
        src: 'bucky.js'
        dest: 'bucky.min.js'

    jasmine:
      options:
        specs: ['spec/bucky.spec.js']
      src: [
        'spec/vendor/jquery-1.10.2/jquery.js',
        'spec/vendor/underscore-1.5.2/underscore.js',
        'spec/vendor/backbone-1.0.0/backbone.js',
        'spec/vendor/sinon-1.7.3/sinon.js',
        'bucky.js'
      ]

  grunt.loadNpmTasks 'grunt-contrib-watch'
  grunt.loadNpmTasks 'grunt-contrib-uglify'
  grunt.loadNpmTasks 'grunt-contrib-coffee'
  grunt.loadNpmTasks 'grunt-contrib-jasmine'

  grunt.registerTask 'default', ['coffee', 'uglify']
  grunt.registerTask 'build', ['coffee', 'uglify', 'jasmine']
  grunt.registerTask 'test', ['coffee', 'uglify', 'jasmine']


Prompt:
module.exports = (grunt) ->
  grunt.initConfig
    pkg: grunt.file.readJSON("package.json")
    coffee:
      compile:
        files:
          'bucky.js': 'bucky.coffee'
          'spec/bucky.spec.js': 'spec/bucky.spec.coffee'

    watch:
      coffee:
        files: ['bucky.coffee', 'spec/bucky.spec.coffee']
        tasks: ["coffee", "uglify"]

    uglify:
      options:
        banner: "/*! <%= pkg.name %> <%= pkg.version %> */\n"

      dist:
        src: 'bucky.js'

Response:
dest: 'bucky.min.js'

    jasmine:
      options:
        specs: ['spec/bucky.spec.js']
      src: [
        'spec/vendor/jquery-1.10.2/jquery.js',
        'spec/vendor/underscore-1.5.2/underscore.js',
        'spec/vendor/backbone-1.0.0/backbone.js',
        'spec/vendor/sinon-1.7.3/sinon.js',
        'bucky.js'
      ]

  grunt.loadNpmTasks 'grunt-contrib-watch'
  grunt.loadNpmTasks 'grunt-contrib-uglify'
  grunt.loadNpmTasks 'grunt-contrib-coffee'
  grunt.loadNpmTasks 'grunt-contrib-jasmine'

  grunt.registerTask 'default', ['coffee', 'uglify']
  grunt.registerTask 'build', ['coffee', 'uglify', 'jasmine']
  grunt.registerTask 'test', ['coffee', 'uglify', 'jasmine']


Response:
module.exports = (grunt) ->
  grunt.initConfig
    pkg: grunt.file.readJSON("package.json")
    coffee:
      compile:
        files:
          'bucky.js': 'bucky.coffee'
          'spec/bucky.spec.js': 'spec/bucky.spec.coffee'

    watch:
      coffee:
        files: ['bucky.coffee', 'spec/bucky.spec.coffee']
        tasks: ["coffee", "uglify"]

    uglify:
      options:
        banner: "/*! <%= pkg.name %> <%= pkg.version %> */\n"

      dist:
        src: 'bucky.js'
        dest: 'bucky.min.js'

    jasmine:
      options:
        specs: ['spec/bucky.spec.js']
      src: [
        'spec/vendor/jquery-1.10.2/jquery.js',
        'spec/vendor/underscore-1.5.2/underscore.js',
        'spec/vendor/backbone-1.0.0/backbone.js',
        'mixen.js'
      ]

  grunt.loadNpmTasks 'grunt-contrib-watch'
  grunt.loadNpmTasks 'grunt-contrib-uglify'
  grunt.loadNpmTasks 'grunt-contrib-coffee'
  grunt.loadNpmTasks 'grunt-contrib-jasmine'

  grunt.registerTask 'default', ['coffee', 'uglify']
  grunt.registerTask 'build', ['coffee', 'uglify', 'jasmine']
  grunt.registerTask 'test', ['coffee', 'uglify', 'jasmine']


Prompt:
Convert this CoffeeScript to JavaScript.
```coffeescript
module.exports = (grunt) ->
  grunt.initConfig
    pkg: grunt.file.readJSON("package.json")
    coffee:
      compile:
        files:
          'bucky.js': 'bucky.coffee'
          'spec/bucky.spec.js': 'spec/bucky.spec.coffee'

    watch:
      coffee:
        files: ['bucky.coffee', 'spec/bucky.spec.coffee']
        tasks: ["coffee", "uglify"]

    uglify:
      options:
        banner: "/*! <%= pkg.name %> <%= pkg.version %> */\n"

      dist:
        src: 'bucky.js'
        dest: 'bucky.min.js'

    jasmine:
      options:
        specs: ['spec/bucky.spec.js']
      src: [
        'spec/vendor/jquery-1.10.2/jquery.js',
        'spec/vendor/underscore-1.5.2/underscore.js',
        'spec/vendor/backbone-1.0.0/backbone.js',
        'mixen.js'
      ]

  grunt.loadNpmTasks 'grunt-contrib-watch'
  grunt.loadNpmTasks 'grunt-contrib-uglify'
  grunt.loadNpmTasks 'grunt-contrib-coffee'
  grunt.loadNpmTasks 'grunt-contrib-jasmine'

  grunt.registerTask 'default', ['coffee', 'uglify']
  grunt.registerTask 'build', ['coffee', 'uglify', 'jasmine']
  grunt.registerTask 'test', ['coffee', 'uglify', 'jasmine']
```

Response:
module.exports = function(grunt) {
  grunt.initConfig({
    pkg: grunt.file.readJSON("package.json"),
    coffee: {
      compile: {
        files: {
          'bucky.js': 'bucky.coffee',
          'spec/bucky.spec.js': 'spec/bucky.spec.coffee'
        }
      }
    },
    watch: {
      coffee: {
        files: ['bucky.coffee', 'spec/bucky.spec.coffee'],
        tasks: ["coffee", "uglify"]
      }
    },
    uglify: {
      options: {
        banner: "/*! <%= pkg.name %> <%= pkg.version %> */\n"
      },
      dist: {
        src: 'bucky.js',
        dest: 'bucky.min.js'
      }
    },
    jasmine: {
      options: {
        specs: ['spec/bucky.spec.js']
      },
      src: ['spec/vendor/jquery-1.10.2/jquery.js', 'spec/vendor/underscore-1.5.2/underscore.js', 'spec/vendor/backbone-1.0.0/backbone.js', 'mixen.js']
    }
  });
  grunt.loadNpmTasks('grunt-contrib-watch');
  grunt.loadNpmTasks('grunt-contrib-uglify');
  grunt.loadNpmTasks('grunt-contrib-coffee');
  grunt.loadNpmTasks('grunt-contrib-jasmine');
  grunt.registerTask('default', ['coffee', 'uglify']);
  grunt.registerTask('build', ['coffee', 'uglify', 'jasmine']);
  return grunt.registerTask('test', ['coffee', 'uglify', 'jasmine']);
};


Prompt:
Convert this JavaScript to CoffeeScript.
```javascript
module.exports = function(grunt) {
  grunt.initConfig({
    pkg: grunt.file.readJSON("package.json"),
    coffee: {
      compile: {
        files: {
          'bucky.js': 'bucky.coffee',
          'spec/bucky.spec.js': 'spec/bucky.spec.coffee'
        }
      }
    },
    watch: {
      coffee: {
        files: ['bucky.coffee', 'spec/bucky.spec.coffee'],
        tasks: ["coffee", "uglify"]
      }
    },
    uglify: {
      options: {
        banner: "/*! <%= pkg.name %> <%= pkg.version %> */\n"
      },
      dist: {
        src: 'bucky.js',
        dest: 'bucky.min.js'
      }
    },
    jasmine: {
      options: {
        specs: ['spec/bucky.spec.js']
      },
      src: ['spec/vendor/jquery-1.10.2/jquery.js', 'spec/vendor/underscore-1.5.2/underscore.js', 'spec/vendor/backbone-1.0.0/backbone.js', 'mixen.js']
    }
  });
  grunt.loadNpmTasks('grunt-contrib-watch');
  grunt.loadNpmTasks('grunt-contrib-uglify');
  grunt.loadNpmTasks('grunt-contrib-coffee');
  grunt.loadNpmTasks('grunt-contrib-jasmine');
  grunt.registerTask('default', ['coffee', 'uglify']);
  grunt.registerTask('build', ['coffee', 'uglify', 'jasmine']);
  return grunt.registerTask('test', ['coffee', 'uglify', 'jasmine']);
};
```

Response:
module.exports = (grunt) ->
  grunt.initConfig
    pkg: grunt.file.readJSON("package.json")
    coffee:
      compile:
        files:
          'bucky.js': 'bucky.coffee'
          'spec/bucky.spec.js': 'spec/bucky.spec.coffee'

    watch:
      coffee:
        files: ['bucky.coffee', 'spec/bucky.spec.coffee']
        tasks: ["coffee", "uglify"]

    uglify:
      options:
        banner: "/*! <%= pkg.name %> <%= pkg.version %> */\n"

      dist:
        src: 'bucky.js'
        dest: 'bucky.min.js'

    jasmine:
      options:
        specs: ['spec/bucky.spec.js']
      src: [
        'spec/vendor/jquery-1.10.2/jquery.js',
        'spec/vendor/underscore-1.5.2/underscore.js',
        'spec/vendor/backbone-1.0.0/backbone.js',
        'mixen.js'
      ]

  grunt.loadNpmTasks 'grunt-contrib-watch'
  grunt.loadNpmTasks 'grunt-contrib-uglify'
  grunt.loadNpmTasks 'grunt-contrib-coffee'
  grunt.loadNpmTasks 'grunt-contrib-jasmine'

  grunt.registerTask 'default', ['coffee', 'uglify']
  grunt.registerTask 'build', ['coffee', 'uglify', 'jasmine']
  grunt.registerTask 'test', ['coffee', 'uglify', 'jasmine']


Prompt:
module.exports = (grunt) ->
  grunt.initConfig
    pkg: grunt.file.readJSON("package.json")
    coffee:
      compile:
        files:
          'bucky.js': 'bucky.coffee'
          'spec/bucky.spec.js': 'spec/bucky.spec.coffee'

    watch:
      coffee:
        files: ['bucky.coffee', 'spec/bucky.spec.coffee']
        tasks: ["coffee", "uglify"]

    uglify:
      options:
        banner: "/*! <%= pkg.name %> <%= pkg.version %> */\n"

      dist:
        src: 'bucky.js'

Response:
dest: 'bucky.min.js'

    jasmine:
      options:
        specs: ['spec/bucky.spec.js']
      src: [
        'spec/vendor/jquery-1.10.2/jquery.js',
        'spec/vendor/underscore-1.5.2/underscore.js',
        'spec/vendor/backbone-1.0.0/backbone.js',
        'mixen.js'
      ]

  grunt.loadNpmTasks 'grunt-contrib-watch'
  grunt.loadNpmTasks 'grunt-contrib-uglify'
  grunt.loadNpmTasks 'grunt-contrib-coffee'
  grunt.loadNpmTasks 'grunt-contrib-jasmine'

  grunt.registerTask 'default', ['coffee', 'uglify']
  grunt.registerTask 'build', ['coffee', 'uglify', 'jasmine']
  grunt.registerTask 'test', ['coffee', 'uglify', 'jasmine']


Response:
Market = require('./market')

module.exports = class SuperMarket
  constructor: ->
    @markets = Object.create null

  get_market: (offered_currency, received_currency) =>

    if offered_currency == received_currency
      throw Error("Currencies the same")

    if offered_currency < received_currency
      canonical_pair =  [offered_currency, received_currency]
    else
      canonical_pair = [received_currency, offered_currency]

    canonical_pair_string = canonical_pair.join('|') # XXX: no | in name

    market = @markets[canonical_pair_string]
    if not (market instanceof Market)
      @markets[canonical_pair_string] = market = new Market( canonical_pair[0], canonical_pair[1] )
    return market


Prompt:
Convert this CoffeeScript to JavaScript.
```coffeescript
Market = require('./market')

module.exports = class SuperMarket
  constructor: ->
    @markets = Object.create null

  get_market: (offered_currency, received_currency) =>

    if offered_currency == received_currency
      throw Error("Currencies the same")

    if offered_currency < received_currency
      canonical_pair =  [offered_currency, received_currency]
    else
      canonical_pair = [received_currency, offered_currency]

    canonical_pair_string = canonical_pair.join('|') # XXX: no | in name

    market = @markets[canonical_pair_string]
    if not (market instanceof Market)
      @markets[canonical_pair_string] = market = new Market( canonical_pair[0], canonical_pair[1] )
    return market
```

Response:
var Market, SuperMarket;

Market = require('./market');

module.exports = SuperMarket = class SuperMarket {
  constructor() {
    this.get_market = this.get_market.bind(this);
    this.markets = Object.create(null);
  }

  get_market(offered_currency, received_currency) {
    var canonical_pair, canonical_pair_string, market;
    if (offered_currency === received_currency) {
      throw Error("Currencies the same");
    }
    if (offered_currency < received_currency) {
      canonical_pair = [offered_currency, received_currency];
    } else {
      canonical_pair = [received_currency, offered_currency];
    }
    canonical_pair_string = canonical_pair.join('|'); // XXX: no | in name
    market = this.markets[canonical_pair_string];
    if (!(market instanceof Market)) {
      this.markets[canonical_pair_string] = market = new Market(canonical_pair[0], canonical_pair[1]);
    }
    return market;
  }

};


Prompt:
Convert this JavaScript to CoffeeScript.
```javascript
var Market, SuperMarket;

Market = require('./market');

module.exports = SuperMarket = class SuperMarket {
  constructor() {
    this.get_market = this.get_market.bind(this);
    this.markets = Object.create(null);
  }

  get_market(offered_currency, received_currency) {
    var canonical_pair, canonical_pair_string, market;
    if (offered_currency === received_currency) {
      throw Error("Currencies the same");
    }
    if (offered_currency < received_currency) {
      canonical_pair = [offered_currency, received_currency];
    } else {
      canonical_pair = [received_currency, offered_currency];
    }
    canonical_pair_string = canonical_pair.join('|'); // XXX: no | in name
    market = this.markets[canonical_pair_string];
    if (!(market instanceof Market)) {
      this.markets[canonical_pair_string] = market = new Market(canonical_pair[0], canonical_pair[1]);
    }
    return market;
  }

};
```

Response:
Market = require('./market')

module.exports = class SuperMarket
  constructor: ->
    @markets = Object.create null

  get_market: (offered_currency, received_currency) =>

    if offered_currency == received_currency
      throw Error("Currencies the same")

    if offered_currency < received_currency
      canonical_pair =  [offered_currency, received_currency]
    else
      canonical_pair = [received_currency, offered_currency]

    canonical_pair_string = canonical_pair.join('|') # XXX: no | in name

    market = @markets[canonical_pair_string]
    if not (market instanceof Market)
      @markets[canonical_pair_string] = market = new Market( canonical_pair[0], canonical_pair[1] )
    return market


Prompt:
Market = require('./market')

module.exports = class SuperMarket
  constructor: ->
    @markets = Object.create null

  get_market: (offered_currency, received_currency) =>

    if offered_currency == received_currency
      throw Error("Currencies the same")

Response:
if offered_currency < received_currency
      canonical_pair =  [offered_currency, received_currency]
    else
      canonical_pair = [received_currency, offered_currency]

    canonical_pair_string = canonical_pair.join('|') # XXX: no | in name

    market = @markets[canonical_pair_string]
    if not (market instanceof Market)
      @markets[canonical_pair_string] = market = new Market( canonical_pair[0], canonical_pair[1] )
    return market


Response:
TransformerBase = require('./base')

###
# Remove `{type: 'EmptyStatement'}` from the body.
###

module.exports = class extends TransformerBase
  BlockStatementExit: (node) ->
    @removeEmptyStatementsFromBody(node)

  SwitchCaseExit: (node) ->
    @removeEmptyStatementsFromBody(node, 'consequent')

  SwitchStatementExit: (node) ->
    @removeEmptyStatementsFromBody(node, 'cases')

  ProgramExit: (node) ->
    @removeEmptyStatementsFromBody(node, 'body')

  removeEmptyStatementsFromBody: (node, body = 'body') ->
    node[body] = node[body].filter (n) ->
      n.type isnt 'EmptyStatement'
    node


Prompt:
Convert this CoffeeScript to JavaScript.
```coffeescript
TransformerBase = require('./base')

###
# Remove `{type: 'EmptyStatement'}` from the body.
###

module.exports = class extends TransformerBase
  BlockStatementExit: (node) ->
    @removeEmptyStatementsFromBody(node)

  SwitchCaseExit: (node) ->
    @removeEmptyStatementsFromBody(node, 'consequent')

  SwitchStatementExit: (node) ->
    @removeEmptyStatementsFromBody(node, 'cases')

  ProgramExit: (node) ->
    @removeEmptyStatementsFromBody(node, 'body')

  removeEmptyStatementsFromBody: (node, body = 'body') ->
    node[body] = node[body].filter (n) ->
      n.type isnt 'EmptyStatement'
    node
```

Response:
var TransformerBase;

TransformerBase = require('./base');

/*
 * Remove `{type: 'EmptyStatement'}` from the body.
 */
module.exports = class extends TransformerBase {
  BlockStatementExit(node) {
    return this.removeEmptyStatementsFromBody(node);
  }

  SwitchCaseExit(node) {
    return this.removeEmptyStatementsFromBody(node, 'consequent');
  }

  SwitchStatementExit(node) {
    return this.removeEmptyStatementsFromBody(node, 'cases');
  }

  ProgramExit(node) {
    return this.removeEmptyStatementsFromBody(node, 'body');
  }

  removeEmptyStatementsFromBody(node, body = 'body') {
    node[body] = node[body].filter(function(n) {
      return n.type !== 'EmptyStatement';
    });
    return node;
  }

};


Prompt:
Convert this JavaScript to CoffeeScript.
```javascript
var TransformerBase;

TransformerBase = require('./base');

/*
 * Remove `{type: 'EmptyStatement'}` from the body.
 */
module.exports = class extends TransformerBase {
  BlockStatementExit(node) {
    return this.removeEmptyStatementsFromBody(node);
  }

  SwitchCaseExit(node) {
    return this.removeEmptyStatementsFromBody(node, 'consequent');
  }

  SwitchStatementExit(node) {
    return this.removeEmptyStatementsFromBody(node, 'cases');
  }

  ProgramExit(node) {
    return this.removeEmptyStatementsFromBody(node, 'body');
  }

  removeEmptyStatementsFromBody(node, body = 'body') {
    node[body] = node[body].filter(function(n) {
      return n.type !== 'EmptyStatement';
    });
    return node;
  }

};
```

Response:
TransformerBase = require('./base')

###
# Remove `{type: 'EmptyStatement'}` from the body.
###

module.exports = class extends TransformerBase
  BlockStatementExit: (node) ->
    @removeEmptyStatementsFromBody(node)

  SwitchCaseExit: (node) ->
    @removeEmptyStatementsFromBody(node, 'consequent')

  SwitchStatementExit: (node) ->
    @removeEmptyStatementsFromBody(node, 'cases')

  ProgramExit: (node) ->
    @removeEmptyStatementsFromBody(node, 'body')

  removeEmptyStatementsFromBody: (node, body = 'body') ->
    node[body] = node[body].filter (n) ->
      n.type isnt 'EmptyStatement'
    node


Prompt:
TransformerBase = require('./base')

###
# Remove `{type: 'EmptyStatement'}` from the body.
###

module.exports = class extends TransformerBase
  BlockStatementExit: (node) ->
    @removeEmptyStatementsFromBody(node)

  SwitchCaseExit: (node) ->

Response:
@removeEmptyStatementsFromBody(node, 'consequent')

  SwitchStatementExit: (node) ->
    @removeEmptyStatementsFromBody(node, 'cases')

  ProgramExit: (node) ->
    @removeEmptyStatementsFromBody(node, 'body')

  removeEmptyStatementsFromBody: (node, body = 'body') ->
    node[body] = node[body].filter (n) ->
      n.type isnt 'EmptyStatement'
    node


Response:
NodeType = require './NodeType'
XMLCharacterData = require './XMLCharacterData'

# Represents a processing instruction
module.exports = class XMLProcessingInstruction extends XMLCharacterData

  # Initializes a new instance of `XMLProcessingInstruction`
  #
  # `parent` the parent node
  # `target` instruction target
  # `value` instruction value
  constructor: (parent, target, value) ->
    super parent

    if not target?
      throw new Error "Missing instruction target. " + @debugInfo()

    @type = NodeType.ProcessingInstruction
    @target = @stringify.insTarget target
    @name = @target
    @value = @stringify.insValue value if value

  # Creates and returns a deep clone of `this`
  clone: () ->
    Object.create @

  # Converts the XML fragment to string
  #
  # `options.pretty` pretty prints the result
  # `options.indent` indentation for pretty print
  # `options.offset` how many indentations to add to every line for pretty print
  # `options.newline` newline sequence for pretty print
  toString: (options) ->
    @options.writer.processingInstruction @, @options.writer.filterOptions(options)

  isEqualNode: (node) ->
    if not super.isEqualNode(node) then return false
    if node.target isnt @target then return false

    return true


Prompt:
Convert this CoffeeScript to JavaScript.
```coffeescript
NodeType = require './NodeType'
XMLCharacterData = require './XMLCharacterData'

# Represents a processing instruction
module.exports = class XMLProcessingInstruction extends XMLCharacterData

  # Initializes a new instance of `XMLProcessingInstruction`
  #
  # `parent` the parent node
  # `target` instruction target
  # `value` instruction value
  constructor: (parent, target, value) ->
    super parent

    if not target?
      throw new Error "Missing instruction target. " + @debugInfo()

    @type = NodeType.ProcessingInstruction
    @target = @stringify.insTarget target
    @name = @target
    @value = @stringify.insValue value if value

  # Creates and returns a deep clone of `this`
  clone: () ->
    Object.create @

  # Converts the XML fragment to string
  #
  # `options.pretty` pretty prints the result
  # `options.indent` indentation for pretty print
  # `options.offset` how many indentations to add to every line for pretty print
  # `options.newline` newline sequence for pretty print
  toString: (options) ->
    @options.writer.processingInstruction @, @options.writer.filterOptions(options)

  isEqualNode: (node) ->
    if not super.isEqualNode(node) then return false
    if node.target isnt @target then return false

    return true
```

Response:
var NodeType, XMLCharacterData, XMLProcessingInstruction;

NodeType = require('./NodeType');

XMLCharacterData = require('./XMLCharacterData');

// Represents a processing instruction
module.exports = XMLProcessingInstruction = class XMLProcessingInstruction extends XMLCharacterData {
  // Initializes a new instance of `XMLProcessingInstruction`

  // `parent` the parent node
  // `target` instruction target
  // `value` instruction value
  constructor(parent, target, value) {
    super(parent);
    if (target == null) {
      throw new Error("Missing instruction target. " + this.debugInfo());
    }
    this.type = NodeType.ProcessingInstruction;
    this.target = this.stringify.insTarget(target);
    this.name = this.target;
    if (value) {
      this.value = this.stringify.insValue(value);
    }
  }

  // Creates and returns a deep clone of `this`
  clone() {
    return Object.create(this);
  }

  // Converts the XML fragment to string

  // `options.pretty` pretty prints the result
  // `options.indent` indentation for pretty print
  // `options.offset` how many indentations to add to every line for pretty print
  // `options.newline` newline sequence for pretty print
  toString(options) {
    return this.options.writer.processingInstruction(this, this.options.writer.filterOptions(options));
  }

  isEqualNode(node) {
    if (!super.isEqualNode(node)) {
      return false;
    }
    if (node.target !== this.target) {
      return false;
    }
    return true;
  }

};


Prompt:
Convert this JavaScript to CoffeeScript.
```javascript
var NodeType, XMLCharacterData, XMLProcessingInstruction;

NodeType = require('./NodeType');

XMLCharacterData = require('./XMLCharacterData');

// Represents a processing instruction
module.exports = XMLProcessingInstruction = class XMLProcessingInstruction extends XMLCharacterData {
  // Initializes a new instance of `XMLProcessingInstruction`

  // `parent` the parent node
  // `target` instruction target
  // `value` instruction value
  constructor(parent, target, value) {
    super(parent);
    if (target == null) {
      throw new Error("Missing instruction target. " + this.debugInfo());
    }
    this.type = NodeType.ProcessingInstruction;
    this.target = this.stringify.insTarget(target);
    this.name = this.target;
    if (value) {
      this.value = this.stringify.insValue(value);
    }
  }

  // Creates and returns a deep clone of `this`
  clone() {
    return Object.create(this);
  }

  // Converts the XML fragment to string

  // `options.pretty` pretty prints the result
  // `options.indent` indentation for pretty print
  // `options.offset` how many indentations to add to every line for pretty print
  // `options.newline` newline sequence for pretty print
  toString(options) {
    return this.options.writer.processingInstruction(this, this.options.writer.filterOptions(options));
  }

  isEqualNode(node) {
    if (!super.isEqualNode(node)) {
      return false;
    }
    if (node.target !== this.target) {
      return false;
    }
    return true;
  }

};
```

Response:
NodeType = require './NodeType'
XMLCharacterData = require './XMLCharacterData'

# Represents a processing instruction
module.exports = class XMLProcessingInstruction extends XMLCharacterData

  # Initializes a new instance of `XMLProcessingInstruction`
  #
  # `parent` the parent node
  # `target` instruction target
  # `value` instruction value
  constructor: (parent, target, value) ->
    super parent

    if not target?
      throw new Error "Missing instruction target. " + @debugInfo()

    @type = NodeType.ProcessingInstruction
    @target = @stringify.insTarget target
    @name = @target
    @value = @stringify.insValue value if value

  # Creates and returns a deep clone of `this`
  clone: () ->
    Object.create @

  # Converts the XML fragment to string
  #
  # `options.pretty` pretty prints the result
  # `options.indent` indentation for pretty print
  # `options.offset` how many indentations to add to every line for pretty print
  # `options.newline` newline sequence for pretty print
  toString: (options) ->
    @options.writer.processingInstruction @, @options.writer.filterOptions(options)

  isEqualNode: (node) ->
    if not super.isEqualNode(node) then return false
    if node.target isnt @target then return false

    return true


Prompt:
NodeType = require './NodeType'
XMLCharacterData = require './XMLCharacterData'

# Represents a processing instruction
module.exports = class XMLProcessingInstruction extends XMLCharacterData

  # Initializes a new instance of `XMLProcessingInstruction`
  #
  # `parent` the parent node
  # `target` instruction target
  # `value` instruction value
  constructor: (parent, target, value) ->
    super parent

    if not target?
      throw new Error "Missing instruction target. " + @debugInfo()

    @type = NodeType.ProcessingInstruction
    @target = @stringify.insTarget target
    @name = @target
    @value = @stringify.insValue value if value

Response:
# Creates and returns a deep clone of `this`
  clone: () ->
    Object.create @

  # Converts the XML fragment to string
  #
  # `options.pretty` pretty prints the result
  # `options.indent` indentation for pretty print
  # `options.offset` how many indentations to add to every line for pretty print
  # `options.newline` newline sequence for pretty print
  toString: (options) ->
    @options.writer.processingInstruction @, @options.writer.filterOptions(options)

  isEqualNode: (node) ->
    if not super.isEqualNode(node) then return false
    if node.target isnt @target then return false

    return true


Response:
NodeType = require './NodeType'
XMLCharacterData = require './XMLCharacterData'

# Represents a processing instruction
module.exports = class XMLProcessingInstruction extends XMLCharacterData

  # Initializes a new instance of `XMLProcessingInstruction`
  #
  # `parent` the parent node
  # `target` instruction target
  # `value` instruction value
  constructor: (parent, target, value) ->
    super parent

    if not target?
      throw new Error "Missing instruction target. " + @debugInfo()

    @type = NodeType.ProcessingInstruction
    @target = @stringify.insTarget target
    @name = @target
    @value = @stringify.insValue value if value

  # Creates and returns a deep clone of `this`
  clone: () ->
    Object.create @

  # Converts the XML fragment to string
  #
  # `options.pretty` pretty prints the result
  # `options.indent` indentation for pretty print
  # `options.offset` how many indentations to add to every line for pretty print
  # `options.newline` newline sequence for pretty print
  toString: (options) ->
    @options.writer.processingInstruction @, @options.writer.filterOptions(options)


Prompt:
Convert this CoffeeScript to JavaScript.
```coffeescript
NodeType = require './NodeType'
XMLCharacterData = require './XMLCharacterData'

# Represents a processing instruction
module.exports = class XMLProcessingInstruction extends XMLCharacterData

  # Initializes a new instance of `XMLProcessingInstruction`
  #
  # `parent` the parent node
  # `target` instruction target
  # `value` instruction value
  constructor: (parent, target, value) ->
    super parent

    if not target?
      throw new Error "Missing instruction target. " + @debugInfo()

    @type = NodeType.ProcessingInstruction
    @target = @stringify.insTarget target
    @name = @target
    @value = @stringify.insValue value if value

  # Creates and returns a deep clone of `this`
  clone: () ->
    Object.create @

  # Converts the XML fragment to string
  #
  # `options.pretty` pretty prints the result
  # `options.indent` indentation for pretty print
  # `options.offset` how many indentations to add to every line for pretty print
  # `options.newline` newline sequence for pretty print
  toString: (options) ->
    @options.writer.processingInstruction @, @options.writer.filterOptions(options)
```

Response:
var NodeType, XMLCharacterData, XMLProcessingInstruction;

NodeType = require('./NodeType');

XMLCharacterData = require('./XMLCharacterData');

// Represents a processing instruction
module.exports = XMLProcessingInstruction = class XMLProcessingInstruction extends XMLCharacterData {
  // Initializes a new instance of `XMLProcessingInstruction`

  // `parent` the parent node
  // `target` instruction target
  // `value` instruction value
  constructor(parent, target, value) {
    super(parent);
    if (target == null) {
      throw new Error("Missing instruction target. " + this.debugInfo());
    }
    this.type = NodeType.ProcessingInstruction;
    this.target = this.stringify.insTarget(target);
    this.name = this.target;
    if (value) {
      this.value = this.stringify.insValue(value);
    }
  }

  // Creates and returns a deep clone of `this`
  clone() {
    return Object.create(this);
  }

  // Converts the XML fragment to string

  // `options.pretty` pretty prints the result
  // `options.indent` indentation for pretty print
  // `options.offset` how many indentations to add to every line for pretty print
  // `options.newline` newline sequence for pretty print
  toString(options) {
    return this.options.writer.processingInstruction(this, this.options.writer.filterOptions(options));
  }

};


Prompt:
Convert this JavaScript to CoffeeScript.
```javascript
var NodeType, XMLCharacterData, XMLProcessingInstruction;

NodeType = require('./NodeType');

XMLCharacterData = require('./XMLCharacterData');

// Represents a processing instruction
module.exports = XMLProcessingInstruction = class XMLProcessingInstruction extends XMLCharacterData {
  // Initializes a new instance of `XMLProcessingInstruction`

  // `parent` the parent node
  // `target` instruction target
  // `value` instruction value
  constructor(parent, target, value) {
    super(parent);
    if (target == null) {
      throw new Error("Missing instruction target. " + this.debugInfo());
    }
    this.type = NodeType.ProcessingInstruction;
    this.target = this.stringify.insTarget(target);
    this.name = this.target;
    if (value) {
      this.value = this.stringify.insValue(value);
    }
  }

  // Creates and returns a deep clone of `this`
  clone() {
    return Object.create(this);
  }

  // Converts the XML fragment to string

  // `options.pretty` pretty prints the result
  // `options.indent` indentation for pretty print
  // `options.offset` how many indentations to add to every line for pretty print
  // `options.newline` newline sequence for pretty print
  toString(options) {
    return this.options.writer.processingInstruction(this, this.options.writer.filterOptions(options));
  }

};
```

Response:
NodeType = require './NodeType'
XMLCharacterData = require './XMLCharacterData'

# Represents a processing instruction
module.exports = class XMLProcessingInstruction extends XMLCharacterData

  # Initializes a new instance of `XMLProcessingInstruction`
  #
  # `parent` the parent node
  # `target` instruction target
  # `value` instruction value
  constructor: (parent, target, value) ->
    super parent

    if not target?
      throw new Error "Missing instruction target. " + @debugInfo()

    @type = NodeType.ProcessingInstruction
    @target = @stringify.insTarget target
    @name = @target
    @value = @stringify.insValue value if value

  # Creates and returns a deep clone of `this`
  clone: () ->
    Object.create @

  # Converts the XML fragment to string
  #
  # `options.pretty` pretty prints the result
  # `options.indent` indentation for pretty print
  # `options.offset` how many indentations to add to every line for pretty print
  # `options.newline` newline sequence for pretty print
  toString: (options) ->
    @options.writer.processingInstruction @, @options.writer.filterOptions(options)


Prompt:
NodeType = require './NodeType'
XMLCharacterData = require './XMLCharacterData'

# Represents a processing instruction
module.exports = class XMLProcessingInstruction extends XMLCharacterData

  # Initializes a new instance of `XMLProcessingInstruction`
  #
  # `parent` the parent node
  # `target` instruction target
  # `value` instruction value
  constructor: (parent, target, value) ->
    super parent

    if not target?
      throw new Error "Missing instruction target. " + @debugInfo()

Response:
@type = NodeType.ProcessingInstruction
    @target = @stringify.insTarget target
    @name = @target
    @value = @stringify.insValue value if value

  # Creates and returns a deep clone of `this`
  clone: () ->
    Object.create @

  # Converts the XML fragment to string
  #
  # `options.pretty` pretty prints the result
  # `options.indent` indentation for pretty print
  # `options.offset` how many indentations to add to every line for pretty print
  # `options.newline` newline sequence for pretty print
  toString: (options) ->
    @options.writer.processingInstruction @, @options.writer.filterOptions(options)


Response:
NodeType = require './NodeType'
XMLNode = require './XMLNode'

# Represents a processing instruction
module.exports = class XMLProcessingInstruction extends XMLNode

  # Initializes a new instance of `XMLProcessingInstruction`
  #
  # `parent` the parent node
  # `target` instruction target
  # `value` instruction value
  constructor: (parent, target, value) ->
    super parent

    if not target?
      throw new Error "Missing instruction target. " + @debugInfo()

    @type = NodeType.ProcessingInstruction
    @target = @stringify.insTarget target
    @name = @target
    @value = @stringify.insValue value if value

  # DOM level 1
  Object.defineProperty @::, 'data', get: () -> @value

  # Creates and returns a deep clone of `this`
  clone: () ->
    Object.create @

  # Converts the XML fragment to string
  #
  # `options.pretty` pretty prints the result
  # `options.indent` indentation for pretty print
  # `options.offset` how many indentations to add to every line for pretty print
  # `options.newline` newline sequence for pretty print
  toString: (options) ->
    @options.writer.processingInstruction @, @options.writer.filterOptions(options)


Prompt:
Convert this CoffeeScript to JavaScript.
```coffeescript
NodeType = require './NodeType'
XMLNode = require './XMLNode'

# Represents a processing instruction
module.exports = class XMLProcessingInstruction extends XMLNode

  # Initializes a new instance of `XMLProcessingInstruction`
  #
  # `parent` the parent node
  # `target` instruction target
  # `value` instruction value
  constructor: (parent, target, value) ->
    super parent

    if not target?
      throw new Error "Missing instruction target. " + @debugInfo()

    @type = NodeType.ProcessingInstruction
    @target = @stringify.insTarget target
    @name = @target
    @value = @stringify.insValue value if value

  # DOM level 1
  Object.defineProperty @::, 'data', get: () -> @value

  # Creates and returns a deep clone of `this`
  clone: () ->
    Object.create @

  # Converts the XML fragment to string
  #
  # `options.pretty` pretty prints the result
  # `options.indent` indentation for pretty print
  # `options.offset` how many indentations to add to every line for pretty print
  # `options.newline` newline sequence for pretty print
  toString: (options) ->
    @options.writer.processingInstruction @, @options.writer.filterOptions(options)
```

Response:
var NodeType, XMLNode, XMLProcessingInstruction;

NodeType = require('./NodeType');

XMLNode = require('./XMLNode');

// Represents a processing instruction
module.exports = XMLProcessingInstruction = (function() {
  class XMLProcessingInstruction extends XMLNode {
    // Initializes a new instance of `XMLProcessingInstruction`

    // `parent` the parent node
    // `target` instruction target
    // `value` instruction value
    constructor(parent, target, value) {
      super(parent);
      if (target == null) {
        throw new Error("Missing instruction target. " + this.debugInfo());
      }
      this.type = NodeType.ProcessingInstruction;
      this.target = this.stringify.insTarget(target);
      this.name = this.target;
      if (value) {
        this.value = this.stringify.insValue(value);
      }
    }

    // Creates and returns a deep clone of `this`
    clone() {
      return Object.create(this);
    }

    // Converts the XML fragment to string

    // `options.pretty` pretty prints the result
    // `options.indent` indentation for pretty print
    // `options.offset` how many indentations to add to every line for pretty print
    // `options.newline` newline sequence for pretty print
    toString(options) {
      return this.options.writer.processingInstruction(this, this.options.writer.filterOptions(options));
    }

  };

  // DOM level 1
  Object.defineProperty(XMLProcessingInstruction.prototype, 'data', {
    get: function() {
      return this.value;
    }
  });

  return XMLProcessingInstruction;

}).call(this);


Prompt:
Convert this JavaScript to CoffeeScript.
```javascript
var NodeType, XMLNode, XMLProcessingInstruction;

NodeType = require('./NodeType');

XMLNode = require('./XMLNode');

// Represents a processing instruction
module.exports = XMLProcessingInstruction = (function() {
  class XMLProcessingInstruction extends XMLNode {
    // Initializes a new instance of `XMLProcessingInstruction`

    // `parent` the parent node
    // `target` instruction target
    // `value` instruction value
    constructor(parent, target, value) {
      super(parent);
      if (target == null) {
        throw new Error("Missing instruction target. " + this.debugInfo());
      }
      this.type = NodeType.ProcessingInstruction;
      this.target = this.stringify.insTarget(target);
      this.name = this.target;
      if (value) {
        this.value = this.stringify.insValue(value);
      }
    }

    // Creates and returns a deep clone of `this`
    clone() {
      return Object.create(this);
    }

    // Converts the XML fragment to string

    // `options.pretty` pretty prints the result
    // `options.indent` indentation for pretty print
    // `options.offset` how many indentations to add to every line for pretty print
    // `options.newline` newline sequence for pretty print
    toString(options) {
      return this.options.writer.processingInstruction(this, this.options.writer.filterOptions(options));
    }

  };

  // DOM level 1
  Object.defineProperty(XMLProcessingInstruction.prototype, 'data', {
    get: function() {
      return this.value;
    }
  });

  return XMLProcessingInstruction;

}).call(this);
```

Response:
NodeType = require './NodeType'
XMLNode = require './XMLNode'

# Represents a processing instruction
module.exports = class XMLProcessingInstruction extends XMLNode

  # Initializes a new instance of `XMLProcessingInstruction`
  #
  # `parent` the parent node
  # `target` instruction target
  # `value` instruction value
  constructor: (parent, target, value) ->
    super parent

    if not target?
      throw new Error "Missing instruction target. " + @debugInfo()

    @type = NodeType.ProcessingInstruction
    @target = @stringify.insTarget target
    @name = @target
    @value = @stringify.insValue value if value

  # DOM level 1
  Object.defineProperty @::, 'data', get: () -> @value

  # Creates and returns a deep clone of `this`
  clone: () ->
    Object.create @

  # Converts the XML fragment to string
  #
  # `options.pretty` pretty prints the result
  # `options.indent` indentation for pretty print
  # `options.offset` how many indentations to add to every line for pretty print
  # `options.newline` newline sequence for pretty print
  toString: (options) ->
    @options.writer.processingInstruction @, @options.writer.filterOptions(options)


Prompt:
NodeType = require './NodeType'
XMLNode = require './XMLNode'

# Represents a processing instruction
module.exports = class XMLProcessingInstruction extends XMLNode

  # Initializes a new instance of `XMLProcessingInstruction`
  #
  # `parent` the parent node
  # `target` instruction target
  # `value` instruction value
  constructor: (parent, target, value) ->
    super parent

    if not target?
      throw new Error "Missing instruction target. " + @debugInfo()

    @type = NodeType.ProcessingInstruction
    @target = @stringify.insTarget target

Response:
@name = @target
    @value = @stringify.insValue value if value

  # DOM level 1
  Object.defineProperty @::, 'data', get: () -> @value

  # Creates and returns a deep clone of `this`
  clone: () ->
    Object.create @

  # Converts the XML fragment to string
  #
  # `options.pretty` pretty prints the result
  # `options.indent` indentation for pretty print
  # `options.offset` how many indentations to add to every line for pretty print
  # `options.newline` newline sequence for pretty print
  toString: (options) ->
    @options.writer.processingInstruction @, @options.writer.filterOptions(options)


Response:
NodeType = require './NodeType'
XMLNode = require './XMLNode'

# Represents a processing instruction
module.exports = class XMLProcessingInstruction extends XMLNode

  # Initializes a new instance of `XMLProcessingInstruction`
  #
  # `parent` the parent node
  # `target` instruction target
  # `value` instruction value
  constructor: (parent, target, value) ->
    super parent

    if not target?
      throw new Error "Missing instruction target. " + @debugInfo()

    @type = NodeType.ProcessingInstruction
    @target = @stringify.insTarget target
    @name = @target
    @value = @stringify.insValue value if value

    # DOM level 1
    Object.defineProperty @, 'data', get: () -> @value

  # Creates and returns a deep clone of `this`
  clone: () ->
    Object.create @

  # Converts the XML fragment to string
  #
  # `options.pretty` pretty prints the result
  # `options.indent` indentation for pretty print
  # `options.offset` how many indentations to add to every line for pretty print
  # `options.newline` newline sequence for pretty print
  toString: (options) ->
    @options.writer.processingInstruction @, @options.writer.filterOptions(options)


Prompt:
Convert this CoffeeScript to JavaScript.
```coffeescript
NodeType = require './NodeType'
XMLNode = require './XMLNode'

# Represents a processing instruction
module.exports = class XMLProcessingInstruction extends XMLNode

  # Initializes a new instance of `XMLProcessingInstruction`
  #
  # `parent` the parent node
  # `target` instruction target
  # `value` instruction value
  constructor: (parent, target, value) ->
    super parent

    if not target?
      throw new Error "Missing instruction target. " + @debugInfo()

    @type = NodeType.ProcessingInstruction
    @target = @stringify.insTarget target
    @name = @target
    @value = @stringify.insValue value if value

    # DOM level 1
    Object.defineProperty @, 'data', get: () -> @value

  # Creates and returns a deep clone of `this`
  clone: () ->
    Object.create @

  # Converts the XML fragment to string
  #
  # `options.pretty` pretty prints the result
  # `options.indent` indentation for pretty print
  # `options.offset` how many indentations to add to every line for pretty print
  # `options.newline` newline sequence for pretty print
  toString: (options) ->
    @options.writer.processingInstruction @, @options.writer.filterOptions(options)
```

Response:
var NodeType, XMLNode, XMLProcessingInstruction;

NodeType = require('./NodeType');

XMLNode = require('./XMLNode');

// Represents a processing instruction
module.exports = XMLProcessingInstruction = class XMLProcessingInstruction extends XMLNode {
  // Initializes a new instance of `XMLProcessingInstruction`

  // `parent` the parent node
  // `target` instruction target
  // `value` instruction value
  constructor(parent, target, value) {
    super(parent);
    if (target == null) {
      throw new Error("Missing instruction target. " + this.debugInfo());
    }
    this.type = NodeType.ProcessingInstruction;
    this.target = this.stringify.insTarget(target);
    this.name = this.target;
    if (value) {
      this.value = this.stringify.insValue(value);
    }
    // DOM level 1
    Object.defineProperty(this, 'data', {
      get: function() {
        return this.value;
      }
    });
  }

  // Creates and returns a deep clone of `this`
  clone() {
    return Object.create(this);
  }

  // Converts the XML fragment to string

  // `options.pretty` pretty prints the result
  // `options.indent` indentation for pretty print
  // `options.offset` how many indentations to add to every line for pretty print
  // `options.newline` newline sequence for pretty print
  toString(options) {
    return this.options.writer.processingInstruction(this, this.options.writer.filterOptions(options));
  }

};


Prompt:
Convert this JavaScript to CoffeeScript.
```javascript
var NodeType, XMLNode, XMLProcessingInstruction;

NodeType = require('./NodeType');

XMLNode = require('./XMLNode');

// Represents a processing instruction
module.exports = XMLProcessingInstruction = class XMLProcessingInstruction extends XMLNode {
  // Initializes a new instance of `XMLProcessingInstruction`

  // `parent` the parent node
  // `target` instruction target
  // `value` instruction value
  constructor(parent, target, value) {
    super(parent);
    if (target == null) {
      throw new Error("Missing instruction target. " + this.debugInfo());
    }
    this.type = NodeType.ProcessingInstruction;
    this.target = this.stringify.insTarget(target);
    this.name = this.target;
    if (value) {
      this.value = this.stringify.insValue(value);
    }
    // DOM level 1
    Object.defineProperty(this, 'data', {
      get: function() {
        return this.value;
      }
    });
  }

  // Creates and returns a deep clone of `this`
  clone() {
    return Object.create(this);
  }

  // Converts the XML fragment to string

  // `options.pretty` pretty prints the result
  // `options.indent` indentation for pretty print
  // `options.offset` how many indentations to add to every line for pretty print
  // `options.newline` newline sequence for pretty print
  toString(options) {
    return this.options.writer.processingInstruction(this, this.options.writer.filterOptions(options));
  }

};
```

Response:
NodeType = require './NodeType'
XMLNode = require './XMLNode'

# Represents a processing instruction
module.exports = class XMLProcessingInstruction extends XMLNode

  # Initializes a new instance of `XMLProcessingInstruction`
  #
  # `parent` the parent node
  # `target` instruction target
  # `value` instruction value
  constructor: (parent, target, value) ->
    super parent

    if not target?
      throw new Error "Missing instruction target. " + @debugInfo()

    @type = NodeType.ProcessingInstruction
    @target = @stringify.insTarget target
    @name = @target
    @value = @stringify.insValue value if value

    # DOM level 1
    Object.defineProperty @, 'data', get: () -> @value

  # Creates and returns a deep clone of `this`
  clone: () ->
    Object.create @

  # Converts the XML fragment to string
  #
  # `options.pretty` pretty prints the result
  # `options.indent` indentation for pretty print
  # `options.offset` how many indentations to add to every line for pretty print
  # `options.newline` newline sequence for pretty print
  toString: (options) ->
    @options.writer.processingInstruction @, @options.writer.filterOptions(options)


Prompt:
NodeType = require './NodeType'
XMLNode = require './XMLNode'

# Represents a processing instruction
module.exports = class XMLProcessingInstruction extends XMLNode

  # Initializes a new instance of `XMLProcessingInstruction`
  #
  # `parent` the parent node
  # `target` instruction target
  # `value` instruction value
  constructor: (parent, target, value) ->
    super parent

    if not target?
      throw new Error "Missing instruction target. " + @debugInfo()

    @type = NodeType.ProcessingInstruction
    @target = @stringify.insTarget target

Response:
@name = @target
    @value = @stringify.insValue value if value

    # DOM level 1
    Object.defineProperty @, 'data', get: () -> @value

  # Creates and returns a deep clone of `this`
  clone: () ->
    Object.create @

  # Converts the XML fragment to string
  #
  # `options.pretty` pretty prints the result
  # `options.indent` indentation for pretty print
  # `options.offset` how many indentations to add to every line for pretty print
  # `options.newline` newline sequence for pretty print
  toString: (options) ->
    @options.writer.processingInstruction @, @options.writer.filterOptions(options)


Response:
XMLNode = require './XMLNode'
NodeType = require './NodeType'

# Represents a processing instruction
module.exports = class XMLProcessingInstruction extends XMLNode

  # Initializes a new instance of `XMLProcessingInstruction`
  #
  # `parent` the parent node
  # `target` instruction target
  # `value` instruction value
  constructor: (parent, target, value) ->
    super parent

    if not target?
      throw new Error "Missing instruction target. " + @debugInfo()

    @type = NodeType.ProcessingInstruction
    @target = @stringify.insTarget target
    @name = @target
    @value = @stringify.insValue value if value

  # Creates and returns a deep clone of `this`
  clone: () ->
    Object.create @

  # Converts the XML fragment to string
  #
  # `options.pretty` pretty prints the result
  # `options.indent` indentation for pretty print
  # `options.offset` how many indentations to add to every line for pretty print
  # `options.newline` newline sequence for pretty print
  toString: (options) ->
    @options.writer.processingInstruction @, @options.writer.filterOptions(options)


Prompt:
Convert this CoffeeScript to JavaScript.
```coffeescript
XMLNode = require './XMLNode'
NodeType = require './NodeType'

# Represents a processing instruction
module.exports = class XMLProcessingInstruction extends XMLNode

  # Initializes a new instance of `XMLProcessingInstruction`
  #
  # `parent` the parent node
  # `target` instruction target
  # `value` instruction value
  constructor: (parent, target, value) ->
    super parent

    if not target?
      throw new Error "Missing instruction target. " + @debugInfo()

    @type = NodeType.ProcessingInstruction
    @target = @stringify.insTarget target
    @name = @target
    @value = @stringify.insValue value if value

  # Creates and returns a deep clone of `this`
  clone: () ->
    Object.create @

  # Converts the XML fragment to string
  #
  # `options.pretty` pretty prints the result
  # `options.indent` indentation for pretty print
  # `options.offset` how many indentations to add to every line for pretty print
  # `options.newline` newline sequence for pretty print
  toString: (options) ->
    @options.writer.processingInstruction @, @options.writer.filterOptions(options)
```

Response:
var NodeType, XMLNode, XMLProcessingInstruction;

XMLNode = require('./XMLNode');

NodeType = require('./NodeType');

// Represents a processing instruction
module.exports = XMLProcessingInstruction = class XMLProcessingInstruction extends XMLNode {
  // Initializes a new instance of `XMLProcessingInstruction`

  // `parent` the parent node
  // `target` instruction target
  // `value` instruction value
  constructor(parent, target, value) {
    super(parent);
    if (target == null) {
      throw new Error("Missing instruction target. " + this.debugInfo());
    }
    this.type = NodeType.ProcessingInstruction;
    this.target = this.stringify.insTarget(target);
    this.name = this.target;
    if (value) {
      this.value = this.stringify.insValue(value);
    }
  }

  // Creates and returns a deep clone of `this`
  clone() {
    return Object.create(this);
  }

  // Converts the XML fragment to string

  // `options.pretty` pretty prints the result
  // `options.indent` indentation for pretty print
  // `options.offset` how many indentations to add to every line for pretty print
  // `options.newline` newline sequence for pretty print
  toString(options) {
    return this.options.writer.processingInstruction(this, this.options.writer.filterOptions(options));
  }

};


Prompt:
Convert this JavaScript to CoffeeScript.
```javascript
var NodeType, XMLNode, XMLProcessingInstruction;

XMLNode = require('./XMLNode');

NodeType = require('./NodeType');

// Represents a processing instruction
module.exports = XMLProcessingInstruction = class XMLProcessingInstruction extends XMLNode {
  // Initializes a new instance of `XMLProcessingInstruction`

  // `parent` the parent node
  // `target` instruction target
  // `value` instruction value
  constructor(parent, target, value) {
    super(parent);
    if (target == null) {
      throw new Error("Missing instruction target. " + this.debugInfo());
    }
    this.type = NodeType.ProcessingInstruction;
    this.target = this.stringify.insTarget(target);
    this.name = this.target;
    if (value) {
      this.value = this.stringify.insValue(value);
    }
  }

  // Creates and returns a deep clone of `this`
  clone() {
    return Object.create(this);
  }

  // Converts the XML fragment to string

  // `options.pretty` pretty prints the result
  // `options.indent` indentation for pretty print
  // `options.offset` how many indentations to add to every line for pretty print
  // `options.newline` newline sequence for pretty print
  toString(options) {
    return this.options.writer.processingInstruction(this, this.options.writer.filterOptions(options));
  }

};
```

Response:
XMLNode = require './XMLNode'
NodeType = require './NodeType'

# Represents a processing instruction
module.exports = class XMLProcessingInstruction extends XMLNode

  # Initializes a new instance of `XMLProcessingInstruction`
  #
  # `parent` the parent node
  # `target` instruction target
  # `value` instruction value
  constructor: (parent, target, value) ->
    super parent

    if not target?
      throw new Error "Missing instruction target. " + @debugInfo()

    @type = NodeType.ProcessingInstruction
    @target = @stringify.insTarget target
    @name = @target
    @value = @stringify.insValue value if value

  # Creates and returns a deep clone of `this`
  clone: () ->
    Object.create @

  # Converts the XML fragment to string
  #
  # `options.pretty` pretty prints the result
  # `options.indent` indentation for pretty print
  # `options.offset` how many indentations to add to every line for pretty print
  # `options.newline` newline sequence for pretty print
  toString: (options) ->
    @options.writer.processingInstruction @, @options.writer.filterOptions(options)


Prompt:
XMLNode = require './XMLNode'
NodeType = require './NodeType'

# Represents a processing instruction
module.exports = class XMLProcessingInstruction extends XMLNode

  # Initializes a new instance of `XMLProcessingInstruction`
  #
  # `parent` the parent node
  # `target` instruction target
  # `value` instruction value
  constructor: (parent, target, value) ->
    super parent

    if not target?
      throw new Error "Missing instruction target. " + @debugInfo()

Response:
@type = NodeType.ProcessingInstruction
    @target = @stringify.insTarget target
    @name = @target
    @value = @stringify.insValue value if value

  # Creates and returns a deep clone of `this`
  clone: () ->
    Object.create @

  # Converts the XML fragment to string
  #
  # `options.pretty` pretty prints the result
  # `options.indent` indentation for pretty print
  # `options.offset` how many indentations to add to every line for pretty print
  # `options.newline` newline sequence for pretty print
  toString: (options) ->
    @options.writer.processingInstruction @, @options.writer.filterOptions(options)


Response:
XMLNode = require './XMLNode'
NodeType = require './NodeType'

# Represents a processing instruction
module.exports = class XMLProcessingInstruction extends XMLNode

  # Initializes a new instance of `XMLProcessingInstruction`
  #
  # `parent` the parent node
  # `target` instruction target
  # `value` instruction value
  constructor: (parent, target, value) ->
    super parent

    if not target?
      throw new Error "Missing instruction target. " + @debugInfo()

    @type = NodeType.ProcessingInstruction
    @target = @stringify.insTarget target
    @value = @stringify.insValue value if value

  # Creates and returns a deep clone of `this`
  clone: () ->
    Object.create @

  # Converts the XML fragment to string
  #
  # `options.pretty` pretty prints the result
  # `options.indent` indentation for pretty print
  # `options.offset` how many indentations to add to every line for pretty print
  # `options.newline` newline sequence for pretty print
  toString: (options) ->
    @options.writer.processingInstruction @, @options.writer.filterOptions(options)


Prompt:
Convert this CoffeeScript to JavaScript.
```coffeescript
XMLNode = require './XMLNode'
NodeType = require './NodeType'

# Represents a processing instruction
module.exports = class XMLProcessingInstruction extends XMLNode

  # Initializes a new instance of `XMLProcessingInstruction`
  #
  # `parent` the parent node
  # `target` instruction target
  # `value` instruction value
  constructor: (parent, target, value) ->
    super parent

    if not target?
      throw new Error "Missing instruction target. " + @debugInfo()

    @type = NodeType.ProcessingInstruction
    @target = @stringify.insTarget target
    @value = @stringify.insValue value if value

  # Creates and returns a deep clone of `this`
  clone: () ->
    Object.create @

  # Converts the XML fragment to string
  #
  # `options.pretty` pretty prints the result
  # `options.indent` indentation for pretty print
  # `options.offset` how many indentations to add to every line for pretty print
  # `options.newline` newline sequence for pretty print
  toString: (options) ->
    @options.writer.processingInstruction @, @options.writer.filterOptions(options)
```

Response:
var NodeType, XMLNode, XMLProcessingInstruction;

XMLNode = require('./XMLNode');

NodeType = require('./NodeType');

// Represents a processing instruction
module.exports = XMLProcessingInstruction = class XMLProcessingInstruction extends XMLNode {
  // Initializes a new instance of `XMLProcessingInstruction`

  // `parent` the parent node
  // `target` instruction target
  // `value` instruction value
  constructor(parent, target, value) {
    super(parent);
    if (target == null) {
      throw new Error("Missing instruction target. " + this.debugInfo());
    }
    this.type = NodeType.ProcessingInstruction;
    this.target = this.stringify.insTarget(target);
    if (value) {
      this.value = this.stringify.insValue(value);
    }
  }

  // Creates and returns a deep clone of `this`
  clone() {
    return Object.create(this);
  }

  // Converts the XML fragment to string

  // `options.pretty` pretty prints the result
  // `options.indent` indentation for pretty print
  // `options.offset` how many indentations to add to every line for pretty print
  // `options.newline` newline sequence for pretty print
  toString(options) {
    return this.options.writer.processingInstruction(this, this.options.writer.filterOptions(options));
  }

};