diff --git a/.gitignore b/.gitignore index 82756e3..d53c195 100644 --- a/.gitignore +++ b/.gitignore @@ -27,6 +27,7 @@ build/Release ehthumbs.db Icon? Thumbs.db +.idea # Node Files # node_modules diff --git a/Readme.md b/Readme.md index b5726fd..4cef517 100644 --- a/Readme.md +++ b/Readme.md @@ -14,5 +14,5 @@ Clone this repository as well as [the server](https://github.com/auth0/nodejs-jw First, run the server app in the port `3001`. -Then, run `npm install` on this project and run `npm startwatch` to start the app. Then just navigate to [http://localhost:3000](http://localhost:3000) :boom: - +Then, run `npm install` on this project and run `npm start` to start the app. Then just navigate to [http://localhost:3000](http://localhost:3000) :boom: +Use `npm run server` to run API server. \ No newline at end of file diff --git a/backend/.gitignore b/backend/.gitignore new file mode 100644 index 0000000..3ec544c --- /dev/null +++ b/backend/.gitignore @@ -0,0 +1,2 @@ +node_modules/ +.env \ No newline at end of file diff --git a/backend/README.md b/backend/README.md new file mode 100644 index 0000000..5a1ba3f --- /dev/null +++ b/backend/README.md @@ -0,0 +1,50 @@ +# NODE TODO API + +This is a NodeJS full API that you can use to test with your SPAs or Mobile apps. + +## How to use it + +This service is deployed in Heroku and saves the TODOs in memory, so once the dyno dies, all the todos are removed. + +It's deployed on [http://auth0-todo-test-api.herokuapp.com/](http://auth0-todo-test-api.herokuapp.com/) + +## Available APIs + +### Open API + +The Open API lets anyone do CRUD operation on a set of TODOs. This means that you can add a TODO and then John Doe can delete it. + +Available methods: + +* **POST /api/open/todos**: Adds a new TODO +* **PUT /api/open/todos/:id**: Updates the TODO with id `id` +* **GET /api/open/todos/:id**: Returns the TODO with id `id` +* **DELETE /api/open/todos/:id**: Deletes the TODO with id `id` +* **GET /api/open/todos**: Gets all fo the TODOs + +### User based API + +You can use this API to save TODO items for a particular user. For that, you need to use Auth0 to get the `id_token` (JWT) and send it in every request as part of the `Authorization` header. + +This server validates JWT from the following account: + +* **Domain**: `samples.auth0.com` +* **ClientID**: `BUIJSW9x60sIHBw8Kd9EmCbj8eDIFxDC` + +Available methods: + +* **POST /api/todos**: Adds a new TODO +* **PUT /api/todos/:id**: Updates the TODO with id `id` +* **GET /api/todos/:id**: Returns the TODO with id `id` +* **DELETE /api/todos/:id**: Deletes the TODO with id `id` +* **GET /api/todos**: Gets all fo the TODOs + +## Running this for your Auth0 account + +If you want, you can run this server for YOUR Auth0 account. For that, you just need to create a `.env` file and set the `AUTH0_CLIENT_ID` and `AUTH0_CLIENT_SECRET` variables with the information from your account: + +````bash +AUTH0_CLIENT_ID=YourClientId +AUTH0_CLIENT_SECRET=YourClientSecret +```` + diff --git a/backend/anonymous-routes.js b/backend/anonymous-routes.js new file mode 100644 index 0000000..a07deb0 --- /dev/null +++ b/backend/anonymous-routes.js @@ -0,0 +1,8 @@ +var express = require('express'), + quoter = require('./quoter'); + +var app = module.exports = express.Router(); + +app.get('/api/random-quote', function(req, res) { + res.status(200).send(quoter.getRandomOne()); +}); diff --git a/backend/config.json b/backend/config.json new file mode 100644 index 0000000..11652ae --- /dev/null +++ b/backend/config.json @@ -0,0 +1,3 @@ +{ + "secret": "ngEurope rocks!" +} diff --git a/backend/package.json b/backend/package.json new file mode 100644 index 0000000..881a1c2 --- /dev/null +++ b/backend/package.json @@ -0,0 +1,38 @@ +{ + "name": "in-memory-todo", + "version": "0.1.0", + "description": "An In memory todo for Logged in and not Logged in users", + "main": "server.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "https://github.com/auth0/in-memory-todo.git" + }, + "keywords": [ + "todo", + "in", + "memory", + "jwt", + "auth0" + ], + "author": "Martin Gontovnikas", + "license": "MIT", + "bugs": { + "url": "https://github.com/auth0/in-memory-todo/issues" + }, + "homepage": "https://github.com/auth0/in-memory-todo", + "dependencies": { + "body-parser": "^1.6.5", + "compression": "^1.0.11", + "cors": "^2.4.1", + "dotenv": "^0.4.0", + "errorhandler": "^1.1.1", + "express": "^4.8.5", + "express-jwt": "^0.3.1", + "jsonwebtoken": "^1.1.2", + "lodash": "^2.4.1", + "morgan": "^1.2.3" + } +} diff --git a/backend/protected-routes.js b/backend/protected-routes.js new file mode 100644 index 0000000..275f469 --- /dev/null +++ b/backend/protected-routes.js @@ -0,0 +1,16 @@ +var express = require('express'), + jwt = require('express-jwt'), + config = require('./config'), + quoter = require('./quoter'); + +var app = module.exports = express.Router(); + +var jwtCheck = jwt({ + secret: config.secret +}); + +app.use('/api/protected', jwtCheck); + +app.get('/api/protected/random-quote', function(req, res) { + res.status(200).send(quoter.getRandomOne()); +}); diff --git a/backend/quoter.js b/backend/quoter.js new file mode 100644 index 0000000..a60872d --- /dev/null +++ b/backend/quoter.js @@ -0,0 +1,7 @@ +var quotes = require('./quotes.json'); + +exports.getRandomOne = function() { + var totalAmount = quotes.length; + var rand = Math.ceil(Math.random() * totalAmount); + return quotes[rand]; +} diff --git a/backend/quotes.json b/backend/quotes.json new file mode 100644 index 0000000..4f806c7 --- /dev/null +++ b/backend/quotes.json @@ -0,0 +1,46 @@ +["Chuck Norris doesn't call the wrong number. You answer the wrong phone.", +"Chuck Norris has already been to Mars; that's why there are no signs of life.", +"Chuck Norris and Superman once fought each other on a bet. The loser had to start wearing his underwear on the outside of his pants.", +"Some magicans can walk on water, Chuck Norris can swim through land.", +"Chuck Norris once urinated in a semi truck's gas tank as a joke....that truck is now known as Optimus Prime.", +"Chuck Norris doesn't flush the toilet, he scares the sh*t out of it", +"Chuck Norris counted to infinity - twice.", +"Chuck Norris can cut through a hot knife with butter", +"Chuck Norris is the reason why Waldo is hiding.", +"Death once had a near-Chuck Norris experience", +"When the Boogeyman goes to sleep every night, he checks his closet for Chuck Norris.", +"Chuck Norris can slam a revolving door.", +"Chuck Norris once kicked a horse in the chin. Its decendants are known today as Giraffes.", +"Chuck Norris will never have a heart attack. His heart isn't nearly foolish enough to attack him.", +"Chuck Norris once got bit by a rattle snake........ After three days of pain and agony ..................the rattle snake died", +"Chuck Norris can win a game of Connect Four in only three moves.", +"When Chuck Norris does a pushup, he isn't lifting himself up, he's pushing the Earth down.", +"There is no theory of evolution. Just a list of animals Chuck Norris allows to live.", +"Chuck Norris can light a fire by rubbing two ice-cubes together.", +"Chuck Norris doesn’t wear a watch. HE decides what time it is.", +"The original title for Alien vs. Predator was Alien and Predator vs Chuck Norris.", +"The film was cancelled shortly after going into preproduction. No one would pay nine dollars to see a movie fourteen seconds long.", +"Chuck Norris doesn't read books. He stares them down until he gets the information he wants.", +"Chuck Norris made a Happy Meal cry.", +"Outer space exists because it's afraid to be on the same planet with Chuck Norris.", +"If you spell Chuck Norris in Scrabble, you win. Forever.", +"Chuck Norris can make snow angels on a concrete slab.", +"Chuck Norris destroyed the periodic table, because Chuck Norris only recognizes the element of surprise.", +"Chuck Norris has to use a stunt double when he does crying scenes.", +"Chuck Norris' hand is the only hand that can beat a Royal Flush.", +"There is no theory of evolution. Just a list of creatures Chuck Norris has allowed to live.", +"Chuck Norris does not sleep. He waits.", +"Chuck Norris tells a GPS which way to go.", +"Some people wear Superman pajamas. Superman wears Chuck Norris pajamas.", +"Chuck Norris's tears cure cancer ..... to bad he has never cried", +"Chuck Norris doesn't breathe, he holds air hostage.", +"Chuck Norris had a staring contest with Medusa, and won.", +"When life hands Chuck Norris lemons, he makes orange juice.", +"When Chuck Norris goes on a picnic, the ants bring him food.", +"Chuck Norris gives Freddy Krueger nightmares.", +"They once made a Chuck Norris toilet paper, but there was a problem: It wouldn't take shit from anybody.", +"Chuck Norris can punch a cyclops between the eyes.", +"Chuck Norris doesn't mow his lawn, he stands on the porch and dares it to grow", +"Chuck Norris put out a forest fire. using only gasoline", +"Chuck Norris CAN believe it's not butter.", +"Custom t-shirts provided by Spreadshirt"] diff --git a/backend/server.js b/backend/server.js new file mode 100644 index 0000000..2eb0e85 --- /dev/null +++ b/backend/server.js @@ -0,0 +1,43 @@ +var logger = require('morgan'), + cors = require('cors'), + http = require('http'), + express = require('express'), + errorhandler = require('errorhandler'), + dotenv = require('dotenv'), + bodyParser = require('body-parser'); + +var app = express(); + +dotenv.load(); + +// Parsers +// old version of line +// app.use(bodyParser.urlencoded()); +// new version of line +app.use(bodyParser.urlencoded({ extended: true })); +app.use(bodyParser.json()); +app.use(cors()); + +app.use(function(err, req, res, next) { + if (err.name === 'StatusError') { + res.send(err.status, err.message); + } else { + next(err); + } +}); + +if (process.env.NODE_ENV === 'development') { + app.use(express.logger('dev')); + app.use(errorhandler()) +} + +app.use(require('./anonymous-routes')); +app.use(require('./protected-routes')); +app.use(require('./user-routes')); + +var port = process.env.PORT || 3001; + +http.createServer(app).listen(port, function (err) { + console.log('listening in http://localhost:' + port); +}); + diff --git a/backend/statusError.js b/backend/statusError.js new file mode 100644 index 0000000..8f1458c --- /dev/null +++ b/backend/statusError.js @@ -0,0 +1,14 @@ +function StatusError(msg, status) { + var err = Error.call(this, msg); + err.status = status; + err.name = 'StatusError'; + return err; +} + + +StatusError.prototype = Object.create(Error.prototype, { + constructor: { value: StatusError } +}); + +module.exports = StatusError; + diff --git a/backend/user-routes.js b/backend/user-routes.js new file mode 100644 index 0000000..bf770a6 --- /dev/null +++ b/backend/user-routes.js @@ -0,0 +1,54 @@ +var express = require('express'), + _ = require('lodash'), + config = require('./config'), + jwt = require('jsonwebtoken'); + +var app = module.exports = express.Router(); + +// XXX: This should be a database of users :). +var users = [{ + id: 1, + username: 'gonto', + password: 'gonto' +}]; + +function createToken(user) { + return jwt.sign(_.omit(user, 'password'), config.secret, { expiresInMinutes: 60*5 }); +} + +app.post('/users', function(req, res) { + if (!req.body.username || !req.body.password) { + return res.status(400).send("You must send the username and the password"); + } + if (_.find(users, {username: req.body.username})) { + return res.status(400).send("A user with that username already exists"); + } + + var profile = _.pick(req.body, 'username', 'password', 'extra'); + profile.id = _.max(users, 'id').id + 1; + + users.push(profile); + + res.status(201).send({ + id_token: createToken(profile) + }); +}); + +app.post('/sessions/create', function(req, res) { + if (!req.body.username || !req.body.password) { + return res.status(400).send("You must send the username and the password"); + } + + var user = _.find(users, {username: req.body.username}); + if (!user) { + return res.status(401).send("The username or password don't match"); + } + + if (!user.password === req.body.password) { + return res.status(401).send("The username or password don't match"); + } + + res.status(201).send({ + id_token: createToken(user) + }); +}); diff --git a/index.html b/index.html index 7c4e502..354b57f 100644 --- a/index.html +++ b/index.html @@ -12,7 +12,6 @@ - diff --git a/lib/traceur-runtime.js b/lib/traceur-runtime.js deleted file mode 100644 index 2b0b35f..0000000 --- a/lib/traceur-runtime.js +++ /dev/null @@ -1,3502 +0,0 @@ -(function(global) { - 'use strict'; - if (global.$traceurRuntime) { - return; - } - var $Object = Object; - var $TypeError = TypeError; - var $create = $Object.create; - var $defineProperties = $Object.defineProperties; - var $defineProperty = $Object.defineProperty; - var $freeze = $Object.freeze; - var $getOwnPropertyDescriptor = $Object.getOwnPropertyDescriptor; - var $getOwnPropertyNames = $Object.getOwnPropertyNames; - var $keys = $Object.keys; - var $hasOwnProperty = $Object.prototype.hasOwnProperty; - var $toString = $Object.prototype.toString; - var $preventExtensions = Object.preventExtensions; - var $seal = Object.seal; - var $isExtensible = Object.isExtensible; - var $apply = Function.prototype.call.bind(Function.prototype.apply); - function $bind(operand, thisArg, args) { - var argArray = [thisArg]; - for (var i = 0; i < args.length; i++) { - argArray[i + 1] = args[i]; - } - var func = $apply(Function.prototype.bind, operand, argArray); - return func; - } - function $construct(func, argArray) { - var object = new ($bind(func, null, argArray)); - return object; - } - var counter = 0; - function newUniqueString() { - return '__$' + Math.floor(Math.random() * 1e9) + '$' + ++counter + '$__'; - } - var privateNames = $create(null); - function isPrivateName(s) { - return privateNames[s]; - } - function createPrivateName() { - var s = newUniqueString(); - privateNames[s] = true; - return s; - } - var CONTINUATION_TYPE = Object.create(null); - function createContinuation(operand, thisArg, argsArray) { - return [CONTINUATION_TYPE, operand, thisArg, argsArray]; - } - function isContinuation(object) { - return object && object[0] === CONTINUATION_TYPE; - } - var isTailRecursiveName = null; - function setupProperTailCalls() { - isTailRecursiveName = createPrivateName(); - Function.prototype.call = initTailRecursiveFunction(function call(thisArg) { - var result = tailCall(function(thisArg) { - var argArray = []; - for (var i = 1; i < arguments.length; ++i) { - argArray[i - 1] = arguments[i]; - } - var continuation = createContinuation(this, thisArg, argArray); - return continuation; - }, this, arguments); - return result; - }); - Function.prototype.apply = initTailRecursiveFunction(function apply(thisArg, argArray) { - var result = tailCall(function(thisArg, argArray) { - var continuation = createContinuation(this, thisArg, argArray); - return continuation; - }, this, arguments); - return result; - }); - } - function initTailRecursiveFunction(func) { - if (isTailRecursiveName === null) { - setupProperTailCalls(); - } - func[isTailRecursiveName] = true; - return func; - } - function isTailRecursive(func) { - return !!func[isTailRecursiveName]; - } - function tailCall(func, thisArg, argArray) { - var continuation = argArray[0]; - if (isContinuation(continuation)) { - continuation = $apply(func, thisArg, continuation[3]); - return continuation; - } - continuation = createContinuation(func, thisArg, argArray); - while (true) { - if (isTailRecursive(func)) { - continuation = $apply(func, continuation[2], [continuation]); - } else { - continuation = $apply(func, continuation[2], continuation[3]); - } - if (!isContinuation(continuation)) { - return continuation; - } - func = continuation[1]; - } - } - function construct() { - var object; - if (isTailRecursive(this)) { - object = $construct(this, [createContinuation(null, null, arguments)]); - } else { - object = $construct(this, arguments); - } - return object; - } - var $traceurRuntime = { - initTailRecursiveFunction: initTailRecursiveFunction, - call: tailCall, - continuation: createContinuation, - construct: construct - }; - (function() { - function nonEnum(value) { - return { - configurable: true, - enumerable: false, - value: value, - writable: true - }; - } - var method = nonEnum; - var symbolInternalProperty = newUniqueString(); - var symbolDescriptionProperty = newUniqueString(); - var symbolDataProperty = newUniqueString(); - var symbolValues = $create(null); - function isShimSymbol(symbol) { - return typeof symbol === 'object' && symbol instanceof SymbolValue; - } - function typeOf(v) { - if (isShimSymbol(v)) - return 'symbol'; - return typeof v; - } - function Symbol(description) { - var value = new SymbolValue(description); - if (!(this instanceof Symbol)) - return value; - throw new TypeError('Symbol cannot be new\'ed'); - } - $defineProperty(Symbol.prototype, 'constructor', nonEnum(Symbol)); - $defineProperty(Symbol.prototype, 'toString', method(function() { - var symbolValue = this[symbolDataProperty]; - return symbolValue[symbolInternalProperty]; - })); - $defineProperty(Symbol.prototype, 'valueOf', method(function() { - var symbolValue = this[symbolDataProperty]; - if (!symbolValue) - throw TypeError('Conversion from symbol to string'); - if (!getOption('symbols')) - return symbolValue[symbolInternalProperty]; - return symbolValue; - })); - function SymbolValue(description) { - var key = newUniqueString(); - $defineProperty(this, symbolDataProperty, {value: this}); - $defineProperty(this, symbolInternalProperty, {value: key}); - $defineProperty(this, symbolDescriptionProperty, {value: description}); - freeze(this); - symbolValues[key] = this; - } - $defineProperty(SymbolValue.prototype, 'constructor', nonEnum(Symbol)); - $defineProperty(SymbolValue.prototype, 'toString', { - value: Symbol.prototype.toString, - enumerable: false - }); - $defineProperty(SymbolValue.prototype, 'valueOf', { - value: Symbol.prototype.valueOf, - enumerable: false - }); - var hashProperty = createPrivateName(); - var hashPropertyDescriptor = {value: undefined}; - var hashObjectProperties = { - hash: {value: undefined}, - self: {value: undefined} - }; - var hashCounter = 0; - function getOwnHashObject(object) { - var hashObject = object[hashProperty]; - if (hashObject && hashObject.self === object) - return hashObject; - if ($isExtensible(object)) { - hashObjectProperties.hash.value = hashCounter++; - hashObjectProperties.self.value = object; - hashPropertyDescriptor.value = $create(null, hashObjectProperties); - $defineProperty(object, hashProperty, hashPropertyDescriptor); - return hashPropertyDescriptor.value; - } - return undefined; - } - function freeze(object) { - getOwnHashObject(object); - return $freeze.apply(this, arguments); - } - function preventExtensions(object) { - getOwnHashObject(object); - return $preventExtensions.apply(this, arguments); - } - function seal(object) { - getOwnHashObject(object); - return $seal.apply(this, arguments); - } - freeze(SymbolValue.prototype); - function isSymbolString(s) { - return symbolValues[s] || privateNames[s]; - } - function toProperty(name) { - if (isShimSymbol(name)) - return name[symbolInternalProperty]; - return name; - } - function removeSymbolKeys(array) { - var rv = []; - for (var i = 0; i < array.length; i++) { - if (!isSymbolString(array[i])) { - rv.push(array[i]); - } - } - return rv; - } - function getOwnPropertyNames(object) { - return removeSymbolKeys($getOwnPropertyNames(object)); - } - function keys(object) { - return removeSymbolKeys($keys(object)); - } - function getOwnPropertySymbols(object) { - var rv = []; - var names = $getOwnPropertyNames(object); - for (var i = 0; i < names.length; i++) { - var symbol = symbolValues[names[i]]; - if (symbol) { - rv.push(symbol); - } - } - return rv; - } - function getOwnPropertyDescriptor(object, name) { - return $getOwnPropertyDescriptor(object, toProperty(name)); - } - function hasOwnProperty(name) { - return $hasOwnProperty.call(this, toProperty(name)); - } - function getOption(name) { - return global.$traceurRuntime.options[name]; - } - function defineProperty(object, name, descriptor) { - if (isShimSymbol(name)) { - name = name[symbolInternalProperty]; - } - $defineProperty(object, name, descriptor); - return object; - } - function polyfillObject(Object) { - $defineProperty(Object, 'defineProperty', {value: defineProperty}); - $defineProperty(Object, 'getOwnPropertyNames', {value: getOwnPropertyNames}); - $defineProperty(Object, 'getOwnPropertyDescriptor', {value: getOwnPropertyDescriptor}); - $defineProperty(Object.prototype, 'hasOwnProperty', {value: hasOwnProperty}); - $defineProperty(Object, 'freeze', {value: freeze}); - $defineProperty(Object, 'preventExtensions', {value: preventExtensions}); - $defineProperty(Object, 'seal', {value: seal}); - $defineProperty(Object, 'keys', {value: keys}); - } - function exportStar(object) { - for (var i = 1; i < arguments.length; i++) { - var names = $getOwnPropertyNames(arguments[i]); - for (var j = 0; j < names.length; j++) { - var name = names[j]; - if (name === '__esModule' || name === 'default' || isSymbolString(name)) - continue; - (function(mod, name) { - $defineProperty(object, name, { - get: function() { - return mod[name]; - }, - enumerable: true - }); - })(arguments[i], names[j]); - } - } - return object; - } - function isObject(x) { - return x != null && (typeof x === 'object' || typeof x === 'function'); - } - function toObject(x) { - if (x == null) - throw $TypeError(); - return $Object(x); - } - function checkObjectCoercible(argument) { - if (argument == null) { - throw new TypeError('Value cannot be converted to an Object'); - } - return argument; - } - var hasNativeSymbol; - function polyfillSymbol(global, Symbol) { - if (!global.Symbol) { - global.Symbol = Symbol; - Object.getOwnPropertySymbols = getOwnPropertySymbols; - hasNativeSymbol = false; - } else { - hasNativeSymbol = true; - } - if (!global.Symbol.iterator) { - global.Symbol.iterator = Symbol('Symbol.iterator'); - } - if (!global.Symbol.observer) { - global.Symbol.observer = Symbol('Symbol.observer'); - } - } - function hasNativeSymbolFunc() { - return hasNativeSymbol; - } - function setupGlobals(global) { - polyfillSymbol(global, Symbol); - global.Reflect = global.Reflect || {}; - global.Reflect.global = global.Reflect.global || global; - polyfillObject(global.Object); - } - setupGlobals(global); - global.$traceurRuntime = { - call: tailCall, - checkObjectCoercible: checkObjectCoercible, - construct: construct, - continuation: createContinuation, - createPrivateName: createPrivateName, - defineProperties: $defineProperties, - defineProperty: $defineProperty, - exportStar: exportStar, - getOwnHashObject: getOwnHashObject, - getOwnPropertyDescriptor: $getOwnPropertyDescriptor, - getOwnPropertyNames: $getOwnPropertyNames, - hasNativeSymbol: hasNativeSymbolFunc, - initTailRecursiveFunction: initTailRecursiveFunction, - isObject: isObject, - isPrivateName: isPrivateName, - isSymbolString: isSymbolString, - keys: $keys, - options: {}, - setupGlobals: setupGlobals, - toObject: toObject, - toProperty: toProperty, - typeof: typeOf - }; - })(); -})(typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : this); -(function() { - function buildFromEncodedParts(opt_scheme, opt_userInfo, opt_domain, opt_port, opt_path, opt_queryData, opt_fragment) { - var out = []; - if (opt_scheme) { - out.push(opt_scheme, ':'); - } - if (opt_domain) { - out.push('//'); - if (opt_userInfo) { - out.push(opt_userInfo, '@'); - } - out.push(opt_domain); - if (opt_port) { - out.push(':', opt_port); - } - } - if (opt_path) { - out.push(opt_path); - } - if (opt_queryData) { - out.push('?', opt_queryData); - } - if (opt_fragment) { - out.push('#', opt_fragment); - } - return out.join(''); - } - ; - var splitRe = new RegExp('^' + '(?:' + '([^:/?#.]+)' + ':)?' + '(?://' + '(?:([^/?#]*)@)?' + '([\\w\\d\\-\\u0100-\\uffff.%]*)' + '(?::([0-9]+))?' + ')?' + '([^?#]+)?' + '(?:\\?([^#]*))?' + '(?:#(.*))?' + '$'); - var ComponentIndex = { - SCHEME: 1, - USER_INFO: 2, - DOMAIN: 3, - PORT: 4, - PATH: 5, - QUERY_DATA: 6, - FRAGMENT: 7 - }; - function split(uri) { - return (uri.match(splitRe)); - } - function removeDotSegments(path) { - if (path === '/') - return '/'; - var leadingSlash = path[0] === '/' ? '/' : ''; - var trailingSlash = path.slice(-1) === '/' ? '/' : ''; - var segments = path.split('/'); - var out = []; - var up = 0; - for (var pos = 0; pos < segments.length; pos++) { - var segment = segments[pos]; - switch (segment) { - case '': - case '.': - break; - case '..': - if (out.length) - out.pop(); - else - up++; - break; - default: - out.push(segment); - } - } - if (!leadingSlash) { - while (up-- > 0) { - out.unshift('..'); - } - if (out.length === 0) - out.push('.'); - } - return leadingSlash + out.join('/') + trailingSlash; - } - function joinAndCanonicalizePath(parts) { - var path = parts[ComponentIndex.PATH] || ''; - path = removeDotSegments(path); - parts[ComponentIndex.PATH] = path; - return buildFromEncodedParts(parts[ComponentIndex.SCHEME], parts[ComponentIndex.USER_INFO], parts[ComponentIndex.DOMAIN], parts[ComponentIndex.PORT], parts[ComponentIndex.PATH], parts[ComponentIndex.QUERY_DATA], parts[ComponentIndex.FRAGMENT]); - } - function canonicalizeUrl(url) { - var parts = split(url); - return joinAndCanonicalizePath(parts); - } - function resolveUrl(base, url) { - var parts = split(url); - var baseParts = split(base); - if (parts[ComponentIndex.SCHEME]) { - return joinAndCanonicalizePath(parts); - } else { - parts[ComponentIndex.SCHEME] = baseParts[ComponentIndex.SCHEME]; - } - for (var i = ComponentIndex.SCHEME; i <= ComponentIndex.PORT; i++) { - if (!parts[i]) { - parts[i] = baseParts[i]; - } - } - if (parts[ComponentIndex.PATH][0] == '/') { - return joinAndCanonicalizePath(parts); - } - var path = baseParts[ComponentIndex.PATH]; - var index = path.lastIndexOf('/'); - path = path.slice(0, index + 1) + parts[ComponentIndex.PATH]; - parts[ComponentIndex.PATH] = path; - return joinAndCanonicalizePath(parts); - } - function isAbsolute(name) { - if (!name) - return false; - if (name[0] === '/') - return true; - var parts = split(name); - if (parts[ComponentIndex.SCHEME]) - return true; - return false; - } - $traceurRuntime.canonicalizeUrl = canonicalizeUrl; - $traceurRuntime.isAbsolute = isAbsolute; - $traceurRuntime.removeDotSegments = removeDotSegments; - $traceurRuntime.resolveUrl = resolveUrl; -})(); -(function(global) { - 'use strict'; - var $__1 = $traceurRuntime, - canonicalizeUrl = $__1.canonicalizeUrl, - resolveUrl = $__1.resolveUrl, - isAbsolute = $__1.isAbsolute; - var moduleInstantiators = Object.create(null); - var baseURL; - if (global.location && global.location.href) - baseURL = resolveUrl(global.location.href, './'); - else - baseURL = ''; - function UncoatedModuleEntry(url, uncoatedModule) { - this.url = url; - this.value_ = uncoatedModule; - } - function ModuleEvaluationError(erroneousModuleName, cause) { - this.message = this.constructor.name + ': ' + this.stripCause(cause) + ' in ' + erroneousModuleName; - if (!(cause instanceof ModuleEvaluationError) && cause.stack) - this.stack = this.stripStack(cause.stack); - else - this.stack = ''; - } - ModuleEvaluationError.prototype = Object.create(Error.prototype); - ModuleEvaluationError.prototype.constructor = ModuleEvaluationError; - ModuleEvaluationError.prototype.stripError = function(message) { - return message.replace(/.*Error:/, this.constructor.name + ':'); - }; - ModuleEvaluationError.prototype.stripCause = function(cause) { - if (!cause) - return ''; - if (!cause.message) - return cause + ''; - return this.stripError(cause.message); - }; - ModuleEvaluationError.prototype.loadedBy = function(moduleName) { - this.stack += '\n loaded by ' + moduleName; - }; - ModuleEvaluationError.prototype.stripStack = function(causeStack) { - var stack = []; - causeStack.split('\n').some(function(frame) { - if (/UncoatedModuleInstantiator/.test(frame)) - return true; - stack.push(frame); - }); - stack[0] = this.stripError(stack[0]); - return stack.join('\n'); - }; - function beforeLines(lines, number) { - var result = []; - var first = number - 3; - if (first < 0) - first = 0; - for (var i = first; i < number; i++) { - result.push(lines[i]); - } - return result; - } - function afterLines(lines, number) { - var last = number + 1; - if (last > lines.length - 1) - last = lines.length - 1; - var result = []; - for (var i = number; i <= last; i++) { - result.push(lines[i]); - } - return result; - } - function columnSpacing(columns) { - var result = ''; - for (var i = 0; i < columns - 1; i++) { - result += '-'; - } - return result; - } - function UncoatedModuleInstantiator(url, func) { - UncoatedModuleEntry.call(this, url, null); - this.func = func; - } - UncoatedModuleInstantiator.prototype = Object.create(UncoatedModuleEntry.prototype); - UncoatedModuleInstantiator.prototype.getUncoatedModule = function() { - var $__0 = this; - if (this.value_) - return this.value_; - try { - var relativeRequire; - if (typeof $traceurRuntime !== undefined && $traceurRuntime.require) { - relativeRequire = $traceurRuntime.require.bind(null, this.url); - } - return this.value_ = this.func.call(global, relativeRequire); - } catch (ex) { - if (ex instanceof ModuleEvaluationError) { - ex.loadedBy(this.url); - throw ex; - } - if (ex.stack) { - var lines = this.func.toString().split('\n'); - var evaled = []; - ex.stack.split('\n').some(function(frame, index) { - if (frame.indexOf('UncoatedModuleInstantiator.getUncoatedModule') > 0) - return true; - var m = /(at\s[^\s]*\s).*>:(\d*):(\d*)\)/.exec(frame); - if (m) { - var line = parseInt(m[2], 10); - evaled = evaled.concat(beforeLines(lines, line)); - if (index === 1) { - evaled.push(columnSpacing(m[3]) + '^ ' + $__0.url); - } else { - evaled.push(columnSpacing(m[3]) + '^'); - } - evaled = evaled.concat(afterLines(lines, line)); - evaled.push('= = = = = = = = ='); - } else { - evaled.push(frame); - } - }); - ex.stack = evaled.join('\n'); - } - throw new ModuleEvaluationError(this.url, ex); - } - }; - function getUncoatedModuleInstantiator(name) { - if (!name) - return; - var url = ModuleStore.normalize(name); - return moduleInstantiators[url]; - } - ; - var moduleInstances = Object.create(null); - var liveModuleSentinel = {}; - function Module(uncoatedModule) { - var isLive = arguments[1]; - var coatedModule = Object.create(null); - Object.getOwnPropertyNames(uncoatedModule).forEach(function(name) { - var getter, - value; - if (isLive === liveModuleSentinel) { - var descr = Object.getOwnPropertyDescriptor(uncoatedModule, name); - if (descr.get) - getter = descr.get; - } - if (!getter) { - value = uncoatedModule[name]; - getter = function() { - return value; - }; - } - Object.defineProperty(coatedModule, name, { - get: getter, - enumerable: true - }); - }); - Object.preventExtensions(coatedModule); - return coatedModule; - } - var ModuleStore = { - normalize: function(name, refererName, refererAddress) { - if (typeof name !== 'string') - throw new TypeError('module name must be a string, not ' + typeof name); - if (isAbsolute(name)) - return canonicalizeUrl(name); - if (/[^\.]\/\.\.\//.test(name)) { - throw new Error('module name embeds /../: ' + name); - } - if (name[0] === '.' && refererName) - return resolveUrl(refererName, name); - return canonicalizeUrl(name); - }, - get: function(normalizedName) { - var m = getUncoatedModuleInstantiator(normalizedName); - if (!m) - return undefined; - var moduleInstance = moduleInstances[m.url]; - if (moduleInstance) - return moduleInstance; - moduleInstance = Module(m.getUncoatedModule(), liveModuleSentinel); - return moduleInstances[m.url] = moduleInstance; - }, - set: function(normalizedName, module) { - normalizedName = String(normalizedName); - moduleInstantiators[normalizedName] = new UncoatedModuleInstantiator(normalizedName, function() { - return module; - }); - moduleInstances[normalizedName] = module; - }, - get baseURL() { - return baseURL; - }, - set baseURL(v) { - baseURL = String(v); - }, - registerModule: function(name, deps, func) { - var normalizedName = ModuleStore.normalize(name); - if (moduleInstantiators[normalizedName]) - throw new Error('duplicate module named ' + normalizedName); - moduleInstantiators[normalizedName] = new UncoatedModuleInstantiator(normalizedName, func); - }, - bundleStore: Object.create(null), - register: function(name, deps, func) { - if (!deps || !deps.length && !func.length) { - this.registerModule(name, deps, func); - } else { - this.bundleStore[name] = { - deps: deps, - execute: function() { - var $__0 = arguments; - var depMap = {}; - deps.forEach(function(dep, index) { - return depMap[dep] = $__0[index]; - }); - var registryEntry = func.call(this, depMap); - registryEntry.execute.call(this); - return registryEntry.exports; - } - }; - } - }, - getAnonymousModule: function(func) { - return new Module(func.call(global), liveModuleSentinel); - } - }; - var moduleStoreModule = new Module({ModuleStore: ModuleStore}); - ModuleStore.set('@traceur/src/runtime/ModuleStore.js', moduleStoreModule); - var setupGlobals = $traceurRuntime.setupGlobals; - $traceurRuntime.setupGlobals = function(global) { - setupGlobals(global); - }; - $traceurRuntime.ModuleStore = ModuleStore; - global.System = { - register: ModuleStore.register.bind(ModuleStore), - registerModule: ModuleStore.registerModule.bind(ModuleStore), - get: ModuleStore.get, - set: ModuleStore.set, - normalize: ModuleStore.normalize - }; -})(typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : this); -System.registerModule("traceur-runtime@0.0.90/src/runtime/async.js", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.90/src/runtime/async.js"; - if (typeof $traceurRuntime !== 'object') { - throw new Error('traceur runtime not found.'); - } - var $createPrivateName = $traceurRuntime.createPrivateName; - var $defineProperty = $traceurRuntime.defineProperty; - var $defineProperties = $traceurRuntime.defineProperties; - var $create = Object.create; - var thisName = $createPrivateName(); - var argsName = $createPrivateName(); - var observeName = $createPrivateName(); - function AsyncGeneratorFunction() {} - function AsyncGeneratorFunctionPrototype() {} - AsyncGeneratorFunction.prototype = AsyncGeneratorFunctionPrototype; - AsyncGeneratorFunctionPrototype.constructor = AsyncGeneratorFunction; - $defineProperty(AsyncGeneratorFunctionPrototype, 'constructor', {enumerable: false}); - var AsyncGeneratorContext = function() { - function AsyncGeneratorContext(observer) { - var $__0 = this; - this.decoratedObserver = $traceurRuntime.createDecoratedGenerator(observer, function() { - $__0.done = true; - }); - this.done = false; - this.inReturn = false; - } - return ($traceurRuntime.createClass)(AsyncGeneratorContext, { - throw: function(error) { - if (!this.inReturn) { - throw error; - } - }, - yield: function(value) { - if (this.done) { - this.inReturn = true; - throw undefined; - } - var result; - try { - result = this.decoratedObserver.next(value); - } catch (e) { - this.done = true; - throw e; - } - if (result === undefined) { - return; - } - if (result.done) { - this.done = true; - this.inReturn = true; - throw undefined; - } - return result.value; - }, - yieldFor: function(observable) { - var ctx = this; - return $traceurRuntime.observeForEach(observable[$traceurRuntime.toProperty(Symbol.observer)].bind(observable), function(value) { - if (ctx.done) { - this.return(); - return; - } - var result; - try { - result = ctx.decoratedObserver.next(value); - } catch (e) { - ctx.done = true; - throw e; - } - if (result === undefined) { - return; - } - if (result.done) { - ctx.done = true; - } - return result; - }); - } - }, {}); - }(); - AsyncGeneratorFunctionPrototype.prototype[Symbol.observer] = function(observer) { - var observe = this[observeName]; - var ctx = new AsyncGeneratorContext(observer); - $traceurRuntime.schedule(function() { - return observe(ctx); - }).then(function(value) { - if (!ctx.done) { - ctx.decoratedObserver.return(value); - } - }).catch(function(error) { - if (!ctx.done) { - ctx.decoratedObserver.throw(error); - } - }); - return ctx.decoratedObserver; - }; - $defineProperty(AsyncGeneratorFunctionPrototype.prototype, Symbol.observer, {enumerable: false}); - function initAsyncGeneratorFunction(functionObject) { - functionObject.prototype = $create(AsyncGeneratorFunctionPrototype.prototype); - functionObject.__proto__ = AsyncGeneratorFunctionPrototype; - return functionObject; - } - function createAsyncGeneratorInstance(observe, functionObject) { - for (var args = [], - $__9 = 2; $__9 < arguments.length; $__9++) - args[$__9 - 2] = arguments[$__9]; - var object = $create(functionObject.prototype); - object[thisName] = this; - object[argsName] = args; - object[observeName] = observe; - return object; - } - function observeForEach(observe, next) { - return new Promise(function(resolve, reject) { - var generator = observe({ - next: function(value) { - return next.call(generator, value); - }, - throw: function(error) { - reject(error); - }, - return: function(value) { - resolve(value); - } - }); - }); - } - function schedule(asyncF) { - return Promise.resolve().then(asyncF); - } - var generator = Symbol(); - var onDone = Symbol(); - var DecoratedGenerator = function() { - function DecoratedGenerator(_generator, _onDone) { - this[generator] = _generator; - this[onDone] = _onDone; - } - return ($traceurRuntime.createClass)(DecoratedGenerator, { - next: function(value) { - var result = this[generator].next(value); - if (result !== undefined && result.done) { - this[onDone].call(this); - } - return result; - }, - throw: function(error) { - this[onDone].call(this); - return this[generator].throw(error); - }, - return: function(value) { - this[onDone].call(this); - return this[generator].return(value); - } - }, {}); - }(); - function createDecoratedGenerator(generator, onDone) { - return new DecoratedGenerator(generator, onDone); - } - Array.prototype[$traceurRuntime.toProperty(Symbol.observer)] = function(observer) { - var done = false; - var decoratedObserver = createDecoratedGenerator(observer, function() { - return done = true; - }); - var $__5 = true; - var $__6 = false; - var $__7 = undefined; - try { - for (var $__3 = void 0, - $__2 = (this)[$traceurRuntime.toProperty(Symbol.iterator)](); !($__5 = ($__3 = $__2.next()).done); $__5 = true) { - var value = $__3.value; - { - decoratedObserver.next(value); - if (done) { - return; - } - } - } - } catch ($__8) { - $__6 = true; - $__7 = $__8; - } finally { - try { - if (!$__5 && $__2.return != null) { - $__2.return(); - } - } finally { - if ($__6) { - throw $__7; - } - } - } - decoratedObserver.return(); - return decoratedObserver; - }; - $defineProperty(Array.prototype, $traceurRuntime.toProperty(Symbol.observer), {enumerable: false}); - $traceurRuntime.initAsyncGeneratorFunction = initAsyncGeneratorFunction; - $traceurRuntime.createAsyncGeneratorInstance = createAsyncGeneratorInstance; - $traceurRuntime.observeForEach = observeForEach; - $traceurRuntime.schedule = schedule; - $traceurRuntime.createDecoratedGenerator = createDecoratedGenerator; - return {}; -}); -System.registerModule("traceur-runtime@0.0.90/src/runtime/classes.js", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.90/src/runtime/classes.js"; - var $Object = Object; - var $TypeError = TypeError; - var $create = $Object.create; - var $defineProperties = $traceurRuntime.defineProperties; - var $defineProperty = $traceurRuntime.defineProperty; - var $getOwnPropertyDescriptor = $traceurRuntime.getOwnPropertyDescriptor; - var $getOwnPropertyNames = $traceurRuntime.getOwnPropertyNames; - var $getPrototypeOf = Object.getPrototypeOf; - var $__0 = Object, - getOwnPropertyNames = $__0.getOwnPropertyNames, - getOwnPropertySymbols = $__0.getOwnPropertySymbols; - function superDescriptor(homeObject, name) { - var proto = $getPrototypeOf(homeObject); - do { - var result = $getOwnPropertyDescriptor(proto, name); - if (result) - return result; - proto = $getPrototypeOf(proto); - } while (proto); - return undefined; - } - function superConstructor(ctor) { - return ctor.__proto__; - } - function superGet(self, homeObject, name) { - var descriptor = superDescriptor(homeObject, name); - if (descriptor) { - var value = descriptor.value; - if (value) - return value; - if (!descriptor.get) - return value; - return descriptor.get.call(self); - } - return undefined; - } - function superSet(self, homeObject, name, value) { - var descriptor = superDescriptor(homeObject, name); - if (descriptor && descriptor.set) { - descriptor.set.call(self, value); - return value; - } - throw $TypeError(("super has no setter '" + name + "'.")); - } - function forEachPropertyKey(object, f) { - getOwnPropertyNames(object).forEach(f); - getOwnPropertySymbols(object).forEach(f); - } - function getDescriptors(object) { - var descriptors = {}; - forEachPropertyKey(object, function(key) { - descriptors[key] = $getOwnPropertyDescriptor(object, key); - descriptors[key].enumerable = false; - }); - return descriptors; - } - var nonEnum = {enumerable: false}; - function makePropertiesNonEnumerable(object) { - forEachPropertyKey(object, function(key) { - $defineProperty(object, key, nonEnum); - }); - } - function createClass(ctor, object, staticObject, superClass) { - $defineProperty(object, 'constructor', { - value: ctor, - configurable: true, - enumerable: false, - writable: true - }); - if (arguments.length > 3) { - if (typeof superClass === 'function') - ctor.__proto__ = superClass; - ctor.prototype = $create(getProtoParent(superClass), getDescriptors(object)); - } else { - makePropertiesNonEnumerable(object); - ctor.prototype = object; - } - $defineProperty(ctor, 'prototype', { - configurable: false, - writable: false - }); - return $defineProperties(ctor, getDescriptors(staticObject)); - } - function getProtoParent(superClass) { - if (typeof superClass === 'function') { - var prototype = superClass.prototype; - if ($Object(prototype) === prototype || prototype === null) - return superClass.prototype; - throw new $TypeError('super prototype must be an Object or null'); - } - if (superClass === null) - return null; - throw new $TypeError(("Super expression must either be null or a function, not " + typeof superClass + ".")); - } - $traceurRuntime.createClass = createClass; - $traceurRuntime.superConstructor = superConstructor; - $traceurRuntime.superGet = superGet; - $traceurRuntime.superSet = superSet; - return {}; -}); -System.registerModule("traceur-runtime@0.0.90/src/runtime/destructuring.js", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.90/src/runtime/destructuring.js"; - function iteratorToArray(iter) { - var rv = []; - var i = 0; - var tmp; - while (!(tmp = iter.next()).done) { - rv[i++] = tmp.value; - } - return rv; - } - $traceurRuntime.iteratorToArray = iteratorToArray; - return {}; -}); -System.registerModule("traceur-runtime@0.0.90/src/runtime/generators.js", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.90/src/runtime/generators.js"; - if (typeof $traceurRuntime !== 'object') { - throw new Error('traceur runtime not found.'); - } - var createPrivateName = $traceurRuntime.createPrivateName; - var $defineProperties = $traceurRuntime.defineProperties; - var $defineProperty = $traceurRuntime.defineProperty; - var $create = Object.create; - var $TypeError = TypeError; - function nonEnum(value) { - return { - configurable: true, - enumerable: false, - value: value, - writable: true - }; - } - var ST_NEWBORN = 0; - var ST_EXECUTING = 1; - var ST_SUSPENDED = 2; - var ST_CLOSED = 3; - var END_STATE = -2; - var RETHROW_STATE = -3; - function getInternalError(state) { - return new Error('Traceur compiler bug: invalid state in state machine: ' + state); - } - var RETURN_SENTINEL = {}; - function GeneratorContext() { - this.state = 0; - this.GState = ST_NEWBORN; - this.storedException = undefined; - this.finallyFallThrough = undefined; - this.sent_ = undefined; - this.returnValue = undefined; - this.oldReturnValue = undefined; - this.tryStack_ = []; - } - GeneratorContext.prototype = { - pushTry: function(catchState, finallyState) { - if (finallyState !== null) { - var finallyFallThrough = null; - for (var i = this.tryStack_.length - 1; i >= 0; i--) { - if (this.tryStack_[i].catch !== undefined) { - finallyFallThrough = this.tryStack_[i].catch; - break; - } - } - if (finallyFallThrough === null) - finallyFallThrough = RETHROW_STATE; - this.tryStack_.push({ - finally: finallyState, - finallyFallThrough: finallyFallThrough - }); - } - if (catchState !== null) { - this.tryStack_.push({catch: catchState}); - } - }, - popTry: function() { - this.tryStack_.pop(); - }, - maybeUncatchable: function() { - if (this.storedException === RETURN_SENTINEL) { - throw RETURN_SENTINEL; - } - }, - get sent() { - this.maybeThrow(); - return this.sent_; - }, - set sent(v) { - this.sent_ = v; - }, - get sentIgnoreThrow() { - return this.sent_; - }, - maybeThrow: function() { - if (this.action === 'throw') { - this.action = 'next'; - throw this.sent_; - } - }, - end: function() { - switch (this.state) { - case END_STATE: - return this; - case RETHROW_STATE: - throw this.storedException; - default: - throw getInternalError(this.state); - } - }, - handleException: function(ex) { - this.GState = ST_CLOSED; - this.state = END_STATE; - throw ex; - }, - wrapYieldStar: function(iterator) { - var ctx = this; - return { - next: function(v) { - return iterator.next(v); - }, - throw: function(e) { - var result; - if (e === RETURN_SENTINEL) { - if (iterator.return) { - result = iterator.return(ctx.returnValue); - if (!result.done) { - ctx.returnValue = ctx.oldReturnValue; - return result; - } - ctx.returnValue = result.value; - } - throw e; - } - if (iterator.throw) { - return iterator.throw(e); - } - iterator.return && iterator.return(); - throw $TypeError('Inner iterator does not have a throw method'); - } - }; - } - }; - function nextOrThrow(ctx, moveNext, action, x) { - switch (ctx.GState) { - case ST_EXECUTING: - throw new Error(("\"" + action + "\" on executing generator")); - case ST_CLOSED: - if (action == 'next') { - return { - value: undefined, - done: true - }; - } - if (x === RETURN_SENTINEL) { - return { - value: ctx.returnValue, - done: true - }; - } - throw x; - case ST_NEWBORN: - if (action === 'throw') { - ctx.GState = ST_CLOSED; - if (x === RETURN_SENTINEL) { - return { - value: ctx.returnValue, - done: true - }; - } - throw x; - } - if (x !== undefined) - throw $TypeError('Sent value to newborn generator'); - case ST_SUSPENDED: - ctx.GState = ST_EXECUTING; - ctx.action = action; - ctx.sent = x; - var value; - try { - value = moveNext(ctx); - } catch (ex) { - if (ex === RETURN_SENTINEL) { - value = ctx; - } else { - throw ex; - } - } - var done = value === ctx; - if (done) - value = ctx.returnValue; - ctx.GState = done ? ST_CLOSED : ST_SUSPENDED; - return { - value: value, - done: done - }; - } - } - var ctxName = createPrivateName(); - var moveNextName = createPrivateName(); - function GeneratorFunction() {} - function GeneratorFunctionPrototype() {} - GeneratorFunction.prototype = GeneratorFunctionPrototype; - $defineProperty(GeneratorFunctionPrototype, 'constructor', nonEnum(GeneratorFunction)); - GeneratorFunctionPrototype.prototype = { - constructor: GeneratorFunctionPrototype, - next: function(v) { - return nextOrThrow(this[ctxName], this[moveNextName], 'next', v); - }, - throw: function(v) { - return nextOrThrow(this[ctxName], this[moveNextName], 'throw', v); - }, - return: function(v) { - this[ctxName].oldReturnValue = this[ctxName].returnValue; - this[ctxName].returnValue = v; - return nextOrThrow(this[ctxName], this[moveNextName], 'throw', RETURN_SENTINEL); - } - }; - $defineProperties(GeneratorFunctionPrototype.prototype, { - constructor: {enumerable: false}, - next: {enumerable: false}, - throw: {enumerable: false}, - return: {enumerable: false} - }); - Object.defineProperty(GeneratorFunctionPrototype.prototype, Symbol.iterator, nonEnum(function() { - return this; - })); - function createGeneratorInstance(innerFunction, functionObject, self) { - var moveNext = getMoveNext(innerFunction, self); - var ctx = new GeneratorContext(); - var object = $create(functionObject.prototype); - object[ctxName] = ctx; - object[moveNextName] = moveNext; - return object; - } - function initGeneratorFunction(functionObject) { - functionObject.prototype = $create(GeneratorFunctionPrototype.prototype); - functionObject.__proto__ = GeneratorFunctionPrototype; - return functionObject; - } - function AsyncFunctionContext() { - GeneratorContext.call(this); - this.err = undefined; - var ctx = this; - ctx.result = new Promise(function(resolve, reject) { - ctx.resolve = resolve; - ctx.reject = reject; - }); - } - AsyncFunctionContext.prototype = $create(GeneratorContext.prototype); - AsyncFunctionContext.prototype.end = function() { - switch (this.state) { - case END_STATE: - this.resolve(this.returnValue); - break; - case RETHROW_STATE: - this.reject(this.storedException); - break; - default: - this.reject(getInternalError(this.state)); - } - }; - AsyncFunctionContext.prototype.handleException = function() { - this.state = RETHROW_STATE; - }; - function asyncWrap(innerFunction, self) { - var moveNext = getMoveNext(innerFunction, self); - var ctx = new AsyncFunctionContext(); - ctx.createCallback = function(newState) { - return function(value) { - ctx.state = newState; - ctx.value = value; - moveNext(ctx); - }; - }; - ctx.errback = function(err) { - handleCatch(ctx, err); - moveNext(ctx); - }; - moveNext(ctx); - return ctx.result; - } - function getMoveNext(innerFunction, self) { - return function(ctx) { - while (true) { - try { - return innerFunction.call(self, ctx); - } catch (ex) { - handleCatch(ctx, ex); - } - } - }; - } - function handleCatch(ctx, ex) { - ctx.storedException = ex; - var last = ctx.tryStack_[ctx.tryStack_.length - 1]; - if (!last) { - ctx.handleException(ex); - return; - } - ctx.state = last.catch !== undefined ? last.catch : last.finally; - if (last.finallyFallThrough !== undefined) - ctx.finallyFallThrough = last.finallyFallThrough; - } - $traceurRuntime.asyncWrap = asyncWrap; - $traceurRuntime.initGeneratorFunction = initGeneratorFunction; - $traceurRuntime.createGeneratorInstance = createGeneratorInstance; - return {}; -}); -System.registerModule("traceur-runtime@0.0.90/src/runtime/relativeRequire.js", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.90/src/runtime/relativeRequire.js"; - var path; - function relativeRequire(callerPath, requiredPath) { - path = path || typeof require !== 'undefined' && require('path'); - function isDirectory(path) { - return path.slice(-1) === '/'; - } - function isAbsolute(path) { - return path[0] === '/'; - } - function isRelative(path) { - return path[0] === '.'; - } - if (isDirectory(requiredPath) || isAbsolute(requiredPath)) - return; - return isRelative(requiredPath) ? require(path.resolve(path.dirname(callerPath), requiredPath)) : require(requiredPath); - } - $traceurRuntime.require = relativeRequire; - return {}; -}); -System.registerModule("traceur-runtime@0.0.90/src/runtime/spread.js", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.90/src/runtime/spread.js"; - function spread() { - var rv = [], - j = 0, - iterResult; - for (var i = 0; i < arguments.length; i++) { - var valueToSpread = $traceurRuntime.checkObjectCoercible(arguments[i]); - if (typeof valueToSpread[$traceurRuntime.toProperty(Symbol.iterator)] !== 'function') { - throw new TypeError('Cannot spread non-iterable object.'); - } - var iter = valueToSpread[$traceurRuntime.toProperty(Symbol.iterator)](); - while (!(iterResult = iter.next()).done) { - rv[j++] = iterResult.value; - } - } - return rv; - } - $traceurRuntime.spread = spread; - return {}; -}); -System.registerModule("traceur-runtime@0.0.90/src/runtime/template.js", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.90/src/runtime/template.js"; - var $__0 = Object, - defineProperty = $__0.defineProperty, - freeze = $__0.freeze; - var slice = Array.prototype.slice; - var map = Object.create(null); - function getTemplateObject(raw) { - var cooked = arguments[1]; - var key = raw.join('${}'); - var templateObject = map[key]; - if (templateObject) - return templateObject; - if (!cooked) { - cooked = slice.call(raw); - } - return map[key] = freeze(defineProperty(cooked, 'raw', {value: freeze(raw)})); - } - $traceurRuntime.getTemplateObject = getTemplateObject; - return {}; -}); -System.registerModule("traceur-runtime@0.0.90/src/runtime/type-assertions.js", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.90/src/runtime/type-assertions.js"; - var types = { - any: {name: 'any'}, - boolean: {name: 'boolean'}, - number: {name: 'number'}, - string: {name: 'string'}, - symbol: {name: 'symbol'}, - void: {name: 'void'} - }; - var GenericType = function() { - function GenericType(type, argumentTypes) { - this.type = type; - this.argumentTypes = argumentTypes; - } - return ($traceurRuntime.createClass)(GenericType, {}, {}); - }(); - var typeRegister = Object.create(null); - function genericType(type) { - for (var argumentTypes = [], - $__1 = 1; $__1 < arguments.length; $__1++) - argumentTypes[$__1 - 1] = arguments[$__1]; - var typeMap = typeRegister; - var key = $traceurRuntime.getOwnHashObject(type).hash; - if (!typeMap[key]) { - typeMap[key] = Object.create(null); - } - typeMap = typeMap[key]; - for (var i = 0; i < argumentTypes.length - 1; i++) { - key = $traceurRuntime.getOwnHashObject(argumentTypes[i]).hash; - if (!typeMap[key]) { - typeMap[key] = Object.create(null); - } - typeMap = typeMap[key]; - } - var tail = argumentTypes[argumentTypes.length - 1]; - key = $traceurRuntime.getOwnHashObject(tail).hash; - if (!typeMap[key]) { - typeMap[key] = new GenericType(type, argumentTypes); - } - return typeMap[key]; - } - $traceurRuntime.GenericType = GenericType; - $traceurRuntime.genericType = genericType; - $traceurRuntime.type = types; - return {}; -}); -System.registerModule("traceur-runtime@0.0.90/src/runtime/runtime-modules.js", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.90/src/runtime/runtime-modules.js"; - System.get("traceur-runtime@0.0.90/src/runtime/relativeRequire.js"); - System.get("traceur-runtime@0.0.90/src/runtime/spread.js"); - System.get("traceur-runtime@0.0.90/src/runtime/destructuring.js"); - System.get("traceur-runtime@0.0.90/src/runtime/classes.js"); - System.get("traceur-runtime@0.0.90/src/runtime/async.js"); - System.get("traceur-runtime@0.0.90/src/runtime/generators.js"); - System.get("traceur-runtime@0.0.90/src/runtime/template.js"); - System.get("traceur-runtime@0.0.90/src/runtime/type-assertions.js"); - return {}; -}); -System.get("traceur-runtime@0.0.90/src/runtime/runtime-modules.js" + ''); -System.registerModule("traceur-runtime@0.0.90/src/runtime/polyfills/utils.js", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.90/src/runtime/polyfills/utils.js"; - var $ceil = Math.ceil; - var $floor = Math.floor; - var $isFinite = isFinite; - var $isNaN = isNaN; - var $pow = Math.pow; - var $min = Math.min; - var toObject = $traceurRuntime.toObject; - function toUint32(x) { - return x >>> 0; - } - function isObject(x) { - return x && (typeof x === 'object' || typeof x === 'function'); - } - function isCallable(x) { - return typeof x === 'function'; - } - function isNumber(x) { - return typeof x === 'number'; - } - function toInteger(x) { - x = +x; - if ($isNaN(x)) - return 0; - if (x === 0 || !$isFinite(x)) - return x; - return x > 0 ? $floor(x) : $ceil(x); - } - var MAX_SAFE_LENGTH = $pow(2, 53) - 1; - function toLength(x) { - var len = toInteger(x); - return len < 0 ? 0 : $min(len, MAX_SAFE_LENGTH); - } - function checkIterable(x) { - return !isObject(x) ? undefined : x[Symbol.iterator]; - } - function isConstructor(x) { - return isCallable(x); - } - function createIteratorResultObject(value, done) { - return { - value: value, - done: done - }; - } - function maybeDefine(object, name, descr) { - if (!(name in object)) { - Object.defineProperty(object, name, descr); - } - } - function maybeDefineMethod(object, name, value) { - maybeDefine(object, name, { - value: value, - configurable: true, - enumerable: false, - writable: true - }); - } - function maybeDefineConst(object, name, value) { - maybeDefine(object, name, { - value: value, - configurable: false, - enumerable: false, - writable: false - }); - } - function maybeAddFunctions(object, functions) { - for (var i = 0; i < functions.length; i += 2) { - var name = functions[i]; - var value = functions[i + 1]; - maybeDefineMethod(object, name, value); - } - } - function maybeAddConsts(object, consts) { - for (var i = 0; i < consts.length; i += 2) { - var name = consts[i]; - var value = consts[i + 1]; - maybeDefineConst(object, name, value); - } - } - function maybeAddIterator(object, func, Symbol) { - if (!Symbol || !Symbol.iterator || object[Symbol.iterator]) - return; - if (object['@@iterator']) - func = object['@@iterator']; - Object.defineProperty(object, Symbol.iterator, { - value: func, - configurable: true, - enumerable: false, - writable: true - }); - } - var polyfills = []; - function registerPolyfill(func) { - polyfills.push(func); - } - function polyfillAll(global) { - polyfills.forEach(function(f) { - return f(global); - }); - } - return { - get toObject() { - return toObject; - }, - get toUint32() { - return toUint32; - }, - get isObject() { - return isObject; - }, - get isCallable() { - return isCallable; - }, - get isNumber() { - return isNumber; - }, - get toInteger() { - return toInteger; - }, - get toLength() { - return toLength; - }, - get checkIterable() { - return checkIterable; - }, - get isConstructor() { - return isConstructor; - }, - get createIteratorResultObject() { - return createIteratorResultObject; - }, - get maybeDefine() { - return maybeDefine; - }, - get maybeDefineMethod() { - return maybeDefineMethod; - }, - get maybeDefineConst() { - return maybeDefineConst; - }, - get maybeAddFunctions() { - return maybeAddFunctions; - }, - get maybeAddConsts() { - return maybeAddConsts; - }, - get maybeAddIterator() { - return maybeAddIterator; - }, - get registerPolyfill() { - return registerPolyfill; - }, - get polyfillAll() { - return polyfillAll; - } - }; -}); -System.registerModule("traceur-runtime@0.0.90/src/runtime/polyfills/Map.js", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.90/src/runtime/polyfills/Map.js"; - var $__0 = System.get("traceur-runtime@0.0.90/src/runtime/polyfills/utils.js"), - isObject = $__0.isObject, - registerPolyfill = $__0.registerPolyfill; - var $__9 = $traceurRuntime, - getOwnHashObject = $__9.getOwnHashObject, - hasNativeSymbol = $__9.hasNativeSymbol; - var $hasOwnProperty = Object.prototype.hasOwnProperty; - var deletedSentinel = {}; - function lookupIndex(map, key) { - if (isObject(key)) { - var hashObject = getOwnHashObject(key); - return hashObject && map.objectIndex_[hashObject.hash]; - } - if (typeof key === 'string') - return map.stringIndex_[key]; - return map.primitiveIndex_[key]; - } - function initMap(map) { - map.entries_ = []; - map.objectIndex_ = Object.create(null); - map.stringIndex_ = Object.create(null); - map.primitiveIndex_ = Object.create(null); - map.deletedCount_ = 0; - } - var Map = function() { - function Map() { - var $__11, - $__12; - var iterable = arguments[0]; - if (!isObject(this)) - throw new TypeError('Map called on incompatible type'); - if ($hasOwnProperty.call(this, 'entries_')) { - throw new TypeError('Map can not be reentrantly initialised'); - } - initMap(this); - if (iterable !== null && iterable !== undefined) { - var $__5 = true; - var $__6 = false; - var $__7 = undefined; - try { - for (var $__3 = void 0, - $__2 = (iterable)[$traceurRuntime.toProperty(Symbol.iterator)](); !($__5 = ($__3 = $__2.next()).done); $__5 = true) { - var $__10 = $__3.value, - key = ($__11 = $__10[$traceurRuntime.toProperty(Symbol.iterator)](), ($__12 = $__11.next()).done ? void 0 : $__12.value), - value = ($__12 = $__11.next()).done ? void 0 : $__12.value; - { - this.set(key, value); - } - } - } catch ($__8) { - $__6 = true; - $__7 = $__8; - } finally { - try { - if (!$__5 && $__2.return != null) { - $__2.return(); - } - } finally { - if ($__6) { - throw $__7; - } - } - } - } - } - return ($traceurRuntime.createClass)(Map, { - get size() { - return this.entries_.length / 2 - this.deletedCount_; - }, - get: function(key) { - var index = lookupIndex(this, key); - if (index !== undefined) - return this.entries_[index + 1]; - }, - set: function(key, value) { - var objectMode = isObject(key); - var stringMode = typeof key === 'string'; - var index = lookupIndex(this, key); - if (index !== undefined) { - this.entries_[index + 1] = value; - } else { - index = this.entries_.length; - this.entries_[index] = key; - this.entries_[index + 1] = value; - if (objectMode) { - var hashObject = getOwnHashObject(key); - var hash = hashObject.hash; - this.objectIndex_[hash] = index; - } else if (stringMode) { - this.stringIndex_[key] = index; - } else { - this.primitiveIndex_[key] = index; - } - } - return this; - }, - has: function(key) { - return lookupIndex(this, key) !== undefined; - }, - delete: function(key) { - var objectMode = isObject(key); - var stringMode = typeof key === 'string'; - var index; - var hash; - if (objectMode) { - var hashObject = getOwnHashObject(key); - if (hashObject) { - index = this.objectIndex_[hash = hashObject.hash]; - delete this.objectIndex_[hash]; - } - } else if (stringMode) { - index = this.stringIndex_[key]; - delete this.stringIndex_[key]; - } else { - index = this.primitiveIndex_[key]; - delete this.primitiveIndex_[key]; - } - if (index !== undefined) { - this.entries_[index] = deletedSentinel; - this.entries_[index + 1] = undefined; - this.deletedCount_++; - return true; - } - return false; - }, - clear: function() { - initMap(this); - }, - forEach: function(callbackFn) { - var thisArg = arguments[1]; - for (var i = 0; i < this.entries_.length; i += 2) { - var key = this.entries_[i]; - var value = this.entries_[i + 1]; - if (key === deletedSentinel) - continue; - callbackFn.call(thisArg, value, key, this); - } - }, - entries: $traceurRuntime.initGeneratorFunction(function $__13() { - var i, - key, - value; - return $traceurRuntime.createGeneratorInstance(function($ctx) { - while (true) - switch ($ctx.state) { - case 0: - i = 0; - $ctx.state = 12; - break; - case 12: - $ctx.state = (i < this.entries_.length) ? 8 : -2; - break; - case 4: - i += 2; - $ctx.state = 12; - break; - case 8: - key = this.entries_[i]; - value = this.entries_[i + 1]; - $ctx.state = 9; - break; - case 9: - $ctx.state = (key === deletedSentinel) ? 4 : 6; - break; - case 6: - $ctx.state = 2; - return [key, value]; - case 2: - $ctx.maybeThrow(); - $ctx.state = 4; - break; - default: - return $ctx.end(); - } - }, $__13, this); - }), - keys: $traceurRuntime.initGeneratorFunction(function $__14() { - var i, - key, - value; - return $traceurRuntime.createGeneratorInstance(function($ctx) { - while (true) - switch ($ctx.state) { - case 0: - i = 0; - $ctx.state = 12; - break; - case 12: - $ctx.state = (i < this.entries_.length) ? 8 : -2; - break; - case 4: - i += 2; - $ctx.state = 12; - break; - case 8: - key = this.entries_[i]; - value = this.entries_[i + 1]; - $ctx.state = 9; - break; - case 9: - $ctx.state = (key === deletedSentinel) ? 4 : 6; - break; - case 6: - $ctx.state = 2; - return key; - case 2: - $ctx.maybeThrow(); - $ctx.state = 4; - break; - default: - return $ctx.end(); - } - }, $__14, this); - }), - values: $traceurRuntime.initGeneratorFunction(function $__15() { - var i, - key, - value; - return $traceurRuntime.createGeneratorInstance(function($ctx) { - while (true) - switch ($ctx.state) { - case 0: - i = 0; - $ctx.state = 12; - break; - case 12: - $ctx.state = (i < this.entries_.length) ? 8 : -2; - break; - case 4: - i += 2; - $ctx.state = 12; - break; - case 8: - key = this.entries_[i]; - value = this.entries_[i + 1]; - $ctx.state = 9; - break; - case 9: - $ctx.state = (key === deletedSentinel) ? 4 : 6; - break; - case 6: - $ctx.state = 2; - return value; - case 2: - $ctx.maybeThrow(); - $ctx.state = 4; - break; - default: - return $ctx.end(); - } - }, $__15, this); - }) - }, {}); - }(); - Object.defineProperty(Map.prototype, Symbol.iterator, { - configurable: true, - writable: true, - value: Map.prototype.entries - }); - function needsPolyfill(global) { - var $__10 = global, - Map = $__10.Map, - Symbol = $__10.Symbol; - if (!Map || !$traceurRuntime.hasNativeSymbol() || !Map.prototype[Symbol.iterator] || !Map.prototype.entries) { - return true; - } - try { - return new Map([[]]).size !== 1; - } catch (e) { - return false; - } - } - function polyfillMap(global) { - if (needsPolyfill(global)) { - global.Map = Map; - } - } - registerPolyfill(polyfillMap); - return { - get Map() { - return Map; - }, - get polyfillMap() { - return polyfillMap; - } - }; -}); -System.get("traceur-runtime@0.0.90/src/runtime/polyfills/Map.js" + ''); -System.registerModule("traceur-runtime@0.0.90/src/runtime/polyfills/Set.js", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.90/src/runtime/polyfills/Set.js"; - var $__0 = System.get("traceur-runtime@0.0.90/src/runtime/polyfills/utils.js"), - isObject = $__0.isObject, - registerPolyfill = $__0.registerPolyfill; - var Map = System.get("traceur-runtime@0.0.90/src/runtime/polyfills/Map.js").Map; - var getOwnHashObject = $traceurRuntime.getOwnHashObject; - var $hasOwnProperty = Object.prototype.hasOwnProperty; - function initSet(set) { - set.map_ = new Map(); - } - var Set = function() { - function Set() { - var iterable = arguments[0]; - if (!isObject(this)) - throw new TypeError('Set called on incompatible type'); - if ($hasOwnProperty.call(this, 'map_')) { - throw new TypeError('Set can not be reentrantly initialised'); - } - initSet(this); - if (iterable !== null && iterable !== undefined) { - var $__7 = true; - var $__8 = false; - var $__9 = undefined; - try { - for (var $__5 = void 0, - $__4 = (iterable)[$traceurRuntime.toProperty(Symbol.iterator)](); !($__7 = ($__5 = $__4.next()).done); $__7 = true) { - var item = $__5.value; - { - this.add(item); - } - } - } catch ($__10) { - $__8 = true; - $__9 = $__10; - } finally { - try { - if (!$__7 && $__4.return != null) { - $__4.return(); - } - } finally { - if ($__8) { - throw $__9; - } - } - } - } - } - return ($traceurRuntime.createClass)(Set, { - get size() { - return this.map_.size; - }, - has: function(key) { - return this.map_.has(key); - }, - add: function(key) { - this.map_.set(key, key); - return this; - }, - delete: function(key) { - return this.map_.delete(key); - }, - clear: function() { - return this.map_.clear(); - }, - forEach: function(callbackFn) { - var thisArg = arguments[1]; - var $__2 = this; - return this.map_.forEach(function(value, key) { - callbackFn.call(thisArg, key, key, $__2); - }); - }, - values: $traceurRuntime.initGeneratorFunction(function $__12() { - var $__13, - $__14; - return $traceurRuntime.createGeneratorInstance(function($ctx) { - while (true) - switch ($ctx.state) { - case 0: - $__13 = $ctx.wrapYieldStar(this.map_.keys()[Symbol.iterator]()); - $ctx.sent = void 0; - $ctx.action = 'next'; - $ctx.state = 12; - break; - case 12: - $__14 = $__13[$ctx.action]($ctx.sentIgnoreThrow); - $ctx.state = 9; - break; - case 9: - $ctx.state = ($__14.done) ? 3 : 2; - break; - case 3: - $ctx.sent = $__14.value; - $ctx.state = -2; - break; - case 2: - $ctx.state = 12; - return $__14.value; - default: - return $ctx.end(); - } - }, $__12, this); - }), - entries: $traceurRuntime.initGeneratorFunction(function $__15() { - var $__16, - $__17; - return $traceurRuntime.createGeneratorInstance(function($ctx) { - while (true) - switch ($ctx.state) { - case 0: - $__16 = $ctx.wrapYieldStar(this.map_.entries()[Symbol.iterator]()); - $ctx.sent = void 0; - $ctx.action = 'next'; - $ctx.state = 12; - break; - case 12: - $__17 = $__16[$ctx.action]($ctx.sentIgnoreThrow); - $ctx.state = 9; - break; - case 9: - $ctx.state = ($__17.done) ? 3 : 2; - break; - case 3: - $ctx.sent = $__17.value; - $ctx.state = -2; - break; - case 2: - $ctx.state = 12; - return $__17.value; - default: - return $ctx.end(); - } - }, $__15, this); - }) - }, {}); - }(); - Object.defineProperty(Set.prototype, Symbol.iterator, { - configurable: true, - writable: true, - value: Set.prototype.values - }); - Object.defineProperty(Set.prototype, 'keys', { - configurable: true, - writable: true, - value: Set.prototype.values - }); - function needsPolyfill(global) { - var $__11 = global, - Set = $__11.Set, - Symbol = $__11.Symbol; - if (!Set || !$traceurRuntime.hasNativeSymbol() || !Set.prototype[Symbol.iterator] || !Set.prototype.values) { - return true; - } - try { - return new Set([1]).size !== 1; - } catch (e) { - return false; - } - } - function polyfillSet(global) { - if (needsPolyfill(global)) { - global.Set = Set; - } - } - registerPolyfill(polyfillSet); - return { - get Set() { - return Set; - }, - get polyfillSet() { - return polyfillSet; - } - }; -}); -System.get("traceur-runtime@0.0.90/src/runtime/polyfills/Set.js" + ''); -System.registerModule("traceur-runtime@0.0.90/node_modules/rsvp/lib/rsvp/asap.js", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.90/node_modules/rsvp/lib/rsvp/asap.js"; - var len = 0; - function asap(callback, arg) { - queue[len] = callback; - queue[len + 1] = arg; - len += 2; - if (len === 2) { - scheduleFlush(); - } - } - var $__default = asap; - var browserGlobal = (typeof window !== 'undefined') ? window : {}; - var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver; - var isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined'; - function useNextTick() { - return function() { - process.nextTick(flush); - }; - } - function useMutationObserver() { - var iterations = 0; - var observer = new BrowserMutationObserver(flush); - var node = document.createTextNode(''); - observer.observe(node, {characterData: true}); - return function() { - node.data = (iterations = ++iterations % 2); - }; - } - function useMessageChannel() { - var channel = new MessageChannel(); - channel.port1.onmessage = flush; - return function() { - channel.port2.postMessage(0); - }; - } - function useSetTimeout() { - return function() { - setTimeout(flush, 1); - }; - } - var queue = new Array(1000); - function flush() { - for (var i = 0; i < len; i += 2) { - var callback = queue[i]; - var arg = queue[i + 1]; - callback(arg); - queue[i] = undefined; - queue[i + 1] = undefined; - } - len = 0; - } - var scheduleFlush; - if (typeof process !== 'undefined' && {}.toString.call(process) === '[object process]') { - scheduleFlush = useNextTick(); - } else if (BrowserMutationObserver) { - scheduleFlush = useMutationObserver(); - } else if (isWorker) { - scheduleFlush = useMessageChannel(); - } else { - scheduleFlush = useSetTimeout(); - } - return {get default() { - return $__default; - }}; -}); -System.registerModule("traceur-runtime@0.0.90/src/runtime/polyfills/Promise.js", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.90/src/runtime/polyfills/Promise.js"; - var async = System.get("traceur-runtime@0.0.90/node_modules/rsvp/lib/rsvp/asap.js").default; - var registerPolyfill = System.get("traceur-runtime@0.0.90/src/runtime/polyfills/utils.js").registerPolyfill; - var promiseRaw = {}; - function isPromise(x) { - return x && typeof x === 'object' && x.status_ !== undefined; - } - function idResolveHandler(x) { - return x; - } - function idRejectHandler(x) { - throw x; - } - function chain(promise) { - var onResolve = arguments[1] !== (void 0) ? arguments[1] : idResolveHandler; - var onReject = arguments[2] !== (void 0) ? arguments[2] : idRejectHandler; - var deferred = getDeferred(promise.constructor); - switch (promise.status_) { - case undefined: - throw TypeError; - case 0: - promise.onResolve_.push(onResolve, deferred); - promise.onReject_.push(onReject, deferred); - break; - case +1: - promiseEnqueue(promise.value_, [onResolve, deferred]); - break; - case -1: - promiseEnqueue(promise.value_, [onReject, deferred]); - break; - } - return deferred.promise; - } - function getDeferred(C) { - if (this === $Promise) { - var promise = promiseInit(new $Promise(promiseRaw)); - return { - promise: promise, - resolve: function(x) { - promiseResolve(promise, x); - }, - reject: function(r) { - promiseReject(promise, r); - } - }; - } else { - var result = {}; - result.promise = new C(function(resolve, reject) { - result.resolve = resolve; - result.reject = reject; - }); - return result; - } - } - function promiseSet(promise, status, value, onResolve, onReject) { - promise.status_ = status; - promise.value_ = value; - promise.onResolve_ = onResolve; - promise.onReject_ = onReject; - return promise; - } - function promiseInit(promise) { - return promiseSet(promise, 0, undefined, [], []); - } - var Promise = function() { - function Promise(resolver) { - if (resolver === promiseRaw) - return; - if (typeof resolver !== 'function') - throw new TypeError; - var promise = promiseInit(this); - try { - resolver(function(x) { - promiseResolve(promise, x); - }, function(r) { - promiseReject(promise, r); - }); - } catch (e) { - promiseReject(promise, e); - } - } - return ($traceurRuntime.createClass)(Promise, { - catch: function(onReject) { - return this.then(undefined, onReject); - }, - then: function(onResolve, onReject) { - if (typeof onResolve !== 'function') - onResolve = idResolveHandler; - if (typeof onReject !== 'function') - onReject = idRejectHandler; - var that = this; - var constructor = this.constructor; - return chain(this, function(x) { - x = promiseCoerce(constructor, x); - return x === that ? onReject(new TypeError) : isPromise(x) ? x.then(onResolve, onReject) : onResolve(x); - }, onReject); - } - }, { - resolve: function(x) { - if (this === $Promise) { - if (isPromise(x)) { - return x; - } - return promiseSet(new $Promise(promiseRaw), +1, x); - } else { - return new this(function(resolve, reject) { - resolve(x); - }); - } - }, - reject: function(r) { - if (this === $Promise) { - return promiseSet(new $Promise(promiseRaw), -1, r); - } else { - return new this(function(resolve, reject) { - reject(r); - }); - } - }, - all: function(values) { - var deferred = getDeferred(this); - var resolutions = []; - try { - var makeCountdownFunction = function(i) { - return function(x) { - resolutions[i] = x; - if (--count === 0) - deferred.resolve(resolutions); - }; - }; - var count = 0; - var i = 0; - var $__6 = true; - var $__7 = false; - var $__8 = undefined; - try { - for (var $__4 = void 0, - $__3 = (values)[$traceurRuntime.toProperty(Symbol.iterator)](); !($__6 = ($__4 = $__3.next()).done); $__6 = true) { - var value = $__4.value; - { - var countdownFunction = makeCountdownFunction(i); - this.resolve(value).then(countdownFunction, function(r) { - deferred.reject(r); - }); - ++i; - ++count; - } - } - } catch ($__9) { - $__7 = true; - $__8 = $__9; - } finally { - try { - if (!$__6 && $__3.return != null) { - $__3.return(); - } - } finally { - if ($__7) { - throw $__8; - } - } - } - if (count === 0) { - deferred.resolve(resolutions); - } - } catch (e) { - deferred.reject(e); - } - return deferred.promise; - }, - race: function(values) { - var deferred = getDeferred(this); - try { - for (var i = 0; i < values.length; i++) { - this.resolve(values[i]).then(function(x) { - deferred.resolve(x); - }, function(r) { - deferred.reject(r); - }); - } - } catch (e) { - deferred.reject(e); - } - return deferred.promise; - } - }); - }(); - var $Promise = Promise; - var $PromiseReject = $Promise.reject; - function promiseResolve(promise, x) { - promiseDone(promise, +1, x, promise.onResolve_); - } - function promiseReject(promise, r) { - promiseDone(promise, -1, r, promise.onReject_); - } - function promiseDone(promise, status, value, reactions) { - if (promise.status_ !== 0) - return; - promiseEnqueue(value, reactions); - promiseSet(promise, status, value); - } - function promiseEnqueue(value, tasks) { - async(function() { - for (var i = 0; i < tasks.length; i += 2) { - promiseHandle(value, tasks[i], tasks[i + 1]); - } - }); - } - function promiseHandle(value, handler, deferred) { - try { - var result = handler(value); - if (result === deferred.promise) - throw new TypeError; - else if (isPromise(result)) - chain(result, deferred.resolve, deferred.reject); - else - deferred.resolve(result); - } catch (e) { - try { - deferred.reject(e); - } catch (e) {} - } - } - var thenableSymbol = '@@thenable'; - function isObject(x) { - return x && (typeof x === 'object' || typeof x === 'function'); - } - function promiseCoerce(constructor, x) { - if (!isPromise(x) && isObject(x)) { - var then; - try { - then = x.then; - } catch (r) { - var promise = $PromiseReject.call(constructor, r); - x[thenableSymbol] = promise; - return promise; - } - if (typeof then === 'function') { - var p = x[thenableSymbol]; - if (p) { - return p; - } else { - var deferred = getDeferred(constructor); - x[thenableSymbol] = deferred.promise; - try { - then.call(x, deferred.resolve, deferred.reject); - } catch (r) { - deferred.reject(r); - } - return deferred.promise; - } - } - } - return x; - } - function polyfillPromise(global) { - if (!global.Promise) - global.Promise = Promise; - } - registerPolyfill(polyfillPromise); - return { - get Promise() { - return Promise; - }, - get polyfillPromise() { - return polyfillPromise; - } - }; -}); -System.get("traceur-runtime@0.0.90/src/runtime/polyfills/Promise.js" + ''); -System.registerModule("traceur-runtime@0.0.90/src/runtime/polyfills/StringIterator.js", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.90/src/runtime/polyfills/StringIterator.js"; - var $__0 = System.get("traceur-runtime@0.0.90/src/runtime/polyfills/utils.js"), - createIteratorResultObject = $__0.createIteratorResultObject, - isObject = $__0.isObject; - var toProperty = $traceurRuntime.toProperty; - var hasOwnProperty = Object.prototype.hasOwnProperty; - var iteratedString = Symbol('iteratedString'); - var stringIteratorNextIndex = Symbol('stringIteratorNextIndex'); - var StringIterator = function() { - var $__2; - function StringIterator() {} - return ($traceurRuntime.createClass)(StringIterator, ($__2 = {}, Object.defineProperty($__2, "next", { - value: function() { - var o = this; - if (!isObject(o) || !hasOwnProperty.call(o, iteratedString)) { - throw new TypeError('this must be a StringIterator object'); - } - var s = o[toProperty(iteratedString)]; - if (s === undefined) { - return createIteratorResultObject(undefined, true); - } - var position = o[toProperty(stringIteratorNextIndex)]; - var len = s.length; - if (position >= len) { - o[toProperty(iteratedString)] = undefined; - return createIteratorResultObject(undefined, true); - } - var first = s.charCodeAt(position); - var resultString; - if (first < 0xD800 || first > 0xDBFF || position + 1 === len) { - resultString = String.fromCharCode(first); - } else { - var second = s.charCodeAt(position + 1); - if (second < 0xDC00 || second > 0xDFFF) { - resultString = String.fromCharCode(first); - } else { - resultString = String.fromCharCode(first) + String.fromCharCode(second); - } - } - o[toProperty(stringIteratorNextIndex)] = position + resultString.length; - return createIteratorResultObject(resultString, false); - }, - configurable: true, - enumerable: true, - writable: true - }), Object.defineProperty($__2, Symbol.iterator, { - value: function() { - return this; - }, - configurable: true, - enumerable: true, - writable: true - }), $__2), {}); - }(); - function createStringIterator(string) { - var s = String(string); - var iterator = Object.create(StringIterator.prototype); - iterator[toProperty(iteratedString)] = s; - iterator[toProperty(stringIteratorNextIndex)] = 0; - return iterator; - } - return {get createStringIterator() { - return createStringIterator; - }}; -}); -System.registerModule("traceur-runtime@0.0.90/src/runtime/polyfills/String.js", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.90/src/runtime/polyfills/String.js"; - var createStringIterator = System.get("traceur-runtime@0.0.90/src/runtime/polyfills/StringIterator.js").createStringIterator; - var $__1 = System.get("traceur-runtime@0.0.90/src/runtime/polyfills/utils.js"), - maybeAddFunctions = $__1.maybeAddFunctions, - maybeAddIterator = $__1.maybeAddIterator, - registerPolyfill = $__1.registerPolyfill; - var $toString = Object.prototype.toString; - var $indexOf = String.prototype.indexOf; - var $lastIndexOf = String.prototype.lastIndexOf; - function startsWith(search) { - var string = String(this); - if (this == null || $toString.call(search) == '[object RegExp]') { - throw TypeError(); - } - var stringLength = string.length; - var searchString = String(search); - var searchLength = searchString.length; - var position = arguments.length > 1 ? arguments[1] : undefined; - var pos = position ? Number(position) : 0; - if (isNaN(pos)) { - pos = 0; - } - var start = Math.min(Math.max(pos, 0), stringLength); - return $indexOf.call(string, searchString, pos) == start; - } - function endsWith(search) { - var string = String(this); - if (this == null || $toString.call(search) == '[object RegExp]') { - throw TypeError(); - } - var stringLength = string.length; - var searchString = String(search); - var searchLength = searchString.length; - var pos = stringLength; - if (arguments.length > 1) { - var position = arguments[1]; - if (position !== undefined) { - pos = position ? Number(position) : 0; - if (isNaN(pos)) { - pos = 0; - } - } - } - var end = Math.min(Math.max(pos, 0), stringLength); - var start = end - searchLength; - if (start < 0) { - return false; - } - return $lastIndexOf.call(string, searchString, start) == start; - } - function includes(search) { - if (this == null) { - throw TypeError(); - } - var string = String(this); - if (search && $toString.call(search) == '[object RegExp]') { - throw TypeError(); - } - var stringLength = string.length; - var searchString = String(search); - var searchLength = searchString.length; - var position = arguments.length > 1 ? arguments[1] : undefined; - var pos = position ? Number(position) : 0; - if (pos != pos) { - pos = 0; - } - var start = Math.min(Math.max(pos, 0), stringLength); - if (searchLength + start > stringLength) { - return false; - } - return $indexOf.call(string, searchString, pos) != -1; - } - function repeat(count) { - if (this == null) { - throw TypeError(); - } - var string = String(this); - var n = count ? Number(count) : 0; - if (isNaN(n)) { - n = 0; - } - if (n < 0 || n == Infinity) { - throw RangeError(); - } - if (n == 0) { - return ''; - } - var result = ''; - while (n--) { - result += string; - } - return result; - } - function codePointAt(position) { - if (this == null) { - throw TypeError(); - } - var string = String(this); - var size = string.length; - var index = position ? Number(position) : 0; - if (isNaN(index)) { - index = 0; - } - if (index < 0 || index >= size) { - return undefined; - } - var first = string.charCodeAt(index); - var second; - if (first >= 0xD800 && first <= 0xDBFF && size > index + 1) { - second = string.charCodeAt(index + 1); - if (second >= 0xDC00 && second <= 0xDFFF) { - return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000; - } - } - return first; - } - function raw(callsite) { - var raw = callsite.raw; - var len = raw.length >>> 0; - if (len === 0) - return ''; - var s = ''; - var i = 0; - while (true) { - s += raw[i]; - if (i + 1 === len) - return s; - s += arguments[++i]; - } - } - function fromCodePoint(_) { - var codeUnits = []; - var floor = Math.floor; - var highSurrogate; - var lowSurrogate; - var index = -1; - var length = arguments.length; - if (!length) { - return ''; - } - while (++index < length) { - var codePoint = Number(arguments[index]); - if (!isFinite(codePoint) || codePoint < 0 || codePoint > 0x10FFFF || floor(codePoint) != codePoint) { - throw RangeError('Invalid code point: ' + codePoint); - } - if (codePoint <= 0xFFFF) { - codeUnits.push(codePoint); - } else { - codePoint -= 0x10000; - highSurrogate = (codePoint >> 10) + 0xD800; - lowSurrogate = (codePoint % 0x400) + 0xDC00; - codeUnits.push(highSurrogate, lowSurrogate); - } - } - return String.fromCharCode.apply(null, codeUnits); - } - function stringPrototypeIterator() { - var o = $traceurRuntime.checkObjectCoercible(this); - var s = String(o); - return createStringIterator(s); - } - function polyfillString(global) { - var String = global.String; - maybeAddFunctions(String.prototype, ['codePointAt', codePointAt, 'endsWith', endsWith, 'includes', includes, 'repeat', repeat, 'startsWith', startsWith]); - maybeAddFunctions(String, ['fromCodePoint', fromCodePoint, 'raw', raw]); - maybeAddIterator(String.prototype, stringPrototypeIterator, Symbol); - } - registerPolyfill(polyfillString); - return { - get startsWith() { - return startsWith; - }, - get endsWith() { - return endsWith; - }, - get includes() { - return includes; - }, - get repeat() { - return repeat; - }, - get codePointAt() { - return codePointAt; - }, - get raw() { - return raw; - }, - get fromCodePoint() { - return fromCodePoint; - }, - get stringPrototypeIterator() { - return stringPrototypeIterator; - }, - get polyfillString() { - return polyfillString; - } - }; -}); -System.get("traceur-runtime@0.0.90/src/runtime/polyfills/String.js" + ''); -System.registerModule("traceur-runtime@0.0.90/src/runtime/polyfills/ArrayIterator.js", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.90/src/runtime/polyfills/ArrayIterator.js"; - var $__0 = System.get("traceur-runtime@0.0.90/src/runtime/polyfills/utils.js"), - toObject = $__0.toObject, - toUint32 = $__0.toUint32, - createIteratorResultObject = $__0.createIteratorResultObject; - var ARRAY_ITERATOR_KIND_KEYS = 1; - var ARRAY_ITERATOR_KIND_VALUES = 2; - var ARRAY_ITERATOR_KIND_ENTRIES = 3; - var ArrayIterator = function() { - var $__2; - function ArrayIterator() {} - return ($traceurRuntime.createClass)(ArrayIterator, ($__2 = {}, Object.defineProperty($__2, "next", { - value: function() { - var iterator = toObject(this); - var array = iterator.iteratorObject_; - if (!array) { - throw new TypeError('Object is not an ArrayIterator'); - } - var index = iterator.arrayIteratorNextIndex_; - var itemKind = iterator.arrayIterationKind_; - var length = toUint32(array.length); - if (index >= length) { - iterator.arrayIteratorNextIndex_ = Infinity; - return createIteratorResultObject(undefined, true); - } - iterator.arrayIteratorNextIndex_ = index + 1; - if (itemKind == ARRAY_ITERATOR_KIND_VALUES) - return createIteratorResultObject(array[index], false); - if (itemKind == ARRAY_ITERATOR_KIND_ENTRIES) - return createIteratorResultObject([index, array[index]], false); - return createIteratorResultObject(index, false); - }, - configurable: true, - enumerable: true, - writable: true - }), Object.defineProperty($__2, Symbol.iterator, { - value: function() { - return this; - }, - configurable: true, - enumerable: true, - writable: true - }), $__2), {}); - }(); - function createArrayIterator(array, kind) { - var object = toObject(array); - var iterator = new ArrayIterator; - iterator.iteratorObject_ = object; - iterator.arrayIteratorNextIndex_ = 0; - iterator.arrayIterationKind_ = kind; - return iterator; - } - function entries() { - return createArrayIterator(this, ARRAY_ITERATOR_KIND_ENTRIES); - } - function keys() { - return createArrayIterator(this, ARRAY_ITERATOR_KIND_KEYS); - } - function values() { - return createArrayIterator(this, ARRAY_ITERATOR_KIND_VALUES); - } - return { - get entries() { - return entries; - }, - get keys() { - return keys; - }, - get values() { - return values; - } - }; -}); -System.registerModule("traceur-runtime@0.0.90/src/runtime/polyfills/Array.js", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.90/src/runtime/polyfills/Array.js"; - var $__0 = System.get("traceur-runtime@0.0.90/src/runtime/polyfills/ArrayIterator.js"), - entries = $__0.entries, - keys = $__0.keys, - jsValues = $__0.values; - var $__1 = System.get("traceur-runtime@0.0.90/src/runtime/polyfills/utils.js"), - checkIterable = $__1.checkIterable, - isCallable = $__1.isCallable, - isConstructor = $__1.isConstructor, - maybeAddFunctions = $__1.maybeAddFunctions, - maybeAddIterator = $__1.maybeAddIterator, - registerPolyfill = $__1.registerPolyfill, - toInteger = $__1.toInteger, - toLength = $__1.toLength, - toObject = $__1.toObject; - function from(arrLike) { - var mapFn = arguments[1]; - var thisArg = arguments[2]; - var C = this; - var items = toObject(arrLike); - var mapping = mapFn !== undefined; - var k = 0; - var arr, - len; - if (mapping && !isCallable(mapFn)) { - throw TypeError(); - } - if (checkIterable(items)) { - arr = isConstructor(C) ? new C() : []; - var $__5 = true; - var $__6 = false; - var $__7 = undefined; - try { - for (var $__3 = void 0, - $__2 = (items)[$traceurRuntime.toProperty(Symbol.iterator)](); !($__5 = ($__3 = $__2.next()).done); $__5 = true) { - var item = $__3.value; - { - if (mapping) { - arr[k] = mapFn.call(thisArg, item, k); - } else { - arr[k] = item; - } - k++; - } - } - } catch ($__8) { - $__6 = true; - $__7 = $__8; - } finally { - try { - if (!$__5 && $__2.return != null) { - $__2.return(); - } - } finally { - if ($__6) { - throw $__7; - } - } - } - arr.length = k; - return arr; - } - len = toLength(items.length); - arr = isConstructor(C) ? new C(len) : new Array(len); - for (; k < len; k++) { - if (mapping) { - arr[k] = typeof thisArg === 'undefined' ? mapFn(items[k], k) : mapFn.call(thisArg, items[k], k); - } else { - arr[k] = items[k]; - } - } - arr.length = len; - return arr; - } - function of() { - for (var items = [], - $__9 = 0; $__9 < arguments.length; $__9++) - items[$__9] = arguments[$__9]; - var C = this; - var len = items.length; - var arr = isConstructor(C) ? new C(len) : new Array(len); - for (var k = 0; k < len; k++) { - arr[k] = items[k]; - } - arr.length = len; - return arr; - } - function fill(value) { - var start = arguments[1] !== (void 0) ? arguments[1] : 0; - var end = arguments[2]; - var object = toObject(this); - var len = toLength(object.length); - var fillStart = toInteger(start); - var fillEnd = end !== undefined ? toInteger(end) : len; - fillStart = fillStart < 0 ? Math.max(len + fillStart, 0) : Math.min(fillStart, len); - fillEnd = fillEnd < 0 ? Math.max(len + fillEnd, 0) : Math.min(fillEnd, len); - while (fillStart < fillEnd) { - object[fillStart] = value; - fillStart++; - } - return object; - } - function find(predicate) { - var thisArg = arguments[1]; - return findHelper(this, predicate, thisArg); - } - function findIndex(predicate) { - var thisArg = arguments[1]; - return findHelper(this, predicate, thisArg, true); - } - function findHelper(self, predicate) { - var thisArg = arguments[2]; - var returnIndex = arguments[3] !== (void 0) ? arguments[3] : false; - var object = toObject(self); - var len = toLength(object.length); - if (!isCallable(predicate)) { - throw TypeError(); - } - for (var i = 0; i < len; i++) { - var value = object[i]; - if (predicate.call(thisArg, value, i, object)) { - return returnIndex ? i : value; - } - } - return returnIndex ? -1 : undefined; - } - function polyfillArray(global) { - var $__10 = global, - Array = $__10.Array, - Object = $__10.Object, - Symbol = $__10.Symbol; - var values = jsValues; - if (Symbol && Symbol.iterator && Array.prototype[Symbol.iterator]) { - values = Array.prototype[Symbol.iterator]; - } - maybeAddFunctions(Array.prototype, ['entries', entries, 'keys', keys, 'values', values, 'fill', fill, 'find', find, 'findIndex', findIndex]); - maybeAddFunctions(Array, ['from', from, 'of', of]); - maybeAddIterator(Array.prototype, values, Symbol); - maybeAddIterator(Object.getPrototypeOf([].values()), function() { - return this; - }, Symbol); - } - registerPolyfill(polyfillArray); - return { - get from() { - return from; - }, - get of() { - return of; - }, - get fill() { - return fill; - }, - get find() { - return find; - }, - get findIndex() { - return findIndex; - }, - get polyfillArray() { - return polyfillArray; - } - }; -}); -System.get("traceur-runtime@0.0.90/src/runtime/polyfills/Array.js" + ''); -System.registerModule("traceur-runtime@0.0.90/src/runtime/polyfills/Object.js", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.90/src/runtime/polyfills/Object.js"; - var $__0 = System.get("traceur-runtime@0.0.90/src/runtime/polyfills/utils.js"), - maybeAddFunctions = $__0.maybeAddFunctions, - registerPolyfill = $__0.registerPolyfill; - var $__1 = $traceurRuntime, - defineProperty = $__1.defineProperty, - getOwnPropertyDescriptor = $__1.getOwnPropertyDescriptor, - getOwnPropertyNames = $__1.getOwnPropertyNames, - isPrivateName = $__1.isPrivateName, - keys = $__1.keys; - function is(left, right) { - if (left === right) - return left !== 0 || 1 / left === 1 / right; - return left !== left && right !== right; - } - function assign(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - var props = source == null ? [] : keys(source); - var p = void 0, - length = props.length; - for (p = 0; p < length; p++) { - var name = props[p]; - if (isPrivateName(name)) - continue; - target[name] = source[name]; - } - } - return target; - } - function mixin(target, source) { - var props = getOwnPropertyNames(source); - var p, - descriptor, - length = props.length; - for (p = 0; p < length; p++) { - var name = props[p]; - if (isPrivateName(name)) - continue; - descriptor = getOwnPropertyDescriptor(source, props[p]); - defineProperty(target, props[p], descriptor); - } - return target; - } - function polyfillObject(global) { - var Object = global.Object; - maybeAddFunctions(Object, ['assign', assign, 'is', is, 'mixin', mixin]); - } - registerPolyfill(polyfillObject); - return { - get is() { - return is; - }, - get assign() { - return assign; - }, - get mixin() { - return mixin; - }, - get polyfillObject() { - return polyfillObject; - } - }; -}); -System.get("traceur-runtime@0.0.90/src/runtime/polyfills/Object.js" + ''); -System.registerModule("traceur-runtime@0.0.90/src/runtime/polyfills/Number.js", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.90/src/runtime/polyfills/Number.js"; - var $__0 = System.get("traceur-runtime@0.0.90/src/runtime/polyfills/utils.js"), - isNumber = $__0.isNumber, - maybeAddConsts = $__0.maybeAddConsts, - maybeAddFunctions = $__0.maybeAddFunctions, - registerPolyfill = $__0.registerPolyfill, - toInteger = $__0.toInteger; - var $abs = Math.abs; - var $isFinite = isFinite; - var $isNaN = isNaN; - var MAX_SAFE_INTEGER = Math.pow(2, 53) - 1; - var MIN_SAFE_INTEGER = -Math.pow(2, 53) + 1; - var EPSILON = Math.pow(2, -52); - function NumberIsFinite(number) { - return isNumber(number) && $isFinite(number); - } - function isInteger(number) { - return NumberIsFinite(number) && toInteger(number) === number; - } - function NumberIsNaN(number) { - return isNumber(number) && $isNaN(number); - } - function isSafeInteger(number) { - if (NumberIsFinite(number)) { - var integral = toInteger(number); - if (integral === number) - return $abs(integral) <= MAX_SAFE_INTEGER; - } - return false; - } - function polyfillNumber(global) { - var Number = global.Number; - maybeAddConsts(Number, ['MAX_SAFE_INTEGER', MAX_SAFE_INTEGER, 'MIN_SAFE_INTEGER', MIN_SAFE_INTEGER, 'EPSILON', EPSILON]); - maybeAddFunctions(Number, ['isFinite', NumberIsFinite, 'isInteger', isInteger, 'isNaN', NumberIsNaN, 'isSafeInteger', isSafeInteger]); - } - registerPolyfill(polyfillNumber); - return { - get MAX_SAFE_INTEGER() { - return MAX_SAFE_INTEGER; - }, - get MIN_SAFE_INTEGER() { - return MIN_SAFE_INTEGER; - }, - get EPSILON() { - return EPSILON; - }, - get isFinite() { - return NumberIsFinite; - }, - get isInteger() { - return isInteger; - }, - get isNaN() { - return NumberIsNaN; - }, - get isSafeInteger() { - return isSafeInteger; - }, - get polyfillNumber() { - return polyfillNumber; - } - }; -}); -System.get("traceur-runtime@0.0.90/src/runtime/polyfills/Number.js" + ''); -System.registerModule("traceur-runtime@0.0.90/src/runtime/polyfills/fround.js", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.90/src/runtime/polyfills/fround.js"; - var $isFinite = isFinite; - var $isNaN = isNaN; - var $__0 = Math, - LN2 = $__0.LN2, - abs = $__0.abs, - floor = $__0.floor, - log = $__0.log, - min = $__0.min, - pow = $__0.pow; - function packIEEE754(v, ebits, fbits) { - var bias = (1 << (ebits - 1)) - 1, - s, - e, - f, - ln, - i, - bits, - str, - bytes; - function roundToEven(n) { - var w = floor(n), - f = n - w; - if (f < 0.5) - return w; - if (f > 0.5) - return w + 1; - return w % 2 ? w + 1 : w; - } - if (v !== v) { - e = (1 << ebits) - 1; - f = pow(2, fbits - 1); - s = 0; - } else if (v === Infinity || v === -Infinity) { - e = (1 << ebits) - 1; - f = 0; - s = (v < 0) ? 1 : 0; - } else if (v === 0) { - e = 0; - f = 0; - s = (1 / v === -Infinity) ? 1 : 0; - } else { - s = v < 0; - v = abs(v); - if (v >= pow(2, 1 - bias)) { - e = min(floor(log(v) / LN2), 1023); - f = roundToEven(v / pow(2, e) * pow(2, fbits)); - if (f / pow(2, fbits) >= 2) { - e = e + 1; - f = 1; - } - if (e > bias) { - e = (1 << ebits) - 1; - f = 0; - } else { - e = e + bias; - f = f - pow(2, fbits); - } - } else { - e = 0; - f = roundToEven(v / pow(2, 1 - bias - fbits)); - } - } - bits = []; - for (i = fbits; i; i -= 1) { - bits.push(f % 2 ? 1 : 0); - f = floor(f / 2); - } - for (i = ebits; i; i -= 1) { - bits.push(e % 2 ? 1 : 0); - e = floor(e / 2); - } - bits.push(s ? 1 : 0); - bits.reverse(); - str = bits.join(''); - bytes = []; - while (str.length) { - bytes.push(parseInt(str.substring(0, 8), 2)); - str = str.substring(8); - } - return bytes; - } - function unpackIEEE754(bytes, ebits, fbits) { - var bits = [], - i, - j, - b, - str, - bias, - s, - e, - f; - for (i = bytes.length; i; i -= 1) { - b = bytes[i - 1]; - for (j = 8; j; j -= 1) { - bits.push(b % 2 ? 1 : 0); - b = b >> 1; - } - } - bits.reverse(); - str = bits.join(''); - bias = (1 << (ebits - 1)) - 1; - s = parseInt(str.substring(0, 1), 2) ? -1 : 1; - e = parseInt(str.substring(1, 1 + ebits), 2); - f = parseInt(str.substring(1 + ebits), 2); - if (e === (1 << ebits) - 1) { - return f !== 0 ? NaN : s * Infinity; - } else if (e > 0) { - return s * pow(2, e - bias) * (1 + f / pow(2, fbits)); - } else if (f !== 0) { - return s * pow(2, -(bias - 1)) * (f / pow(2, fbits)); - } else { - return s < 0 ? -0 : 0; - } - } - function unpackF32(b) { - return unpackIEEE754(b, 8, 23); - } - function packF32(v) { - return packIEEE754(v, 8, 23); - } - function fround(x) { - if (x === 0 || !$isFinite(x) || $isNaN(x)) { - return x; - } - return unpackF32(packF32(Number(x))); - } - return {get fround() { - return fround; - }}; -}); -System.registerModule("traceur-runtime@0.0.90/src/runtime/polyfills/Math.js", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.90/src/runtime/polyfills/Math.js"; - var jsFround = System.get("traceur-runtime@0.0.90/src/runtime/polyfills/fround.js").fround; - var $__1 = System.get("traceur-runtime@0.0.90/src/runtime/polyfills/utils.js"), - maybeAddFunctions = $__1.maybeAddFunctions, - registerPolyfill = $__1.registerPolyfill, - toUint32 = $__1.toUint32; - var $isFinite = isFinite; - var $isNaN = isNaN; - var $__2 = Math, - abs = $__2.abs, - ceil = $__2.ceil, - exp = $__2.exp, - floor = $__2.floor, - log = $__2.log, - pow = $__2.pow, - sqrt = $__2.sqrt; - function clz32(x) { - x = toUint32(+x); - if (x == 0) - return 32; - var result = 0; - if ((x & 0xFFFF0000) === 0) { - x <<= 16; - result += 16; - } - ; - if ((x & 0xFF000000) === 0) { - x <<= 8; - result += 8; - } - ; - if ((x & 0xF0000000) === 0) { - x <<= 4; - result += 4; - } - ; - if ((x & 0xC0000000) === 0) { - x <<= 2; - result += 2; - } - ; - if ((x & 0x80000000) === 0) { - x <<= 1; - result += 1; - } - ; - return result; - } - function imul(x, y) { - x = toUint32(+x); - y = toUint32(+y); - var xh = (x >>> 16) & 0xffff; - var xl = x & 0xffff; - var yh = (y >>> 16) & 0xffff; - var yl = y & 0xffff; - return xl * yl + (((xh * yl + xl * yh) << 16) >>> 0) | 0; - } - function sign(x) { - x = +x; - if (x > 0) - return 1; - if (x < 0) - return -1; - return x; - } - function log10(x) { - return log(x) * 0.434294481903251828; - } - function log2(x) { - return log(x) * 1.442695040888963407; - } - function log1p(x) { - x = +x; - if (x < -1 || $isNaN(x)) { - return NaN; - } - if (x === 0 || x === Infinity) { - return x; - } - if (x === -1) { - return -Infinity; - } - var result = 0; - var n = 50; - if (x < 0 || x > 1) { - return log(1 + x); - } - for (var i = 1; i < n; i++) { - if ((i % 2) === 0) { - result -= pow(x, i) / i; - } else { - result += pow(x, i) / i; - } - } - return result; - } - function expm1(x) { - x = +x; - if (x === -Infinity) { - return -1; - } - if (!$isFinite(x) || x === 0) { - return x; - } - return exp(x) - 1; - } - function cosh(x) { - x = +x; - if (x === 0) { - return 1; - } - if ($isNaN(x)) { - return NaN; - } - if (!$isFinite(x)) { - return Infinity; - } - if (x < 0) { - x = -x; - } - if (x > 21) { - return exp(x) / 2; - } - return (exp(x) + exp(-x)) / 2; - } - function sinh(x) { - x = +x; - if (!$isFinite(x) || x === 0) { - return x; - } - return (exp(x) - exp(-x)) / 2; - } - function tanh(x) { - x = +x; - if (x === 0) - return x; - if (!$isFinite(x)) - return sign(x); - var exp1 = exp(x); - var exp2 = exp(-x); - return (exp1 - exp2) / (exp1 + exp2); - } - function acosh(x) { - x = +x; - if (x < 1) - return NaN; - if (!$isFinite(x)) - return x; - return log(x + sqrt(x + 1) * sqrt(x - 1)); - } - function asinh(x) { - x = +x; - if (x === 0 || !$isFinite(x)) - return x; - if (x > 0) - return log(x + sqrt(x * x + 1)); - return -log(-x + sqrt(x * x + 1)); - } - function atanh(x) { - x = +x; - if (x === -1) { - return -Infinity; - } - if (x === 1) { - return Infinity; - } - if (x === 0) { - return x; - } - if ($isNaN(x) || x < -1 || x > 1) { - return NaN; - } - return 0.5 * log((1 + x) / (1 - x)); - } - function hypot(x, y) { - var length = arguments.length; - var args = new Array(length); - var max = 0; - for (var i = 0; i < length; i++) { - var n = arguments[i]; - n = +n; - if (n === Infinity || n === -Infinity) - return Infinity; - n = abs(n); - if (n > max) - max = n; - args[i] = n; - } - if (max === 0) - max = 1; - var sum = 0; - var compensation = 0; - for (var i = 0; i < length; i++) { - var n = args[i] / max; - var summand = n * n - compensation; - var preliminary = sum + summand; - compensation = (preliminary - sum) - summand; - sum = preliminary; - } - return sqrt(sum) * max; - } - function trunc(x) { - x = +x; - if (x > 0) - return floor(x); - if (x < 0) - return ceil(x); - return x; - } - var fround, - f32; - if (typeof Float32Array === 'function') { - f32 = new Float32Array(1); - fround = function(x) { - f32[0] = Number(x); - return f32[0]; - }; - } else { - fround = jsFround; - } - function cbrt(x) { - x = +x; - if (x === 0) - return x; - var negate = x < 0; - if (negate) - x = -x; - var result = pow(x, 1 / 3); - return negate ? -result : result; - } - function polyfillMath(global) { - var Math = global.Math; - maybeAddFunctions(Math, ['acosh', acosh, 'asinh', asinh, 'atanh', atanh, 'cbrt', cbrt, 'clz32', clz32, 'cosh', cosh, 'expm1', expm1, 'fround', fround, 'hypot', hypot, 'imul', imul, 'log10', log10, 'log1p', log1p, 'log2', log2, 'sign', sign, 'sinh', sinh, 'tanh', tanh, 'trunc', trunc]); - } - registerPolyfill(polyfillMath); - return { - get clz32() { - return clz32; - }, - get imul() { - return imul; - }, - get sign() { - return sign; - }, - get log10() { - return log10; - }, - get log2() { - return log2; - }, - get log1p() { - return log1p; - }, - get expm1() { - return expm1; - }, - get cosh() { - return cosh; - }, - get sinh() { - return sinh; - }, - get tanh() { - return tanh; - }, - get acosh() { - return acosh; - }, - get asinh() { - return asinh; - }, - get atanh() { - return atanh; - }, - get hypot() { - return hypot; - }, - get trunc() { - return trunc; - }, - get fround() { - return fround; - }, - get cbrt() { - return cbrt; - }, - get polyfillMath() { - return polyfillMath; - } - }; -}); -System.get("traceur-runtime@0.0.90/src/runtime/polyfills/Math.js" + ''); -System.registerModule("traceur-runtime@0.0.90/src/runtime/polyfills/polyfills.js", [], function() { - "use strict"; - var __moduleName = "traceur-runtime@0.0.90/src/runtime/polyfills/polyfills.js"; - var polyfillAll = System.get("traceur-runtime@0.0.90/src/runtime/polyfills/utils.js").polyfillAll; - polyfillAll(Reflect.global); - var setupGlobals = $traceurRuntime.setupGlobals; - $traceurRuntime.setupGlobals = function(global) { - setupGlobals(global); - polyfillAll(global); - }; - return {}; -}); -System.get("traceur-runtime@0.0.90/src/runtime/polyfills/polyfills.js" + ''); diff --git a/lib/traceur-runtime.min.js b/lib/traceur-runtime.min.js deleted file mode 100644 index 9dcb6da..0000000 --- a/lib/traceur-runtime.min.js +++ /dev/null @@ -1,3 +0,0 @@ -!function(a){"use strict";function b(a,b,c){for(var d=[b],e=0;e0;)e.unshift("..");0===e.length&&e.push(".")}return b+e.join("/")+c}function d(b){var d=b[i.PATH]||"";return d=c(d),b[i.PATH]=d,a(b[i.SCHEME],b[i.USER_INFO],b[i.DOMAIN],b[i.PORT],b[i.PATH],b[i.QUERY_DATA],b[i.FRAGMENT])}function e(a){var c=b(a);return d(c)}function f(a,c){var e=b(c),f=b(a);if(e[i.SCHEME])return d(e);e[i.SCHEME]=f[i.SCHEME];for(var g=i.SCHEME;g<=i.PORT;g++)e[g]||(e[g]=f[g]);if("/"==e[i.PATH][0])return d(e);var h=f[i.PATH],j=h.lastIndexOf("/");return h=h.slice(0,j+1)+e[i.PATH],e[i.PATH]=h,d(e)}function g(a){if(!a)return!1;if("/"===a[0])return!0;var c=b(a);return c[i.SCHEME]?!0:!1}var h=new RegExp("^(?:([^:/?#.]+):)?(?://(?:([^/?#]*)@)?([\\w\\d\\-\\u0100-\\uffff.%]*)(?::([0-9]+))?)?([^?#]+)?(?:\\?([^#]*))?(?:#(.*))?$"),i={SCHEME:1,USER_INFO:2,DOMAIN:3,PORT:4,PATH:5,QUERY_DATA:6,FRAGMENT:7};$traceurRuntime.canonicalizeUrl=e,$traceurRuntime.isAbsolute=g,$traceurRuntime.removeDotSegments=c,$traceurRuntime.resolveUrl=f}(),function(a){"use strict";function b(a,b){this.url=a,this.value_=b}function c(a,b){this.message=this.constructor.name+": "+this.stripCause(b)+" in "+a,b instanceof c||!b.stack?this.stack="":this.stack=this.stripStack(b.stack)}function d(a,b){var c=[],d=b-3;0>d&&(d=0);for(var e=d;b>e;e++)c.push(a[e]);return c}function e(a,b){var c=b+1;c>a.length-1&&(c=a.length-1);for(var d=[],e=b;c>=e;e++)d.push(a[e]);return d}function f(a){for(var b="",c=0;a-1>c;c++)b+="-";return b}function g(a,c){b.call(this,a,null),this.func=c}function h(a){if(a){var b=r.normalize(a);return o[b]}}function i(a){var b=arguments[1],c=Object.create(null);return Object.getOwnPropertyNames(a).forEach(function(d){var e,f;if(b===q){var g=Object.getOwnPropertyDescriptor(a,d);g.get&&(e=g.get)}e||(f=a[d],e=function(){return f}),Object.defineProperty(c,d,{get:e,enumerable:!0})}),Object.preventExtensions(c),c}var j,k=$traceurRuntime,l=k.canonicalizeUrl,m=k.resolveUrl,n=k.isAbsolute,o=Object.create(null);j=a.location&&a.location.href?m(a.location.href,"./"):"",c.prototype=Object.create(Error.prototype),c.prototype.constructor=c,c.prototype.stripError=function(a){return a.replace(/.*Error:/,this.constructor.name+":")},c.prototype.stripCause=function(a){return a?a.message?this.stripError(a.message):a+"":""},c.prototype.loadedBy=function(a){this.stack+="\n loaded by "+a},c.prototype.stripStack=function(a){var b=[];return a.split("\n").some(function(a){return/UncoatedModuleInstantiator/.test(a)?!0:void b.push(a)}),b[0]=this.stripError(b[0]),b.join("\n")},g.prototype=Object.create(b.prototype),g.prototype.getUncoatedModule=function(){var b=this;if(this.value_)return this.value_;try{var g;return void 0!==typeof $traceurRuntime&&$traceurRuntime.require&&(g=$traceurRuntime.require.bind(null,this.url)),this.value_=this.func.call(a,g)}catch(h){if(h instanceof c)throw h.loadedBy(this.url),h;if(h.stack){var i=this.func.toString().split("\n"),j=[];h.stack.split("\n").some(function(a,c){if(a.indexOf("UncoatedModuleInstantiator.getUncoatedModule")>0)return!0;var g=/(at\s[^\s]*\s).*>:(\d*):(\d*)\)/.exec(a);if(g){var h=parseInt(g[2],10);j=j.concat(d(i,h)),1===c?j.push(f(g[3])+"^ "+b.url):j.push(f(g[3])+"^"),j=j.concat(e(i,h)),j.push("= = = = = = = = =")}else j.push(a)}),h.stack=j.join("\n")}throw new c(this.url,h)}};var p=Object.create(null),q={},r={normalize:function(a,b,c){if("string"!=typeof a)throw new TypeError("module name must be a string, not "+typeof a);if(n(a))return l(a);if(/[^\.]\/\.\.\//.test(a))throw new Error("module name embeds /../: "+a);return"."===a[0]&&b?m(b,a):l(a)},get:function(a){var b=h(a);if(!b)return void 0;var c=p[b.url];return c?c:(c=i(b.getUncoatedModule(),q),p[b.url]=c)},set:function(a,b){a=String(a),o[a]=new g(a,function(){return b}),p[a]=b},get baseURL(){return j},set baseURL(a){j=String(a)},registerModule:function(a,b,c){var d=r.normalize(a);if(o[d])throw new Error("duplicate module named "+d);o[d]=new g(d,c)},bundleStore:Object.create(null),register:function(a,b,c){b&&(b.length||c.length)?this.bundleStore[a]={deps:b,execute:function(){var a=arguments,d={};b.forEach(function(b,c){return d[b]=a[c]});var e=c.call(this,d);return e.execute.call(this),e.exports}}:this.registerModule(a,b,c)},getAnonymousModule:function(b){return new i(b.call(a),q)}},s=new i({ModuleStore:r});r.set("@traceur/src/runtime/ModuleStore.js",s);var t=$traceurRuntime.setupGlobals;$traceurRuntime.setupGlobals=function(a){t(a)},$traceurRuntime.ModuleStore=r,a.System={register:r.register.bind(r),registerModule:r.registerModule.bind(r),get:r.get,set:r.set,normalize:r.normalize}}("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this),System.registerModule("traceur-runtime@0.0.90/src/runtime/async.js",[],function(){"use strict";function a(){}function b(){}function c(a){return a.prototype=j(b.prototype),a.__proto__=b,a}function d(a,b){for(var c=[],d=2;d3?("function"==typeof d&&(a.__proto__=d),a.prototype=l(i(d),f(b))):(g(b),a.prototype=b),n(a,"prototype",{configurable:!1,writable:!1}),m(a,f(c))}function i(a){if("function"==typeof a){var b=a.prototype;if(j(b)===b||null===b)return a.prototype;throw new k("super prototype must be an Object or null")}if(null===a)return null;throw new k("Super expression must either be null or a function, not "+typeof a+".")}var j=Object,k=TypeError,l=j.create,m=$traceurRuntime.defineProperties,n=$traceurRuntime.defineProperty,o=$traceurRuntime.getOwnPropertyDescriptor,p=($traceurRuntime.getOwnPropertyNames,Object.getPrototypeOf),q=Object,r=q.getOwnPropertyNames,s=q.getOwnPropertySymbols,t={enumerable:!1};return $traceurRuntime.createClass=h,$traceurRuntime.superConstructor=b,$traceurRuntime.superGet=c,$traceurRuntime.superSet=d,{}}),System.registerModule("traceur-runtime@0.0.90/src/runtime/destructuring.js",[],function(){"use strict";function a(a){for(var b,c=[],d=0;!(b=a.next()).done;)c[d++]=b.value;return c}return $traceurRuntime.iteratorToArray=a,{}}),System.registerModule("traceur-runtime@0.0.90/src/runtime/generators.js",[],function(){"use strict";function a(a){return{configurable:!0,enumerable:!1,value:a,writable:!0}}function b(a){return new Error("Traceur compiler bug: invalid state in state machine: "+a)}function c(){this.state=0,this.GState=r,this.storedException=void 0,this.finallyFallThrough=void 0,this.sent_=void 0,this.returnValue=void 0,this.oldReturnValue=void 0,this.tryStack_=[]}function d(a,b,c,d){switch(a.GState){case s:throw new Error('"'+c+'" on executing generator');case u:if("next"==c)return{value:void 0,done:!0};if(d===x)return{value:a.returnValue,done:!0};throw d;case r:if("throw"===c){if(a.GState=u,d===x)return{value:a.returnValue,done:!0};throw d}if(void 0!==d)throw q("Sent value to newborn generator");case t:a.GState=s,a.action=c,a.sent=d;var e;try{e=b(a)}catch(f){if(f!==x)throw f;e=a}var g=e===a;return g&&(e=a.returnValue),a.GState=g?u:t,{value:e,done:g}}}function e(){}function f(){}function g(a,b,d){var e=k(a,d),f=new c,g=p(b.prototype);return g[y]=f,g[z]=e,g}function h(a){return a.prototype=p(f.prototype),a.__proto__=f,a}function i(){c.call(this),this.err=void 0;var a=this;a.result=new Promise(function(b,c){a.resolve=b,a.reject=c})}function j(a,b){var c=k(a,b),d=new i;return d.createCallback=function(a){return function(b){d.state=a,d.value=b,c(d)}},d.errback=function(a){l(d,a),c(d)},c(d),d.result}function k(a,b){return function(c){for(;;)try{return a.call(b,c)}catch(d){l(c,d)}}}function l(a,b){a.storedException=b;var c=a.tryStack_[a.tryStack_.length-1];return c?(a.state=void 0!==c["catch"]?c["catch"]:c["finally"],void(void 0!==c.finallyFallThrough&&(a.finallyFallThrough=c.finallyFallThrough))):void a.handleException(b)}if("object"!=typeof $traceurRuntime)throw new Error("traceur runtime not found.");var m=$traceurRuntime.createPrivateName,n=$traceurRuntime.defineProperties,o=$traceurRuntime.defineProperty,p=Object.create,q=TypeError,r=0,s=1,t=2,u=3,v=-2,w=-3,x={};c.prototype={pushTry:function(a,b){if(null!==b){for(var c=null,d=this.tryStack_.length-1;d>=0;d--)if(void 0!==this.tryStack_[d]["catch"]){c=this.tryStack_[d]["catch"];break}null===c&&(c=w),this.tryStack_.push({"finally":b,finallyFallThrough:c})}null!==a&&this.tryStack_.push({"catch":a})},popTry:function(){this.tryStack_.pop()},maybeUncatchable:function(){if(this.storedException===x)throw x},get sent(){return this.maybeThrow(),this.sent_},set sent(a){this.sent_=a},get sentIgnoreThrow(){return this.sent_},maybeThrow:function(){if("throw"===this.action)throw this.action="next",this.sent_},end:function(){switch(this.state){case v:return this;case w:throw this.storedException;default:throw b(this.state)}},handleException:function(a){throw this.GState=u,this.state=v,a},wrapYieldStar:function(a){var b=this;return{next:function(b){return a.next(b)},"throw":function(c){var d;if(c===x){if(a["return"]){if(d=a["return"](b.returnValue),!d.done)return b.returnValue=b.oldReturnValue,d;b.returnValue=d.value}throw c}if(a["throw"])return a["throw"](c);throw a["return"]&&a["return"](),q("Inner iterator does not have a throw method")}}}};var y=m(),z=m();return e.prototype=f,o(f,"constructor",a(e)),f.prototype={constructor:f,next:function(a){return d(this[y],this[z],"next",a)},"throw":function(a){return d(this[y],this[z],"throw",a)},"return":function(a){return this[y].oldReturnValue=this[y].returnValue,this[y].returnValue=a,d(this[y],this[z],"throw",x)}},n(f.prototype,{constructor:{enumerable:!1},next:{enumerable:!1},"throw":{enumerable:!1},"return":{enumerable:!1}}),Object.defineProperty(f.prototype,Symbol.iterator,a(function(){return this})),i.prototype=p(c.prototype),i.prototype.end=function(){switch(this.state){case v:this.resolve(this.returnValue);break;case w:this.reject(this.storedException);break;default:this.reject(b(this.state))}},i.prototype.handleException=function(){this.state=w},$traceurRuntime.asyncWrap=j,$traceurRuntime.initGeneratorFunction=h,$traceurRuntime.createGeneratorInstance=g,{}}),System.registerModule("traceur-runtime@0.0.90/src/runtime/relativeRequire.js",[],function(){"use strict";function a(a,c){function d(a){return"/"===a.slice(-1)}function e(a){return"/"===a[0]}function f(a){return"."===a[0]}return b=b||"undefined"!=typeof require&&require("path"),d(c)||e(c)?void 0:f(c)?require(b.resolve(b.dirname(a),c)):require(c)}var b;return $traceurRuntime.require=a,{}}),System.registerModule("traceur-runtime@0.0.90/src/runtime/spread.js",[],function(){"use strict";function a(){for(var a,b=[],c=0,d=0;d>>0}function b(a){return a&&("object"==typeof a||"function"==typeof a)}function c(a){return"function"==typeof a}function d(a){return"number"==typeof a}function e(a){return a=+a,u(a)?0:0!==a&&t(a)?a>0?s(a):r(a):a}function f(a){var b=e(a);return 0>b?0:w(b,y)}function g(a){return b(a)?a[Symbol.iterator]:void 0}function h(a){return c(a)}function i(a,b){return{value:a,done:b}}function j(a,b,c){b in a||Object.defineProperty(a,b,c)}function k(a,b,c){j(a,b,{value:c,configurable:!0,enumerable:!1,writable:!0})}function l(a,b,c){j(a,b,{value:c,configurable:!1,enumerable:!1,writable:!1})}function m(a,b){for(var c=0;ca;a+=2){var b=m[a],c=m[a+1];b(c),m[a]=void 0,m[a+1]=void 0}h=0}var g,h=0,i=a,j="undefined"!=typeof window?window:{},k=j.MutationObserver||j.WebKitMutationObserver,l="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,m=new Array(1e3);return g="undefined"!=typeof process&&"[object process]"==={}.toString.call(process)?b():k?c():l?d():e(),{get default(){return i}}}),System.registerModule("traceur-runtime@0.0.90/src/runtime/polyfills/Promise.js",[],function(){"use strict";function a(a){return a&&"object"==typeof a&&void 0!==a.status_}function b(a){return a}function c(a){throw a}function d(a){var d=void 0!==arguments[1]?arguments[1]:b,f=void 0!==arguments[2]?arguments[2]:c,g=e(a.constructor);switch(a.status_){case void 0:throw TypeError;case 0:a.onResolve_.push(d,g),a.onReject_.push(f,g);break;case 1:k(a.value_,[d,g]);break;case-1:k(a.value_,[f,g])}return g.promise}function e(a){if(this===t){var b=g(new t(r));return{promise:b,resolve:function(a){h(b,a)},reject:function(a){i(b,a)}}}var c={};return c.promise=new a(function(a,b){c.resolve=a,c.reject=b}),c}function f(a,b,c,d,e){return a.status_=b,a.value_=c,a.onResolve_=d,a.onReject_=e,a}function g(a){return f(a,0,void 0,[],[])}function h(a,b){j(a,1,b,a.onResolve_)}function i(a,b){j(a,-1,b,a.onReject_)}function j(a,b,c,d){0===a.status_&&(k(c,d),f(a,b,c))}function k(a,b){p(function(){for(var c=0;c=j)return a[e(g)]=void 0,c(void 0,!0);var k,l=b.charCodeAt(i);if(55296>l||l>56319||i+1===j)k=String.fromCharCode(l);else{var m=b.charCodeAt(i+1);k=56320>m||m>57343?String.fromCharCode(l):String.fromCharCode(l)+String.fromCharCode(m)}return a[e(h)]=i+k.length,c(k,!1)},configurable:!0,enumerable:!0,writable:!0}),Object.defineProperty(b,Symbol.iterator,{value:function(){return this},configurable:!0,enumerable:!0,writable:!0}),b),{})}();return{get createStringIterator(){return a}}}),System.registerModule("traceur-runtime@0.0.90/src/runtime/polyfills/String.js",[],function(){"use strict";function a(a){var b=String(this);if(null==this||"[object RegExp]"==o.call(a))throw TypeError();var c=b.length,d=String(a),e=(d.length,arguments.length>1?arguments[1]:void 0),f=e?Number(e):0;isNaN(f)&&(f=0);var g=Math.min(Math.max(f,0),c);return p.call(b,d,f)==g}function b(a){var b=String(this);if(null==this||"[object RegExp]"==o.call(a))throw TypeError();var c=b.length,d=String(a),e=d.length,f=c;if(arguments.length>1){var g=arguments[1];void 0!==g&&(f=g?Number(g):0,isNaN(f)&&(f=0))}var h=Math.min(Math.max(f,0),c),i=h-e;return 0>i?!1:q.call(b,d,i)==i}function c(a){if(null==this)throw TypeError();var b=String(this);if(a&&"[object RegExp]"==o.call(a))throw TypeError();var c=b.length,d=String(a),e=d.length,f=arguments.length>1?arguments[1]:void 0,g=f?Number(f):0;g!=g&&(g=0);var h=Math.min(Math.max(g,0),c);return e+h>c?!1:-1!=p.call(b,d,g)}function d(a){if(null==this)throw TypeError();var b=String(this),c=a?Number(a):0;if(isNaN(c)&&(c=0),0>c||c==1/0)throw RangeError();if(0==c)return"";for(var d="";c--;)d+=b;return d}function e(a){if(null==this)throw TypeError();var b=String(this),c=b.length,d=a?Number(a):0;if(isNaN(d)&&(d=0),0>d||d>=c)return void 0;var e,f=b.charCodeAt(d);return f>=55296&&56319>=f&&c>d+1&&(e=b.charCodeAt(d+1),e>=56320&&57343>=e)?1024*(f-55296)+e-56320+65536:f}function f(a){var b=a.raw,c=b.length>>>0;if(0===c)return"";for(var d="",e=0;;){if(d+=b[e],e+1===c)return d;d+=arguments[++e]}}function g(a){var b,c,d=[],e=Math.floor,f=-1,g=arguments.length;if(!g)return"";for(;++fh||h>1114111||e(h)!=h)throw RangeError("Invalid code point: "+h);65535>=h?d.push(h):(h-=65536,b=(h>>10)+55296,c=h%1024+56320,d.push(b,c))}return String.fromCharCode.apply(null,d)}function h(){var a=$traceurRuntime.checkObjectCoercible(this),b=String(a);return j(b)}function i(i){var j=i.String;l(j.prototype,["codePointAt",e,"endsWith",b,"includes",c,"repeat",d,"startsWith",a]),l(j,["fromCodePoint",g,"raw",f]),m(j.prototype,h,Symbol)}var j=System.get("traceur-runtime@0.0.90/src/runtime/polyfills/StringIterator.js").createStringIterator,k=System.get("traceur-runtime@0.0.90/src/runtime/polyfills/utils.js"),l=k.maybeAddFunctions,m=k.maybeAddIterator,n=k.registerPolyfill,o=Object.prototype.toString,p=String.prototype.indexOf,q=String.prototype.lastIndexOf;return n(i),{get startsWith(){return a},get endsWith(){return b},get includes(){return c},get repeat(){return d},get codePointAt(){return e},get raw(){return f},get fromCodePoint(){return g},get stringPrototypeIterator(){return h},get polyfillString(){return i}}}),System.get("traceur-runtime@0.0.90/src/runtime/polyfills/String.js"),System.registerModule("traceur-runtime@0.0.90/src/runtime/polyfills/ArrayIterator.js",[],function(){"use strict";function a(a,b){var c=f(a),d=new l;return d.iteratorObject_=c,d.arrayIteratorNextIndex_=0,d.arrayIterationKind_=b,d}function b(){return a(this,k)}function c(){return a(this,i)}function d(){return a(this,j)}var e=System.get("traceur-runtime@0.0.90/src/runtime/polyfills/utils.js"),f=e.toObject,g=e.toUint32,h=e.createIteratorResultObject,i=1,j=2,k=3,l=function(){function a(){}var b;return $traceurRuntime.createClass(a,(b={},Object.defineProperty(b,"next",{value:function(){var a=f(this),b=a.iteratorObject_;if(!b)throw new TypeError("Object is not an ArrayIterator");var c=a.arrayIteratorNextIndex_,d=a.arrayIterationKind_,e=g(b.length);return c>=e?(a.arrayIteratorNextIndex_=1/0,h(void 0,!0)):(a.arrayIteratorNextIndex_=c+1,d==j?h(b[c],!1):d==k?h([c,b[c]],!1):h(c,!1))},configurable:!0,enumerable:!0,writable:!0}),Object.defineProperty(b,Symbol.iterator,{value:function(){return this},configurable:!0,enumerable:!0,writable:!0}),b),{})}();return{get entries(){return b},get keys(){return c},get values(){return d}}}),System.registerModule("traceur-runtime@0.0.90/src/runtime/polyfills/Array.js",[],function(){"use strict";function a(a){var b,c,d=arguments[1],e=arguments[2],f=this,g=u(a),h=void 0!==d,i=0;if(h&&!n(d))throw TypeError();if(m(g)){b=o(f)?new f:[];var j=!0,k=!1,l=void 0;try{for(var p=void 0,q=g[$traceurRuntime.toProperty(Symbol.iterator)]();!(j=(p=q.next()).done);j=!0){var r=p.value;h?b[i]=d.call(e,r,i):b[i]=r,i++}}catch(s){k=!0,l=s}finally{try{j||null==q["return"]||q["return"]()}finally{if(k)throw l}}return b.length=i,b}for(c=t(g.length),b=o(f)?new f(c):new Array(c);c>i;i++)h?b[i]="undefined"==typeof e?d(g[i],i):d.call(e,g[i],i):b[i]=g[i];return b.length=c,b}function b(){for(var a=[],b=0;bf;f++)e[f]=a[f];return e.length=d,e}function c(a){var b=void 0!==arguments[1]?arguments[1]:0,c=arguments[2],d=u(this),e=t(d.length),f=s(b),g=void 0!==c?s(c):e;for(f=0>f?Math.max(e+f,0):Math.min(f,e),g=0>g?Math.max(e+g,0):Math.min(g,e);g>f;)d[f]=a,f++;return d}function d(a){var b=arguments[1];return f(this,a,b)}function e(a){var b=arguments[1];return f(this,a,b,!0)}function f(a,b){var c=arguments[2],d=void 0!==arguments[3]?arguments[3]:!1,e=u(a),f=t(e.length);if(!n(b))throw TypeError();for(var g=0;f>g;g++){var h=e[g];if(b.call(c,h,g,e))return d?g:h}return d?-1:void 0}function g(f){var g=f,h=g.Array,l=g.Object,m=g.Symbol,n=k;m&&m.iterator&&h.prototype[m.iterator]&&(n=h.prototype[m.iterator]),p(h.prototype,["entries",i,"keys",j,"values",n,"fill",c,"find",d,"findIndex",e]),p(h,["from",a,"of",b]),q(h.prototype,n,m),q(l.getPrototypeOf([].values()),function(){return this},m)}var h=System.get("traceur-runtime@0.0.90/src/runtime/polyfills/ArrayIterator.js"),i=h.entries,j=h.keys,k=h.values,l=System.get("traceur-runtime@0.0.90/src/runtime/polyfills/utils.js"),m=l.checkIterable,n=l.isCallable,o=l.isConstructor,p=l.maybeAddFunctions,q=l.maybeAddIterator,r=l.registerPolyfill,s=l.toInteger,t=l.toLength,u=l.toObject;return r(g),{get from(){return a},get of(){return b},get fill(){return c},get find(){return d},get findIndex(){return e},get polyfillArray(){return g}}}),System.get("traceur-runtime@0.0.90/src/runtime/polyfills/Array.js"),System.registerModule("traceur-runtime@0.0.90/src/runtime/polyfills/Object.js",[],function(){"use strict";function a(a,b){return a===b?0!==a||1/a===1/b:a!==a&&b!==b}function b(a){for(var b=1;be;e++){var g=d[e];l(g)||(a[g]=c[g])}}return a}function c(a,b){var c,d,e=k(b),f=e.length;for(c=0;f>c;c++){var g=e[c];l(g)||(d=j(b,e[c]),i(a,e[c],d))}return a}function d(d){var e=d.Object;f(e,["assign",b,"is",a,"mixin",c])}var e=System.get("traceur-runtime@0.0.90/src/runtime/polyfills/utils.js"),f=e.maybeAddFunctions,g=e.registerPolyfill,h=$traceurRuntime,i=h.defineProperty,j=h.getOwnPropertyDescriptor,k=h.getOwnPropertyNames,l=h.isPrivateName,m=h.keys;return g(d),{get is(){return a},get assign(){return b},get mixin(){return c},get polyfillObject(){return d}}}),System.get("traceur-runtime@0.0.90/src/runtime/polyfills/Object.js"),System.registerModule("traceur-runtime@0.0.90/src/runtime/polyfills/Number.js",[],function(){"use strict";function a(a){return g(a)&&m(a)}function b(b){return a(b)&&k(b)===b}function c(a){return g(a)&&n(a)}function d(b){if(a(b)){var c=k(b);if(c===b)return l(c)<=o}return!1}function e(e){var f=e.Number;h(f,["MAX_SAFE_INTEGER",o,"MIN_SAFE_INTEGER",p,"EPSILON",q]),i(f,["isFinite",a,"isInteger",b,"isNaN",c,"isSafeInteger",d])}var f=System.get("traceur-runtime@0.0.90/src/runtime/polyfills/utils.js"),g=f.isNumber,h=f.maybeAddConsts,i=f.maybeAddFunctions,j=f.registerPolyfill,k=f.toInteger,l=Math.abs,m=isFinite,n=isNaN,o=Math.pow(2,53)-1,p=-Math.pow(2,53)+1,q=Math.pow(2,-52);return j(e),{get MAX_SAFE_INTEGER(){return o},get MIN_SAFE_INTEGER(){return p},get EPSILON(){return q},get isFinite(){return a},get isInteger(){return b},get isNaN(){return c},get isSafeInteger(){return d},get polyfillNumber(){return e}}}),System.get("traceur-runtime@0.0.90/src/runtime/polyfills/Number.js"),System.registerModule("traceur-runtime@0.0.90/src/runtime/polyfills/fround.js",[],function(){"use strict";function a(a,b,c){function d(a){var b=k(a),c=a-b;return.5>c?b:c>.5?b+1:b%2?b+1:b}var e,f,g,h,o,p,q,r=(1<a?1:0):0===a?(f=0,g=0,e=1/a===-(1/0)?1:0):(e=0>a,a=j(a),a>=n(2,1-r)?(f=m(k(l(a)/i),1023),g=d(a/n(2,f)*n(2,c)),g/n(2,c)>=2&&(f+=1,g=1),f>r?(f=(1<>=1;return l.reverse(),g=l.join(""),h=(1<0?i*n(2,j-h)*(1+k/n(2,c)):0!==k?i*n(2,-(h-1))*(k/n(2,c)):0>i?-0:0}function c(a){return b(a,8,23)}function d(b){return a(b,8,23)}function e(a){return 0===a||!f(a)||g(a)?a:c(d(Number(a)))}var f=isFinite,g=isNaN,h=Math,i=h.LN2,j=h.abs,k=h.floor,l=h.log,m=h.min,n=h.pow;return{get fround(){return e}}}),System.registerModule("traceur-runtime@0.0.90/src/runtime/polyfills/Math.js",[],function(){"use strict";function a(a){if(a=x(+a),0==a)return 32;var b=0;return 0===(4294901760&a)&&(a<<=16,b+=16),0===(4278190080&a)&&(a<<=8,b+=8),0===(4026531840&a)&&(a<<=4,b+=4),0===(3221225472&a)&&(a<<=2,b+=2),0===(2147483648&a)&&(a<<=1,b+=1),b}function b(a,b){a=x(+a),b=x(+b);var c=a>>>16&65535,d=65535&a,e=b>>>16&65535,f=65535&b;return d*f+(c*f+d*e<<16>>>0)|0}function c(a){return a=+a,a>0?1:0>a?-1:a}function d(a){return.4342944819032518*F(a)}function e(a){return 1.4426950408889634*F(a)}function f(a){if(a=+a,-1>a||z(a))return NaN;if(0===a||a===1/0)return a;if(-1===a)return-(1/0);var b=0,c=50;if(0>a||a>1)return F(1+a);for(var d=1;c>d;d++)d%2===0?b-=G(a,d)/d:b+=G(a,d)/d;return b}function g(a){return a=+a,a===-(1/0)?-1:y(a)&&0!==a?D(a)-1:a}function h(a){return a=+a,0===a?1:z(a)?NaN:y(a)?(0>a&&(a=-a),a>21?D(a)/2:(D(a)+D(-a))/2):1/0}function i(a){return a=+a,y(a)&&0!==a?(D(a)-D(-a))/2:a}function j(a){if(a=+a,0===a)return a;if(!y(a))return c(a);var b=D(a),d=D(-a);return(b-d)/(b+d)}function k(a){return a=+a,1>a?NaN:y(a)?F(a+H(a+1)*H(a-1)):a}function l(a){return a=+a,0!==a&&y(a)?a>0?F(a+H(a*a+1)):-F(-a+H(a*a+1)):a}function m(a){return a=+a,-1===a?-(1/0):1===a?1/0:0===a?a:z(a)||-1>a||a>1?NaN:.5*F((1+a)/(1-a))}function n(a,b){for(var c=arguments.length,d=new Array(c),e=0,f=0;c>f;f++){var g=arguments[f];if(g=+g,g===1/0||g===-(1/0))return 1/0;g=B(g),g>e&&(e=g),d[f]=g}0===e&&(e=1);for(var h=0,i=0,f=0;c>f;f++){var g=d[f]/e,j=g*g-i,k=h+j;i=k-h-j,h=k}return H(h)*e}function o(a){return a=+a,a>0?E(a):0>a?C(a):a}function p(a){if(a=+a,0===a)return a;var b=0>a;b&&(a=-a);var c=G(a,1/3);return b?-c:c}function q(q){var s=q.Math;v(s,["acosh",k,"asinh",l,"atanh",m,"cbrt",p,"clz32",a,"cosh",h,"expm1",g,"fround",r,"hypot",n,"imul",b,"log10",d,"log1p",f,"log2",e,"sign",c,"sinh",i,"tanh",j,"trunc",o])}var r,s,t=System.get("traceur-runtime@0.0.90/src/runtime/polyfills/fround.js").fround,u=System.get("traceur-runtime@0.0.90/src/runtime/polyfills/utils.js"),v=u.maybeAddFunctions,w=u.registerPolyfill,x=u.toUint32,y=isFinite,z=isNaN,A=Math,B=A.abs,C=A.ceil,D=A.exp,E=A.floor,F=A.log,G=A.pow,H=A.sqrt;return"function"==typeof Float32Array?(s=new Float32Array(1),r=function(a){return s[0]=Number(a),s[0]}):r=t,w(q),{get clz32(){return a},get imul(){return b},get sign(){return c},get log10(){return d},get log2(){return e},get log1p(){return f},get expm1(){return g},get cosh(){return h},get sinh(){return i},get tanh(){return j},get acosh(){return k},get asinh(){return l},get atanh(){return m},get hypot(){return n},get trunc(){return o},get fround(){return r},get cbrt(){return p},get polyfillMath(){return q}}}),System.get("traceur-runtime@0.0.90/src/runtime/polyfills/Math.js"),System.registerModule("traceur-runtime@0.0.90/src/runtime/polyfills/polyfills.js",[],function(){"use strict";var a=System.get("traceur-runtime@0.0.90/src/runtime/polyfills/utils.js").polyfillAll;a(Reflect.global);var b=$traceurRuntime.setupGlobals;return $traceurRuntime.setupGlobals=function(c){b(c),a(c)},{}}),System.get("traceur-runtime@0.0.90/src/runtime/polyfills/polyfills.js"); -//# sourceMappingURL=traceur-runtime.min.map diff --git a/lib/traceur-runtime.min.map b/lib/traceur-runtime.min.map deleted file mode 100644 index 1c722c1..0000000 --- a/lib/traceur-runtime.min.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"traceur-runtime.min.js","sources":["traceur-runtime.js"],"names":["global","$bind","operand","thisArg","args","argArray","i","length","func","$apply","Function","prototype","bind","$construct","object","newUniqueString","Math","floor","random","counter","isPrivateName","s","privateNames","createPrivateName","createContinuation","argsArray","CONTINUATION_TYPE","isContinuation","setupProperTailCalls","isTailRecursiveName","call","initTailRecursiveFunction","result","tailCall","arguments","continuation","this","apply","isTailRecursive","construct","$traceurRuntime","$Object","Object","$TypeError","TypeError","$create","create","$defineProperties","defineProperties","$defineProperty","defineProperty","$freeze","freeze","$getOwnPropertyDescriptor","getOwnPropertyDescriptor","$getOwnPropertyNames","getOwnPropertyNames","$keys","keys","$hasOwnProperty","hasOwnProperty","$preventExtensions","toString","preventExtensions","$seal","seal","$isExtensible","isExtensible","nonEnum","value","configurable","enumerable","writable","isShimSymbol","symbol","SymbolValue","typeOf","v","Symbol","description","key","symbolDataProperty","symbolInternalProperty","symbolDescriptionProperty","symbolValues","getOwnHashObject","hashObject","hashProperty","self","hashObjectProperties","hash","hashCounter","hashPropertyDescriptor","undefined","isSymbolString","toProperty","name","removeSymbolKeys","array","rv","push","getOwnPropertySymbols","names","getOption","options","descriptor","polyfillObject","exportStar","j","mod","get","isObject","x","toObject","checkObjectCoercible","argument","polyfillSymbol","hasNativeSymbol","iterator","observer","hasNativeSymbolFunc","setupGlobals","Reflect","method","symbolValue","valueOf","typeof","window","buildFromEncodedParts","opt_scheme","opt_userInfo","opt_domain","opt_port","opt_path","opt_queryData","opt_fragment","out","join","split","uri","match","splitRe","removeDotSegments","path","leadingSlash","trailingSlash","slice","segments","up","pos","segment","pop","unshift","joinAndCanonicalizePath","parts","ComponentIndex","PATH","SCHEME","USER_INFO","DOMAIN","PORT","QUERY_DATA","FRAGMENT","canonicalizeUrl","url","resolveUrl","base","baseParts","index","lastIndexOf","isAbsolute","RegExp","UncoatedModuleEntry","uncoatedModule","value_","ModuleEvaluationError","erroneousModuleName","cause","message","constructor","stripCause","stack","stripStack","beforeLines","lines","number","first","afterLines","last","columnSpacing","columns","UncoatedModuleInstantiator","getUncoatedModuleInstantiator","ModuleStore","normalize","moduleInstantiators","Module","isLive","coatedModule","forEach","getter","liveModuleSentinel","descr","baseURL","$__1","location","href","Error","stripError","replace","loadedBy","moduleName","causeStack","some","frame","test","getUncoatedModule","$__0","relativeRequire","require","ex","evaled","indexOf","m","exec","line","parseInt","concat","moduleInstances","refererName","refererAddress","normalizedName","moduleInstance","set","module","String",{"end":{"file":"traceur-runtime.js","comments_before":[],"nlb":false,"endpos":21692,"endcol":15,"endline":661,"pos":21685,"col":8,"line":661,"value":"baseURL","type":"name"},"start":{"file":"traceur-runtime.js","comments_before":[],"nlb":false,"endpos":21692,"endcol":15,"endline":661,"pos":21685,"col":8,"line":661,"value":"baseURL","type":"name"},"name":"baseURL"},"registerModule","deps","bundleStore","register","execute","depMap","dep","registryEntry","exports","getAnonymousModule","moduleStoreModule","System","AsyncGeneratorFunction","AsyncGeneratorFunctionPrototype","initAsyncGeneratorFunction","functionObject","__proto__","createAsyncGeneratorInstance","observe","$__9","thisName","argsName","observeName","observeForEach","next","Promise","resolve","reject","generator","throw","error","return","schedule","asyncF","then","createDecoratedGenerator","onDone","DecoratedGenerator","$createPrivateName","AsyncGeneratorContext","decoratedObserver","done","inReturn","yield","e","yieldFor","observable","ctx","_generator","_onDone","Array","$__5","$__6","$__7","$__3","$__2","$__8","superDescriptor","homeObject","proto","$getPrototypeOf","superConstructor","ctor","superGet","superSet","forEachPropertyKey","f","getDescriptors","descriptors","makePropertiesNonEnumerable","createClass","staticObject","superClass","getProtoParent","getPrototypeOf","iteratorToArray","iter","tmp","getInternalError","state","GeneratorContext","GState","ST_NEWBORN","storedException","finallyFallThrough","sent_","returnValue","oldReturnValue","tryStack_","nextOrThrow","moveNext","action","ST_EXECUTING","ST_CLOSED","RETURN_SENTINEL","ST_SUSPENDED","sent","GeneratorFunction","GeneratorFunctionPrototype","createGeneratorInstance","innerFunction","getMoveNext","ctxName","moveNextName","initGeneratorFunction","AsyncFunctionContext","err","asyncWrap","createCallback","newState","errback","handleCatch","handleException","END_STATE","RETHROW_STATE","pushTry","catchState","finallyState","finally","catch","popTry","maybeUncatchable","maybeThrow","sentIgnoreThrow","end","wrapYieldStar","callerPath","requiredPath","isDirectory","isRelative","dirname","spread","iterResult","valueToSpread","getTemplateObject","raw","cooked","templateObject","map","genericType","type","argumentTypes","typeMap","typeRegister","tail","GenericType","types","any","boolean","string","void","toUint32","isCallable","isNumber","toInteger","$isNaN","$isFinite","$floor","$ceil","toLength","len","$min","MAX_SAFE_LENGTH","checkIterable","isConstructor","createIteratorResultObject","maybeDefine","maybeDefineMethod","maybeDefineConst","maybeAddFunctions","functions","maybeAddConsts","consts","maybeAddIterator","registerPolyfill","polyfills","polyfillAll","ceil","isFinite","isNaN","$pow","pow","min","lookupIndex","objectIndex_","stringIndex_","primitiveIndex_","initMap","entries_","deletedCount_","needsPolyfill","$__10","Map","entries","size","polyfillMap","deletedSentinel","$__11","$__12","iterable","objectMode","stringMode","has","delete","clear","callbackFn","$__13","$ctx","$__14","values","$__15","initSet","map_","Set","polyfillSet","$__4","item","add","$__16","$__17","asap","callback","arg","queue","scheduleFlush","useNextTick","process","nextTick","flush","useMutationObserver","iterations","BrowserMutationObserver","node","document","createTextNode","characterData","data","useMessageChannel","channel","MessageChannel","port1","onmessage","port2","postMessage","useSetTimeout","setTimeout","$__default","browserGlobal","MutationObserver","WebKitMutationObserver","isWorker","Uint8ClampedArray","importScripts","isPromise","status_","idResolveHandler","idRejectHandler","chain","promise","onResolve","onReject","deferred","getDeferred","onResolve_","onReject_","promiseEnqueue","C","$Promise","promiseInit","promiseRaw","promiseResolve","r","promiseReject","promiseSet","status","promiseDone","reactions","tasks","async","promiseHandle","handler","promiseCoerce","$PromiseReject","thenableSymbol","p","polyfillPromise","resolver","that","all","resolutions","makeCountdownFunction","count","countdownFunction","race","createStringIterator","StringIterator","iteratedString","stringIteratorNextIndex","o","position","resultString","charCodeAt","fromCharCode","second","startsWith","search","$toString","stringLength","searchString","Number","start","max","$indexOf","endsWith","searchLength","$lastIndexOf","includes","repeat","n","Infinity","RangeError","codePointAt","callsite","fromCodePoint","_","highSurrogate","lowSurrogate","codeUnits","codePoint","stringPrototypeIterator","polyfillString","createArrayIterator","kind","ArrayIterator","iteratorObject_","arrayIteratorNextIndex_","arrayIterationKind_","ARRAY_ITERATOR_KIND_ENTRIES","ARRAY_ITERATOR_KIND_KEYS","ARRAY_ITERATOR_KIND_VALUES","itemKind","from","arrLike","arr","mapFn","items","mapping","k","of","fill","fillStart","fillEnd","find","predicate","findHelper","findIndex","returnIndex","polyfillArray","jsValues","is","left","right","assign","target","source","props","mixin","NumberIsFinite","isInteger","NumberIsNaN","isSafeInteger","integral","$abs","MAX_SAFE_INTEGER","polyfillNumber","MIN_SAFE_INTEGER","EPSILON","abs","packIEEE754","ebits","fbits","roundToEven","w","bits","str","bytes","bias","log","LN2","reverse","substring","unpackIEEE754","b","NaN","unpackF32","packF32","fround","clz32","imul","y","xh","xl","yh","yl","sign","log10","log2","log1p","expm1","exp","cosh","sinh","tanh","exp1","exp2","acosh","sqrt","asinh","atanh","hypot","sum","compensation","summand","preliminary","trunc","cbrt","negate","polyfillMath","f32","jsFround","Float32Array"],"mappings":"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"} diff --git a/package.json b/package.json index f3d0ccb..77d0582 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,9 @@ "description": "This is a sample that shows how to add authentication to an Angular 2 (ng2) app", "main": "", "scripts": { - "start": "webpack-dev-server --inline -d --colors --display-error-details --display-cached --port 3000", + "server": "cd backend && npm i && node server.js", + "front": "webpack-dev-server --inline -d --colors --display-error-details --display-cached --port 3000", + "start": "npm run front", "test": "echo \"Error: no test specified\" && exit 1" }, "repository": { @@ -21,32 +23,32 @@ }, "homepage": "https://github.com/auth0/angular2-authentication-sample", "dependencies": { - "angular2": "2.0.0-alpha.30", - "raw-loader": "^0.5.1", - "reflect-metadata": "^0.1.0", - "rtts_assert": "2.0.0-alpha.29", - "rx": "^2.5.3", - "zone.js": "^0.5.0", - "bootstrap": "~3.3.4", - "jwt-decode": "~1.1.0", - "whatwg-fetch": "~0.7.0", - "when": "~3.7.3" + "angular2": "2.0.0-alpha.44", + "raw-loader": "0.5.1", + "reflect-metadata": "0.1.2", + "rtts_assert": "2.0.0-alpha.37", + "rx": "4.0.6", + "zone.js": "0.5.8", + "bootstrap": "3.3.5", + "jwt-decode": "1.4.0", + "whatwg-fetch": "0.10.0", + "when": "3.7.3" }, "devDependencies": { - "css-loader": "^0.14.4", - "xtend": "^4.0.0", - "loader-utils": "^0.2.9", - "exports-loader": "^0.6.2", - "expose-loader": "^0.7.0", - "file-loader": "^0.8.1", - "html-webpack-plugin": "^1.4.0", - "imports-loader": "^0.6.3", - "json-loader": "^0.5.1", - "style-loader": "^0.12.2", - "typescript": "^1.5.0-beta", - "typescript-simple-loader": "^0.1.2", - "url-loader": "^0.5.5", - "webpack": "^1.9.6", - "webpack-dev-server": "^1.8.2" + "css-loader": "0.20.1", + "exports-loader": "0.6.2", + "expose-loader": "0.7.0", + "file-loader": "0.8.4", + "html-webpack-plugin": "1.6.2", + "imports-loader": "0.6.5", + "json-loader": "0.5.3", + "loader-utils": "0.2.11", + "style-loader": "0.12.4", + "ts-loader": "0.5.6", + "typescript": "1.6.2", + "url-loader": "0.5.6", + "webpack": "1.12.2", + "webpack-dev-server": "1.12.1", + "xtend": "4.0.0" } } diff --git a/src/app/LoggedInOutlet.ts b/src/app/LoggedInOutlet.ts index 590a326..44f477f 100644 --- a/src/app/LoggedInOutlet.ts +++ b/src/app/LoggedInOutlet.ts @@ -1,28 +1,30 @@ import {Directive, Attribute, ElementRef, DynamicComponentLoader} from 'angular2/angular2'; -import {Router, RouterOutlet} from 'angular2/router'; -import {Injector} from 'angular2/di'; +import {Router, RouterOutlet, ComponentInstruction} from 'angular2/router'; import {Login} from '../login/login'; @Directive({ selector: 'router-outlet' }) export class LoggedInRouterOutlet extends RouterOutlet { - publicRoutes: any - constructor(public _elementRef: ElementRef, public _loader: DynamicComponentLoader, - public _parentRouter: Router, @Attribute('name') nameAttr: string) { - super(_elementRef, _loader, _parentRouter, nameAttr); + publicRoutes:any; + private parentRouter:Router; - this.publicRoutes = { - '/login': true, - '/signup': true - }; + constructor(_elementRef:ElementRef, _loader:DynamicComponentLoader, + _parentRouter:Router, @Attribute('name') nameAttr:string) { + super(_elementRef, _loader, _parentRouter, nameAttr); + this.parentRouter = _parentRouter; + this.publicRoutes = { + '/login': true, + '/signup': true + }; } - activate(instruction) { - var url = this._parentRouter.lastNavigationAttempt; + activate(instruction: ComponentInstruction) { + var url = this.parentRouter.lastNavigationAttempt; if (!this.publicRoutes[url] && !localStorage.getItem('jwt')) { - instruction.component = Login; + // todo: redirect to Login, may be there a better way? + this.parentRouter.navigateByUrl('/login'); } return super.activate(instruction); } diff --git a/src/app/app.html b/src/app/app.html index 0680b43..ec0f9fa 100644 --- a/src/app/app.html +++ b/src/app/app.html @@ -1 +1,3 @@ - +
+ +
diff --git a/src/app/app.ts b/src/app/app.ts index f28ea01..33ed910 100644 --- a/src/app/app.ts +++ b/src/app/app.ts @@ -1,7 +1,6 @@ -/// - import {View, Component} from 'angular2/angular2'; import {Location, RouteConfig, RouterLink, Router} from 'angular2/router'; + import {LoggedInRouterOutlet} from './LoggedInOutlet'; import {Home} from '../home/home'; import {Login} from '../login/login'; @@ -19,9 +18,9 @@ let template = require('./app.html'); }) @RouteConfig([ { path: '/', redirectTo: '/home' }, - { path: '/home', as: 'home', component: Home }, - { path: '/login', as: 'login', component: Login }, - { path: '/signup', as: 'signup', component: Signup } + { path: '/home', as: 'Home', component: Home }, + { path: '/login', as: 'Login', component: Login }, + { path: '/signup', as: 'Signup', component: Signup } ]) export class App { constructor(public router: Router) { diff --git a/src/home/home.ts b/src/home/home.ts index a10ffea..df445e8 100644 --- a/src/home/home.ts +++ b/src/home/home.ts @@ -1,11 +1,9 @@ -/// +import {Component, View, CORE_DIRECTIVES} from 'angular2/angular2'; +import { Router } from 'angular2/router'; -import {Component, View} from 'angular2/angular2'; -import {coreDirectives} from 'angular2/directives'; import {status, text} from '../utils/fetch' -import { Router} from 'angular2/router'; -let styles = require('./home.css'); +let styles = require('./home.css'); let template = require('./home.html'); @@ -13,24 +11,24 @@ let template = require('./home.html'); selector: 'home' }) @View({ - styles: [ styles ], + directives: [CORE_DIRECTIVES], template: template, - directives: [ coreDirectives ] + styles: [styles] }) export class Home { - jwt: string; - decodedJwt: string; - response: string; - api: string; + jwt:string; + decodedJwt:string; + response:string; + api:string; - constructor(public router: Router) { + constructor(public router:Router) { this.jwt = localStorage.getItem('jwt'); this.decodedJwt = this.jwt && window.jwt_decode(this.jwt); } logout() { localStorage.removeItem('jwt'); - this.router.parent.navigate('/login'); + this.router.parent.navigateByUrl('/login'); } callAnonymousApi() { @@ -40,25 +38,25 @@ export class Home { callSecuredApi() { this._callApi('Secured', 'http://localhost:3001/api/protected/random-quote'); } + _callApi(type, url) { this.response = null; this.api = type; window.fetch(url, { - method: 'GET', - headers: { - 'Accept': 'application/json', - 'Content-Type': 'application/json', - 'Authorization': 'bearer ' + this.jwt - } - }) - .then(status) - .then(text) - .then((response) => { - this.response = response; - }) - .catch((error) => { - this.response = error.message; - }); + method: 'GET', + headers: { + 'Accept': 'application/json', + 'Content-Type': 'application/json', + 'Authorization': 'bearer ' + this.jwt + } + }) + .then(status) + .then(text) + .then((response) => { + this.response = response; + }) + .catch((error) => { + this.response = error.message; + }); } - } diff --git a/src/index.ts b/src/index.ts index fc05dba..00eaa03 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,18 +1,14 @@ -/// - -import { bootstrap } from 'angular2/angular2'; -import { bind } from 'angular2/di'; -import { routerInjectables } from 'angular2/router'; -import { formInjectables } from 'angular2/forms'; -import { httpInjectables } from 'angular2/http'; +import { bootstrap, FORM_PROVIDERS } from 'angular2/angular2'; +import { ROUTER_PROVIDERS } from 'angular2/router'; +import { HTTP_PROVIDERS } from 'angular2/http'; import { App } from './app/app'; bootstrap( App, [ - formInjectables, - routerInjectables, - httpInjectables + FORM_PROVIDERS, + ROUTER_PROVIDERS, + HTTP_PROVIDERS ] ); diff --git a/src/login/login.html b/src/login/login.html index 9e456c3..e0f231a 100644 --- a/src/login/login.html +++ b/src/login/login.html @@ -10,5 +10,6 @@

Login

+ Click here to Signup diff --git a/src/login/login.ts b/src/login/login.ts index 9bfd200..28e9622 100644 --- a/src/login/login.ts +++ b/src/login/login.ts @@ -1,21 +1,17 @@ -/// - import {Component, View} from 'angular2/angular2'; -import {status, json} from '../utils/fetch' import { Router, RouterLink } from 'angular2/router'; - +import {status, json} from '../utils/fetch' let styles = require('./login.css'); let template = require('./login.html'); - @Component({ selector: 'login' }) @View({ - styles: [ styles ], + directives: [RouterLink], template: template, - directives: [RouterLink] + styles: [ styles ] }) export class Login { constructor(public router: Router) { @@ -35,9 +31,9 @@ export class Login { }) .then(status) .then(json) - .then((response) => { + .then((response:any) => { localStorage.setItem('jwt', response.id_token); - this.router.parent.navigate('/home'); + this.router.parent.navigateByUrl('/home'); }) .catch((error) => { alert(error.message); @@ -47,6 +43,6 @@ export class Login { signup(event) { event.preventDefault(); - this.router.parent.navigate('/signup'); + this.router.parent.navigateByUrl('/signup'); } } diff --git a/src/signup/signup.html b/src/signup/signup.html index 529fe63..a28e2ba 100644 --- a/src/signup/signup.html +++ b/src/signup/signup.html @@ -1,4 +1,4 @@ -