├── ember-v2.13.0 ├── app │ ├── models │ │ └── .gitkeep │ ├── routes │ │ └── .gitkeep │ ├── styles │ │ └── .gitkeep │ ├── components │ │ ├── .gitkeep │ │ └── my-table.js │ ├── controllers │ │ └── .gitkeep │ ├── helpers │ │ ├── .gitkeep │ │ └── eq.js │ ├── templates │ │ ├── components │ │ │ └── .gitkeep │ │ └── index.hbs │ ├── resolver.js │ ├── router.js │ ├── app.js │ └── index.html ├── tests │ ├── unit │ │ └── .gitkeep │ ├── integration │ │ └── .gitkeep │ ├── test-helper.js │ ├── helpers │ │ ├── destroy-app.js │ │ ├── resolver.js │ │ ├── start-app.js │ │ └── module-for-acceptance.js │ ├── .jshintrc │ └── index.html ├── vendor │ └── .gitkeep ├── .watchmanconfig ├── .bowerrc ├── public │ ├── robots.txt │ └── crossdomain.xml ├── bower.json ├── testem.js ├── .ember-cli ├── .gitignore ├── .travis.yml ├── .editorconfig ├── .jshintrc └── ember-cli-build.js ├── marko-v4.3.0 ├── .gitignore ├── src │ ├── client.js │ └── main │ │ └── components │ │ └── row.marko ├── index.html └── package.json ├── polymer-v1.7.0 ├── .gitignore ├── polymer.json ├── bower.json ├── index.html └── package.json ├── binding.scala-v10.0.1 ├── .gitignore ├── project │ ├── build.properties │ └── plugins.sbt ├── build.sbt ├── js │ └── build.sbt ├── package.json └── src │ └── main │ └── assets │ └── index.html ├── riot-v3.5.0 ├── .babelrc ├── src │ └── main.es6.js ├── package.json ├── index.html └── webpack.config.js ├── Datum-v0.8.0 ├── .babelrc ├── package.json └── webpack.config.js ├── dio-v3.0.5 ├── .babelrc ├── index.html ├── webpack.config.js └── package.json ├── glimmer-v0.3.10 ├── src │ ├── ui │ │ ├── styles │ │ │ └── app.scss │ │ ├── components │ │ │ ├── eq │ │ │ │ └── helper.ts │ │ │ └── if │ │ │ │ └── helper.ts │ │ └── index.html │ ├── index.ts │ └── main.ts ├── public │ └── robots.txt ├── config │ ├── environment.js │ ├── module-map.d.ts │ └── resolver-configuration.d.ts ├── tsconfig.json ├── .editorconfig ├── README.md ├── package.json └── ember-cli-build.js ├── knockout-v3.4.1 ├── .babelrc ├── package.json └── webpack.config.js ├── marionette-v3.3.1 ├── .babelrc ├── package.json └── webpack.config.js ├── ractive-edge ├── .babelrc ├── index.html ├── package.json └── webpack.config.js ├── vanillajs-keyed ├── .babelrc ├── webpack.config.js └── package.json ├── vue-v2.3.3-keyed ├── .babelrc ├── src │ └── main.es6.js ├── index.html ├── package.json └── webpack.config.js ├── vanillajs-non-keyed ├── .babelrc ├── webpack.config.js └── package.json ├── vue-v2.3.3-non-keyed ├── .babelrc ├── src │ └── main.es6.js ├── index.html ├── package.json └── webpack.config.js ├── angular-v1.6.3-keyed ├── .babelrc ├── webpack.config.js ├── src │ └── main.js └── package.json ├── preact-v7.1.0 ├── .babelrc ├── index.html ├── webpack.config.js ├── package.json └── src │ └── Row.jsx ├── ractive-v0.8.12-keyed ├── .babelrc ├── index.html ├── package.json └── webpack.config.js ├── favicon.ico ├── ractive-v0.8.12-non-keyed ├── .babelrc ├── index.html ├── package.json └── webpack.config.js ├── react-lite-v0.15.30 ├── .babelrc ├── src │ ├── main.es6.js │ └── Row.jsx ├── index.html ├── webpack.config.js └── package.json ├── react-v15.5.4-keyed ├── .babelrc ├── src │ ├── main.es6.js │ └── Row.jsx ├── index.html ├── package.json └── webpack.config.js ├── react-v15.5.4-non-keyed ├── .babelrc ├── src │ ├── main.es6.js │ └── Row.jsx ├── index.html ├── package.json └── webpack.config.js ├── bobril-v7.1.2 ├── .vscode │ └── settings.json ├── index.html └── tsconfig.json ├── mithril-v1.1.1 ├── .babelrc ├── src │ └── main.es6.js ├── index.html ├── package.json └── webpack.config.js ├── react-v15.5.4-redux-v3.6.0 ├── .babelrc ├── index.html ├── src │ └── main.es6.js ├── webpack.config.js └── package.json ├── vidom-v0.9.8 ├── .babelrc ├── src │ └── main.es6.js ├── index.html ├── package.json └── webpack.config.js ├── simulacra-v2.1.1 ├── .babelrc ├── webpack.config.js └── package.json ├── css ├── currentStyle.css ├── useOriginalBootstrap.css ├── bootstrap │ ├── fonts │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ └── glyphicons-halflings-regular.woff2 │ ├── grunt │ │ ├── .jshintrc │ │ └── bs-commonjs-generator.js │ ├── dist │ │ ├── fonts │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ └── glyphicons-halflings-regular.woff2 │ │ └── js │ │ │ └── npm.js │ ├── less │ │ ├── mixins │ │ │ ├── center-block.less │ │ │ ├── size.less │ │ │ ├── opacity.less │ │ │ ├── text-emphasis.less │ │ │ ├── text-overflow.less │ │ │ ├── background-variant.less │ │ │ ├── tab-focus.less │ │ │ ├── resize.less │ │ │ ├── labels.less │ │ │ ├── progress-bar.less │ │ │ ├── reset-filter.less │ │ │ ├── nav-divider.less │ │ │ ├── alerts.less │ │ │ ├── nav-vertical-align.less │ │ │ ├── responsive-visibility.less │ │ │ ├── border-radius.less │ │ │ ├── reset-text.less │ │ │ ├── pagination.less │ │ │ ├── panels.less │ │ │ ├── hide-text.less │ │ │ ├── list-group.less │ │ │ ├── clearfix.less │ │ │ ├── table-row.less │ │ │ └── image.less │ │ ├── wells.less │ │ ├── breadcrumbs.less │ │ ├── responsive-embed.less │ │ ├── component-animations.less │ │ ├── close.less │ │ ├── thumbnails.less │ │ ├── utilities.less │ │ ├── pager.less │ │ ├── media.less │ │ ├── mixins.less │ │ └── labels.less │ ├── CHANGELOG.md │ └── LICENSE └── main.css ├── aurelia-v1.1.0 ├── favicon.ico ├── src │ └── main.js ├── jsconfig.json ├── index.html └── .babelrc ├── elm-v0.18.0 ├── .gitignore ├── index.html ├── elm-package.json └── package.json ├── .travis.yml ├── angular-v4.1.2-keyed ├── .gitignore ├── src │ ├── main.aot.ts │ └── main.jit.ts ├── index.jit.html ├── index.html ├── rollup.config.aot.js ├── rollup.config.jit.js ├── tsconfig.json ├── closure.conf └── package.json ├── angular-v4.1.2-non-keyed ├── .gitignore ├── src │ ├── main.aot.ts │ └── main.jit.ts ├── index.jit.html ├── index.html ├── rollup.config.aot.js ├── rollup.config.jit.js ├── tsconfig.json ├── closure.conf └── package.json ├── rx-domh-v0.0.2-rxjs-v5.3.0 ├── .babelrc ├── index.html ├── package.json └── webpack.config.js ├── react-v15.5.4-mobX-v3.1.9 ├── .babelrc ├── index.html ├── webpack.config.js ├── src │ └── Row.jsx └── package.json ├── inferno-v3.1.2-keyed ├── src │ └── main.es6.js ├── .babelrc ├── index.html ├── package.json └── webpack.config.js ├── inferno-v3.1.2-non-keyed ├── src │ └── main.es6.js ├── .babelrc ├── index.html ├── package.json └── webpack.config.js ├── ivi-v0.7.0 ├── .gitignore ├── index.html └── package.json ├── kivi-v1.0.0-rc2 ├── .gitignore ├── index.html ├── tsconfig.json └── package.json ├── svelte-v1.8.1 ├── src │ └── main.es6.js ├── index.html ├── rollup.config.js └── package.json ├── cyclejs-dom-v17.1.0 ├── .babelrc ├── index.html ├── package.json └── webpack.config.js ├── angular-v2.4.9-keyed ├── typings │ ├── index.d.ts │ └── globals │ │ ├── node │ │ └── typings.json │ │ ├── core-js │ │ └── typings.json │ │ └── jasmine │ │ └── typings.json ├── typings.json ├── src │ ├── main.aot.ts │ └── main.jit.ts ├── index.html ├── tsconfig.json └── package.json ├── angular-v2.4.9-non-keyed ├── typings │ ├── index.d.ts │ └── globals │ │ ├── node │ │ └── typings.json │ │ ├── core-js │ │ └── typings.json │ │ └── jasmine │ │ └── typings.json ├── typings.json ├── src │ ├── main.aot.ts │ └── main.jit.ts ├── index.html ├── tsconfig.json └── package.json ├── slim-js-v2.8.20 ├── .babelrc ├── index.html └── package.json ├── surplus-v0.4.0 ├── src │ └── main.ts ├── webpack.config.js ├── index.html ├── tsconfig.json └── package.json ├── plastiq-v1.33.0 ├── index.html ├── package.json └── webpack.config.js ├── pico-dom-v0.18.0 ├── index.html ├── src │ ├── time.js │ └── main.js └── package.json ├── domvm-v2.1.4-keyed ├── index.html ├── build.js └── package.json ├── stem-v0.2.70 ├── .babelrc ├── .gitignore ├── index.html ├── src │ ├── rollup.config.js │ └── Row.jsx ├── package.json └── README.md ├── domvm-v2.1.4-non-keyed ├── index.html ├── build.js └── package.json ├── hyperapp-v0.9.1 ├── index.html ├── rollup.config.js ├── src │ └── rowsView.js └── package.json ├── choo-v5.4.0 ├── index.html ├── package.json └── src │ └── rowsView.js ├── tsers-v1.0.0 ├── index.html └── package.json ├── webdriver-ts ├── src │ └── createIndex.ts ├── tsconfig.json ├── README.txt ├── package.json └── index.dot ├── webdriver-java ├── src │ └── main │ │ └── java │ │ └── net │ │ └── stefankrause │ │ └── Framework.java └── package.json ├── nx-v1.0.0-beta.2.0.1-keyed ├── package.json └── src │ ├── timer.js │ └── randomSentence.js ├── nx-v1.0.0-beta.2.0.1-non-keyed ├── package.json └── src │ ├── timer.js │ └── randomSentence.js ├── cleanup.sh ├── install.js ├── package.json └── .gitignore /ember-v2.13.0/app/models/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ember-v2.13.0/app/routes/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ember-v2.13.0/app/styles/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ember-v2.13.0/tests/unit/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ember-v2.13.0/vendor/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /marko-v4.3.0/.gitignore: -------------------------------------------------------------------------------- 1 | *.marko.js -------------------------------------------------------------------------------- /ember-v2.13.0/app/components/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ember-v2.13.0/app/controllers/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ember-v2.13.0/app/helpers/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /polymer-v1.7.0/.gitignore: -------------------------------------------------------------------------------- 1 | build/ 2 | -------------------------------------------------------------------------------- /ember-v2.13.0/tests/integration/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ember-v2.13.0/app/templates/components/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /binding.scala-v10.0.1/.gitignore: -------------------------------------------------------------------------------- 1 | target/ 2 | local.sbt -------------------------------------------------------------------------------- /riot-v3.5.0/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["es2015-riot"] 3 | } -------------------------------------------------------------------------------- /Datum-v0.8.0/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets" : [ "babel-preset-es2015"] 3 | } -------------------------------------------------------------------------------- /binding.scala-v10.0.1/project/build.properties: -------------------------------------------------------------------------------- 1 | sbt.version=0.13.13 2 | -------------------------------------------------------------------------------- /dio-v3.0.5/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets" : [ "babel-preset-es2015"] 3 | } -------------------------------------------------------------------------------- /glimmer-v0.3.10/src/ui/styles/app.scss: -------------------------------------------------------------------------------- 1 | h1 { 2 | color: #444; 3 | } 4 | -------------------------------------------------------------------------------- /ember-v2.13.0/.watchmanconfig: -------------------------------------------------------------------------------- 1 | { 2 | "ignore_dirs": ["tmp", "dist"] 3 | } 4 | -------------------------------------------------------------------------------- /knockout-v3.4.1/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets" : [ "babel-preset-es2015"] 3 | } -------------------------------------------------------------------------------- /marionette-v3.3.1/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets" : [ "babel-preset-es2015"] 3 | } -------------------------------------------------------------------------------- /ractive-edge/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | presets: [ "es2015"], 3 | plugins: [] 4 | } -------------------------------------------------------------------------------- /vanillajs-keyed/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets" : [ "babel-preset-es2015"] 3 | } -------------------------------------------------------------------------------- /vue-v2.3.3-keyed/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["es2015", "stage-0"] 3 | } 4 | -------------------------------------------------------------------------------- /vanillajs-non-keyed/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets" : [ "babel-preset-es2015"] 3 | } -------------------------------------------------------------------------------- /vue-v2.3.3-non-keyed/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["es2015", "stage-0"] 3 | } 4 | -------------------------------------------------------------------------------- /angular-v1.6.3-keyed/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | "es2015" 4 | ] 5 | } -------------------------------------------------------------------------------- /preact-v7.1.0/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | presets: [ "es2015", "react"], 3 | plugins: [] 4 | } -------------------------------------------------------------------------------- /ractive-v0.8.12-keyed/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | presets: [ "es2015"], 3 | plugins: [] 4 | } -------------------------------------------------------------------------------- /favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sveltejs/js-framework-benchmark/master/favicon.ico -------------------------------------------------------------------------------- /ractive-v0.8.12-non-keyed/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | presets: [ "es2015"], 3 | plugins: [] 4 | } -------------------------------------------------------------------------------- /ember-v2.13.0/.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "bower_components", 3 | "analytics": false 4 | } 5 | -------------------------------------------------------------------------------- /ember-v2.13.0/app/templates/index.hbs: -------------------------------------------------------------------------------- 1 |
2 | {{my-table}} 3 |
4 | -------------------------------------------------------------------------------- /ember-v2.13.0/public/robots.txt: -------------------------------------------------------------------------------- 1 | # http://www.robotstxt.org 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /glimmer-v0.3.10/public/robots.txt: -------------------------------------------------------------------------------- 1 | # http://www.robotstxt.org 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /react-lite-v0.15.30/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | presets: [ "es2015", "react"], 3 | plugins: [] 4 | } -------------------------------------------------------------------------------- /react-v15.5.4-keyed/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | presets: [ "es2015", "react"], 3 | plugins: [] 4 | } -------------------------------------------------------------------------------- /react-v15.5.4-non-keyed/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | presets: [ "es2015", "react"], 3 | plugins: [] 4 | } -------------------------------------------------------------------------------- /bobril-v7.1.2/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "typescript.tsdk": "./node_modules/typescript/lib" 3 | } -------------------------------------------------------------------------------- /mithril-v1.1.1/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | presets: [ "es2015"], 3 | plugins: ["transform-react-jsx"] 4 | } -------------------------------------------------------------------------------- /react-v15.5.4-redux-v3.6.0/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | presets: [ "es2015", "react"], 3 | plugins: [] 4 | } -------------------------------------------------------------------------------- /vidom-v0.9.8/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | presets: [ "es2015", "stage-0" ], 3 | plugins: ["vidom-jsx"] 4 | } -------------------------------------------------------------------------------- /vidom-v0.9.8/src/main.es6.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var Controller = require('./controller'); 4 | 5 | -------------------------------------------------------------------------------- /ember-v2.13.0/app/resolver.js: -------------------------------------------------------------------------------- 1 | import Resolver from 'ember-resolver'; 2 | 3 | export default Resolver; 4 | -------------------------------------------------------------------------------- /simulacra-v2.1.1/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | "es2015" 4 | ], 5 | "plugins": [ 6 | ] 7 | } -------------------------------------------------------------------------------- /glimmer-v0.3.10/src/ui/components/eq/helper.ts: -------------------------------------------------------------------------------- 1 | export default function eq([a, b]) { 2 | return a === b; 3 | } -------------------------------------------------------------------------------- /polymer-v1.7.0/polymer.json: -------------------------------------------------------------------------------- 1 | { 2 | "entrypoint": "index.html", 3 | "shell": "src/main-element.html" 4 | } 5 | -------------------------------------------------------------------------------- /css/currentStyle.css: -------------------------------------------------------------------------------- 1 | @import url("/css/bootstrap/dist/css/bootstrap.min.css"); 2 | @import url("/css/main.css"); 3 | -------------------------------------------------------------------------------- /marko-v4.3.0/src/client.js: -------------------------------------------------------------------------------- 1 | var main = require('./main'); 2 | 3 | main.renderSync() 4 | .appendTo(document.body); -------------------------------------------------------------------------------- /aurelia-v1.1.0/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sveltejs/js-framework-benchmark/master/aurelia-v1.1.0/favicon.ico -------------------------------------------------------------------------------- /css/useOriginalBootstrap.css: -------------------------------------------------------------------------------- 1 | @import url("/css/bootstrap/dist/css/bootstrap.min.css"); 2 | @import url("/css/main.css"); 3 | -------------------------------------------------------------------------------- /elm-v0.18.0/.gitignore: -------------------------------------------------------------------------------- 1 | # elm-package generated files 2 | elm-stuff/ 3 | 4 | # elm-repl generated files 5 | repl-temp-* 6 | 7 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "node" 4 | install: 5 | - npm install 6 | script: 7 | - npm run build-prod -------------------------------------------------------------------------------- /angular-v4.1.2-keyed/.gitignore: -------------------------------------------------------------------------------- 1 | dist/ 2 | lib/ 3 | node_modules/ 4 | src/app.ngfactory.ts 5 | src/app.ngsummery.json 6 | tmp/ 7 | -------------------------------------------------------------------------------- /angular-v4.1.2-non-keyed/.gitignore: -------------------------------------------------------------------------------- 1 | dist/ 2 | lib/ 3 | node_modules/ 4 | src/app.ngfactory.ts 5 | src/app.ngsummery.json 6 | tmp/ 7 | -------------------------------------------------------------------------------- /rx-domh-v0.0.2-rxjs-v5.3.0/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | "es2015", 4 | "react" 5 | ], 6 | "plugins": [] 7 | } -------------------------------------------------------------------------------- /glimmer-v0.3.10/src/ui/components/if/helper.ts: -------------------------------------------------------------------------------- 1 | export default function _if([test, truthy, falsy]) { 2 | return test ? truthy : falsy; 3 | } -------------------------------------------------------------------------------- /react-v15.5.4-mobX-v3.1.9/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | presets: [ "es2015", "stage-0", "react"], 3 | plugins: ["transform-decorators-legacy"] 4 | } -------------------------------------------------------------------------------- /inferno-v3.1.2-keyed/src/main.es6.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | import Inferno from "inferno"; 4 | import {Controller} from './controller'; 5 | 6 | -------------------------------------------------------------------------------- /inferno-v3.1.2-non-keyed/src/main.es6.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | import Inferno from "inferno"; 4 | import {Controller} from './controller'; 5 | 6 | -------------------------------------------------------------------------------- /ivi-v0.7.0/.gitignore: -------------------------------------------------------------------------------- 1 | build 2 | dist 3 | 4 | node_modules 5 | 6 | .DS_Store 7 | .idea 8 | .vscode 9 | .npm-debug 10 | npm-debug.log 11 | -------------------------------------------------------------------------------- /kivi-v1.0.0-rc2/.gitignore: -------------------------------------------------------------------------------- 1 | build 2 | dist 3 | 4 | node_modules 5 | 6 | .DS_Store 7 | .idea 8 | .vscode 9 | .npm-debug 10 | npm-debug.log 11 | -------------------------------------------------------------------------------- /svelte-v1.8.1/src/main.es6.js: -------------------------------------------------------------------------------- 1 | import Main from './Main.html'; 2 | 3 | window.s = new Main({ 4 | target: document.querySelector( '#main' ) 5 | }); 6 | -------------------------------------------------------------------------------- /ember-v2.13.0/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ember-temp", 3 | "dependencies": { 4 | "ember": "2.10.0-beta.3", 5 | "ember-cli-shims": "0.1.3" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /polymer-v1.7.0/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "polymer-temp", 3 | "dependencies": { 4 | "polymer": "1.7.0", 5 | "webcomponentsjs": "^0.7.22" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /riot-v3.5.0/src/main.es6.js: -------------------------------------------------------------------------------- 1 | import riot from 'riot' 2 | import Store from './store' 3 | import './app.html' 4 | 5 | riot.mount('app', { 6 | store: new Store() 7 | }); -------------------------------------------------------------------------------- /vue-v2.3.3-keyed/src/main.es6.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import App from './App.vue' 3 | 4 | new Vue({ 5 | el: '#main', 6 | render: h => h(App) 7 | }) 8 | -------------------------------------------------------------------------------- /css/bootstrap/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sveltejs/js-framework-benchmark/master/css/bootstrap/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /css/bootstrap/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sveltejs/js-framework-benchmark/master/css/bootstrap/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /ember-v2.13.0/app/helpers/eq.js: -------------------------------------------------------------------------------- 1 | import Ember from 'ember'; 2 | 3 | export default Ember.Helper.helper(function(params) { 4 | return params[0] === params[1]; 5 | }); 6 | -------------------------------------------------------------------------------- /ember-v2.13.0/tests/test-helper.js: -------------------------------------------------------------------------------- 1 | import resolver from './helpers/resolver'; 2 | import { 3 | setResolver 4 | } from 'ember-qunit'; 5 | 6 | setResolver(resolver); 7 | -------------------------------------------------------------------------------- /vue-v2.3.3-non-keyed/src/main.es6.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import App from './App.vue' 3 | 4 | new Vue({ 5 | el: '#main', 6 | render: h => h(App) 7 | }) 8 | -------------------------------------------------------------------------------- /css/bootstrap/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sveltejs/js-framework-benchmark/master/css/bootstrap/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /css/bootstrap/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sveltejs/js-framework-benchmark/master/css/bootstrap/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /css/bootstrap/grunt/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends" : "../js/.jshintrc", 3 | "asi" : false, 4 | "browser" : false, 5 | "es3" : false, 6 | "node" : true 7 | } 8 | -------------------------------------------------------------------------------- /css/bootstrap/dist/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sveltejs/js-framework-benchmark/master/css/bootstrap/dist/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /css/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sveltejs/js-framework-benchmark/master/css/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /cyclejs-dom-v17.1.0/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | "es2015" 4 | ], 5 | "plugins": [ 6 | "syntax-jsx", 7 | ["transform-react-jsx", {"pragma": "html"}] 8 | ] 9 | } -------------------------------------------------------------------------------- /ember-v2.13.0/tests/helpers/destroy-app.js: -------------------------------------------------------------------------------- 1 | import Ember from 'ember'; 2 | 3 | export default function destroyApp(application) { 4 | Ember.run(application, 'destroy'); 5 | } 6 | -------------------------------------------------------------------------------- /css/bootstrap/dist/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sveltejs/js-framework-benchmark/master/css/bootstrap/dist/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /css/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sveltejs/js-framework-benchmark/master/css/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /css/bootstrap/less/mixins/center-block.less: -------------------------------------------------------------------------------- 1 | // Center-align a block level element 2 | 3 | .center-block() { 4 | display: block; 5 | margin-left: auto; 6 | margin-right: auto; 7 | } 8 | -------------------------------------------------------------------------------- /inferno-v3.1.2-keyed/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ "es2015", "stage-0" ], 3 | "plugins": ["babel-plugin-syntax-jsx", ["babel-plugin-inferno", {"inline": true, "preclone": true}]] 4 | } -------------------------------------------------------------------------------- /inferno-v3.1.2-non-keyed/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ "es2015", "stage-0" ], 3 | "plugins": ["babel-plugin-syntax-jsx", ["babel-plugin-inferno", {"inline": true, "preclone": true}]] 4 | } -------------------------------------------------------------------------------- /angular-v2.4.9-keyed/typings/index.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | -------------------------------------------------------------------------------- /angular-v2.4.9-non-keyed/typings/index.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | -------------------------------------------------------------------------------- /css/bootstrap/less/mixins/size.less: -------------------------------------------------------------------------------- 1 | // Sizing shortcuts 2 | 3 | .size(@width; @height) { 4 | width: @width; 5 | height: @height; 6 | } 7 | 8 | .square(@size) { 9 | .size(@size; @size); 10 | } 11 | -------------------------------------------------------------------------------- /css/bootstrap/less/mixins/opacity.less: -------------------------------------------------------------------------------- 1 | // Opacity 2 | 3 | .opacity(@opacity) { 4 | opacity: @opacity; 5 | // IE8 filter 6 | @opacity-ie: (@opacity * 100); 7 | filter: ~"alpha(opacity=@{opacity-ie})"; 8 | } 9 | -------------------------------------------------------------------------------- /css/bootstrap/less/mixins/text-emphasis.less: -------------------------------------------------------------------------------- 1 | // Typography 2 | 3 | .text-emphasis-variant(@color) { 4 | color: @color; 5 | a&:hover, 6 | a&:focus { 7 | color: darken(@color, 10%); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /aurelia-v1.1.0/src/main.js: -------------------------------------------------------------------------------- 1 | export async function configure(aurelia) { 2 | aurelia.use 3 | .defaultBindingLanguage() 4 | .defaultResources(); 5 | 6 | await aurelia.start(); 7 | aurelia.setRoot('app'); 8 | } -------------------------------------------------------------------------------- /css/bootstrap/less/mixins/text-overflow.less: -------------------------------------------------------------------------------- 1 | // Text overflow 2 | // Requires inline-block or block for proper styling 3 | 4 | .text-overflow() { 5 | overflow: hidden; 6 | text-overflow: ellipsis; 7 | white-space: nowrap; 8 | } 9 | -------------------------------------------------------------------------------- /glimmer-v0.3.10/config/environment.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = function(environment) { 4 | let ENV = { 5 | modulePrefix: 'glimmer-app', 6 | environment: environment 7 | }; 8 | 9 | return ENV; 10 | }; 11 | -------------------------------------------------------------------------------- /mithril-v1.1.1/src/main.es6.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | /** @jsx m */ 3 | var m = require('mithril') 4 | //controller 5 | var { Controller } = require('./controller'); 6 | 7 | //initialize 8 | m.mount(document.getElementById("main"), Controller); -------------------------------------------------------------------------------- /css/bootstrap/less/mixins/background-variant.less: -------------------------------------------------------------------------------- 1 | // Contextual backgrounds 2 | 3 | .bg-variant(@color) { 4 | background-color: @color; 5 | a&:hover, 6 | a&:focus { 7 | background-color: darken(@color, 10%); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /css/bootstrap/less/mixins/tab-focus.less: -------------------------------------------------------------------------------- 1 | // WebKit-style focus 2 | 3 | .tab-focus() { 4 | // Default 5 | outline: thin dotted; 6 | // WebKit 7 | outline: 5px auto -webkit-focus-ring-color; 8 | outline-offset: -2px; 9 | } 10 | -------------------------------------------------------------------------------- /aurelia-v1.1.0/jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2015", 4 | "lib": ["es2017", "dom"], 5 | "experimentalDecorators": true 6 | }, 7 | "exclude": [ 8 | "node_modules", 9 | "dist" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /css/bootstrap/less/mixins/resize.less: -------------------------------------------------------------------------------- 1 | // Resize anything 2 | 3 | .resizable(@direction) { 4 | resize: @direction; // Options: horizontal, vertical, both 5 | overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible` 6 | } 7 | -------------------------------------------------------------------------------- /react-lite-v0.15.30/src/main.es6.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | let React = require('react'); 4 | let ReactDOM = require('react-dom'); 5 | let {Main} = require('./Main'); 6 | 7 | ReactDOM.render(React.createElement(Main, {}), document.getElementById('main')); -------------------------------------------------------------------------------- /react-v15.5.4-keyed/src/main.es6.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | let React = require('react'); 4 | let ReactDOM = require('react-dom'); 5 | let {Main} = require('./Main'); 6 | 7 | ReactDOM.render(React.createElement(Main, {}), document.getElementById('main')); -------------------------------------------------------------------------------- /react-v15.5.4-non-keyed/src/main.es6.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | let React = require('react'); 4 | let ReactDOM = require('react-dom'); 5 | let {Main} = require('./Main'); 6 | 7 | ReactDOM.render(React.createElement(Main, {}), document.getElementById('main')); -------------------------------------------------------------------------------- /slim-js-v2.8.20/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["es2015"], 3 | "plugins": [ 4 | "transform-decorators-legacy", 5 | "transform-decorators", 6 | "transform-custom-element-classes", 7 | "transform-es2015-classes"] 8 | } 9 | -------------------------------------------------------------------------------- /css/bootstrap/less/mixins/labels.less: -------------------------------------------------------------------------------- 1 | // Labels 2 | 3 | .label-variant(@color) { 4 | background-color: @color; 5 | 6 | &[href] { 7 | &:hover, 8 | &:focus { 9 | background-color: darken(@color, 10%); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /angular-v2.4.9-keyed/typings.json: -------------------------------------------------------------------------------- 1 | { 2 | "globalDependencies": { 3 | "core-js": "registry:dt/core-js#0.0.0+20160725163759", 4 | "jasmine": "registry:dt/jasmine#2.2.0+20160621224255", 5 | "node": "registry:dt/node#6.0.0+20160830141956" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /angular-v2.4.9-non-keyed/typings.json: -------------------------------------------------------------------------------- 1 | { 2 | "globalDependencies": { 3 | "core-js": "registry:dt/core-js#0.0.0+20160725163759", 4 | "jasmine": "registry:dt/jasmine#2.2.0+20160621224255", 5 | "node": "registry:dt/node#6.0.0+20160830141956" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /binding.scala-v10.0.1/project/plugins.sbt: -------------------------------------------------------------------------------- 1 | addSbtPlugin("com.thoughtworks.sbt-best-practice" % "sbt-best-practice" % "latest.release") 2 | 3 | addSbtPlugin("com.vmunier" % "sbt-web-scalajs" % "1.0.1") 4 | 5 | addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.13") 6 | -------------------------------------------------------------------------------- /binding.scala-v10.0.1/build.sbt: -------------------------------------------------------------------------------- 1 | enablePlugins(SbtWeb) 2 | 3 | lazy val js = project 4 | 5 | scalaJSProjects += js 6 | 7 | pipelineStages in Assets += scalaJSPipeline 8 | 9 | scalaVersion in Global := "2.11.8" 10 | 11 | scalacOptions in Global += "-optimise" 12 | -------------------------------------------------------------------------------- /css/bootstrap/less/mixins/progress-bar.less: -------------------------------------------------------------------------------- 1 | // Progress bars 2 | 3 | .progress-bar-variant(@color) { 4 | background-color: @color; 5 | 6 | // Deprecated parent class requirement as of v3.2.0 7 | .progress-striped & { 8 | #gradient > .striped(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /aurelia-v1.1.0/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Aurelia v1.1.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /surplus-v0.4.0/src/main.ts: -------------------------------------------------------------------------------- 1 | import { Store } from './store'; 2 | import { App } from './controller'; 3 | import { AppView } from './view'; 4 | import * as S from 's-js'; 5 | 6 | var view = S.root(() => AppView(new App(new Store()))) ; 7 | document.getElementById('main')!.appendChild(view); -------------------------------------------------------------------------------- /binding.scala-v10.0.1/js/build.sbt: -------------------------------------------------------------------------------- 1 | enablePlugins(ScalaJSPlugin, ScalaJSWeb) 2 | 3 | libraryDependencies += "com.thoughtworks.binding" %%% "dom" % "10.0.1" 4 | 5 | addCompilerPlugin("org.scalamacros" % "paradise" % "2.1.0" cross CrossVersion.full) 6 | 7 | persistLauncher in Compile := true 8 | -------------------------------------------------------------------------------- /angular-v4.1.2-keyed/src/main.aot.ts: -------------------------------------------------------------------------------- 1 | import { platformBrowser } from '@angular/platform-browser'; 2 | import { enableProdMode } from '@angular/core'; 3 | import { AppModuleNgFactory } from './app.ngfactory'; 4 | enableProdMode(); 5 | platformBrowser().bootstrapModuleFactory(AppModuleNgFactory); 6 | -------------------------------------------------------------------------------- /angular-v4.1.2-non-keyed/src/main.aot.ts: -------------------------------------------------------------------------------- 1 | import { platformBrowser } from '@angular/platform-browser'; 2 | import { enableProdMode } from '@angular/core'; 3 | import { AppModuleNgFactory } from './app.ngfactory'; 4 | enableProdMode(); 5 | platformBrowser().bootstrapModuleFactory(AppModuleNgFactory); 6 | -------------------------------------------------------------------------------- /plastiq-v1.33.0/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | plastiq v1.33.0 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /bobril-v7.1.2/index.html: -------------------------------------------------------------------------------- 1 | Bobril v7.1.2 -------------------------------------------------------------------------------- /ember-v2.13.0/app/router.js: -------------------------------------------------------------------------------- 1 | import Ember from 'ember'; 2 | import config from './config/environment'; 3 | 4 | const Router = Ember.Router.extend({ 5 | location: config.locationType, 6 | rootURL: config.rootURL 7 | }); 8 | 9 | Router.map(function() { 10 | }); 11 | 12 | export default Router; 13 | -------------------------------------------------------------------------------- /pico-dom-v0.18.0/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | picoDOM v0.18.0 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /domvm-v2.1.4-keyed/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | domvm v2.1.4-keyed 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /stem-v0.2.70/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "external-helpers", 4 | "transform-decorators-legacy", 5 | "transform-class-properties", 6 | ["transform-react-jsx", { "pragma": "UI.createElement" }], 7 | ], 8 | "presets": [ ["es2015", {"modules": false}]] 9 | } 10 | -------------------------------------------------------------------------------- /css/bootstrap/less/mixins/reset-filter.less: -------------------------------------------------------------------------------- 1 | // Reset filters for IE 2 | // 3 | // When you need to remove a gradient background, do not forget to use this to reset 4 | // the IE filter for IE9 and below. 5 | 6 | .reset-filter() { 7 | filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)")); 8 | } 9 | -------------------------------------------------------------------------------- /domvm-v2.1.4-non-keyed/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | domvm v2.1.4-non-keyed 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /hyperapp-v0.9.1/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | HyperApp v0.9.1 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /css/bootstrap/less/mixins/nav-divider.less: -------------------------------------------------------------------------------- 1 | // Horizontal dividers 2 | // 3 | // Dividers (basically an hr) within dropdowns and nav lists 4 | 5 | .nav-divider(@color: #e5e5e5) { 6 | height: 1px; 7 | margin: ((@line-height-computed / 2) - 1) 0; 8 | overflow: hidden; 9 | background-color: @color; 10 | } 11 | -------------------------------------------------------------------------------- /ember-v2.13.0/testem.js: -------------------------------------------------------------------------------- 1 | /*jshint node:true*/ 2 | module.exports = { 3 | "framework": "qunit", 4 | "test_page": "tests/index.html?hidepassed", 5 | "disable_watching": true, 6 | "launch_in_ci": [ 7 | "PhantomJS" 8 | ], 9 | "launch_in_dev": [ 10 | "PhantomJS", 11 | "Chrome" 12 | ] 13 | }; 14 | -------------------------------------------------------------------------------- /ivi-v0.7.0/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ivi v0.7.0 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /choo-v5.4.0/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Choo v5.4.0 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /mithril-v1.1.1/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Mithril v1.1.1 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /preact-v7.1.0/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | preact v7.1.0 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /tsers-v1.0.0/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | TSERS v1.0.0 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /vidom-v0.9.8/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | vidom v0.9.8 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /kivi-v1.0.0-rc2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | kivi v1.0.0-rc0 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /marko-v4.3.0/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Marko 4.3.0 6 | 7 | 8 | 9 |
10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /ractive-edge/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Ractive edge 5 | 6 | 7 | 8 |
9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /svelte-v1.8.1/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Svelte v1.8.1 5 | 6 | 7 | 8 |
9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /vue-v2.3.3-keyed/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Vue.js v2.3.3 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /vue-v2.3.3-non-keyed/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Vue.js v2.3.3 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /inferno-v3.1.2-keyed/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Inferno v3.1.2 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /inferno-v3.1.2-non-keyed/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Inferno v3.1.2 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /react-lite-v0.15.30/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | react-lite v0.15.30 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /react-v15.5.4-keyed/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | React v15.5.4 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /cyclejs-dom-v17.1.0/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Cycle.js dom@17.1.0 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /ractive-v0.8.12-keyed/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Ractive v0.8.12 5 | 6 | 7 | 8 |
9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /react-v15.5.4-non-keyed/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | React v15.5.4 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /ember-v2.13.0/.ember-cli: -------------------------------------------------------------------------------- 1 | { 2 | /** 3 | Ember CLI sends analytics information by default. The data is completely 4 | anonymous, but there are times when you might want to disable this behavior. 5 | 6 | Setting `disableAnalytics` to true will prevent any data from being sent. 7 | */ 8 | "disableAnalytics": false 9 | } 10 | -------------------------------------------------------------------------------- /ember-v2.13.0/tests/helpers/resolver.js: -------------------------------------------------------------------------------- 1 | import Resolver from '../../resolver'; 2 | import config from '../../config/environment'; 3 | 4 | const resolver = Resolver.create(); 5 | 6 | resolver.namespace = { 7 | modulePrefix: config.modulePrefix, 8 | podModulePrefix: config.podModulePrefix 9 | }; 10 | 11 | export default resolver; 12 | -------------------------------------------------------------------------------- /ractive-v0.8.12-non-keyed/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Ractive v0.8.12 5 | 6 | 7 | 8 |
9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /ember-v2.13.0/.gitignore: -------------------------------------------------------------------------------- 1 | # See http://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # compiled output 4 | /dist 5 | /tmp 6 | 7 | # dependencies 8 | /node_modules 9 | /bower_components 10 | 11 | # misc 12 | /.sass-cache 13 | /connect.lock 14 | /coverage/* 15 | /libpeerconnection.log 16 | npm-debug.log* 17 | testem.log 18 | -------------------------------------------------------------------------------- /react-v15.5.4-mobX-v3.1.9/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | React v15.5.4 + Mobx 3.1.9 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /surplus-v0.4.0/webpack.config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = { 4 | entry: './src/main.ts', 5 | output: { 6 | filename: './dist/main.js' 7 | }, 8 | resolve: { 9 | extensions: ['.ts', '.tsx', '.js'] 10 | }, 11 | module: { 12 | rules: [ 13 | { test: /\.tsx?$/, loader: 'surplus-loader!ts-loader' }, 14 | ] 15 | } 16 | }; -------------------------------------------------------------------------------- /react-v15.5.4-redux-v3.6.0/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | React v15.4.2 Redux v3.6.0 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /rx-domh-v0.0.2-rxjs-v5.3.0/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | rx-domh v0.0.2 and rxjs v5.3.0 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /angular-v2.4.9-keyed/src/main.aot.ts: -------------------------------------------------------------------------------- 1 | import 'zone.js/dist/zone'; 2 | import 'core-js/es7/reflect'; 3 | import { platformBrowser } from '@angular/platform-browser'; 4 | import { enableProdMode } from '@angular/core'; 5 | import { AppModuleNgFactory } from './app.ngfactory'; 6 | enableProdMode(); 7 | platformBrowser().bootstrapModuleFactory(AppModuleNgFactory); 8 | -------------------------------------------------------------------------------- /css/bootstrap/less/mixins/alerts.less: -------------------------------------------------------------------------------- 1 | // Alerts 2 | 3 | .alert-variant(@background; @border; @text-color) { 4 | background-color: @background; 5 | border-color: @border; 6 | color: @text-color; 7 | 8 | hr { 9 | border-top-color: darken(@border, 5%); 10 | } 11 | .alert-link { 12 | color: darken(@text-color, 10%); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /glimmer-v0.3.10/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es6", 4 | "module": "es2015", 5 | "inlineSourceMap": true, 6 | "inlineSources": true, 7 | "moduleResolution": "node", 8 | "experimentalDecorators": true 9 | }, 10 | "exclude": [ 11 | "node_modules", 12 | "tmp", 13 | "dist" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /angular-v2.4.9-non-keyed/src/main.aot.ts: -------------------------------------------------------------------------------- 1 | import 'zone.js/dist/zone'; 2 | import 'core-js/es7/reflect'; 3 | import { platformBrowser } from '@angular/platform-browser'; 4 | import { enableProdMode } from '@angular/core'; 5 | import { AppModuleNgFactory } from './app.ngfactory'; 6 | enableProdMode(); 7 | platformBrowser().bootstrapModuleFactory(AppModuleNgFactory); 8 | -------------------------------------------------------------------------------- /binding.scala-v10.0.1/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-binding.scala", 3 | "version": "1.0.0", 4 | "description": "Benchmark for Binding.scala", 5 | "scripts": { 6 | "build-prod": "sbt web-stage" 7 | }, 8 | "devDependencies": { 9 | "sbt-bin": "0.1.2" 10 | }, 11 | "author": "杨博 (Yang Bo) " 12 | } 13 | -------------------------------------------------------------------------------- /binding.scala-v10.0.1/src/main/assets/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Binding.scala v10.0.1 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /angular-v2.4.9-keyed/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Angular v2.4.9 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /angular-v2.4.9-non-keyed/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Angular v2.4.9 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /glimmer-v0.3.10/config/module-map.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * This is just a placeholder file to keep TypeScript aware editors happy. At build time, 3 | * it will be replaced with a complete map of resolvable module paths => rolled up contents. 4 | */ 5 | 6 | export interface Dict { 7 | [index: string]: T; 8 | } 9 | 10 | declare let map: Dict; 11 | export default map; 12 | -------------------------------------------------------------------------------- /webdriver-ts/src/createIndex.ts: -------------------------------------------------------------------------------- 1 | import * as fs from 'fs'; 2 | import {JSONResult, config, frameworks} from './common' 3 | import {BenchmarkType, Benchmark, benchmarks} from './benchmarks' 4 | 5 | const dots = require('dot').process({ 6 | path: './' 7 | }); 8 | 9 | fs.writeFileSync('../index.html', dots.index({ 10 | frameworks 11 | }), { 12 | encoding: 'utf8' 13 | }) 14 | -------------------------------------------------------------------------------- /angular-v2.4.9-keyed/src/main.jit.ts: -------------------------------------------------------------------------------- 1 | //we only need reflect in JIT mode 2 | import 'core-js/es7/reflect'; 3 | import 'zone.js/dist/zone'; 4 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 5 | import { enableProdMode } from '@angular/core'; 6 | import { AppModule } from './app'; 7 | enableProdMode(); 8 | platformBrowserDynamic().bootstrapModule(AppModule); 9 | -------------------------------------------------------------------------------- /angular-v4.1.2-keyed/src/main.jit.ts: -------------------------------------------------------------------------------- 1 | //we only need reflect in JIT mode 2 | import 'core-js/es7/reflect'; 3 | import 'zone.js/dist/zone'; 4 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 5 | import { enableProdMode } from '@angular/core'; 6 | import { AppModule } from './app'; 7 | enableProdMode(); 8 | platformBrowserDynamic().bootstrapModule(AppModule); 9 | -------------------------------------------------------------------------------- /angular-v2.4.9-non-keyed/src/main.jit.ts: -------------------------------------------------------------------------------- 1 | //we only need reflect in JIT mode 2 | import 'core-js/es7/reflect'; 3 | import 'zone.js/dist/zone'; 4 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 5 | import { enableProdMode } from '@angular/core'; 6 | import { AppModule } from './app'; 7 | enableProdMode(); 8 | platformBrowserDynamic().bootstrapModule(AppModule); 9 | -------------------------------------------------------------------------------- /angular-v4.1.2-non-keyed/src/main.jit.ts: -------------------------------------------------------------------------------- 1 | //we only need reflect in JIT mode 2 | import 'core-js/es7/reflect'; 3 | import 'zone.js/dist/zone'; 4 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 5 | import { enableProdMode } from '@angular/core'; 6 | import { AppModule } from './app'; 7 | enableProdMode(); 8 | platformBrowserDynamic().bootstrapModule(AppModule); 9 | -------------------------------------------------------------------------------- /angular-v1.6.3-keyed/webpack.config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var path = require('path') 3 | 4 | module.exports = { 5 | entry: { 6 | main: './src/main' 7 | }, 8 | output: { 9 | path: './dist', 10 | filename: 'main.js' 11 | }, 12 | module: { 13 | rules: [ 14 | { 15 | test: /.js$/, 16 | loader: 'babel-loader' 17 | } 18 | ] 19 | } 20 | }; -------------------------------------------------------------------------------- /slim-js-v2.8.20/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Slim.js 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /angular-v4.1.2-keyed/index.jit.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Angular v4.0.0-rc (JIT) 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /angular-v4.1.2-non-keyed/index.jit.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Angular v4.0.0-rc (JIT) 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /bobril-v7.1.2/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es6", 4 | "module": "commonjs", 5 | "moduleResolution": "node", 6 | "jsx": "react", 7 | "reactNamespace": "b" 8 | }, 9 | "compileOnSave": false, 10 | "files": [ 11 | "node_modules/bobril/jsx.d.ts", 12 | "src/app.ts", 13 | "src/store.ts" 14 | ] 15 | } -------------------------------------------------------------------------------- /surplus-v0.4.0/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Surplus 0.4.0 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /surplus-v0.4.0/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "outDir": "./dist/", 4 | "sourceMap": true, 5 | "noImplicitAny": true, 6 | "noImplicitThis": true, 7 | "strictNullChecks": true, 8 | "module": "commonjs", 9 | "target": "es5", 10 | "jsx": "preserve" 11 | }, 12 | "files": [ 13 | "src/main.ts" 14 | ] 15 | } -------------------------------------------------------------------------------- /stem-v0.2.70/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignored extensions 2 | *.log 3 | *.swo 4 | *.swp 5 | *.vi 6 | *.zip 7 | *.pyc 8 | *~ 9 | 10 | # OS or IDE folders 11 | ._* 12 | .cache 13 | .DS_Store 14 | .idea 15 | .project 16 | .settings 17 | .tmproj 18 | *.esproj 19 | *.sublime-project 20 | *.sublime-workspace 21 | nbproject 22 | Thumbs.db 23 | 24 | # Other folders to ignore 25 | node_modules 26 | src/bundle.js 27 | 28 | -------------------------------------------------------------------------------- /webdriver-java/src/main/java/net/stefankrause/Framework.java: -------------------------------------------------------------------------------- 1 | package net.stefankrause; 2 | 3 | public final class Framework { 4 | public final String framework; 5 | public final String url; 6 | 7 | public Framework(String name) { 8 | this.framework = name; 9 | this.url = name; 10 | } 11 | public Framework(String framework, String url) { 12 | this.framework = framework; 13 | this.url = url; 14 | } 15 | } -------------------------------------------------------------------------------- /elm-v0.18.0/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Elm v0.18.0 6 | 7 | 8 | 9 |
10 | 11 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /react-v15.5.4-redux-v3.6.0/src/main.es6.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | import React from "react"; 4 | import Controller from './controller'; 5 | 6 | import ReactDOM from 'react-dom'; 7 | import store from './store'; 8 | import {Provider} from 'react-redux'; 9 | 10 | ReactDOM.render( 11 | ( 12 | 13 | 14 | 15 | ), 16 | document.getElementById("main") 17 | ); 18 | -------------------------------------------------------------------------------- /angular-v2.4.9-keyed/typings/globals/node/typings.json: -------------------------------------------------------------------------------- 1 | { 2 | "resolution": "main", 3 | "tree": { 4 | "src": "https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/67827a1e39dc91bf66a79b04f36e9eb85e075e10/node/node.d.ts", 5 | "raw": "registry:dt/node#6.0.0+20160830141956", 6 | "typings": "https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/67827a1e39dc91bf66a79b04f36e9eb85e075e10/node/node.d.ts" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /angular-v2.4.9-non-keyed/typings/globals/node/typings.json: -------------------------------------------------------------------------------- 1 | { 2 | "resolution": "main", 3 | "tree": { 4 | "src": "https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/67827a1e39dc91bf66a79b04f36e9eb85e075e10/node/node.d.ts", 5 | "raw": "registry:dt/node#6.0.0+20160830141956", 6 | "typings": "https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/67827a1e39dc91bf66a79b04f36e9eb85e075e10/node/node.d.ts" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /css/bootstrap/less/mixins/nav-vertical-align.less: -------------------------------------------------------------------------------- 1 | // Navbar vertical align 2 | // 3 | // Vertically center elements in the navbar. 4 | // Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin. 5 | 6 | .navbar-vertical-align(@element-height) { 7 | margin-top: ((@navbar-height - @element-height) / 2); 8 | margin-bottom: ((@navbar-height - @element-height) / 2); 9 | } 10 | -------------------------------------------------------------------------------- /hyperapp-v0.9.1/rollup.config.js: -------------------------------------------------------------------------------- 1 | import babel from "rollup-plugin-babel" 2 | import resolve from "rollup-plugin-node-resolve" 3 | import uglify from "rollup-plugin-uglify" 4 | 5 | export default { 6 | plugins: [ 7 | babel({ 8 | babelrc: false, 9 | presets: ["es2015-rollup"], 10 | plugins: [ 11 | ["transform-react-jsx", { pragma: "h" }] 12 | ] 13 | }), 14 | resolve({ 15 | jsnext: true 16 | }), 17 | uglify() 18 | ] 19 | } -------------------------------------------------------------------------------- /css/bootstrap/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | Bootstrap uses [GitHub's Releases feature](https://github.com/blog/1547-release-your-software) for its changelogs. 2 | 3 | See [the Releases section of our GitHub project](https://github.com/twbs/bootstrap/releases) for changelogs for each release version of Bootstrap. 4 | 5 | Release announcement posts on [the official Bootstrap blog](http://blog.getbootstrap.com) contain summaries of the most noteworthy changes made in each release. 6 | -------------------------------------------------------------------------------- /angular-v2.4.9-keyed/typings/globals/core-js/typings.json: -------------------------------------------------------------------------------- 1 | { 2 | "resolution": "main", 3 | "tree": { 4 | "src": "https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/25e18b592470e3dddccc826fde2bb8e7610ef863/core-js/core-js.d.ts", 5 | "raw": "registry:dt/core-js#0.0.0+20160725163759", 6 | "typings": "https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/25e18b592470e3dddccc826fde2bb8e7610ef863/core-js/core-js.d.ts" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /angular-v2.4.9-keyed/typings/globals/jasmine/typings.json: -------------------------------------------------------------------------------- 1 | { 2 | "resolution": "main", 3 | "tree": { 4 | "src": "https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/c49913aa9ea419ea46c1c684e488cf2a10303b1a/jasmine/jasmine.d.ts", 5 | "raw": "registry:dt/jasmine#2.2.0+20160621224255", 6 | "typings": "https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/c49913aa9ea419ea46c1c684e488cf2a10303b1a/jasmine/jasmine.d.ts" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /nx-v1.0.0-beta.2.0.1-keyed/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-nx", 3 | "version": "1.0.0", 4 | "description": "Benchmark for NX framework", 5 | "scripts": { 6 | "build-dev": "webpack ./src/app.js dist/main.js", 7 | "build-prod": "webpack ./src/app.js dist/main.js" 8 | }, 9 | "devDependencies": { 10 | "webpack": "2.5.1" 11 | }, 12 | "dependencies": { 13 | "@nx-js/framework": "^1.0.0-beta.1.1.0" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /svelte-v1.8.1/rollup.config.js: -------------------------------------------------------------------------------- 1 | import svelte from 'rollup-plugin-svelte'; 2 | import buble from 'rollup-plugin-buble'; 3 | import uglify from 'rollup-plugin-uglify'; 4 | 5 | const plugins = [ 6 | svelte(), 7 | buble() 8 | ]; 9 | 10 | if ( process.env.production ) { 11 | plugins.push( uglify() ); 12 | } 13 | 14 | export default { 15 | entry: 'src/main.es6.js', 16 | dest: 'dist/main.js', 17 | format: 'iife', 18 | plugins 19 | }; 20 | -------------------------------------------------------------------------------- /angular-v2.4.9-non-keyed/typings/globals/core-js/typings.json: -------------------------------------------------------------------------------- 1 | { 2 | "resolution": "main", 3 | "tree": { 4 | "src": "https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/25e18b592470e3dddccc826fde2bb8e7610ef863/core-js/core-js.d.ts", 5 | "raw": "registry:dt/core-js#0.0.0+20160725163759", 6 | "typings": "https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/25e18b592470e3dddccc826fde2bb8e7610ef863/core-js/core-js.d.ts" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /angular-v2.4.9-non-keyed/typings/globals/jasmine/typings.json: -------------------------------------------------------------------------------- 1 | { 2 | "resolution": "main", 3 | "tree": { 4 | "src": "https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/c49913aa9ea419ea46c1c684e488cf2a10303b1a/jasmine/jasmine.d.ts", 5 | "raw": "registry:dt/jasmine#2.2.0+20160621224255", 6 | "typings": "https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/c49913aa9ea419ea46c1c684e488cf2a10303b1a/jasmine/jasmine.d.ts" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /css/bootstrap/less/mixins/responsive-visibility.less: -------------------------------------------------------------------------------- 1 | // Responsive utilities 2 | 3 | // 4 | // More easily include all the states for responsive-utilities.less. 5 | .responsive-visibility() { 6 | display: block !important; 7 | table& { display: table !important; } 8 | tr& { display: table-row !important; } 9 | th&, 10 | td& { display: table-cell !important; } 11 | } 12 | 13 | .responsive-invisibility() { 14 | display: none !important; 15 | } 16 | -------------------------------------------------------------------------------- /kivi-v1.0.0-rc2/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es6", 4 | "lib": ["es6", "dom"], 5 | "outDir": "build/es6", 6 | "noImplicitAny": true, 7 | "noImplicitReturns": true, 8 | "noImplicitThis": true, 9 | "noUnusedLocals": true, 10 | "strictNullChecks": true, 11 | "removeComments": false, 12 | "moduleResolution": "node" 13 | }, 14 | "files": [ 15 | "main.ts" 16 | ], 17 | "compileOnSave": false 18 | } -------------------------------------------------------------------------------- /nx-v1.0.0-beta.2.0.1-non-keyed/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-nx", 3 | "version": "1.0.0", 4 | "description": "Benchmark for NX framework", 5 | "scripts": { 6 | "build-dev": "webpack ./src/app.js dist/main.js", 7 | "build-prod": "webpack ./src/app.js dist/main.js" 8 | }, 9 | "devDependencies": { 10 | "webpack": "1.14.0" 11 | }, 12 | "dependencies": { 13 | "@nx-js/framework": "^1.0.0-beta.1.1.0" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /angular-v4.1.2-keyed/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Angular v4.1.2 (AOT) 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /ember-v2.13.0/.travis.yml: -------------------------------------------------------------------------------- 1 | --- 2 | language: node_js 3 | node_js: 4 | - "4" 5 | 6 | sudo: false 7 | 8 | cache: 9 | directories: 10 | - node_modules 11 | 12 | before_install: 13 | - npm config set spin false 14 | - npm install -g bower 15 | - bower --version 16 | - npm install phantomjs-prebuilt 17 | - node_modules/phantomjs-prebuilt/bin/phantomjs --version 18 | 19 | install: 20 | - npm install 21 | - bower install 22 | 23 | script: 24 | - npm test 25 | -------------------------------------------------------------------------------- /glimmer-v0.3.10/config/resolver-configuration.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * This is just a placeholder file to keep TypeScript aware editors happy. At build time, 3 | * it will be replaced with a resolver configuration composed from your application's 4 | * `config/environment.js` (and supplemented with default settings as possible). 5 | */ 6 | 7 | import { ResolverConfiguration } from '@glimmer/resolver'; 8 | declare var _default: ResolverConfiguration; 9 | export default _default; 10 | -------------------------------------------------------------------------------- /angular-v4.1.2-non-keyed/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Angular v4.1.2 (AOT) 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /domvm-v2.1.4-keyed/build.js: -------------------------------------------------------------------------------- 1 | const rollup = require('rollup').rollup; 2 | const buble = require('rollup-plugin-buble'); 3 | const uglify = require('rollup-plugin-uglify'); 4 | const commonjs = require('rollup-plugin-commonjs'); 5 | 6 | rollup({ 7 | entry: 'src/main.es6.js', 8 | plugins: [ 9 | commonjs(), 10 | buble(), 11 | uglify(), 12 | ] 13 | }).then(bundle => bundle.write({ 14 | dest: 'dist/bundle.js', 15 | format: 'iife' 16 | })).catch(err => console.log(err.stack)); -------------------------------------------------------------------------------- /domvm-v2.1.4-non-keyed/build.js: -------------------------------------------------------------------------------- 1 | const rollup = require('rollup').rollup; 2 | const buble = require('rollup-plugin-buble'); 3 | const uglify = require('rollup-plugin-uglify'); 4 | const commonjs = require('rollup-plugin-commonjs'); 5 | 6 | rollup({ 7 | entry: 'src/main.es6.js', 8 | plugins: [ 9 | commonjs(), 10 | buble(), 11 | uglify(), 12 | ] 13 | }).then(bundle => bundle.write({ 14 | dest: 'dist/bundle.js', 15 | format: 'iife' 16 | })).catch(err => console.log(err.stack)); -------------------------------------------------------------------------------- /ember-v2.13.0/.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig helps developers define and maintain consistent 2 | # coding styles between different editors and IDEs 3 | # editorconfig.org 4 | 5 | root = true 6 | 7 | 8 | [*] 9 | end_of_line = lf 10 | charset = utf-8 11 | trim_trailing_whitespace = true 12 | insert_final_newline = true 13 | indent_style = space 14 | indent_size = 2 15 | 16 | [*.hbs] 17 | insert_final_newline = false 18 | 19 | [*.{diff,md}] 20 | trim_trailing_whitespace = false 21 | -------------------------------------------------------------------------------- /glimmer-v0.3.10/.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig helps developers define and maintain consistent 2 | # coding styles between different editors and IDEs 3 | # editorconfig.org 4 | 5 | root = true 6 | 7 | 8 | [*] 9 | end_of_line = lf 10 | charset = utf-8 11 | trim_trailing_whitespace = true 12 | insert_final_newline = true 13 | indent_style = space 14 | indent_size = 2 15 | 16 | [*.hbs] 17 | insert_final_newline = false 18 | 19 | [*.{diff,md}] 20 | trim_trailing_whitespace = false 21 | -------------------------------------------------------------------------------- /css/main.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding: 10px 0 0 0; 3 | margin: 0; 4 | overflow-y: scroll; 5 | } 6 | #duration { 7 | padding-top: 0px; 8 | } 9 | .jumbotron { 10 | padding-top:10px; 11 | padding-bottom:10px; 12 | } 13 | .test-data a { 14 | display: block; 15 | } 16 | .preloadicon { 17 | position: absolute; 18 | top:-20px; 19 | left:-20px; 20 | } 21 | .col-sm-6.smallpad { 22 | padding: 5px; 23 | } 24 | .jumbotron .row h1 { 25 | font-size: 40px; 26 | } -------------------------------------------------------------------------------- /angular-v1.6.3-keyed/src/main.js: -------------------------------------------------------------------------------- 1 | import { default as jQuery } from 'jquery'; 2 | import { default as angular } from 'angular'; 3 | import { HomeController } from './home.controller'; 4 | 5 | angular 6 | .module('app', []) 7 | .config(['$compileProvider', function ($compileProvider) { 8 | $compileProvider.debugInfoEnabled(false); 9 | }]) 10 | .run(() => { 11 | console.info(angular.version.full); 12 | }) 13 | .controller('HomeController', HomeController); -------------------------------------------------------------------------------- /stem-v0.2.70/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Stem v0.2.70 6 | 7 | 8 | 9 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /angular-v2.4.9-keyed/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "module": "es2015", 5 | "moduleResolution": "node", 6 | "sourceMap": true, 7 | "emitDecoratorMetadata": true, 8 | "experimentalDecorators": true, 9 | "removeComments": false, 10 | "noImplicitAny": true, 11 | "suppressImplicitAnyIndexErrors": true, 12 | "outDir": "lib" 13 | }, 14 | "angularCompilerOptions": { 15 | "skipMetadataEmit": true 16 | } 17 | 18 | 19 | } 20 | -------------------------------------------------------------------------------- /angular-v2.4.9-non-keyed/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "module": "es2015", 5 | "moduleResolution": "node", 6 | "sourceMap": true, 7 | "emitDecoratorMetadata": true, 8 | "experimentalDecorators": true, 9 | "removeComments": false, 10 | "noImplicitAny": true, 11 | "suppressImplicitAnyIndexErrors": true, 12 | "outDir": "lib" 13 | }, 14 | "angularCompilerOptions": { 15 | "skipMetadataEmit": true 16 | } 17 | 18 | 19 | } 20 | -------------------------------------------------------------------------------- /dio-v3.0.5/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | dio v3.0.5 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /angular-v4.1.2-keyed/rollup.config.aot.js: -------------------------------------------------------------------------------- 1 | import nodeResolve from 'rollup-plugin-node-resolve' 2 | import commonjs from 'rollup-plugin-commonjs'; 3 | import uglify from 'rollup-plugin-uglify' 4 | 5 | export default { 6 | entry: 'tmp/main.aot.js', 7 | dest: 'dist/main.aot.js', 8 | sourceMap: false, 9 | format: 'iife', 10 | moduleName: 'ng4App', 11 | plugins: [ 12 | nodeResolve({ 13 | jsnext: true, 14 | module: true 15 | }), 16 | commonjs(), 17 | uglify() 18 | ] 19 | } -------------------------------------------------------------------------------- /angular-v4.1.2-keyed/rollup.config.jit.js: -------------------------------------------------------------------------------- 1 | import nodeResolve from 'rollup-plugin-node-resolve' 2 | import commonjs from 'rollup-plugin-commonjs'; 3 | import uglify from 'rollup-plugin-uglify' 4 | 5 | export default { 6 | entry: 'tmp/main.jit.js', 7 | dest: 'dist/main.jit.js', 8 | sourceMap: false, 9 | format: 'iife', 10 | moduleName: 'ng4App', 11 | plugins: [ 12 | nodeResolve({ 13 | jsnext: true, 14 | module: true 15 | }), 16 | commonjs(), 17 | uglify() 18 | ] 19 | } -------------------------------------------------------------------------------- /ember-v2.13.0/app/app.js: -------------------------------------------------------------------------------- 1 | import Ember from 'ember'; 2 | import Resolver from './resolver'; 3 | import loadInitializers from 'ember-load-initializers'; 4 | import config from './config/environment'; 5 | 6 | let App; 7 | 8 | Ember.MODEL_FACTORY_INJECTIONS = true; 9 | 10 | App = Ember.Application.extend({ 11 | modulePrefix: config.modulePrefix, 12 | podModulePrefix: config.podModulePrefix, 13 | Resolver 14 | }); 15 | 16 | loadInitializers(App, config.modulePrefix); 17 | 18 | export default App; 19 | -------------------------------------------------------------------------------- /angular-v4.1.2-non-keyed/rollup.config.aot.js: -------------------------------------------------------------------------------- 1 | import nodeResolve from 'rollup-plugin-node-resolve' 2 | import commonjs from 'rollup-plugin-commonjs'; 3 | import uglify from 'rollup-plugin-uglify' 4 | 5 | export default { 6 | entry: 'tmp/main.aot.js', 7 | dest: 'dist/main.aot.js', 8 | sourceMap: false, 9 | format: 'iife', 10 | moduleName: 'ng4App', 11 | plugins: [ 12 | nodeResolve({ 13 | jsnext: true, 14 | module: true 15 | }), 16 | commonjs(), 17 | uglify() 18 | ] 19 | } -------------------------------------------------------------------------------- /angular-v4.1.2-non-keyed/rollup.config.jit.js: -------------------------------------------------------------------------------- 1 | import nodeResolve from 'rollup-plugin-node-resolve' 2 | import commonjs from 'rollup-plugin-commonjs'; 3 | import uglify from 'rollup-plugin-uglify' 4 | 5 | export default { 6 | entry: 'tmp/main.jit.js', 7 | dest: 'dist/main.jit.js', 8 | sourceMap: false, 9 | format: 'iife', 10 | moduleName: 'ng4App', 11 | plugins: [ 12 | nodeResolve({ 13 | jsnext: true, 14 | module: true 15 | }), 16 | commonjs(), 17 | uglify() 18 | ] 19 | } -------------------------------------------------------------------------------- /riot-v3.5.0/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-riot", 3 | "version": "1.0.0", 4 | "description": "Benchmark for riot framework", 5 | "scripts": { 6 | "build-dev": "webpack -w -d", 7 | "build-prod": "webpack -p" 8 | }, 9 | "devDependencies": { 10 | "babel-core": "6.24.1", 11 | "babel-loader": "7.0.0", 12 | "babel-preset-es2015-riot": "1.1.0", 13 | "tag-loader": "0.3.0", 14 | "webpack": "2.5.1" 15 | }, 16 | "dependencies": { 17 | "riot": "3.5.0" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /css/bootstrap/dist/js/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') -------------------------------------------------------------------------------- /nx-v1.0.0-beta.2.0.1-keyed/src/timer.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | let startTime 4 | let lastMeasure 5 | 6 | function startMeasure (name) { 7 | startTime = performance.now() 8 | lastMeasure = name 9 | } 10 | 11 | function stopMeasure () { 12 | let last = lastMeasure 13 | if (lastMeasure) { 14 | window.setTimeout(() => { 15 | lastMeasure = null 16 | let stop = performance.now() 17 | console.log(last + " took " + (stop - startTime)) 18 | }) 19 | } 20 | } 21 | 22 | module.exports = { 23 | startMeasure, 24 | stopMeasure 25 | } 26 | -------------------------------------------------------------------------------- /nx-v1.0.0-beta.2.0.1-non-keyed/src/timer.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | let startTime 4 | let lastMeasure 5 | 6 | function startMeasure (name) { 7 | startTime = performance.now() 8 | lastMeasure = name 9 | } 10 | 11 | function stopMeasure () { 12 | let last = lastMeasure 13 | if (lastMeasure) { 14 | window.setTimeout(() => { 15 | lastMeasure = null 16 | let stop = performance.now() 17 | console.log(last + " took " + (stop - startTime)) 18 | }) 19 | } 20 | } 21 | 22 | module.exports = { 23 | startMeasure, 24 | stopMeasure 25 | } 26 | -------------------------------------------------------------------------------- /pico-dom-v0.18.0/src/time.js: -------------------------------------------------------------------------------- 1 | /*eslint indent:0, quotes:0, no-console:0*/ 2 | var startTime 3 | var lastMeasure 4 | 5 | module.exports = { 6 | start: function startMeasure(name) { 7 | startTime = performance.now() 8 | lastMeasure = name 9 | }, 10 | stop: function stopMeasure() { 11 | var last = lastMeasure 12 | if (lastMeasure) { 13 | window.setTimeout(function () { 14 | lastMeasure = null 15 | var stop = performance.now() 16 | console.log(last+" took "+(stop-startTime)) 17 | }, 0) 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /polymer-v1.7.0/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Polymer v1.7.0 6 | 7 | 8 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /css/bootstrap/less/mixins/border-radius.less: -------------------------------------------------------------------------------- 1 | // Single side border-radius 2 | 3 | .border-top-radius(@radius) { 4 | border-top-right-radius: @radius; 5 | border-top-left-radius: @radius; 6 | } 7 | .border-right-radius(@radius) { 8 | border-bottom-right-radius: @radius; 9 | border-top-right-radius: @radius; 10 | } 11 | .border-bottom-radius(@radius) { 12 | border-bottom-right-radius: @radius; 13 | border-bottom-left-radius: @radius; 14 | } 15 | .border-left-radius(@radius) { 16 | border-bottom-left-radius: @radius; 17 | border-top-left-radius: @radius; 18 | } 19 | -------------------------------------------------------------------------------- /css/bootstrap/less/mixins/reset-text.less: -------------------------------------------------------------------------------- 1 | .reset-text() { 2 | font-family: @font-family-base; 3 | // We deliberately do NOT reset font-size. 4 | font-style: normal; 5 | font-weight: normal; 6 | letter-spacing: normal; 7 | line-break: auto; 8 | line-height: @line-height-base; 9 | text-align: left; // Fallback for where `start` is not supported 10 | text-align: start; 11 | text-decoration: none; 12 | text-shadow: none; 13 | text-transform: none; 14 | white-space: normal; 15 | word-break: normal; 16 | word-spacing: normal; 17 | word-wrap: normal; 18 | } 19 | -------------------------------------------------------------------------------- /glimmer-v0.3.10/src/index.ts: -------------------------------------------------------------------------------- 1 | import App from './main'; 2 | import { ComponentManager, setPropertyDidChange } from '@glimmer/component'; 3 | 4 | const app = new App(); 5 | const containerElement = document.getElementById('app'); 6 | 7 | setPropertyDidChange(() => { 8 | app.scheduleRerender(); 9 | }); 10 | 11 | app.registerInitializer({ 12 | initialize(registry) { 13 | registry.register(`component-manager:/${app.rootName}/component-managers/main`, ComponentManager) 14 | } 15 | }); 16 | 17 | app.renderComponent('my-table', containerElement, null); 18 | 19 | app.boot(); 20 | -------------------------------------------------------------------------------- /domvm-v2.1.4-keyed/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-domvm-keyed", 3 | "version": "2.1.4-keyed", 4 | "description": "Benchmark for domvm framework (keyed)", 5 | "scripts": { 6 | "build-dev": "node build.js", 7 | "build-prod": "node build.js" 8 | }, 9 | "devDependencies": { 10 | "rollup": "*", 11 | "rollup-plugin-buble": "*", 12 | "rollup-plugin-commonjs": "*", 13 | "rollup-plugin-uglify": "*" 14 | }, 15 | "dependencies": { 16 | "domvm": "git://github.com/leeoniya/domvm.git#eeb3690109fc6515b462bfaef2f81dbcb68a827a" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /ember-v2.13.0/tests/helpers/start-app.js: -------------------------------------------------------------------------------- 1 | import Ember from 'ember'; 2 | import Application from '../../app'; 3 | import config from '../../config/environment'; 4 | 5 | export default function startApp(attrs) { 6 | let application; 7 | 8 | let attributes = Ember.merge({}, config.APP); 9 | attributes = Ember.merge(attributes, attrs); // use defaults, but you can override; 10 | 11 | Ember.run(() => { 12 | application = Application.create(attributes); 13 | application.setupForTesting(); 14 | application.injectTestHelpers(); 15 | }); 16 | 17 | return application; 18 | } 19 | -------------------------------------------------------------------------------- /knockout-v3.4.1/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-knockoutjs", 3 | "version": "1.0.0", 4 | "description": "Knockout v3.4 demo", 5 | "scripts": { 6 | "build-dev": "webpack -w -d -c webpack.config.js", 7 | "build-prod": "webpack -p -c webpack.config.js" 8 | }, 9 | "author": "Stefan Krause", 10 | "license": "Apache-2.0", 11 | "devDependencies": { 12 | "babel-core": "6.18.2", 13 | "babel-loader": "6.2.8", 14 | "babel-preset-es2015": "6.18.0", 15 | "webpack": "1.13.3" 16 | }, 17 | "dependencies": { 18 | "knockout": "3.4.1" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /domvm-v2.1.4-non-keyed/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-domvm-non-keyed", 3 | "version": "2.1.4-non-keyed", 4 | "description": "Benchmark for domvm framework (non-keyed)", 5 | "scripts": { 6 | "build-dev": "node build.js", 7 | "build-prod": "node build.js" 8 | }, 9 | "devDependencies": { 10 | "rollup": "*", 11 | "rollup-plugin-buble": "*", 12 | "rollup-plugin-commonjs": "*", 13 | "rollup-plugin-uglify": "*" 14 | }, 15 | "dependencies": { 16 | "domvm": "git://github.com/leeoniya/domvm.git#eeb3690109fc6515b462bfaef2f81dbcb68a827a" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Datum-v0.8.0/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-Datumjs", 3 | "version": "1.0.0", 4 | "description": "Benchmark for Datum v0.8", 5 | "scripts": { 6 | "build-dev": "webpack -w -d -c webpack.config.js", 7 | "build-prod": "webpack -p -c webpack.config.js" 8 | }, 9 | "contributors": ["Stefan Krause", "Martin Rixham"], 10 | "license": "Apache-2.0", 11 | "devDependencies": { 12 | "babel-core": "6.18.2", 13 | "babel-loader": "6.2.8", 14 | "babel-preset-es2015": "6.18.0", 15 | "webpack": "1.13.3" 16 | }, 17 | "dependencies": { 18 | "Datum": "0.8.0" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /mithril-v1.1.1/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-mithrill-1.0.0-alpha", 3 | "version": "1.0.0", 4 | "description": "Benchmark for Mithrill 1.0.0 framework", 5 | "scripts": { 6 | "build-dev": "webpack -w -d", 7 | "build-prod": "webpack -p" 8 | }, 9 | "devDependencies": { 10 | "babel-core": "6.24.1", 11 | "babel-loader": "7.0.0", 12 | "babel-plugin-transform-react-jsx": "6.24.1", 13 | "babel-preset-es2015": "6.24.1", 14 | "babel-preset-react": "6.24.1", 15 | "webpack": "2.4.1" 16 | }, 17 | "dependencies": { 18 | "mithril": "^1.1.1" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /plastiq-v1.33.0/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-plastiq", 3 | "version": "1.0.0", 4 | "description": "Benchmark for plastiq framework", 5 | "scripts": { 6 | "build-dev": "webpack -w -d -c webpack.config.js", 7 | "build-prod": "webpack -p -c webpack.config.js" 8 | }, 9 | "devDependencies": { 10 | "babel-core": "6.14.0", 11 | "babel-loader": "6.2.5", 12 | "babel-preset-es2015": "6.14.0", 13 | "babel-preset-react": "6.11.1", 14 | "webpack": "1.13.2", 15 | "jsx-loader": "0.13.2" 16 | }, 17 | "dependencies": { 18 | "plastiq": "1.33.0" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /rx-domh-v0.0.2-rxjs-v5.3.0/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-rx-domh", 3 | "version": "1.0.0", 4 | "description": "Benchmark for rx-domh framework", 5 | "scripts": { 6 | "build-dev": "webpack -w -d -c webpack.config.js", 7 | "build-prod": "webpack -p -d -c webpack.config.js" 8 | }, 9 | "devDependencies": { 10 | "babel-core": "6.18.2", 11 | "babel-loader": "6.2.8", 12 | "babel-preset-es2015": "6.18.0", 13 | "babel-preset-react": "6.16.0", 14 | "webpack": "1.13.3" 15 | }, 16 | "dependencies": { 17 | "rx-domh": "0.0.2", 18 | "rxjs": "5.3.0" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /css/bootstrap/less/mixins/pagination.less: -------------------------------------------------------------------------------- 1 | // Pagination 2 | 3 | .pagination-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) { 4 | > li { 5 | > a, 6 | > span { 7 | padding: @padding-vertical @padding-horizontal; 8 | font-size: @font-size; 9 | line-height: @line-height; 10 | } 11 | &:first-child { 12 | > a, 13 | > span { 14 | .border-left-radius(@border-radius); 15 | } 16 | } 17 | &:last-child { 18 | > a, 19 | > span { 20 | .border-right-radius(@border-radius); 21 | } 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /elm-v0.18.0/elm-package.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.0.0", 3 | "summary": "helpful summary of your project, less than 80 characters", 4 | "repository": "https://github.com/user/project.git", 5 | "license": "BSD3", 6 | "source-directories": [ 7 | "." 8 | ], 9 | "exposed-modules": [], 10 | "dependencies": { 11 | "elm-community/array-extra": "1.0.2 <= v < 2.0.0", 12 | "elm-lang/core": "5.0.0 <= v < 6.0.0", 13 | "elm-lang/html": "2.0.0 <= v < 3.0.0", 14 | "mgold/elm-random-pcg": "4.0.2 <= v < 5.0.0" 15 | }, 16 | "elm-version": "0.18.0 <= v < 0.19.0" 17 | } 18 | -------------------------------------------------------------------------------- /glimmer-v0.3.10/src/main.ts: -------------------------------------------------------------------------------- 1 | import Application from '@glimmer/application'; 2 | import Resolver, { ResolverConfiguration, BasicModuleRegistry } from '@glimmer/resolver'; 3 | import moduleMap from '../config/module-map'; 4 | import resolverConfiguration from '../config/resolver-configuration'; 5 | 6 | export default class App extends Application { 7 | constructor() { 8 | let moduleRegistry = new BasicModuleRegistry(moduleMap); 9 | let resolver = new Resolver(resolverConfiguration, moduleRegistry); 10 | 11 | super({ 12 | rootName: resolverConfiguration.app.rootName, 13 | resolver 14 | }); 15 | } 16 | } -------------------------------------------------------------------------------- /angular-v4.1.2-keyed/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2015", 4 | "module": "es2015", 5 | "moduleResolution": "node", 6 | "sourceMap": true, 7 | "emitDecoratorMetadata": true, 8 | "experimentalDecorators": true, 9 | "lib": [ 10 | "es2015", 11 | "dom" 12 | ], 13 | "noImplicitAny": true, 14 | "suppressImplicitAnyIndexErrors": true, 15 | "outDir": "tmp" 16 | }, 17 | "angularCompilerOptions": { 18 | "annotationsAs": "static fields", 19 | "annotateForClosureCompiler": true 20 | }, 21 | "exclude": [ 22 | "node_modules", 23 | "tmp", 24 | "dist" 25 | ] 26 | } -------------------------------------------------------------------------------- /angular-v4.1.2-non-keyed/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2015", 4 | "module": "es2015", 5 | "moduleResolution": "node", 6 | "sourceMap": true, 7 | "emitDecoratorMetadata": true, 8 | "experimentalDecorators": true, 9 | "lib": [ 10 | "es2015", 11 | "dom" 12 | ], 13 | "noImplicitAny": true, 14 | "suppressImplicitAnyIndexErrors": true, 15 | "outDir": "tmp" 16 | }, 17 | "angularCompilerOptions": { 18 | "annotationsAs": "static fields", 19 | "annotateForClosureCompiler": true 20 | }, 21 | "exclude": [ 22 | "node_modules", 23 | "tmp", 24 | "dist" 25 | ] 26 | } -------------------------------------------------------------------------------- /marionette-v3.3.1/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-marionette", 3 | "version": "1.0.0", 4 | "description": "Marionette v3.1.0 demo", 5 | "main": "index.js", 6 | "scripts": { 7 | "build-dev": "webpack -w -d", 8 | "build-prod": "webpack -p" 9 | }, 10 | "devDependencies": { 11 | "babel-core": "6.24.1", 12 | "babel-loader": "7.0.0", 13 | "babel-preset-es2015": "6.24.1", 14 | "webpack": "2.5.1" 15 | }, 16 | "dependencies": { 17 | "backbone": "1.3.3", 18 | "backbone.marionette": "3.3.1", 19 | "backbone.radio": "2.0.0", 20 | "jquery": "3.2.1", 21 | "underscore": "1.8.3" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /cleanup.sh: -------------------------------------------------------------------------------- 1 | rm -r angular/node_modules 2 | rm -r angular2/node_modules 3 | rm -r aurelia/node_modules 4 | rm -r aurelia/jspm_packages 5 | rm -r elm/elm-stuff 6 | rm -r elm/elm-node_modules 7 | rm -r ember/node_modules 8 | rm -r ember/bower_components 9 | rm -r mithril/node_modules 10 | rm -r ractive/node_modules 11 | rm -r react/node_modules 12 | rm -r tests/node_modules 13 | rm -r node_modules 14 | 15 | rm -r angular/dist 16 | rm angular2/app/app.js* 17 | rm -r aurelia/dist/* 18 | rm -r elm/dist 19 | rm -r ember/dist 20 | rm -r mithril/dist 21 | rm -r ractive/dist 22 | rm -r react/dist 23 | rm -r vidom/dist 24 | rm -r vue/dist 25 | 26 | rm -r webdriver-ts/node_modules -------------------------------------------------------------------------------- /hyperapp-v0.9.1/src/rowsView.js: -------------------------------------------------------------------------------- 1 | import { h } from "hyperapp" 2 | 3 | export default ({ state, actions }) => state.data.map(({ id, label }, i) => 4 | 5 | {id} 6 | 7 | actions.select({ id })}>{label} 8 | 9 | 10 | actions.delete({ id })}> 11 | 13 | 14 | 15 | 16 | 17 | ) 18 | -------------------------------------------------------------------------------- /webdriver-java/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-angular-testrunner", 3 | "version": "1.0.0", 4 | "description": "Simple Benchmark for Javascript client side rendering", 5 | "scripts": { 6 | "postinstall": "mvn package", 7 | "selenium": "mvn package exec:java && node makeTable.js" 8 | }, 9 | "author": "Stefan Krause", 10 | "license": "ISC", 11 | "repository": { 12 | "type": "git", 13 | "url": "https://github.com/krausest/js-framework-benchmark.git" 14 | }, 15 | "dependencies": { 16 | "chromedriver": "^2.24.1", 17 | "dot": "^1.0.0", 18 | "lodash": "^4.0.0", 19 | "rgba-convert": "^0.3.0" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /css/bootstrap/less/mixins/panels.less: -------------------------------------------------------------------------------- 1 | // Panels 2 | 3 | .panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) { 4 | border-color: @border; 5 | 6 | & > .panel-heading { 7 | color: @heading-text-color; 8 | background-color: @heading-bg-color; 9 | border-color: @heading-border; 10 | 11 | + .panel-collapse > .panel-body { 12 | border-top-color: @border; 13 | } 14 | .badge { 15 | color: @heading-bg-color; 16 | background-color: @heading-text-color; 17 | } 18 | } 19 | & > .panel-footer { 20 | + .panel-collapse > .panel-body { 21 | border-bottom-color: @border; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /ember-v2.13.0/public/crossdomain.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 15 | 16 | -------------------------------------------------------------------------------- /css/bootstrap/less/wells.less: -------------------------------------------------------------------------------- 1 | // 2 | // Wells 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | .well { 8 | min-height: 20px; 9 | padding: 19px; 10 | margin-bottom: 20px; 11 | background-color: @well-bg; 12 | border: 1px solid @well-border; 13 | border-radius: @border-radius-base; 14 | .box-shadow(inset 0 1px 1px rgba(0,0,0,.05)); 15 | blockquote { 16 | border-color: #ddd; 17 | border-color: rgba(0,0,0,.15); 18 | } 19 | } 20 | 21 | // Sizes 22 | .well-lg { 23 | padding: 24px; 24 | border-radius: @border-radius-large; 25 | } 26 | .well-sm { 27 | padding: 9px; 28 | border-radius: @border-radius-small; 29 | } 30 | -------------------------------------------------------------------------------- /ember-v2.13.0/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "predef": [ 3 | "document", 4 | "window", 5 | "-Promise" 6 | ], 7 | "browser": true, 8 | "boss": true, 9 | "curly": true, 10 | "debug": false, 11 | "devel": true, 12 | "eqeqeq": true, 13 | "evil": true, 14 | "forin": false, 15 | "immed": false, 16 | "laxbreak": false, 17 | "newcap": true, 18 | "noarg": true, 19 | "noempty": false, 20 | "nonew": false, 21 | "nomen": false, 22 | "onevar": false, 23 | "plusplus": false, 24 | "regexp": false, 25 | "undef": true, 26 | "sub": true, 27 | "strict": false, 28 | "white": false, 29 | "eqnull": true, 30 | "esversion": 6, 31 | "unused": true 32 | } 33 | -------------------------------------------------------------------------------- /dio-v3.0.5/webpack.config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var cache = {}; 4 | var loaders = [ 5 | { 6 | test: /\.js$/, 7 | loader: 'babel-loader' 8 | }, 9 | { 10 | test: /\.css$/, 11 | loader: 'style-loader!css-loader' 12 | } 13 | ]; 14 | var extensions = [ 15 | '', '.js', '.jsx', '.es6.js' 16 | ]; 17 | 18 | module.exports = [{ 19 | cache: cache, 20 | module: { 21 | loaders: loaders 22 | }, 23 | entry: { 24 | main: './src/main.js', 25 | }, 26 | output: { 27 | path: './dist', 28 | filename: '[name].js' 29 | }, 30 | resolve: { 31 | extensions: extensions, 32 | root: [ 33 | __dirname, 34 | __dirname + '/src' 35 | ], 36 | alias: { 37 | } 38 | } 39 | }]; -------------------------------------------------------------------------------- /css/bootstrap/less/mixins/hide-text.less: -------------------------------------------------------------------------------- 1 | // CSS image replacement 2 | // 3 | // Heads up! v3 launched with only `.hide-text()`, but per our pattern for 4 | // mixins being reused as classes with the same name, this doesn't hold up. As 5 | // of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`. 6 | // 7 | // Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757 8 | 9 | // Deprecated as of v3.0.1 (has been removed in v4) 10 | .hide-text() { 11 | font: ~"0/0" a; 12 | color: transparent; 13 | text-shadow: none; 14 | background-color: transparent; 15 | border: 0; 16 | } 17 | 18 | // New mixin to use as of v3.0.1 19 | .text-hide() { 20 | .hide-text(); 21 | } 22 | -------------------------------------------------------------------------------- /elm-v0.18.0/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-elm", 3 | "version": "1.0.0", 4 | "description": "Elm demo", 5 | "main": "index.js", 6 | "scripts": { 7 | "postinstall" : "elm-package install -y", 8 | "build-prod": "elm-make src/Main.elm --output=dist/main.js" 9 | }, 10 | "keywords": [ 11 | "elm" 12 | ], 13 | "author": "Eduard Kyvenko ", 14 | "license": "ISC", 15 | "homepage": "https://github.com/krausest/js-framework-benchmark", 16 | "repository": { 17 | "type": "git", 18 | "url": "https://github.com/krausest/js-framework-benchmark.git" 19 | }, 20 | "devDependencies": { 21 | "elm": "0.18.0" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /pico-dom-v0.18.0/src/main.js: -------------------------------------------------------------------------------- 1 | /*eslint indent:0 quotes:0*/ 2 | var el = require('pico-dom').element, 3 | menu = require('./menu'), 4 | table = require('./table'), 5 | Store = require('./store') 6 | 7 | var title = 'picoDOM v0.18.0', 8 | store = new Store() 9 | 10 | el(document.body, 11 | el('div#main', 12 | el('div.container', 13 | el('div.jumbotron', 14 | el('div.row', 15 | el('div.col-md-6', 16 | el('h1', title) 17 | ), 18 | el('div.col-md-6', menu) 19 | ) 20 | ), 21 | table, 22 | el('span.preloadicon.glyphicon.glyphicon-remove[aria-hidden]') 23 | ) 24 | ) 25 | ) 26 | menu.update(store) 27 | -------------------------------------------------------------------------------- /glimmer-v0.3.10/src/ui/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Hello Glimmer 7 | 8 | 9 | 10 | {{content-for "head"}} 11 | 12 | 13 | 14 | {{content-for "head-footer"}} 15 | 16 | 17 | {{content-for "body"}} 18 | 19 |
20 | 21 | 22 | {{content-for "body-footer"}} 23 | 24 | 25 | -------------------------------------------------------------------------------- /cyclejs-dom-v17.1.0/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-cyclejs", 3 | "version": "1.0.0", 4 | "description": "Benchmark for Cycle.js framework", 5 | "scripts": { 6 | "build-dev": "webpack -w -d", 7 | "build-prod": "webpack -p" 8 | }, 9 | "devDependencies": { 10 | "babel-core": "6.24.1", 11 | "babel-loader": "7.0.0", 12 | "babel-plugin-transform-react-jsx": "6.24.1", 13 | "babel-preset-es2015": "6.24.1", 14 | "babel-preset-stage-0": "6.24.1", 15 | "webpack": "2.5.1" 16 | }, 17 | "dependencies": { 18 | "@cycle/dom": "17.1.0", 19 | "@cycle/xstream-run": "4.2.0", 20 | "snabbdom-jsx": "0.3.1", 21 | "xstream": "10.8.0" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /css/bootstrap/less/mixins/list-group.less: -------------------------------------------------------------------------------- 1 | // List Groups 2 | 3 | .list-group-item-variant(@state; @background; @color) { 4 | .list-group-item-@{state} { 5 | color: @color; 6 | background-color: @background; 7 | 8 | a&, 9 | button& { 10 | color: @color; 11 | 12 | .list-group-item-heading { 13 | color: inherit; 14 | } 15 | 16 | &:hover, 17 | &:focus { 18 | color: @color; 19 | background-color: darken(@background, 5%); 20 | } 21 | &.active, 22 | &.active:hover, 23 | &.active:focus { 24 | color: #fff; 25 | background-color: @color; 26 | border-color: @color; 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /webdriver-ts/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "outDir": "./dist/", 4 | "sourceMap": true, 5 | "noImplicitAny": true, 6 | "module": "commonjs", 7 | "moduleResolution": "node", 8 | "target": "es6", 9 | "noLib": false, 10 | "allowJs": false 11 | }, 12 | "files": [ 13 | "./src/common.ts", 14 | "./src/benchmarks.ts", 15 | "./src/webdriverAccess.ts", 16 | "./src/benchmarkRunner.ts", 17 | "./src/createResultTable.ts", 18 | "./src/createIndex.ts", 19 | "./src/runCheck.ts", 20 | "./src/nonKeyed.ts" 21 | ], 22 | "exclude": [ 23 | "node_modules" 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /tsers-v1.0.0/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-tsers", 3 | "version": "1.0.0", 4 | "description": "Benchmark for TSERS framework", 5 | "scripts": { 6 | "build-dev": "webpack -w -d -c webpack.config.js", 7 | "build-prod": "webpack -p -c webpack.config.js" 8 | }, 9 | "devDependencies": { 10 | "babel-core": "6.10.4", 11 | "babel-loader": "6.2.4", 12 | "babel-plugin-transform-react-jsx": "6.8.0", 13 | "babel-preset-es2015": "6.9.0", 14 | "babel-preset-stage-0": "6.5.0", 15 | "webpack": "1.13.1" 16 | }, 17 | "dependencies": { 18 | "@tsers/core": "1.0.0", 19 | "@tsers/model": "1.0.0", 20 | "@tsers/react": "1.1.0", 21 | "rx": "4.1.0" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /ember-v2.13.0/app/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Ember v2.13.0 7 | 8 | 9 | 10 | {{content-for "head"}} 11 | 12 | 13 | 14 | {{content-for "head-footer"}} 15 | 16 | 17 | {{content-for "body"}} 18 | 19 | 20 | 21 | 22 | {{content-for "body-footer"}} 23 | 24 | 25 | -------------------------------------------------------------------------------- /webdriver-ts/README.txt: -------------------------------------------------------------------------------- 1 | Typescript Benchmark driver 2 | =========================== 3 | 4 | This is the indentended replacement for the java-webdriver. 5 | 6 | Compile with: 7 | npm install 8 | npm run compile 9 | 10 | Run with: 11 | npm run selenium 12 | You can optionally pass a list of frameworks or benchmarks that should be run. 13 | npm run selenium -- --framework ang,bobril --benchmark run 14 | runs all frameworks that contain the string ang or bobril and all benchmarks whose name contains run 15 | 16 | Create the result table: 17 | npm run results 18 | http://localhost:8080/webdriver-ts/table.html 19 | 20 | 21 | TODOs: 22 | * Convert makeTable.js to Typescript 23 | * Extract benchmark names and description to common module -------------------------------------------------------------------------------- /css/bootstrap/less/mixins/clearfix.less: -------------------------------------------------------------------------------- 1 | // Clearfix 2 | // 3 | // For modern browsers 4 | // 1. The space content is one way to avoid an Opera bug when the 5 | // contenteditable attribute is included anywhere else in the document. 6 | // Otherwise it causes space to appear at the top and bottom of elements 7 | // that are clearfixed. 8 | // 2. The use of `table` rather than `block` is only necessary if using 9 | // `:before` to contain the top-margins of child elements. 10 | // 11 | // Source: http://nicolasgallagher.com/micro-clearfix-hack/ 12 | 13 | .clearfix() { 14 | &:before, 15 | &:after { 16 | content: " "; // 1 17 | display: table; // 2 18 | } 19 | &:after { 20 | clear: both; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /marko-v4.3.0/src/main/components/row.marko: -------------------------------------------------------------------------------- 1 | class { 2 | select() { 3 | this.emit('select', this.input.item); 4 | } 5 | 6 | delete() { 7 | this.emit('delete', this.input.item); 8 | } 9 | } 10 | 11 | $ var item = input.item; 12 | 13 | 14 | ${item.id} 15 | 16 | ${item.label} 17 | 18 | 19 | 20 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /css/bootstrap/less/breadcrumbs.less: -------------------------------------------------------------------------------- 1 | // 2 | // Breadcrumbs 3 | // -------------------------------------------------- 4 | 5 | 6 | .breadcrumb { 7 | padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal; 8 | margin-bottom: @line-height-computed; 9 | list-style: none; 10 | background-color: @breadcrumb-bg; 11 | border-radius: @border-radius-base; 12 | 13 | > li { 14 | display: inline-block; 15 | 16 | + li:before { 17 | content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space 18 | padding: 0 5px; 19 | color: @breadcrumb-color; 20 | } 21 | } 22 | 23 | > .active { 24 | color: @breadcrumb-active-color; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /css/bootstrap/less/responsive-embed.less: -------------------------------------------------------------------------------- 1 | // Embeds responsive 2 | // 3 | // Credit: Nicolas Gallagher and SUIT CSS. 4 | 5 | .embed-responsive { 6 | position: relative; 7 | display: block; 8 | height: 0; 9 | padding: 0; 10 | overflow: hidden; 11 | 12 | .embed-responsive-item, 13 | iframe, 14 | embed, 15 | object, 16 | video { 17 | position: absolute; 18 | top: 0; 19 | left: 0; 20 | bottom: 0; 21 | height: 100%; 22 | width: 100%; 23 | border: 0; 24 | } 25 | } 26 | 27 | // Modifier class for 16:9 aspect ratio 28 | .embed-responsive-16by9 { 29 | padding-bottom: 56.25%; 30 | } 31 | 32 | // Modifier class for 4:3 aspect ratio 33 | .embed-responsive-4by3 { 34 | padding-bottom: 75%; 35 | } 36 | -------------------------------------------------------------------------------- /polymer-v1.7.0/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-polymer", 3 | "version": "1.0.0", 4 | "description": "Boilerplate for Polymer", 5 | "scripts": { 6 | "postinstall": "bower install", 7 | "build-dev": "polymer build", 8 | "build-prod": "polymer build" 9 | }, 10 | "keywords": [ 11 | "polymer" 12 | ], 13 | "author": "Tristan Rice", 14 | "license": "Apache-2.0", 15 | "homepage": "https://github.com/krausest/js-framework-benchmark", 16 | "repository": { 17 | "type": "git", 18 | "url": "https://github.com/krausest/js-framework-benchmark.git" 19 | }, 20 | "devDependencies": { 21 | "bower": "^1.7.9", 22 | "polymer-cli": "^0.16.0" 23 | }, 24 | "dependencies": {} 25 | } 26 | -------------------------------------------------------------------------------- /install.js: -------------------------------------------------------------------------------- 1 | var _ = require('lodash'); 2 | var exec = require('child_process').execSync; 3 | var fs = require('fs'); 4 | var commandExists = require('command-exists'); 5 | 6 | var installCommand = 'npm install'; 7 | 8 | var excludedDirectories = ['css', 'dist','node_modules','webdriver-java']; 9 | 10 | commandExists('yarn', function(err, commandExists) { 11 | 12 | installCommand = commandExists ? 'yarn' : 'npm install'; 13 | 14 | _.each(fs.readdirSync('.'), function(name) { 15 | if(fs.statSync(name).isDirectory() && name[0] !== '.' && excludedDirectories.indexOf(name)==-1) { 16 | console.log("Executing "+installCommand+" in "+name); 17 | exec(installCommand, { 18 | cwd: name, 19 | stdio: 'inherit' 20 | }); 21 | } 22 | }); 23 | }); 24 | -------------------------------------------------------------------------------- /ember-v2.13.0/tests/helpers/module-for-acceptance.js: -------------------------------------------------------------------------------- 1 | import { module } from 'qunit'; 2 | import Ember from 'ember'; 3 | import startApp from '../helpers/start-app'; 4 | import destroyApp from '../helpers/destroy-app'; 5 | 6 | const { RSVP: { Promise } } = Ember; 7 | 8 | export default function(name, options = {}) { 9 | module(name, { 10 | beforeEach() { 11 | this.application = startApp(); 12 | 13 | if (options.beforeEach) { 14 | return options.beforeEach.apply(this, arguments); 15 | } 16 | }, 17 | 18 | afterEach() { 19 | let afterEach = options.afterEach && options.afterEach.apply(this, arguments); 20 | return Promise.resolve(afterEach).then(() => destroyApp(this.application)); 21 | } 22 | }); 23 | } 24 | -------------------------------------------------------------------------------- /vanillajs-keyed/webpack.config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var path = require('path') 3 | var cache = {}; 4 | var loaders = [ 5 | { 6 | test: /\.js$/, 7 | loader: 'babel-loader' 8 | }, 9 | { 10 | test: /\.css$/, 11 | loader: 'style-loader!css-loader' 12 | } 13 | ]; 14 | var extensions = [ 15 | '.js', '.jsx', '.es6.js' 16 | ]; 17 | 18 | module.exports = [{ 19 | cache: cache, 20 | module: { 21 | loaders: loaders 22 | }, 23 | entry: { 24 | main: './src/Main.js', 25 | }, 26 | output: { 27 | path: path.resolve(__dirname, "dist"), 28 | filename: '[name].js' 29 | }, 30 | resolve: { 31 | extensions: extensions, 32 | modules: [ 33 | __dirname, 34 | path.resolve(__dirname, "src"), 35 | "node_modules" 36 | ], 37 | alias: { 38 | } 39 | } 40 | }]; -------------------------------------------------------------------------------- /pico-dom-v0.18.0/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-pico-dom-0.17.0", 3 | "version": "0.1.0", 4 | "description": "Benchmark for picoDom 0.17.0", 5 | "scripts": { 6 | "build-dev": "webpack -w -d --entry ./src/main.js --output-filename ./dist/main.js", 7 | "build-prod": "webpack -p --entry ./src/main.js --output-filename ./dist/main.js" 8 | }, 9 | "author": "Hugo Villeneuve", 10 | "license": "Apache-2.0", 11 | "homepage": "https://github.com/krausest/js-framework-benchmark", 12 | "repository": { 13 | "type": "git", 14 | "url": "https://github.com/krausest/js-framework-benchmark.git" 15 | }, 16 | "devDependencies": { 17 | "webpack": "^2.3.3" 18 | }, 19 | "dependencies": { 20 | "pico-dom": "0.18.0" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /svelte-v1.8.1/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-svelte", 3 | "version": "1.0.0", 4 | "description": "Boilerplate for Svelte", 5 | "scripts": { 6 | "build-dev": "rollup -c -w", 7 | "build-prod": "rollup -c --environment production" 8 | }, 9 | "keywords": [ 10 | "svelte" 11 | ], 12 | "author": "Stefan Krause", 13 | "license": "Apache-2.0", 14 | "homepage": "https://github.com/krausest/js-framework-benchmark", 15 | "repository": { 16 | "type": "git", 17 | "url": "https://github.com/krausest/js-framework-benchmark.git" 18 | }, 19 | "devDependencies": { 20 | "rollup": "0.41.6", 21 | "rollup-plugin-buble": "0.15.0", 22 | "rollup-plugin-svelte": "1.8.1", 23 | "rollup-plugin-uglify": "1.0.2" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /vanillajs-non-keyed/webpack.config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var path = require('path') 3 | var cache = {}; 4 | var loaders = [ 5 | { 6 | test: /\.js$/, 7 | loader: 'babel-loader' 8 | }, 9 | { 10 | test: /\.css$/, 11 | loader: 'style-loader!css-loader' 12 | } 13 | ]; 14 | var extensions = [ 15 | '.js', '.jsx', '.es6.js' 16 | ]; 17 | 18 | module.exports = [{ 19 | cache: cache, 20 | module: { 21 | loaders: loaders 22 | }, 23 | entry: { 24 | main: './src/Main.js', 25 | }, 26 | output: { 27 | path: path.resolve(__dirname, "dist"), 28 | filename: '[name].js' 29 | }, 30 | resolve: { 31 | extensions: extensions, 32 | modules: [ 33 | __dirname, 34 | path.resolve(__dirname, "src"), 35 | "node_modules" 36 | ], 37 | alias: { 38 | } 39 | } 40 | }]; -------------------------------------------------------------------------------- /riot-v3.5.0/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | riot v3.5.0 6 | 7 | 8 | 9 | 10 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /stem-v0.2.70/src/rollup.config.js: -------------------------------------------------------------------------------- 1 | import babel from 'rollup-plugin-babel'; 2 | import uglify from 'rollup-plugin-uglify'; 3 | import includePaths from "rollup-plugin-includepaths"; 4 | 5 | let includePathOptions = { 6 | extensions: [".es6.js", ".jsx"], 7 | paths: [ 8 | "../node_modules/stem-core/src", 9 | "../node_modules/stem-core/src/state", 10 | "../node_modules/stem-core/src/base", 11 | "../node_modules/stem-core/src/ui", 12 | ] 13 | }; 14 | 15 | export default { 16 | entry: "Main.jsx", 17 | format: "umd", 18 | moduleId: "bundle", 19 | moduleName: "bundle", 20 | plugins: [ 21 | includePaths(includePathOptions), 22 | babel(), 23 | //uglify(), 24 | ], 25 | dest: "bundle.js" 26 | }; 27 | -------------------------------------------------------------------------------- /vanillajs-keyed/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-vanillajs", 3 | "version": "1.1.1", 4 | "description": "Vanilla.JS demo", 5 | "main": "index.js", 6 | "scripts": { 7 | "build-dev": "webpack -w -d", 8 | "build-prod": "webpack -p" 9 | }, 10 | "keywords": [ 11 | "react", 12 | "webpack" 13 | ], 14 | "author": "Stefan Krause", 15 | "license": "Apache-2.0", 16 | "homepage": "https://github.com/krausest/js-framework-benchmark", 17 | "repository": { 18 | "type": "git", 19 | "url": "https://github.com/krausest/js-framework-benchmark.git" 20 | }, 21 | "devDependencies": { 22 | "babel-core": "6.24.1", 23 | "babel-loader": "7.0.0", 24 | "babel-preset-es2015": "6.24.1", 25 | "webpack": "2.5.1" 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Datum-v0.8.0/webpack.config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var cache = {}; 4 | var loaders = [ 5 | { 6 | test: /\.js$/, 7 | loader: 'babel-loader', 8 | exclude: /node_modules/ 9 | }, 10 | { 11 | test: /\.css$/, 12 | loader: 'style-loader!css-loader' 13 | } 14 | ]; 15 | var extensions = [ 16 | '', '.js', '.jsx', '.es6.js' 17 | ]; 18 | 19 | module.exports = [{ 20 | cache: cache, 21 | module: { 22 | loaders: loaders 23 | }, 24 | entry: { 25 | main: './src/Main.js', 26 | }, 27 | output: { 28 | path: './dist', 29 | filename: '[name].js' 30 | }, 31 | resolve: { 32 | extensions: extensions, 33 | root: [ 34 | __dirname, 35 | __dirname + '/src' 36 | ], 37 | alias: { 38 | "Datum": __dirname+"/node_modules/Datum/target/Datum.js" 39 | } 40 | } 41 | }]; 42 | -------------------------------------------------------------------------------- /vanillajs-non-keyed/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-vanillajs", 3 | "version": "1.1.1", 4 | "description": "Vanilla.JS demo", 5 | "main": "index.js", 6 | "scripts": { 7 | "build-dev": "webpack -w -d", 8 | "build-prod": "webpack -p" 9 | }, 10 | "keywords": [ 11 | "react", 12 | "webpack" 13 | ], 14 | "author": "Stefan Krause", 15 | "license": "Apache-2.0", 16 | "homepage": "https://github.com/krausest/js-framework-benchmark", 17 | "repository": { 18 | "type": "git", 19 | "url": "https://github.com/krausest/js-framework-benchmark.git" 20 | }, 21 | "devDependencies": { 22 | "babel-core": "6.24.1", 23 | "babel-loader": "7.0.0", 24 | "babel-preset-es2015": "6.24.1", 25 | "webpack": "2.5.1" 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /ractive-edge/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-ractive", 3 | "version": "1.0.0", 4 | "description": "Boilerplate for Ractive.js", 5 | "scripts": { 6 | "build-dev": "webpack -w -d", 7 | "build-prod": "webpack -p" 8 | }, 9 | "keywords": [ 10 | "ractive" 11 | ], 12 | "author": "Stefan Krause", 13 | "license": "Apache-2.0", 14 | "homepage": "https://github.com/krausest/js-framework-benchmark", 15 | "repository": { 16 | "type": "git", 17 | "url": "https://github.com/krausest/js-framework-benchmark.git" 18 | }, 19 | "devDependencies": { 20 | "babel-core": "6.24.1", 21 | "babel-loader": "7.0.0", 22 | "babel-preset-es2015": "6.24.1", 23 | "webpack": "2.5.1" 24 | }, 25 | "dependencies": { 26 | "ractive": "edge" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /knockout-v3.4.1/webpack.config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var cache = {}; 4 | var loaders = [ 5 | { 6 | test: /\.js$/, 7 | loader: 'babel-loader', 8 | exclude: /node_modules/ 9 | }, 10 | { 11 | test: /\.css$/, 12 | loader: 'style-loader!css-loader' 13 | } 14 | ]; 15 | var extensions = [ 16 | '', '.js', '.jsx', '.es6.js' 17 | ]; 18 | 19 | module.exports = [{ 20 | cache: cache, 21 | module: { 22 | loaders: loaders 23 | }, 24 | entry: { 25 | main: './src/Main.js', 26 | }, 27 | output: { 28 | path: './dist', 29 | filename: '[name].js' 30 | }, 31 | resolve: { 32 | extensions: extensions, 33 | root: [ 34 | __dirname, 35 | __dirname + '/src' 36 | ], 37 | alias: { 38 | "knockout": __dirname+"/node_modules/knockout/build/output/knockout-latest.js", 39 | } 40 | } 41 | }]; -------------------------------------------------------------------------------- /simulacra-v2.1.1/webpack.config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var path = require('path') 3 | 4 | var cache = {}; 5 | var loaders = [ 6 | { 7 | test: /\.es6\.js$/, 8 | loader: 'babel-loader', 9 | exclude: [/node_modules/, '.'], 10 | query: { 11 | presets: ['es2015', 'stage-0'] 12 | } 13 | } 14 | ]; 15 | var extensions = [ 16 | '.js', '.es6.js' 17 | ]; 18 | 19 | module.exports = [{ 20 | cache: cache, 21 | module: { 22 | loaders: loaders 23 | }, 24 | entry: './src/main', 25 | output: { 26 | path: path.resolve(__dirname, "dist"), 27 | filename: 'main.js', 28 | sourceMapFilename: "main.map", 29 | }, 30 | resolve: { 31 | extensions: extensions, 32 | modules: [ 33 | __dirname, 34 | path.resolve(__dirname, "src"), 35 | "node_modules" 36 | ], 37 | alias: { 38 | } 39 | } 40 | }]; -------------------------------------------------------------------------------- /marionette-v3.3.1/webpack.config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var path = require('path') 3 | 4 | var cache = {}; 5 | var loaders = [ 6 | { 7 | test: /\.js$/, 8 | loader: 'babel-loader', 9 | exclude: /node_modules/ 10 | }, 11 | { 12 | test: /\.css$/, 13 | loader: 'style-loader!css-loader' 14 | } 15 | ]; 16 | var extensions = [ 17 | '.js', '.jsx', '.es6.js' 18 | ]; 19 | 20 | module.exports = [{ 21 | cache: cache, 22 | module: { 23 | loaders: loaders 24 | }, 25 | entry: { 26 | main: './src/Main.js', 27 | }, 28 | output: { 29 | path: path.resolve(__dirname, "dist"), 30 | filename: '[name].js' 31 | }, 32 | resolve: { 33 | modules: [ 34 | __dirname, 35 | path.resolve(__dirname, "src"), 36 | "node_modules" 37 | ], 38 | extensions: extensions, 39 | alias: { 40 | } 41 | } 42 | }]; -------------------------------------------------------------------------------- /ractive-v0.8.12-keyed/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-ractive", 3 | "version": "1.0.0", 4 | "description": "Boilerplate for Ractive.js", 5 | "scripts": { 6 | "build-dev": "webpack -w -d", 7 | "build-prod": "webpack -p" 8 | }, 9 | "keywords": [ 10 | "ractive" 11 | ], 12 | "author": "Stefan Krause", 13 | "license": "Apache-2.0", 14 | "homepage": "https://github.com/krausest/js-framework-benchmark", 15 | "repository": { 16 | "type": "git", 17 | "url": "https://github.com/krausest/js-framework-benchmark.git" 18 | }, 19 | "devDependencies": { 20 | "babel-core": "6.24.1", 21 | "babel-loader": "7.0.0", 22 | "babel-preset-es2015": "6.24.1", 23 | "webpack": "2.5.1" 24 | }, 25 | "dependencies": { 26 | "ractive": "0.8.12" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /ractive-v0.8.12-non-keyed/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-ractive", 3 | "version": "1.0.0", 4 | "description": "Boilerplate for Ractive.js", 5 | "scripts": { 6 | "build-dev": "webpack -w -d", 7 | "build-prod": "webpack -p" 8 | }, 9 | "keywords": [ 10 | "ractive" 11 | ], 12 | "author": "Stefan Krause", 13 | "license": "Apache-2.0", 14 | "homepage": "https://github.com/krausest/js-framework-benchmark", 15 | "repository": { 16 | "type": "git", 17 | "url": "https://github.com/krausest/js-framework-benchmark.git" 18 | }, 19 | "devDependencies": { 20 | "babel-core": "6.24.1", 21 | "babel-loader": "7.0.0", 22 | "babel-preset-es2015": "6.24.1", 23 | "webpack": "2.5.1" 24 | }, 25 | "dependencies": { 26 | "ractive": "0.8.12" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /plastiq-v1.33.0/webpack.config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var cache = {}; 4 | var loaders = [ 5 | { 6 | test: /\.es6\.jsx?$/, 7 | loader: 'babel-loader', 8 | exclude: /node_modules/, 9 | query: { 10 | presets: ['es2015', 'react'] 11 | } 12 | }, 13 | { 14 | test: /\.css$/, 15 | loader: 'style-loader!css-loader' 16 | } 17 | ]; 18 | var extensions = [ 19 | '', '.js', '.es6.jsx', '.es6.js' 20 | ]; 21 | 22 | module.exports = [{ 23 | cache: cache, 24 | module: { 25 | loaders: loaders 26 | }, 27 | entry: { 28 | main: './src/entry/main', 29 | }, 30 | output: { 31 | path: './dist', 32 | filename: '[name].js', 33 | sourceMapFilename: "[file].map", 34 | }, 35 | resolve: { 36 | extensions: extensions, 37 | root: [ 38 | __dirname, 39 | __dirname + '/src' 40 | ] 41 | } 42 | }]; 43 | -------------------------------------------------------------------------------- /angular-v1.6.3-keyed/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-angular", 3 | "version": "1.0.0", 4 | "description": "Boilerplate for Angular.js", 5 | "scripts": { 6 | "build-dev": "webpack -w", 7 | "build-prod": "webpack -p" 8 | }, 9 | "keywords": [ 10 | "angular" 11 | ], 12 | "author": "Stefan Krause", 13 | "license": "Apache-2.0", 14 | "homepage": "https://github.com/krausest/js-framework-benchmark", 15 | "repository": { 16 | "type": "git", 17 | "url": "https://github.com/krausest/js-framework-benchmark.git" 18 | }, 19 | "devDependencies": { 20 | "babel-core": "6.24.0", 21 | "babel-loader": "6.4.1", 22 | "babel-preset-es2015": "6.24.0", 23 | "webpack": "2.2.1" 24 | }, 25 | "dependencies": { 26 | "angular": "1.6.3", 27 | "jquery": "3.2.1" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /rx-domh-v0.0.2-rxjs-v5.3.0/webpack.config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | require("babel-plugin-syntax-jsx") 3 | 4 | var cache = {}; 5 | var loaders = [ 6 | { 7 | test: /\.jsx?$/, 8 | loader: 'babel-loader' 9 | }, 10 | { 11 | test: /\.es6\.js$/, 12 | loader: 'babel-loader' 13 | }, 14 | { 15 | test: /\.css$/, 16 | loader: 'style-loader!css-loader' 17 | } 18 | ]; 19 | var extensions = [ 20 | '', '.js', '.jsx', '.es6.js', '.msx' 21 | ]; 22 | 23 | module.exports = [{ 24 | cache: cache, 25 | module: { 26 | loaders: loaders 27 | }, 28 | entry: { 29 | main: './src/main.js', 30 | }, 31 | output: { 32 | path: './dist', 33 | filename: '[name].js', 34 | sourceMapFilename: "[file].map", 35 | }, 36 | resolve: { 37 | extensions: extensions, 38 | root: [ 39 | __dirname, 40 | __dirname + '/src' 41 | ] 42 | } 43 | }]; -------------------------------------------------------------------------------- /dio-v3.0.5/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-dio-2.0.0", 3 | "version": "2.0.0", 4 | "description": "Benchmark for DIO 2.0.0 framework", 5 | "scripts": { 6 | "build-dev": "webpack -w -d -c webpack.config.js", 7 | "build-prod": "webpack -p -c webpack.config.js" 8 | }, 9 | "author": "Sultan Tarimo", 10 | "license": "Apache-2.0", 11 | "homepage": "https://github.com/krausest/js-framework-benchmark", 12 | "repository": { 13 | "type": "git", 14 | "url": "https://github.com/krausest/js-framework-benchmark.git" 15 | }, 16 | "devDependencies": { 17 | "babel-core": "6.18.2", 18 | "babel-loader": "6.2.8", 19 | "babel-preset-es2015": "6.18.0", 20 | "imports-loader": "^0.6.5", 21 | "webpack": "1.13.3" 22 | }, 23 | "dependencies": { 24 | "dio.js": "^3.0.5" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /css/bootstrap/less/component-animations.less: -------------------------------------------------------------------------------- 1 | // 2 | // Component animations 3 | // -------------------------------------------------- 4 | 5 | // Heads up! 6 | // 7 | // We don't use the `.opacity()` mixin here since it causes a bug with text 8 | // fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552. 9 | 10 | .fade { 11 | opacity: 0; 12 | .transition(opacity .15s linear); 13 | &.in { 14 | opacity: 1; 15 | } 16 | } 17 | 18 | .collapse { 19 | display: none; 20 | 21 | &.in { display: block; } 22 | tr&.in { display: table-row; } 23 | tbody&.in { display: table-row-group; } 24 | } 25 | 26 | .collapsing { 27 | position: relative; 28 | height: 0; 29 | overflow: hidden; 30 | .transition-property(~"height, visibility"); 31 | .transition-duration(.35s); 32 | .transition-timing-function(ease); 33 | } 34 | -------------------------------------------------------------------------------- /css/bootstrap/less/mixins/table-row.less: -------------------------------------------------------------------------------- 1 | // Tables 2 | 3 | .table-row-variant(@state; @background) { 4 | // Exact selectors below required to override `.table-striped` and prevent 5 | // inheritance to nested tables. 6 | .table > thead > tr, 7 | .table > tbody > tr, 8 | .table > tfoot > tr { 9 | > td.@{state}, 10 | > th.@{state}, 11 | &.@{state} > td, 12 | &.@{state} > th { 13 | background-color: @background; 14 | } 15 | } 16 | 17 | // Hover states for `.table-hover` 18 | // Note: this is not available for cells or rows within `thead` or `tfoot`. 19 | .table-hover > tbody > tr { 20 | > td.@{state}:hover, 21 | > th.@{state}:hover, 22 | &.@{state}:hover > td, 23 | &:hover > .@{state}, 24 | &.@{state}:hover > th { 25 | background-color: darken(@background, 5%); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /simulacra-v2.1.1/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-simulacra", 3 | "version": "1.0.0", 4 | "description": "Benchmark for simulacra.js", 5 | "scripts": { 6 | "build-dev": "webpack -w -d", 7 | "build-prod": "webpack -p" 8 | }, 9 | "keywords": [ 10 | "simulacra" 11 | ], 12 | "author": "Stefan Krause", 13 | "license": "Apache-2.0", 14 | "homepage": "https://github.com/krausest/js-framework-benchmark", 15 | "repository": { 16 | "type": "git", 17 | "url": "https://github.com/krausest/js-framework-benchmark.git" 18 | }, 19 | "devDependencies": { 20 | "babel-core": "6.24.1", 21 | "babel-loader": "7.0.0", 22 | "babel-preset-es2015": "6.24.1", 23 | "babel-preset-stage-0": "6.24.1", 24 | "webpack": "2.5.1" 25 | }, 26 | "dependencies": { 27 | "simulacra": "^2.0.4" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /nx-v1.0.0-beta.2.0.1-keyed/src/randomSentence.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const adjectives = ['pretty', 'large', 'big', 'small', 'tall', 'short', 'long', 'handsome', 'plain', 'quaint', 'clean', 'elegant', 'easy', 'angry', 'crazy', 'helpful', 'mushy', 'odd', 'unsightly', 'adorable', 'important', 'inexpensive', 'cheap', 'expensive', 'fancy']; 4 | const colours = ['red', 'yellow', 'blue', 'green', 'pink', 'brown', 'purple', 'brown', 'white', 'black', 'orange']; 5 | const nouns = ['table', 'chair', 'house', 'bbq', 'desk', 'car', 'pony', 'cookie', 'sandwich', 'burger', 'pizza', 'mouse', 'keyboard']; 6 | 7 | function random (max) { 8 | return Math.round(Math.random() * 1000) % max 9 | } 10 | 11 | module.exports = function randomSentence () { 12 | return `${adjectives[random(adjectives.length)]} ${colours[random(colours.length)]} ${nouns[random(nouns.length)]}` 13 | } 14 | -------------------------------------------------------------------------------- /ivi-v0.7.0/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "name": "js-framework-benchmark-ivi", 4 | "version": "0.5.0", 5 | "description": "Benchmark for ivi", 6 | "author": "Stefan Krause", 7 | "license": "Apache-2", 8 | "homepage": "https://github.com/krausest/js-framework-benchmark", 9 | "repository": "https://github.com/krausest/js-framework-benchmark", 10 | "keywords": [], 11 | "scripts": { 12 | "build-dev": "gulp build", 13 | "build-prod": "gulp build" 14 | }, 15 | "dependencies": { 16 | "ivi": "0.7.0" 17 | }, 18 | "devDependencies": { 19 | "del": "2.2.2", 20 | "google-closure-compiler-js": "20170218.0.0", 21 | "gulp": "3.9.1", 22 | "rollup": "0.41.5", 23 | "rollup-plugin-node-resolve": "2.0.0", 24 | "rollup-plugin-replace": "1.1.1" 25 | } 26 | } -------------------------------------------------------------------------------- /nx-v1.0.0-beta.2.0.1-non-keyed/src/randomSentence.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const adjectives = ['pretty', 'large', 'big', 'small', 'tall', 'short', 'long', 'handsome', 'plain', 'quaint', 'clean', 'elegant', 'easy', 'angry', 'crazy', 'helpful', 'mushy', 'odd', 'unsightly', 'adorable', 'important', 'inexpensive', 'cheap', 'expensive', 'fancy']; 4 | const colours = ['red', 'yellow', 'blue', 'green', 'pink', 'brown', 'purple', 'brown', 'white', 'black', 'orange']; 5 | const nouns = ['table', 'chair', 'house', 'bbq', 'desk', 'car', 'pony', 'cookie', 'sandwich', 'burger', 'pizza', 'mouse', 'keyboard']; 6 | 7 | function random (max) { 8 | return Math.round(Math.random() * 1000) % max 9 | } 10 | 11 | module.exports = function randomSentence () { 12 | return `${adjectives[random(adjectives.length)]} ${colours[random(colours.length)]} ${nouns[random(nouns.length)]}` 13 | } 14 | -------------------------------------------------------------------------------- /ractive-edge/webpack.config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var path = require('path') 3 | 4 | var cache = {}; 5 | var loaders = [ 6 | { 7 | test: /\.es6\.js$/, 8 | loader: 'babel-loader' 9 | }, 10 | { 11 | test: /\.css$/, 12 | loader: 'style-loader!css-loader' 13 | } 14 | ]; 15 | var extensions = [ 16 | '.js', '.es6.js' 17 | ]; 18 | 19 | module.exports = [{ 20 | cache: cache, 21 | module: { 22 | loaders: loaders 23 | }, 24 | entry: { 25 | main: './src/main', 26 | }, 27 | output: { 28 | path: path.resolve(__dirname, "dist"), 29 | filename: 'main.js' 30 | }, 31 | resolve: { 32 | extensions: extensions, 33 | modules: [ 34 | __dirname, 35 | path.resolve(__dirname, "src"), 36 | "node_modules" 37 | ], 38 | alias: { 39 | "ractive": __dirname+"/node_modules/ractive/ractive.min.js", 40 | } 41 | } 42 | }]; -------------------------------------------------------------------------------- /hyperapp-v0.9.1/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hyperapp-v0.6.0-js-benchmark", 3 | "version": "1.0.0", 4 | "description": "hyperapp v0.6.0 js benchmark", 5 | "main": "index.js", 6 | "dependencies": { 7 | "hyperapp": "0.9.1" 8 | }, 9 | "devDependencies": { 10 | "babel-plugin-transform-react-jsx": "^6.24.1", 11 | "babel-preset-es2015-rollup": "^3.0.0", 12 | "rollup": "^0.41.6", 13 | "rollup-plugin-babel": "^2.7.1", 14 | "rollup-plugin-node-resolve": "^3.0.0", 15 | "rollup-plugin-uglify": "^1.0.2", 16 | "rollup-watch": "^3.2.2" 17 | }, 18 | "scripts": { 19 | "build-prod": "rollup -cf iife -i src/index.js -o dist/index.js", 20 | "build-dev": "rollup -w -cf iife -m inline -i src/index.js -o dist/index.js" 21 | }, 22 | "keywords": [ 23 | "hyperapp" 24 | ], 25 | "author": "Jorge Bucaran", 26 | "license": "MIT" 27 | } 28 | -------------------------------------------------------------------------------- /ractive-v0.8.12-keyed/webpack.config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var path = require('path') 3 | 4 | var cache = {}; 5 | var loaders = [ 6 | { 7 | test: /\.es6\.js$/, 8 | loader: 'babel-loader' 9 | }, 10 | { 11 | test: /\.css$/, 12 | loader: 'style-loader!css-loader' 13 | } 14 | ]; 15 | var extensions = [ 16 | '.js', '.es6.js' 17 | ]; 18 | 19 | module.exports = [{ 20 | cache: cache, 21 | module: { 22 | loaders: loaders 23 | }, 24 | entry: { 25 | main: './src/main', 26 | }, 27 | output: { 28 | path: path.resolve(__dirname, "dist"), 29 | filename: 'main.js' 30 | }, 31 | resolve: { 32 | extensions: extensions, 33 | modules: [ 34 | __dirname, 35 | path.resolve(__dirname, "src"), 36 | "node_modules" 37 | ], 38 | alias: { 39 | "ractive": __dirname+"/node_modules/ractive/ractive.min.js", 40 | } 41 | } 42 | }]; -------------------------------------------------------------------------------- /ractive-v0.8.12-non-keyed/webpack.config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var path = require('path') 3 | 4 | var cache = {}; 5 | var loaders = [ 6 | { 7 | test: /\.es6\.js$/, 8 | loader: 'babel-loader' 9 | }, 10 | { 11 | test: /\.css$/, 12 | loader: 'style-loader!css-loader' 13 | } 14 | ]; 15 | var extensions = [ 16 | '.js', '.es6.js' 17 | ]; 18 | 19 | module.exports = [{ 20 | cache: cache, 21 | module: { 22 | loaders: loaders 23 | }, 24 | entry: { 25 | main: './src/main', 26 | }, 27 | output: { 28 | path: path.resolve(__dirname, "dist"), 29 | filename: 'main.js' 30 | }, 31 | resolve: { 32 | extensions: extensions, 33 | modules: [ 34 | __dirname, 35 | path.resolve(__dirname, "src"), 36 | "node_modules" 37 | ], 38 | alias: { 39 | "ractive": __dirname+"/node_modules/ractive/ractive.min.js", 40 | } 41 | } 42 | }]; -------------------------------------------------------------------------------- /vidom-v0.9.8/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-vidom", 3 | "version": "1.0.0", 4 | "description": "Benchmark for vidom framework", 5 | "scripts": { 6 | "build-dev": "webpack -w -d", 7 | "build-prod": "webpack -p" 8 | }, 9 | "keywords": [ 10 | "ractive" 11 | ], 12 | "author": "Stefan Krause", 13 | "license": "Apache-2.0", 14 | "homepage": "https://github.com/krausest/js-framework-benchmark", 15 | "repository": { 16 | "type": "git", 17 | "url": "https://github.com/krausest/js-framework-benchmark.git" 18 | }, 19 | "devDependencies": { 20 | "babel-core": "6.24.1", 21 | "babel-loader": "7.0.0", 22 | "babel-plugin-vidom-jsx": "0.5.1", 23 | "babel-preset-es2015": "6.24.1", 24 | "babel-preset-stage-0": "6.24.1", 25 | "webpack": "2.5.1" 26 | }, 27 | "dependencies": { 28 | "vidom": "0.9.8" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /choo-v5.4.0/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "choo-v4.1.0", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "src/index.js", 6 | "scripts": { 7 | "build-dev": "browserify src/index.js > dist/index.js", 8 | "build-prod": "rimraf dist && mkdirp dist && cross-env NODE_ENV=production browserify src/index.js -t envify -g yo-yoify -g unassertify -g es2020 -g uglifyify | uglifyjs > dist/index.js" 9 | }, 10 | "keywords": [ 11 | "choo" 12 | ], 13 | "author": "Rahul Chanila", 14 | "license": "MIT", 15 | "dependencies": { 16 | "browserify": "^14.3.0", 17 | "choo": "^5.4.0", 18 | "cross-env": "^5.0.0", 19 | "envify": "^4.0.0", 20 | "es2020": "^1.1.9", 21 | "mkdirp": "^0.5.1", 22 | "rimraf": "^2.6.1", 23 | "uglify-js": "^3.0.4", 24 | "uglifyify": "^3.0.4", 25 | "unassertify": "^2.0.4", 26 | "yo-yoify": "^3.7.3" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /preact-v7.1.0/webpack.config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | require("babel-plugin-syntax-jsx") 3 | 4 | var cache = {}; 5 | var loaders = [ 6 | { 7 | test: /\.jsx$/, 8 | loader: 'babel-loader' 9 | }, 10 | { 11 | test: /\.es6\.js$/, 12 | loader: 'babel-loader' 13 | }, 14 | { 15 | test: /\.css$/, 16 | loader: 'style-loader!css-loader' 17 | } 18 | ]; 19 | var extensions = [ 20 | '', '.js', '.jsx', '.es6.js', '.msx' 21 | ]; 22 | 23 | module.exports = [{ 24 | cache: cache, 25 | module: { 26 | loaders: loaders 27 | }, 28 | entry: { 29 | main: './src/Main.jsx', 30 | }, 31 | output: { 32 | path: './dist', 33 | filename: '[name].js', 34 | sourceMapFilename: "[file].map", 35 | }, 36 | resolve: { 37 | extensions: extensions, 38 | root: [ 39 | __dirname, 40 | __dirname + '/src' 41 | ], 42 | alias: { 43 | 'preact': 'node_modules/preact/dist/preact.min.js', 44 | } 45 | } 46 | }]; -------------------------------------------------------------------------------- /react-lite-v0.15.30/webpack.config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | require("babel-plugin-syntax-jsx") 3 | 4 | var cache = {}; 5 | var loaders = [ 6 | { 7 | test: /\.jsx$/, 8 | loader: 'babel-loader' 9 | }, 10 | { 11 | test: /\.es6\.js$/, 12 | loader: 'babel-loader' 13 | }, 14 | { 15 | test: /\.css$/, 16 | loader: 'style-loader!css-loader' 17 | } 18 | ]; 19 | var extensions = [ 20 | '', '.js', '.jsx', '.es6.js', '.msx' 21 | ]; 22 | 23 | module.exports = [{ 24 | cache: cache, 25 | module: { 26 | loaders: loaders 27 | }, 28 | entry: { 29 | main: './src/main.es6.js', 30 | }, 31 | output: { 32 | path: './dist', 33 | filename: '[name].js', 34 | sourceMapFilename: "[file].map", 35 | }, 36 | resolve: { 37 | extensions: extensions, 38 | root: [ 39 | __dirname, 40 | __dirname + '/src' 41 | ], 42 | alias: { 43 | 'react': 'react-lite', 44 | 'react-dom': 'react-lite' 45 | } 46 | } 47 | }]; -------------------------------------------------------------------------------- /preact-v7.1.0/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-react-lite", 3 | "version": "1.0.0", 4 | "description": "Benchmark for react-lite framework", 5 | "scripts": { 6 | "build-dev": "webpack -w -d -c webpack.config.js", 7 | "build-prod": "webpack -p -c webpack.config.js" 8 | }, 9 | "keywords": [ 10 | "ractive" 11 | ], 12 | "author": "Stefan Krause", 13 | "license": "Apache-2.0", 14 | "homepage": "https://github.com/krausest/js-framework-benchmark", 15 | "repository": { 16 | "type": "git", 17 | "url": "https://github.com/krausest/js-framework-benchmark.git" 18 | }, 19 | "devDependencies": { 20 | "babel-preset-es2015": "6.18.0", 21 | "babel-preset-react": "6.16.0", 22 | "webpack": "1.14.0" 23 | }, 24 | "dependencies": { 25 | "babel-core": "6.21.0", 26 | "babel-loader": "6.2.10", 27 | "jsx-loader": "0.13.2", 28 | "preact": "7.1.0" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /css/bootstrap/less/close.less: -------------------------------------------------------------------------------- 1 | // 2 | // Close icons 3 | // -------------------------------------------------- 4 | 5 | 6 | .close { 7 | float: right; 8 | font-size: (@font-size-base * 1.5); 9 | font-weight: @close-font-weight; 10 | line-height: 1; 11 | color: @close-color; 12 | text-shadow: @close-text-shadow; 13 | .opacity(.2); 14 | 15 | &:hover, 16 | &:focus { 17 | color: @close-color; 18 | text-decoration: none; 19 | cursor: pointer; 20 | .opacity(.5); 21 | } 22 | 23 | // Additional properties for button version 24 | // iOS requires the button element instead of an anchor tag. 25 | // If you want the anchor version, it requires `href="#"`. 26 | // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile 27 | button& { 28 | padding: 0; 29 | cursor: pointer; 30 | background: transparent; 31 | border: 0; 32 | -webkit-appearance: none; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /css/bootstrap/less/thumbnails.less: -------------------------------------------------------------------------------- 1 | // 2 | // Thumbnails 3 | // -------------------------------------------------- 4 | 5 | 6 | // Mixin and adjust the regular image class 7 | .thumbnail { 8 | display: block; 9 | padding: @thumbnail-padding; 10 | margin-bottom: @line-height-computed; 11 | line-height: @line-height-base; 12 | background-color: @thumbnail-bg; 13 | border: 1px solid @thumbnail-border; 14 | border-radius: @thumbnail-border-radius; 15 | .transition(border .2s ease-in-out); 16 | 17 | > img, 18 | a > img { 19 | &:extend(.img-responsive); 20 | margin-left: auto; 21 | margin-right: auto; 22 | } 23 | 24 | // Add a hover state for linked versions only 25 | a&:hover, 26 | a&:focus, 27 | a&.active { 28 | border-color: @link-color; 29 | } 30 | 31 | // Image captions 32 | .caption { 33 | padding: @thumbnail-caption-padding; 34 | color: @thumbnail-caption-color; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /react-v15.5.4-keyed/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-react", 3 | "version": "1.1.1", 4 | "description": "React demo", 5 | "main": "index.js", 6 | "scripts": { 7 | "build-dev": "webpack -w -d", 8 | "build-prod": "webpack -p" 9 | }, 10 | "keywords": [ 11 | "react", 12 | "webpack" 13 | ], 14 | "author": "Stefan Krause", 15 | "license": "Apache-2.0", 16 | "homepage": "https://github.com/krausest/js-framework-benchmark", 17 | "repository": { 18 | "type": "git", 19 | "url": "https://github.com/krausest/js-framework-benchmark.git" 20 | }, 21 | "devDependencies": { 22 | "babel-core": "6.24.1", 23 | "babel-loader": "7.0.0", 24 | "babel-preset-es2015": "6.24.1", 25 | "babel-preset-react": "6.24.1", 26 | "webpack": "2.5.1", 27 | "jsx-loader": "0.13.2" 28 | }, 29 | "dependencies": { 30 | "react": "15.5.4", 31 | "react-dom": "15.5.4" 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /react-lite-v0.15.30/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-react-lite", 3 | "version": "1.0.0", 4 | "description": "Benchmark for react-lite framework", 5 | "scripts": { 6 | "build-dev": "webpack -w -d -c webpack.config.js", 7 | "build-prod": "webpack -p -c webpack.config.js" 8 | }, 9 | "keywords": [ 10 | "ractive" 11 | ], 12 | "author": "Stefan Krause", 13 | "license": "Apache-2.0", 14 | "homepage": "https://github.com/krausest/js-framework-benchmark", 15 | "repository": { 16 | "type": "git", 17 | "url": "https://github.com/krausest/js-framework-benchmark.git" 18 | }, 19 | "devDependencies": { 20 | "babel-preset-es2015": "6.18.0", 21 | "babel-preset-react": "6.16.0", 22 | "webpack": "1.14.0" 23 | }, 24 | "dependencies": { 25 | "babel-core": "6.21.0", 26 | "babel-loader": "6.2.10", 27 | "jsx-loader": "0.13.2", 28 | "react-lite": "0.15.30" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /react-v15.5.4-non-keyed/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-react", 3 | "version": "1.1.1", 4 | "description": "React demo", 5 | "main": "index.js", 6 | "scripts": { 7 | "build-dev": "webpack -w -d", 8 | "build-prod": "webpack -p" 9 | }, 10 | "keywords": [ 11 | "react", 12 | "webpack" 13 | ], 14 | "author": "Stefan Krause", 15 | "license": "Apache-2.0", 16 | "homepage": "https://github.com/krausest/js-framework-benchmark", 17 | "repository": { 18 | "type": "git", 19 | "url": "https://github.com/krausest/js-framework-benchmark.git" 20 | }, 21 | "devDependencies": { 22 | "babel-core": "6.24.1", 23 | "babel-loader": "7.0.0", 24 | "babel-preset-es2015": "6.24.1", 25 | "babel-preset-react": "6.24.1", 26 | "webpack": "2.5.1", 27 | "jsx-loader": "0.13.2" 28 | }, 29 | "dependencies": { 30 | "react": "15.5.4", 31 | "react-dom": "15.5.4" 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /ember-v2.13.0/app/components/my-table.js: -------------------------------------------------------------------------------- 1 | import Ember from 'ember'; 2 | 3 | export default Ember.Component.extend({ 4 | rows: Ember.inject.service(), 5 | actions: { 6 | add: function() { 7 | //console.log("add"); 8 | this.get('rows').add(); 9 | }, 10 | create: function() { 11 | //console.log("create",this.rows); 12 | this.get('rows').run(); 13 | }, 14 | update: function() { 15 | //console.log("update",this.rows); 16 | this.get('rows').update(); 17 | }, 18 | runLots: function() { 19 | this.get('rows').runLots(); 20 | }, 21 | clear: function() { 22 | this.get('rows').clear(); 23 | }, 24 | swapRows: function() { 25 | this.get('rows').swapRows(); 26 | }, 27 | remove(identifier) { 28 | this.get('rows').remove(identifier); 29 | }, 30 | select(identifier) { 31 | this.get('rows').select(identifier); 32 | } 33 | } 34 | }); 35 | -------------------------------------------------------------------------------- /ember-v2.13.0/ember-cli-build.js: -------------------------------------------------------------------------------- 1 | /*jshint node:true*/ 2 | /* global require, module */ 3 | var EmberApp = require('ember-cli/lib/broccoli/ember-app'); 4 | 5 | module.exports = function(defaults) { 6 | var app = new EmberApp(defaults, { 7 | // Add options here 8 | }); 9 | 10 | // Use `app.import` to add additional libraries to the generated 11 | // output files. 12 | // 13 | // If you need to use different assets in different 14 | // environments, specify an object as the first parameter. That 15 | // object's keys should be the environment name and the values 16 | // should be the asset to use in that environment. 17 | // 18 | // If the library that you are including contains AMD or ES6 19 | // modules that you would like to import into your application 20 | // please specify an object with the list of modules as keys 21 | // along with the exports of each module as its value. 22 | 23 | return app.toTree(); 24 | }; 25 | -------------------------------------------------------------------------------- /vue-v2.3.3-keyed/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-vue", 3 | "version": "1.0.0", 4 | "description": "Benchmark for vue.js framework", 5 | "scripts": { 6 | "build-dev": "webpack -w -d", 7 | "build-prod": "webpack -p" 8 | }, 9 | "keywords": [ 10 | "ractive" 11 | ], 12 | "author": "Stefan Krause", 13 | "license": "Apache-2.0", 14 | "homepage": "https://github.com/krausest/js-framework-benchmark", 15 | "repository": { 16 | "type": "git", 17 | "url": "https://github.com/krausest/js-framework-benchmark.git" 18 | }, 19 | "devDependencies": { 20 | "babel-core": "6.24.1", 21 | "babel-loader": "7.0.0", 22 | "babel-preset-es2015": "6.24.1", 23 | "babel-preset-stage-0": "6.24.1", 24 | "webpack": "2.5.1", 25 | "vue-loader": "12.0.4", 26 | "vue-template-compiler": "2.3.3", 27 | "css-loader": "0.28.1" 28 | }, 29 | "dependencies": { 30 | "vue": "2.3.3" 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /vidom-v0.9.8/webpack.config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var path = require('path') 3 | var cache = {}; 4 | var loaders = [ 5 | { 6 | test: /\.jsx$/, 7 | loader: 'babel-loader' 8 | }, 9 | { 10 | test: /\.es6\.js$/, 11 | loader: 'babel-loader' 12 | }, 13 | { 14 | test: /\.css$/, 15 | loader: 'style-loader!css-loader' 16 | } 17 | ]; 18 | var extensions = [ 19 | '.js', '.jsx', '.es6.js', '.msx' 20 | ]; 21 | 22 | module.exports = [{ 23 | cache: cache, 24 | module: { 25 | loaders: loaders 26 | }, 27 | entry: { 28 | main: './src/main', 29 | }, 30 | output: { 31 | path: path.resolve(__dirname, "dist"), 32 | filename: '[name].js', 33 | sourceMapFilename: "[file].map", 34 | }, 35 | resolve: { 36 | extensions: extensions, 37 | modules: [ 38 | __dirname, 39 | path.resolve(__dirname, "src"), 40 | "node_modules" 41 | ], 42 | alias: { 43 | "vidom": __dirname+"/node_modules/vidom/dist/vidom.min.js", 44 | } 45 | } 46 | }]; 47 | -------------------------------------------------------------------------------- /vue-v2.3.3-non-keyed/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-vue", 3 | "version": "1.0.0", 4 | "description": "Benchmark for vue.js framework", 5 | "scripts": { 6 | "build-dev": "webpack -w -d", 7 | "build-prod": "webpack -p" 8 | }, 9 | "keywords": [ 10 | "ractive" 11 | ], 12 | "author": "Stefan Krause", 13 | "license": "Apache-2.0", 14 | "homepage": "https://github.com/krausest/js-framework-benchmark", 15 | "repository": { 16 | "type": "git", 17 | "url": "https://github.com/krausest/js-framework-benchmark.git" 18 | }, 19 | "devDependencies": { 20 | "babel-core": "6.24.1", 21 | "babel-loader": "7.0.0", 22 | "babel-preset-es2015": "6.24.1", 23 | "babel-preset-stage-0": "6.24.1", 24 | "webpack": "2.5.1", 25 | "vue-loader": "12.0.4", 26 | "vue-template-compiler": "2.3.3", 27 | "css-loader": "0.28.1" 28 | }, 29 | "dependencies": { 30 | "vue": "2.3.3" 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /kivi-v1.0.0-rc2/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "name": "js-framework-benchmark-kivi", 4 | "version": "0.11.0", 5 | "description": "Benchmark for kivi", 6 | "author": "Stefan Krause", 7 | "license": "Apache-2", 8 | "homepage": "https://github.com/krausest/js-framework-benchmark", 9 | "repository": "https://github.com/krausest/js-framework-benchmark", 10 | "keywords": [], 11 | "scripts": { 12 | "build-dev": "gulp build", 13 | "build-prod": "gulp build" 14 | }, 15 | "dependencies": { 16 | "kivi": "1.0.0-rc2" 17 | }, 18 | "devDependencies": { 19 | "del": "2.2.2", 20 | "google-closure-compiler-js": "20161024.0.0", 21 | "gulp": "github:gulpjs/gulp#4.0", 22 | "gulp-tslint": "6.1.3", 23 | "gulp-typescript": "3.1.3", 24 | "rollup": "0.36.3", 25 | "rollup-plugin-node-resolve": "2.0.0", 26 | "rollup-plugin-replace": "1.1.1", 27 | "tslint": "4.0.0", 28 | "typescript": "2.0.10" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /mithril-v1.1.1/webpack.config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var path = require('path') 3 | 4 | var cache = {}; 5 | var loaders = [ 6 | { 7 | test: /\.jsx?$/, 8 | loader: 'babel-loader', 9 | exclude: /node_modules/, 10 | query: { 11 | presets: ['es2015', 'react'] 12 | } 13 | }, 14 | { 15 | test: /\.es6\.js$/, 16 | loader: 'babel-loader' 17 | }, 18 | { 19 | test: /\.css$/, 20 | loader: 'style-loader!css-loader' 21 | } 22 | ]; 23 | var extensions = [ 24 | '.js', '.jsx', '.es6.js' 25 | ]; 26 | 27 | module.exports = [{ 28 | cache: cache, 29 | module: { 30 | loaders: loaders 31 | }, 32 | entry: { 33 | main: './src/main', 34 | }, 35 | output: { 36 | path: path.resolve(__dirname,'dist'), 37 | filename: '[name].js', 38 | sourceMapFilename: "[file].map", 39 | }, 40 | resolve: { 41 | modules: [ 42 | __dirname, 43 | path.resolve(__dirname, "src"), 44 | "node_modules" 45 | ], 46 | extensions: extensions 47 | } 48 | }]; 49 | -------------------------------------------------------------------------------- /glimmer-v0.3.10/README.md: -------------------------------------------------------------------------------- 1 | # glimmer-app 2 | 3 | This README outlines the details of collaborating on this Glimmer application. 4 | A short introduction of this app could easily go here. 5 | 6 | ## Prerequisites 7 | 8 | You will need the following things properly installed on your computer. 9 | 10 | * [Git](https://git-scm.com/) 11 | * [Node.js](https://nodejs.org/) (with NPM) 12 | * [Yarn](https://yarnpkg.com/en/) 13 | * [Ember CLI](https://ember-cli.com/) 14 | 15 | ## Installation 16 | 17 | * `git clone ` this repository 18 | * `cd glimmer-app` 19 | * `yarn` 20 | 21 | ## Running / Development 22 | 23 | * `ember serve` 24 | * Visit your app at [http://localhost:4200](http://localhost:4200). 25 | 26 | ### Building 27 | 28 | * `ember build` (development) 29 | * `ember build --environment production` (production) 30 | 31 | ## Further Reading / Useful Links 32 | 33 | * [glimmerjs](http://github.com/tildeio/glimmer/) 34 | * [ember-cli](https://ember-cli.com/) 35 | -------------------------------------------------------------------------------- /glimmer-v0.3.10/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "glimmer-app", 3 | "version": "0.0.0", 4 | "description": "A brand new Glimmer app.", 5 | "directories": { 6 | "doc": "doc", 7 | "test": "tests" 8 | }, 9 | "scripts": { 10 | "build": "ember build", 11 | "start": "ember server", 12 | "test": "ember test", 13 | "build-dev": "ember build", 14 | "build-prod": "ember build --environment=production" 15 | }, 16 | "devDependencies": { 17 | "@glimmer/application": "^0.4.0", 18 | "@glimmer/application-pipeline": "^0.6.8", 19 | "@glimmer/blueprint": "^0.1.12", 20 | "@glimmer/component": "^0.3.10", 21 | "@glimmer/resolver": "^0.3.0", 22 | "broccoli-asset-rev": "^2.5.0", 23 | "ember-cli": "github:ember-cli/ember-cli", 24 | "ember-cli-inject-live-reload": "^1.6.1", 25 | "ember-cli-uglify": "^1.2.0", 26 | "typescript": "^2.2.2" 27 | }, 28 | "engines": { 29 | "node": ">= 4.0" 30 | }, 31 | "private": true 32 | } 33 | -------------------------------------------------------------------------------- /inferno-v3.1.2-keyed/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-inferno", 3 | "version": "1.0.0", 4 | "description": "Benchmark for inferno framework", 5 | "scripts": { 6 | "build-dev": "webpack -w -d", 7 | "build-prod": "webpack -p" 8 | }, 9 | "keywords": [ 10 | "ractive" 11 | ], 12 | "author": "Stefan Krause", 13 | "license": "Apache-2.0", 14 | "homepage": "https://github.com/krausest/js-framework-benchmark", 15 | "repository": { 16 | "type": "git", 17 | "url": "https://github.com/krausest/js-framework-benchmark.git" 18 | }, 19 | "devDependencies": { 20 | "babel-core": "6.24.1", 21 | "babel-loader": "7.0.0", 22 | "babel-plugin-inferno": "3.2.0", 23 | "babel-plugin-syntax-jsx": "6.18.0", 24 | "babel-preset-es2015": "6.24.1", 25 | "babel-preset-stage-0": "6.24.1", 26 | "webpack": "2.5.1" 27 | }, 28 | "dependencies": { 29 | "inferno": "3.1.2", 30 | "inferno-component": "3.1.2" 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /inferno-v3.1.2-non-keyed/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-inferno", 3 | "version": "1.0.0", 4 | "description": "Benchmark for inferno framework", 5 | "scripts": { 6 | "build-dev": "webpack -w -d", 7 | "build-prod": "webpack -p" 8 | }, 9 | "keywords": [ 10 | "ractive" 11 | ], 12 | "author": "Stefan Krause", 13 | "license": "Apache-2.0", 14 | "homepage": "https://github.com/krausest/js-framework-benchmark", 15 | "repository": { 16 | "type": "git", 17 | "url": "https://github.com/krausest/js-framework-benchmark.git" 18 | }, 19 | "devDependencies": { 20 | "babel-core": "6.24.1", 21 | "babel-loader": "7.0.0", 22 | "babel-plugin-inferno": "3.2.0", 23 | "babel-plugin-syntax-jsx": "6.18.0", 24 | "babel-preset-es2015": "6.24.1", 25 | "babel-preset-stage-0": "6.24.1", 26 | "webpack": "2.5.1" 27 | }, 28 | "dependencies": { 29 | "inferno": "3.1.2", 30 | "inferno-component": "3.1.2" 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /glimmer-v0.3.10/ember-cli-build.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const GlimmerApp = require('@glimmer/application-pipeline').GlimmerApp; 4 | 5 | module.exports = function(defaults) { 6 | let app = new GlimmerApp(defaults, { 7 | // Add options here 8 | fingerprint: { 9 | enabled: false 10 | } 11 | }); 12 | 13 | // Use `app.import` to add additional libraries to the generated 14 | // output files. 15 | // 16 | // If you need to use different assets in different 17 | // environments, specify an object as the first parameter. That 18 | // object's keys should be the environment name and the values 19 | // should be the asset to use in that environment. 20 | // 21 | // If the library that you are including contains AMD or ES6 22 | // modules that you would like to import into your application 23 | // please specify an object with the list of modules as keys 24 | // along with the exports of each module as its value. 25 | 26 | return app.toTree(); 27 | }; 28 | -------------------------------------------------------------------------------- /react-v15.5.4-keyed/webpack.config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | require("babel-plugin-syntax-jsx") 3 | var path = require('path') 4 | var webpack = require('webpack') 5 | var cache = {}; 6 | var loaders = [ 7 | { 8 | test: /\.jsx$/, 9 | loader: 'babel-loader' 10 | }, 11 | { 12 | test: /\.es6\.js$/, 13 | loader: 'babel-loader' 14 | }, 15 | { 16 | test: /\.css$/, 17 | loader: 'style-loader!css-loader' 18 | } 19 | ]; 20 | var extensions = [ 21 | '.js', '.jsx', '.es6.js' 22 | ]; 23 | 24 | module.exports = [{ 25 | cache: cache, 26 | module: { 27 | loaders: loaders 28 | }, 29 | entry: { 30 | main: './src/main.es6.js', 31 | }, 32 | output: { 33 | path: path.resolve(__dirname, "dist"), 34 | filename: '[name].js' 35 | }, 36 | resolve: { 37 | extensions: extensions, 38 | modules: [ 39 | __dirname, 40 | path.resolve(__dirname, "src"), 41 | "node_modules" 42 | ] 43 | }, 44 | plugins: [ 45 | new webpack.DefinePlugin({ 46 | 'process.env.NODE_ENV': '"production"' 47 | }) 48 | ] 49 | }]; -------------------------------------------------------------------------------- /react-v15.5.4-mobX-v3.1.9/webpack.config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | require("babel-plugin-syntax-jsx") 3 | var path = require('path') 4 | var webpack = require('webpack') 5 | var cache = {}; 6 | var loaders = [ 7 | { 8 | test: /\.jsx$/, 9 | loader: 'babel-loader' 10 | }, 11 | { 12 | test: /\.es6\.js$/, 13 | loader: 'babel-loader' 14 | }, 15 | { 16 | test: /\.css$/, 17 | loader: 'style-loader!css-loader' 18 | } 19 | ]; 20 | var extensions = [ 21 | '.js', '.jsx', '.es6.js' 22 | ]; 23 | 24 | module.exports = [{ 25 | cache: cache, 26 | module: { 27 | loaders: loaders 28 | }, 29 | entry: { 30 | main: './src/Main.jsx', 31 | }, 32 | output: { 33 | path: path.resolve(__dirname, "dist"), 34 | filename: '[name].js' 35 | }, 36 | resolve: { 37 | extensions: extensions, 38 | modules: [ 39 | __dirname, 40 | path.resolve(__dirname, "src"), 41 | "node_modules" 42 | ] 43 | }, 44 | plugins: [ 45 | new webpack.DefinePlugin({ 46 | 'process.env.NODE_ENV': '"production"' 47 | }) 48 | ] 49 | }]; -------------------------------------------------------------------------------- /react-v15.5.4-non-keyed/webpack.config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | require("babel-plugin-syntax-jsx") 3 | var path = require('path') 4 | var webpack = require('webpack') 5 | var cache = {}; 6 | var loaders = [ 7 | { 8 | test: /\.jsx$/, 9 | loader: 'babel-loader' 10 | }, 11 | { 12 | test: /\.es6\.js$/, 13 | loader: 'babel-loader' 14 | }, 15 | { 16 | test: /\.css$/, 17 | loader: 'style-loader!css-loader' 18 | } 19 | ]; 20 | var extensions = [ 21 | '.js', '.jsx', '.es6.js' 22 | ]; 23 | 24 | module.exports = [{ 25 | cache: cache, 26 | module: { 27 | loaders: loaders 28 | }, 29 | entry: { 30 | main: './src/main.es6.js', 31 | }, 32 | output: { 33 | path: path.resolve(__dirname, "dist"), 34 | filename: '[name].js' 35 | }, 36 | resolve: { 37 | extensions: extensions, 38 | modules: [ 39 | __dirname, 40 | path.resolve(__dirname, "src"), 41 | "node_modules" 42 | ] 43 | }, 44 | plugins: [ 45 | new webpack.DefinePlugin({ 46 | 'process.env.NODE_ENV': '"production"' 47 | }) 48 | ] 49 | }]; -------------------------------------------------------------------------------- /stem-v0.2.70/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "stemjs-demo", 3 | "version": "1.0.0", 4 | "description": "None", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "build": "cd src; rollup -c", 9 | "build-prod": "cd src; rollup -c", 10 | "watch": "cd src; rollup -c --watch", 11 | "start": "python -m SimpleHTTPServer" 12 | }, 13 | "author": "Mihai Ciucu", 14 | "license": "ISC", 15 | "devDependencies": { 16 | "babel-plugin-transform-class-properties": "^6.19.0", 17 | "babel-plugin-transform-decorators-legacy": "^1.3.4", 18 | "babel-plugin-transform-react-jsx": "^6.8.0", 19 | "babel-preset-es2015-rollup": "^3.0.0", 20 | "rollup": "^0.41.4", 21 | "rollup-plugin-babel": "^2.6.1", 22 | "rollup-plugin-includepaths": "^0.2.2", 23 | "rollup-plugin-uglify": "^1.0.1", 24 | "rollup-watch": "^3.2.2", 25 | "stem-core": "^0.2.60" 26 | }, 27 | "dependencies": { 28 | "babel-polyfill": "^6.23.0" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /css/bootstrap/less/utilities.less: -------------------------------------------------------------------------------- 1 | // 2 | // Utility classes 3 | // -------------------------------------------------- 4 | 5 | 6 | // Floats 7 | // ------------------------- 8 | 9 | .clearfix { 10 | .clearfix(); 11 | } 12 | .center-block { 13 | .center-block(); 14 | } 15 | .pull-right { 16 | float: right !important; 17 | } 18 | .pull-left { 19 | float: left !important; 20 | } 21 | 22 | 23 | // Toggling content 24 | // ------------------------- 25 | 26 | // Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1 27 | .hide { 28 | display: none !important; 29 | } 30 | .show { 31 | display: block !important; 32 | } 33 | .invisible { 34 | visibility: hidden; 35 | } 36 | .text-hide { 37 | .text-hide(); 38 | } 39 | 40 | 41 | // Hide from screenreaders and browsers 42 | // 43 | // Credit: HTML5 Boilerplate 44 | 45 | .hidden { 46 | display: none !important; 47 | } 48 | 49 | 50 | // For Affix plugin 51 | // ------------------------- 52 | 53 | .affix { 54 | position: fixed; 55 | } 56 | -------------------------------------------------------------------------------- /react-v15.5.4-redux-v3.6.0/webpack.config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | require("babel-plugin-syntax-jsx") 3 | var path = require('path') 4 | var webpack = require('webpack') 5 | var cache = {}; 6 | var loaders = [ 7 | { 8 | test: /\.jsx$/, 9 | loader: 'babel-loader' 10 | }, 11 | { 12 | test: /\.es6\.js$/, 13 | loader: 'babel-loader' 14 | }, 15 | { 16 | test: /\.css$/, 17 | loader: 'style-loader!css-loader' 18 | } 19 | ]; 20 | var extensions = [ 21 | '.js', '.jsx', '.es6.js' 22 | ]; 23 | 24 | module.exports = [{ 25 | cache: cache, 26 | module: { 27 | loaders: loaders 28 | }, 29 | entry: { 30 | main: './src/main.es6.js', 31 | }, 32 | output: { 33 | path: path.resolve(__dirname, "dist"), 34 | filename: '[name].js' 35 | }, 36 | resolve: { 37 | extensions: extensions, 38 | modules: [ 39 | __dirname, 40 | path.resolve(__dirname, "src"), 41 | "node_modules" 42 | ] 43 | }, 44 | plugins: [ 45 | new webpack.DefinePlugin({ 46 | 'process.env.NODE_ENV': '"production"' 47 | }) 48 | ] 49 | }]; -------------------------------------------------------------------------------- /surplus-v0.4.0/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-surplus", 3 | "version": "0.4.0", 4 | "description": "Surplus js-framework-benchmark implementation", 5 | "main": "dist/main.js", 6 | "scripts": { 7 | "build-dev": "webpack -w -d --config webpack.config.js", 8 | "build-prod": "webpack -p --config webpack.config.js" 9 | }, 10 | "keywords": [ 11 | "s.js", 12 | "surplus", 13 | "javascript", 14 | "framework", 15 | "benchmark" 16 | ], 17 | "author": "Adam Haile", 18 | "license": "MIT", 19 | "homepage": "https://github.com/curveship/js-framework-benchmark", 20 | "repository": { 21 | "type": "git", 22 | "url": "https://github.com/curveship/js-framework-benchmark.git" 23 | }, 24 | "dependencies": { 25 | "s-js": "^0.4.1", 26 | "s-array": "^0.4.5", 27 | "surplus": "^0.4.0" 28 | }, 29 | "devDependencies": { 30 | "ts-loader": "0.8.2", 31 | "typescript": "2.2.1", 32 | "surplus-loader": "^0.4.2", 33 | "webpack": "2.2.1" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /angular-v4.1.2-keyed/closure.conf: -------------------------------------------------------------------------------- 1 | --compilation_level=ADVANCED_OPTIMIZATIONS 2 | --language_out=ES5 3 | --js_output_file=dist/bundle.js 4 | --output_manifest=dist/manifest.MF 5 | --variable_renaming_report=dist/variable_renaming_report 6 | --property_renaming_report=dist/property_renaming_report 7 | --create_source_map=%outname%.map 8 | 9 | --warning_level=QUIET 10 | --dependency_mode=STRICT 11 | --rewrite_polyfills=false 12 | --module_resolution=node 13 | 14 | node_modules/zone.js/dist/zone_externs.js 15 | 16 | --js node_modules/rxjs/**.js 17 | --process_common_js_modules 18 | 19 | node_modules/@angular/core/@angular/core.js 20 | --js_module_root=node_modules/@angular/core 21 | node_modules/@angular/core/src/testability/testability.externs.js 22 | 23 | node_modules/@angular/common/@angular/common.js 24 | --js_module_root=node_modules/@angular/common 25 | 26 | node_modules/@angular/platform-browser/@angular/platform-browser.js 27 | --js_module_root=node_modules/@angular/platform-browser 28 | 29 | --js tmp/**.js 30 | --entry_point=./tmp/main.aot 31 | -------------------------------------------------------------------------------- /angular-v4.1.2-non-keyed/closure.conf: -------------------------------------------------------------------------------- 1 | --compilation_level=ADVANCED_OPTIMIZATIONS 2 | --language_out=ES5 3 | --js_output_file=dist/bundle.js 4 | --output_manifest=dist/manifest.MF 5 | --variable_renaming_report=dist/variable_renaming_report 6 | --property_renaming_report=dist/property_renaming_report 7 | --create_source_map=%outname%.map 8 | 9 | --warning_level=QUIET 10 | --dependency_mode=STRICT 11 | --rewrite_polyfills=false 12 | --module_resolution=node 13 | 14 | node_modules/zone.js/dist/zone_externs.js 15 | 16 | --js node_modules/rxjs/**.js 17 | --process_common_js_modules 18 | 19 | node_modules/@angular/core/@angular/core.js 20 | --js_module_root=node_modules/@angular/core 21 | node_modules/@angular/core/src/testability/testability.externs.js 22 | 23 | node_modules/@angular/common/@angular/common.js 24 | --js_module_root=node_modules/@angular/common 25 | 26 | node_modules/@angular/platform-browser/@angular/platform-browser.js 27 | --js_module_root=node_modules/@angular/platform-browser 28 | 29 | --js tmp/**.js 30 | --entry_point=./tmp/main.aot 31 | -------------------------------------------------------------------------------- /riot-v3.5.0/webpack.config.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | var path = require('path') 3 | var cache = {} 4 | 5 | var loaders = [ 6 | { 7 | test: /\.es6\.js$/, 8 | loader: 'babel-loader', 9 | exclude: /node_modules/ 10 | }, 11 | { 12 | test: /\.html$/, loader: 'tag-loader', 13 | query: { 14 | type: 'es6' 15 | } 16 | }, 17 | { 18 | test: /\.css$/, 19 | loader: 'style-loader!css-loader' 20 | } 21 | ] 22 | 23 | var extensions = [ 24 | '.js', '.es6.js', '.html' 25 | ] 26 | 27 | module.exports = [{ 28 | cache: cache, 29 | module: { 30 | loaders: loaders 31 | }, 32 | entry: { 33 | main: './src/main', 34 | }, 35 | output: { 36 | path: path.resolve(__dirname, "dist"), 37 | filename: '[name].js', 38 | sourceMapFilename: "[file].map", 39 | }, 40 | resolve: { 41 | extensions: extensions, 42 | modules: [ 43 | __dirname, 44 | path.resolve(__dirname, "src"), 45 | "node_modules" 46 | ], 47 | alias: { 48 | "riot": __dirname+"/node_modules/riot/riot.min.js", 49 | } 50 | } 51 | }] -------------------------------------------------------------------------------- /webdriver-ts/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "webdriver-ts", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "compile": "tsc", 9 | "build-prod": "tsc", 10 | "selenium": "node dist/benchmarkRunner.js", 11 | "checkSelenium": "node dist/benchmarkRunner.js --check true", 12 | "results": "node dist/createResultTable.js", 13 | "index": "node dist/createIndex.js", 14 | "check": "node dist/runCheck.js" 15 | }, 16 | "author": "", 17 | "license": "Apache-2.0", 18 | "devDependencies": { 19 | "@types/lodash": "^4.14.55", 20 | "@types/node": "^7.0.8", 21 | "@types/selenium-webdriver": "^3.0.0", 22 | "@types/yargs": "^6.6.0", 23 | "typescript": "2.2.1" 24 | }, 25 | "dependencies": { 26 | "chromedriver": "2.28.0", 27 | "dot": "1.1.1", 28 | "jstat": "1.5.3", 29 | "lodash": "4.17.4", 30 | "rgba-convert": "0.3.0", 31 | "selenium-webdriver": "^3.3.0", 32 | "yargs": "7.0.2" 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /marko-v4.3.0/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-marko", 3 | "version": "1.1.1", 4 | "description": "Marko.JS demo", 5 | "scripts": { 6 | "build-dev": "rollup -c rollup.config.js", 7 | "build-prod": "NODE_ENV=production rollup -c rollup.config.js" 8 | }, 9 | "keywords": [ 10 | "marko", 11 | "rollup" 12 | ], 13 | "author": "Stefan Krause", 14 | "license": "Apache-2.0", 15 | "homepage": "https://github.com/krausest/js-framework-benchmark", 16 | "repository": { 17 | "type": "git", 18 | "url": "https://github.com/krausest/js-framework-benchmark.git" 19 | }, 20 | "devDependencies": {}, 21 | "dependencies": { 22 | "envify": "^4.0.0", 23 | "marko": "^4.2.0", 24 | "markoify": "^2.2.2", 25 | "rollup": "^0.41.6", 26 | "rollup-plugin-babel": "^2.7.1", 27 | "rollup-plugin-browserify-transform": "^0.1.0", 28 | "rollup-plugin-buble": "^0.15.0", 29 | "rollup-plugin-commonjs": "^8.0.2", 30 | "rollup-plugin-node-resolve": "^3.0.0", 31 | "rollup-plugin-uglify": "^1.0.1" 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /react-v15.5.4-mobX-v3.1.9/src/Row.jsx: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var React = require('react'); 4 | var ReactDOM = require('react-dom'); 5 | var {observer} = require("mobx-react"); 6 | var {observable, computed} = require ("mobx"); 7 | 8 | @observer 9 | export class Row extends React.Component { 10 | constructor(props) { 11 | super(props); 12 | this.onDelete = this.onDelete.bind(this); 13 | this.onClick = this.onClick.bind(this); 14 | } 15 | 16 | onDelete() { 17 | this.props.onDelete(this.props.data); 18 | } 19 | onClick() { 20 | this.props.onClick(this.props.data); 21 | } 22 | 23 | render() { 24 | let {onClick, onDelete, data} = this.props; 25 | return ( 26 | {data.id} 27 | 28 | {data.label} 29 | 30 | 31 | 32 | ); 33 | } 34 | } 35 | 36 | -------------------------------------------------------------------------------- /react-v15.5.4-redux-v3.6.0/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-react", 3 | "version": "1.1.1", 4 | "description": "React demo", 5 | "main": "index.js", 6 | "scripts": { 7 | "build-dev": "webpack -w -d", 8 | "build-prod": "webpack -p" 9 | }, 10 | "keywords": [ 11 | "react", 12 | "webpack" 13 | ], 14 | "author": "Stefan Krause", 15 | "license": "Apache-2.0", 16 | "homepage": "https://github.com/krausest/js-framework-benchmark", 17 | "repository": { 18 | "type": "git", 19 | "url": "https://github.com/krausest/js-framework-benchmark.git" 20 | }, 21 | "devDependencies": { 22 | "babel-core": "6.24.1", 23 | "babel-loader": "7.0.0", 24 | "babel-preset-es2015": "6.24.1", 25 | "babel-preset-react": "6.24.1", 26 | "jsx-loader": "0.13.2", 27 | "webpack": "2.5.1" 28 | }, 29 | "dependencies": { 30 | "immutable": "v3.8.1", 31 | "react": "15.5.4", 32 | "react-addons-shallow-compare": "15.5.2", 33 | "react-dom": "15.5.4", 34 | "react-redux": "5.0.4", 35 | "redux": "3.6.0" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /ember-v2.13.0/tests/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "predef": [ 3 | "document", 4 | "window", 5 | "location", 6 | "setTimeout", 7 | "$", 8 | "-Promise", 9 | "define", 10 | "console", 11 | "visit", 12 | "exists", 13 | "fillIn", 14 | "click", 15 | "keyEvent", 16 | "triggerEvent", 17 | "find", 18 | "findWithAssert", 19 | "wait", 20 | "DS", 21 | "andThen", 22 | "currentURL", 23 | "currentPath", 24 | "currentRouteName" 25 | ], 26 | "node": false, 27 | "browser": false, 28 | "boss": true, 29 | "curly": true, 30 | "debug": false, 31 | "devel": false, 32 | "eqeqeq": true, 33 | "evil": true, 34 | "forin": false, 35 | "immed": false, 36 | "laxbreak": false, 37 | "newcap": true, 38 | "noarg": true, 39 | "noempty": false, 40 | "nonew": false, 41 | "nomen": false, 42 | "onevar": false, 43 | "plusplus": false, 44 | "regexp": false, 45 | "undef": true, 46 | "sub": true, 47 | "strict": false, 48 | "white": false, 49 | "eqnull": true, 50 | "esversion": 6, 51 | "unused": true 52 | } 53 | -------------------------------------------------------------------------------- /choo-v5.4.0/src/rowsView.js: -------------------------------------------------------------------------------- 1 | const html = require('choo/html'); 2 | 3 | module.exports = function rowsView (state, emit) { 4 | const data = state.data; 5 | const selected = state.selected; 6 | function del(id) { 7 | return function(e) { 8 | emit('delete', { id: id }); 9 | }; 10 | } 11 | 12 | function click(id) { 13 | return function (e) { 14 | emit('select', { id: id }); 15 | }; 16 | } 17 | 18 | function className(id) { 19 | return id === selected ? 'danger' : ''; 20 | } 21 | 22 | return data.map((d, i) => { 23 | const id = d.id; 24 | const label = d.label; 25 | return html` 26 | 27 | ${id} 28 | 29 | ${label} 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | `; 39 | }); 40 | }; 41 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark", 3 | "version": "1.0.0", 4 | "description": "Simple Benchmark for Javascript client side rendering", 5 | "scripts": { 6 | "postinstall": "node install.js", 7 | "build": "node build.js", 8 | "build-prod": "node build.js", 9 | "compile": "node build.js", 10 | "start": "http-server -c-1 .", 11 | "selenium": "cd webdriver-ts && npm run selenium && npm run results" 12 | }, 13 | "keywords": [ 14 | "benchmark", 15 | "javascript", 16 | "frontend", 17 | "client", 18 | "react", 19 | "angular", 20 | "mithril" 21 | ], 22 | "repository": { 23 | "type": "git", 24 | "url": "https://github.com/krausest/js-framework-benchmark.git" 25 | }, 26 | "author": "Stefan Krause", 27 | "license": "ISC", 28 | "homepage": "https://github.com/krausest/js-framework-benchmark", 29 | "dependencies": { 30 | "command-exists": "^1.0.2", 31 | "fs-extra": "^0.30.0", 32 | "http-server": "^0.9.0", 33 | "lodash": "^4.15.0" 34 | }, 35 | "devDependencies": { 36 | "yargs": "^6.6.0" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /css/bootstrap/less/pager.less: -------------------------------------------------------------------------------- 1 | // 2 | // Pager pagination 3 | // -------------------------------------------------- 4 | 5 | 6 | .pager { 7 | padding-left: 0; 8 | margin: @line-height-computed 0; 9 | list-style: none; 10 | text-align: center; 11 | &:extend(.clearfix all); 12 | li { 13 | display: inline; 14 | > a, 15 | > span { 16 | display: inline-block; 17 | padding: 5px 14px; 18 | background-color: @pager-bg; 19 | border: 1px solid @pager-border; 20 | border-radius: @pager-border-radius; 21 | } 22 | 23 | > a:hover, 24 | > a:focus { 25 | text-decoration: none; 26 | background-color: @pager-hover-bg; 27 | } 28 | } 29 | 30 | .next { 31 | > a, 32 | > span { 33 | float: right; 34 | } 35 | } 36 | 37 | .previous { 38 | > a, 39 | > span { 40 | float: left; 41 | } 42 | } 43 | 44 | .disabled { 45 | > a, 46 | > a:hover, 47 | > a:focus, 48 | > span { 49 | color: @pager-disabled-color; 50 | background-color: @pager-bg; 51 | cursor: @cursor-disabled; 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /inferno-v3.1.2-keyed/webpack.config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | require("babel-plugin-syntax-jsx") 3 | require("babel-plugin-inferno") 4 | var path = require('path') 5 | 6 | var cache = {}; 7 | var loaders = [ 8 | { 9 | test: /\.jsx$/, 10 | loader: 'babel-loader' 11 | }, 12 | { 13 | test: /\.es6\.js$/, 14 | loader: 'babel-loader' 15 | }, 16 | { 17 | test: /\.css$/, 18 | loader: 'style-loader!css-loader' 19 | } 20 | ]; 21 | var extensions = [ 22 | '.js', '.jsx', '.es6.js', '.msx' 23 | ]; 24 | 25 | module.exports = [{ 26 | cache: cache, 27 | module: { 28 | loaders: loaders 29 | }, 30 | entry: { 31 | main: './src/main', 32 | }, 33 | output: { 34 | path: path.resolve(__dirname, "dist"), 35 | filename: '[name].js', 36 | sourceMapFilename: "[file].map", 37 | }, 38 | resolve: { 39 | modules: [ 40 | __dirname, 41 | path.resolve(__dirname, "src"), 42 | "node_modules" 43 | ], 44 | extensions: extensions, 45 | alias: { 46 | "inferno": __dirname+"/node_modules/inferno/dist/inferno.min.js", 47 | "inferno-component": __dirname+"/node_modules/inferno-component/dist/inferno-component.min.js" 48 | } 49 | } 50 | }]; -------------------------------------------------------------------------------- /css/bootstrap/grunt/bs-commonjs-generator.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Grunt task for the CommonJS module generation 3 | * http://getbootstrap.com 4 | * Copyright 2014-2015 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | */ 7 | 8 | 'use strict'; 9 | 10 | var fs = require('fs'); 11 | var path = require('path'); 12 | 13 | var COMMONJS_BANNER = '// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.\n'; 14 | 15 | module.exports = function generateCommonJSModule(grunt, srcFiles, destFilepath) { 16 | var destDir = path.dirname(destFilepath); 17 | 18 | function srcPathToDestRequire(srcFilepath) { 19 | var requirePath = path.relative(destDir, srcFilepath).replace(/\\/g, '/'); 20 | return 'require(\'' + requirePath + '\')'; 21 | } 22 | 23 | var moduleOutputJs = COMMONJS_BANNER + srcFiles.map(srcPathToDestRequire).join('\n'); 24 | try { 25 | fs.writeFileSync(destFilepath, moduleOutputJs); 26 | } catch (err) { 27 | grunt.fail.warn(err); 28 | } 29 | grunt.log.writeln('File ' + destFilepath.cyan + ' created.'); 30 | }; 31 | -------------------------------------------------------------------------------- /inferno-v3.1.2-non-keyed/webpack.config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | require("babel-plugin-syntax-jsx") 3 | require("babel-plugin-inferno") 4 | var path = require('path') 5 | 6 | var cache = {}; 7 | var loaders = [ 8 | { 9 | test: /\.jsx$/, 10 | loader: 'babel-loader' 11 | }, 12 | { 13 | test: /\.es6\.js$/, 14 | loader: 'babel-loader' 15 | }, 16 | { 17 | test: /\.css$/, 18 | loader: 'style-loader!css-loader' 19 | } 20 | ]; 21 | var extensions = [ 22 | '.js', '.jsx', '.es6.js', '.msx' 23 | ]; 24 | 25 | module.exports = [{ 26 | cache: cache, 27 | module: { 28 | loaders: loaders 29 | }, 30 | entry: { 31 | main: './src/main', 32 | }, 33 | output: { 34 | path: path.resolve(__dirname, "dist"), 35 | filename: '[name].js', 36 | sourceMapFilename: "[file].map", 37 | }, 38 | resolve: { 39 | modules: [ 40 | __dirname, 41 | path.resolve(__dirname, "src"), 42 | "node_modules" 43 | ], 44 | extensions: extensions, 45 | alias: { 46 | "inferno": __dirname+"/node_modules/inferno/dist/inferno.min.js", 47 | "inferno-component": __dirname+"/node_modules/inferno-component/dist/inferno-component.min.js" 48 | } 49 | } 50 | }]; -------------------------------------------------------------------------------- /react-v15.5.4-mobX-v3.1.9/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-framework-benchmark-react", 3 | "version": "1.1.1", 4 | "description": "React demo", 5 | "main": "index.js", 6 | "scripts": { 7 | "build-dev": "webpack -w -d", 8 | "build-prod": "webpack -p" 9 | }, 10 | "keywords": [ 11 | "react", 12 | "webpack" 13 | ], 14 | "author": "Stefan Krause", 15 | "license": "Apache-2.0", 16 | "homepage": "https://github.com/krausest/js-framework-benchmark", 17 | "repository": { 18 | "type": "git", 19 | "url": "https://github.com/krausest/js-framework-benchmark.git" 20 | }, 21 | "devDependencies": { 22 | "babel-core": "6.24.1", 23 | "babel-loader": "7.0.0", 24 | "babel-plugin-transform-class-properties": "6.24.1", 25 | "babel-plugin-transform-decorators-legacy": "1.3.4", 26 | "babel-preset-es2015": "6.24.1", 27 | "babel-preset-react": "6.24.1", 28 | "babel-preset-stage-0": "6.24.1", 29 | "webpack": "2.5.1", 30 | "jsx-loader": "0.13.2" 31 | }, 32 | "dependencies": { 33 | "mobx": "3.1.9", 34 | "mobx-react": "4.1.8", 35 | "react": "15.5.4", 36 | "react-dom": "15.5.4" 37 | } 38 | } -------------------------------------------------------------------------------- /css/bootstrap/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2011-2015 Twitter, Inc 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /slim-js-v2.8.20/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "slim-js-v2.8.17", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "build-prod": "exit 0", 8 | "abuild-prod": "NODE_ENV=production webpack -p --progress --display-chunks --profile --config webpack.prod.config.js", 9 | "test": "echo \"Error: no test specified\" && exit 1" 10 | }, 11 | "keywords": [], 12 | "author": "", 13 | "license": "ISC", 14 | "devDependencies": { 15 | "webpack": "^1.12.12", 16 | "uglify-js-harmony": "^2.6.2", 17 | "script-loader": "^0.7.0", 18 | "html-webpack-plugin": "^2.7.2", 19 | "html-webpack-template": "^3.0.2", 20 | "babel": "^6.23.0", 21 | "babel-core": "^6.4.5", 22 | "babel-eslint": "^7.2.3", 23 | "babel-loader": "^6.2.1", 24 | "babel-plugin-transform-custom-element-classes": "^0.1.0", 25 | "babel-plugin-transform-decorators": "^6.24.1", 26 | "babel-plugin-transform-decorators-legacy": "^1.3.4", 27 | "babel-polyfill": "^6.23.0", 28 | "babel-preset-env": "^1.4.0", 29 | "babel-preset-es2015": "^6.3.13" 30 | }, 31 | "dependencies": { 32 | "slim-js": "^2.8.20" 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /cyclejs-dom-v17.1.0/webpack.config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var path = require('path') 3 | 4 | var cache = {}; 5 | var loaders = [ 6 | { 7 | test: /\.jsx?$/, 8 | loader: 'babel-loader', 9 | exclude: /node_modules/, 10 | query: { 11 | presets: ['es2015', 'stage-0'], 12 | plugins: [ 13 | [ 14 | 'transform-react-jsx', 15 | { 16 | pragma: 'html' 17 | } 18 | ] 19 | ] 20 | } 21 | }, 22 | { 23 | test: /\.es6\.js$/, 24 | loader: 'babel-loader', 25 | exclude: /node_modules/, 26 | query: { 27 | presets: ['es2015', 'stage-0'] 28 | } 29 | }, 30 | { 31 | test: /\.css$/, 32 | loader: 'style-loader!css-loader' 33 | } 34 | ]; 35 | var extensions = [ 36 | '.js', '.jsx', '.es6.js' 37 | ]; 38 | 39 | module.exports = [{ 40 | cache: cache, 41 | module: { 42 | loaders: loaders 43 | }, 44 | entry: { 45 | main: './src/main', 46 | }, 47 | output: { 48 | path: path.resolve(__dirname, "dist"), 49 | filename: '[name].js', 50 | sourceMapFilename: "[file].map", 51 | }, 52 | resolve: { 53 | modules: [ 54 | __dirname, 55 | path.resolve(__dirname, "src"), 56 | "node_modules" 57 | ], 58 | extensions: extensions, 59 | alias: { 60 | } 61 | } 62 | }]; -------------------------------------------------------------------------------- /ember-v2.13.0/tests/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | EmberTemp Tests 7 | 8 | 9 | 10 | {{content-for "head"}} 11 | {{content-for "test-head"}} 12 | 13 | 14 | 15 | 16 | 17 | {{content-for "head-footer"}} 18 | {{content-for "test-head-footer"}} 19 | 20 | 21 | {{content-for "body"}} 22 | {{content-for "test-body"}} 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | {{content-for "body-footer"}} 31 | {{content-for "test-body-footer"}} 32 | 33 | 34 | -------------------------------------------------------------------------------- /css/bootstrap/less/media.less: -------------------------------------------------------------------------------- 1 | .media { 2 | // Proper spacing between instances of .media 3 | margin-top: 15px; 4 | 5 | &:first-child { 6 | margin-top: 0; 7 | } 8 | } 9 | 10 | .media, 11 | .media-body { 12 | zoom: 1; 13 | overflow: hidden; 14 | } 15 | 16 | .media-body { 17 | width: 10000px; 18 | } 19 | 20 | .media-object { 21 | display: block; 22 | 23 | // Fix collapse in webkit from max-width: 100% and display: table-cell. 24 | &.img-thumbnail { 25 | max-width: none; 26 | } 27 | } 28 | 29 | .media-right, 30 | .media > .pull-right { 31 | padding-left: 10px; 32 | } 33 | 34 | .media-left, 35 | .media > .pull-left { 36 | padding-right: 10px; 37 | } 38 | 39 | .media-left, 40 | .media-right, 41 | .media-body { 42 | display: table-cell; 43 | vertical-align: top; 44 | } 45 | 46 | .media-middle { 47 | vertical-align: middle; 48 | } 49 | 50 | .media-bottom { 51 | vertical-align: bottom; 52 | } 53 | 54 | // Reset margins on headings for tighter default spacing 55 | .media-heading { 56 | margin-top: 0; 57 | margin-bottom: 5px; 58 | } 59 | 60 | // Media list variation 61 | // 62 | // Undo default ul/ol styles 63 | .media-list { 64 | padding-left: 0; 65 | list-style: none; 66 | } 67 | -------------------------------------------------------------------------------- /css/bootstrap/less/mixins/image.less: -------------------------------------------------------------------------------- 1 | // Image Mixins 2 | // - Responsive image 3 | // - Retina image 4 | 5 | 6 | // Responsive image 7 | // 8 | // Keep images from scaling beyond the width of their parents. 9 | .img-responsive(@display: block) { 10 | display: @display; 11 | max-width: 100%; // Part 1: Set a maximum relative to the parent 12 | height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching 13 | } 14 | 15 | 16 | // Retina image 17 | // 18 | // Short retina mixin for setting background-image and -size. Note that the 19 | // spelling of `min--moz-device-pixel-ratio` is intentional. 20 | .img-retina(@file-1x; @file-2x; @width-1x; @height-1x) { 21 | background-image: url("@{file-1x}"); 22 | 23 | @media 24 | only screen and (-webkit-min-device-pixel-ratio: 2), 25 | only screen and ( min--moz-device-pixel-ratio: 2), 26 | only screen and ( -o-min-device-pixel-ratio: 2/1), 27 | only screen and ( min-device-pixel-ratio: 2), 28 | only screen and ( min-resolution: 192dpi), 29 | only screen and ( min-resolution: 2dppx) { 30 | background-image: url("@{file-2x}"); 31 | background-size: @width-1x @height-1x; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /angular-v2.4.9-keyed/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular2-webpack", 3 | "version": "1.0.0", 4 | "description": "A webpack starter for angular 2", 5 | "scripts": { 6 | "start": "npm run build-dev && npm run serve", 7 | "test": "karma start", 8 | "precompile": "ngc", 9 | "build-prod": "npm run precompile && node rollup.config.js --prod", 10 | "build-dev": "npm run precompile && node rollup.config.js", 11 | "postinstall": "typings install" 12 | }, 13 | "license": "MIT", 14 | "dependencies": { 15 | "@angular/common": "2.4.9", 16 | "@angular/compiler": "2.4.9", 17 | "@angular/compiler-cli": "2.4.9", 18 | "@angular/core": "2.4.9", 19 | "@angular/platform-browser": "2.4.9", 20 | "@angular/platform-browser-dynamic": "2.4.9", 21 | "@angular/platform-server": "2.4.9", 22 | "core-js": "2.4.1", 23 | "rxjs": "5.0.3", 24 | "zone.js": "0.7.7" 25 | }, 26 | "devDependencies": { 27 | "google-closure-compiler-js": "20170124.0.0", 28 | "http-server": "0.9.0", 29 | "rollup": "0.41.4", 30 | "rollup-plugin-commonjs": "7.0.0", 31 | "rollup-plugin-node-resolve": "2.0.0", 32 | "typescript": "2.2.1", 33 | "typings": "2.1.0", 34 | "yargs": "7.0.1" 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /angular-v2.4.9-non-keyed/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular2-webpack", 3 | "version": "1.0.0", 4 | "description": "A webpack starter for angular 2", 5 | "scripts": { 6 | "start": "npm run build-dev && npm run serve", 7 | "test": "karma start", 8 | "precompile": "ngc", 9 | "build-prod": "npm run precompile && node rollup.config.js --prod", 10 | "build-dev": "npm run precompile && node rollup.config.js", 11 | "postinstall": "typings install" 12 | }, 13 | "license": "MIT", 14 | "dependencies": { 15 | "@angular/common": "2.4.9", 16 | "@angular/compiler": "2.4.9", 17 | "@angular/compiler-cli": "2.4.9", 18 | "@angular/core": "2.4.9", 19 | "@angular/platform-browser": "2.4.9", 20 | "@angular/platform-browser-dynamic": "2.4.9", 21 | "@angular/platform-server": "2.4.9", 22 | "core-js": "2.4.1", 23 | "rxjs": "5.0.3", 24 | "zone.js": "0.7.7" 25 | }, 26 | "devDependencies": { 27 | "google-closure-compiler-js": "20170124.0.0", 28 | "http-server": "0.9.0", 29 | "rollup": "0.41.4", 30 | "rollup-plugin-commonjs": "7.0.0", 31 | "rollup-plugin-node-resolve": "2.0.0", 32 | "typescript": "2.2.1", 33 | "typings": "2.1.0", 34 | "yargs": "7.0.1" 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | 5 | # Runtime data 6 | pids 7 | *.pid 8 | *.seed 9 | 10 | # Directory for instrumented libs generated by jscoverage/JSCover 11 | lib-cov 12 | 13 | # Coverage directory used by tools like istanbul 14 | coverage 15 | 16 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 17 | .grunt 18 | 19 | # node-waf configuration 20 | .lock-wscript 21 | 22 | # Compiled binary addons (http://nodejs.org/api/addons.html) 23 | build/Release 24 | 25 | # Dependency directory 26 | # https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git 27 | node_modules 28 | jspm_packages 29 | bower_components 30 | dist 31 | 32 | .idea 33 | .DS_Store 34 | *.iml 35 | */dist/ 36 | angular2/app/app.js 37 | angular2/app/app.js.map 38 | tests/results/completed/ 39 | target/ 40 | webdriver-java/chromedriver 41 | webdriver-java/results/ 42 | webdriver-ts/results/ 43 | webdriver-ts/typings/ 44 | webdriver-ts/.vscode/ 45 | marko-*/.cache 46 | marko-*/static 47 | marko-*/build 48 | marko-*/src/xtable.marko 49 | 50 | yarn.lock 51 | 52 | # angular 2 aot 53 | angular-*/lib/ 54 | **/app.ngfactory.ts 55 | angular-*/src/app.ngsummary.json 56 | 57 | #glimmer 58 | glimmer-*/dist 59 | glimmer-*/tmp 60 | -------------------------------------------------------------------------------- /stem-v0.2.70/README.md: -------------------------------------------------------------------------------- 1 | # stemjs-demo 2 | This is a demo project to learn StemJS https:/stemjs.org 3 | `Node` and `npm` need to be installed to be able to build this project. 4 | In order to compile the source, you need to have `Rollup` and `Babel` installed. 5 | 6 | ## Getting started 7 | 8 | #### Linux 9 | Assuming `git` is also already installed. 10 | ##### Setup 11 | ```bash 12 | cd path/to/workspace 13 | git clone https://github.com/mciucu/stemjs-demo 14 | cd stemjs-demo 15 | npm install -g babel-cli rollup 16 | npm update 17 | ``` 18 | 19 | ##### Compile 20 | ```bash 21 | cd src 22 | rollup -c 23 | ``` 24 | 25 | ##### Run 26 | Simply open index.html in your favorite browser (we recommend Google Chrome for full compatibility). 27 | 28 | ##### Workflow 29 | We usually work with the excellent JetBrain IDEs (Webstorm and PyCharm), 30 | you just need to change the Javascript language version to JSX to work optimally with them. 31 | You can use vim/emacs/whatever else you like though, don't let us spoil your fun. 32 | 33 | The entry point of the project is `src/Main.jsx`. Besides it, currently, there is a subfolder with various widgets. 34 | When you want to check the changes you made, compile, refresh the browser (make sure the JS is not cached) and be amazed! 35 | 36 | -------------------------------------------------------------------------------- /vue-v2.3.3-keyed/webpack.config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var path = require('path') 3 | var webpack = require('webpack') 4 | var cache = {}; 5 | var loaders = [ 6 | { 7 | test: /\.jsx$/, 8 | loader: 'jsx-loader!babel-loader', 9 | exclude: /node_modules/, 10 | query: { 11 | presets: ['es2015'] 12 | } 13 | }, 14 | { 15 | test: /\.js$/, 16 | loader: 'babel-loader', 17 | exclude: /node_modules/ 18 | }, 19 | { 20 | test: /\.css$/, 21 | loader: 'style-loader!css-loader' 22 | }, 23 | { 24 | test: /\.vue$/, 25 | loader: 'vue-loader', 26 | query: { 27 | preserveWhitespace: false 28 | } 29 | } 30 | ]; 31 | var extensions = [ 32 | '.js', '.jsx', '.es6.js', '.msx' 33 | ]; 34 | 35 | module.exports = [{ 36 | cache: cache, 37 | module: { 38 | loaders: loaders 39 | }, 40 | entry: { 41 | main: './src/main', 42 | }, 43 | output: { 44 | path: path.resolve(__dirname, "dist"), 45 | filename: '[name].js', 46 | sourceMapFilename: "[file].map", 47 | }, 48 | resolve: { 49 | modules: [ 50 | __dirname, 51 | path.resolve(__dirname, "src"), 52 | "node_modules" 53 | ], 54 | extensions: extensions 55 | }, 56 | plugins: [ 57 | new webpack.DefinePlugin({ 58 | 'process.env.NODE_ENV': '"production"' 59 | }) 60 | ] 61 | }]; 62 | -------------------------------------------------------------------------------- /vue-v2.3.3-non-keyed/webpack.config.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var path = require('path') 3 | var webpack = require('webpack') 4 | var cache = {}; 5 | var loaders = [ 6 | { 7 | test: /\.jsx$/, 8 | loader: 'jsx-loader!babel-loader', 9 | exclude: /node_modules/, 10 | query: { 11 | presets: ['es2015'] 12 | } 13 | }, 14 | { 15 | test: /\.js$/, 16 | loader: 'babel-loader', 17 | exclude: /node_modules/ 18 | }, 19 | { 20 | test: /\.css$/, 21 | loader: 'style-loader!css-loader' 22 | }, 23 | { 24 | test: /\.vue$/, 25 | loader: 'vue-loader', 26 | query: { 27 | preserveWhitespace: false 28 | } 29 | } 30 | ]; 31 | var extensions = [ 32 | '.js', '.jsx', '.es6.js', '.msx' 33 | ]; 34 | 35 | module.exports = [{ 36 | cache: cache, 37 | module: { 38 | loaders: loaders 39 | }, 40 | entry: { 41 | main: './src/main', 42 | }, 43 | output: { 44 | path: path.resolve(__dirname, "dist"), 45 | filename: '[name].js', 46 | sourceMapFilename: "[file].map", 47 | }, 48 | resolve: { 49 | modules: [ 50 | __dirname, 51 | path.resolve(__dirname, "src"), 52 | "node_modules" 53 | ], 54 | extensions: extensions 55 | }, 56 | plugins: [ 57 | new webpack.DefinePlugin({ 58 | 'process.env.NODE_ENV': '"production"' 59 | }) 60 | ] 61 | }]; 62 | -------------------------------------------------------------------------------- /stem-v0.2.70/src/Row.jsx: -------------------------------------------------------------------------------- 1 | import {UI} from "UIBase"; 2 | 3 | class Row extends UI.Primitive("tr") { 4 | 5 | getRowObject() { 6 | return this.options.rowObject; 7 | } 8 | 9 | isSelected() { 10 | const rowObject = this.getRowObject(); 11 | return rowObject.getStore().selected === rowObject.id; 12 | } 13 | 14 | extraNodeAttributes(attr) { 15 | if (this.isSelected()) { 16 | attr.addClass("danger"); 17 | } 18 | } 19 | 20 | render() { 21 | const state = this.getRowObject(); 22 | return [ 23 | {state.id}, 24 | 25 | this.getRowObject().setSelected()}>{state.label} 26 | , 27 | this.getRowObject().delete()}>, 28 | ]; 29 | } 30 | 31 | setOnUpdate() { 32 | this.attachUpdateListener(this.getRowObject(), () => this.redraw()); 33 | } 34 | 35 | refresh() { 36 | this.setOnUpdate(); 37 | 38 | this.removeRef(); 39 | this.options.ref.name = "row" + this.getRowObject().id; 40 | this.applyRef(); 41 | 42 | this.redraw(); 43 | } 44 | 45 | onMount() { 46 | this.setOnUpdate(); 47 | } 48 | } 49 | 50 | export {Row}; 51 | -------------------------------------------------------------------------------- /webdriver-ts/index.dot: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | JS-Framkeworks Benchmark 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 |
14 |
15 |

Choose a framework:

16 |
17 |
18 | 23 |
24 |
25 |
26 |
27 | 30 |
31 |
32 |
33 | 34 | 35 | -------------------------------------------------------------------------------- /angular-v4.1.2-keyed/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular2-webpack", 3 | "version": "1.0.0", 4 | "description": "A webpack starter for angular 2", 5 | "scripts": { 6 | "start": "npm run build-dev && npm run serve", 7 | "test": "karma start", 8 | "precompile": "ngc", 9 | "preclosure": "rm -rf dist", 10 | "closure": "java -jar node_modules/google-closure-compiler/compiler.jar --flagfile closure.conf", 11 | "build-prod": "npm run precompile && npm run closure", 12 | "build-dev": "npm run build-prod" 13 | }, 14 | "license": "MIT", 15 | "dependencies": { 16 | "@angular/common": "4.1.2", 17 | "@angular/compiler": "4.1.2", 18 | "@angular/compiler-cli": "4.1.2", 19 | "@angular/core": "4.1.2", 20 | "@angular/platform-browser": "4.1.2", 21 | "@angular/platform-browser-dynamic": "4.1.2", 22 | "core-js": "2.4.1", 23 | "rxjs": "5.4.0", 24 | "zone.js": "0.8.10" 25 | }, 26 | "devDependencies": { 27 | "google-closure-compiler": "20170409.0.0", 28 | "http-server": "0.9.0", 29 | "rollup": "0.41.6", 30 | "rollup-plugin-commonjs": "8.0.2", 31 | "rollup-plugin-node-resolve": "2.0.0", 32 | "rollup-plugin-uglify": "1.0.1", 33 | "typescript": "2.3.2", 34 | "typings": "2.1.0", 35 | "yargs": "7.0.2" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /angular-v4.1.2-non-keyed/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular2-webpack", 3 | "version": "1.0.0", 4 | "description": "A webpack starter for angular 2", 5 | "scripts": { 6 | "start": "npm run build-dev && npm run serve", 7 | "test": "karma start", 8 | "precompile": "ngc", 9 | "preclosure": "rm -rf dist", 10 | "closure": "java -jar node_modules/google-closure-compiler/compiler.jar --flagfile closure.conf", 11 | "build-prod": "npm run precompile && npm run closure", 12 | "build-dev": "npm run build-prod" 13 | }, 14 | "license": "MIT", 15 | "dependencies": { 16 | "@angular/common": "4.1.2", 17 | "@angular/compiler": "4.1.2", 18 | "@angular/compiler-cli": "4.1.2", 19 | "@angular/core": "4.1.2", 20 | "@angular/platform-browser": "4.1.2", 21 | "@angular/platform-browser-dynamic": "4.1.2", 22 | "core-js": "2.4.1", 23 | "rxjs": "5.4.0", 24 | "zone.js": "0.8.10" 25 | }, 26 | "devDependencies": { 27 | "google-closure-compiler": "20170409.0.0", 28 | "http-server": "0.9.0", 29 | "rollup": "0.41.6", 30 | "rollup-plugin-commonjs": "8.0.2", 31 | "rollup-plugin-node-resolve": "2.0.0", 32 | "rollup-plugin-uglify": "1.0.1", 33 | "typescript": "2.3.2", 34 | "typings": "2.1.0", 35 | "yargs": "7.0.2" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /react-lite-v0.15.30/src/Row.jsx: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var React = require('react'); 4 | var ReactDOM = require('react-dom'); 5 | 6 | window.rowsUpdated = 0; 7 | window.rowsMounted = 0; 8 | 9 | export class Row extends React.Component { 10 | constructor(props) { 11 | super(props); 12 | this.onDelete = this.onDelete.bind(this); 13 | this.onClick = this.onClick.bind(this); 14 | } 15 | shouldComponentUpdate(nextProps, nextState) { 16 | return nextProps.data !== this.props.data || nextProps.styleClass !== this.props.styleClass; 17 | } 18 | // componentDidUpdate() { 19 | // window.rowsUpdated++; 20 | // } 21 | // componentDidMount() { 22 | // window.rowsMounted++; 23 | // } 24 | 25 | onDelete() { 26 | this.props.onDelete(this.props.data.id); 27 | } 28 | onClick() { 29 | this.props.onClick(this.props.data.id); 30 | } 31 | 32 | render() { 33 | let {styleClass, onClick, onDelete, data} = this.props; 34 | return ( 35 | {data.id} 36 | 37 | {data.label} 38 | 39 | 40 | 41 | ); 42 | } 43 | } 44 | 45 | -------------------------------------------------------------------------------- /react-v15.5.4-keyed/src/Row.jsx: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var React = require('react'); 4 | var ReactDOM = require('react-dom'); 5 | 6 | window.rowsUpdated = 0; 7 | window.rowsMounted = 0; 8 | 9 | export class Row extends React.Component { 10 | constructor(props) { 11 | super(props); 12 | this.onDelete = this.onDelete.bind(this); 13 | this.onClick = this.onClick.bind(this); 14 | } 15 | shouldComponentUpdate(nextProps, nextState) { 16 | return nextProps.data !== this.props.data || nextProps.styleClass !== this.props.styleClass; 17 | } 18 | // componentDidUpdate() { 19 | // window.rowsUpdated++; 20 | // } 21 | // componentDidMount() { 22 | // window.rowsMounted++; 23 | // } 24 | 25 | onDelete() { 26 | this.props.onDelete(this.props.data.id); 27 | } 28 | onClick() { 29 | this.props.onClick(this.props.data.id); 30 | } 31 | 32 | render() { 33 | let {styleClass, onClick, onDelete, data} = this.props; 34 | return ( 35 | {data.id} 36 | 37 | {data.label} 38 | 39 | 40 | 41 | ); 42 | } 43 | } 44 | 45 | -------------------------------------------------------------------------------- /react-v15.5.4-non-keyed/src/Row.jsx: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var React = require('react'); 4 | var ReactDOM = require('react-dom'); 5 | 6 | window.rowsUpdated = 0; 7 | window.rowsMounted = 0; 8 | 9 | export class Row extends React.Component { 10 | constructor(props) { 11 | super(props); 12 | this.onDelete = this.onDelete.bind(this); 13 | this.onClick = this.onClick.bind(this); 14 | } 15 | shouldComponentUpdate(nextProps, nextState) { 16 | return nextProps.data !== this.props.data || nextProps.styleClass !== this.props.styleClass; 17 | } 18 | // componentDidUpdate() { 19 | // window.rowsUpdated++; 20 | // } 21 | // componentDidMount() { 22 | // window.rowsMounted++; 23 | // } 24 | 25 | onDelete() { 26 | this.props.onDelete(this.props.data.id); 27 | } 28 | onClick() { 29 | this.props.onClick(this.props.data.id); 30 | } 31 | 32 | render() { 33 | let {styleClass, onClick, onDelete, data} = this.props; 34 | return ( 35 | {data.id} 36 | 37 | {data.label} 38 | 39 | 40 | 41 | ); 42 | } 43 | } 44 | 45 | -------------------------------------------------------------------------------- /css/bootstrap/less/mixins.less: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------------------------------- 3 | 4 | // Utilities 5 | @import "mixins/hide-text.less"; 6 | @import "mixins/opacity.less"; 7 | @import "mixins/image.less"; 8 | @import "mixins/labels.less"; 9 | @import "mixins/reset-filter.less"; 10 | @import "mixins/resize.less"; 11 | @import "mixins/responsive-visibility.less"; 12 | @import "mixins/size.less"; 13 | @import "mixins/tab-focus.less"; 14 | @import "mixins/reset-text.less"; 15 | @import "mixins/text-emphasis.less"; 16 | @import "mixins/text-overflow.less"; 17 | @import "mixins/vendor-prefixes.less"; 18 | 19 | // Components 20 | @import "mixins/alerts.less"; 21 | @import "mixins/buttons.less"; 22 | @import "mixins/panels.less"; 23 | @import "mixins/pagination.less"; 24 | @import "mixins/list-group.less"; 25 | @import "mixins/nav-divider.less"; 26 | @import "mixins/forms.less"; 27 | @import "mixins/progress-bar.less"; 28 | @import "mixins/table-row.less"; 29 | 30 | // Skins 31 | @import "mixins/background-variant.less"; 32 | @import "mixins/border-radius.less"; 33 | @import "mixins/gradients.less"; 34 | 35 | // Layout 36 | @import "mixins/clearfix.less"; 37 | @import "mixins/center-block.less"; 38 | @import "mixins/nav-vertical-align.less"; 39 | @import "mixins/grid-framework.less"; 40 | @import "mixins/grid.less"; 41 | -------------------------------------------------------------------------------- /preact-v7.1.0/src/Row.jsx: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | /** @jsx preact.h */ 3 | 4 | var preact = require('preact'); 5 | var { render, h, Component } = preact; 6 | 7 | window.rowsUpdated = 0; 8 | window.rowsMounted = 0; 9 | 10 | export class Row extends Component { 11 | constructor(props) { 12 | super(props); 13 | this.onDelete = this.onDelete.bind(this); 14 | this.onClick = this.onClick.bind(this); 15 | } 16 | shouldComponentUpdate(nextProps, nextState) { 17 | return nextProps.data !== this.props.data || nextProps.styleClass !== this.props.styleClass; 18 | } 19 | // componentDidUpdate() { 20 | // window.rowsUpdated++; 21 | // } 22 | // componentDidMount() { 23 | // window.rowsMounted++; 24 | // } 25 | 26 | onDelete() { 27 | this.props.onDelete(this.props.data.id); 28 | } 29 | onClick() { 30 | this.props.onClick(this.props.data.id); 31 | } 32 | 33 | render() { 34 | let {styleClass, onClick, onDelete, data} = this.props; 35 | return ( 36 | {data.id} 37 | 38 | {data.label} 39 | 40 | 41 | 42 | ); 43 | } 44 | } 45 | 46 | -------------------------------------------------------------------------------- /aurelia-v1.1.0/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "webpack": { 4 | "plugins": [ 5 | "transform-decorators-legacy", 6 | "transform-class-properties" 7 | ], 8 | "presets": [ 9 | [ 10 | "env", 11 | { 12 | "targets": { 13 | "browsers": [ 14 | "last 2 versions", 15 | "not ie <= 10" 16 | ] 17 | }, 18 | "loose": true, 19 | "modules": false 20 | } 21 | ] 22 | ] 23 | }, 24 | "e2e": { 25 | "plugins": [ 26 | "transform-decorators-legacy", 27 | "transform-class-properties" 28 | ], 29 | "presets": [ 30 | [ 31 | "env", 32 | { 33 | "targets": { 34 | "browsers": [ 35 | "last 2 versions", 36 | "not ie <= 10" 37 | ] 38 | }, 39 | "loose": true, 40 | "modules": "commonjs" 41 | } 42 | ] 43 | ] 44 | }, 45 | "node": { 46 | "presets": [ 47 | [ 48 | "env", 49 | { 50 | "targets": { 51 | "node": 4 52 | }, 53 | "loose": true, 54 | "modules": "commonjs" 55 | } 56 | ] 57 | ] 58 | } 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /css/bootstrap/less/labels.less: -------------------------------------------------------------------------------- 1 | // 2 | // Labels 3 | // -------------------------------------------------- 4 | 5 | .label { 6 | display: inline; 7 | padding: .2em .6em .3em; 8 | font-size: 75%; 9 | font-weight: bold; 10 | line-height: 1; 11 | color: @label-color; 12 | text-align: center; 13 | white-space: nowrap; 14 | vertical-align: baseline; 15 | border-radius: .25em; 16 | 17 | // Add hover effects, but only for links 18 | a& { 19 | &:hover, 20 | &:focus { 21 | color: @label-link-hover-color; 22 | text-decoration: none; 23 | cursor: pointer; 24 | } 25 | } 26 | 27 | // Empty labels collapse automatically (not available in IE8) 28 | &:empty { 29 | display: none; 30 | } 31 | 32 | // Quick fix for labels in buttons 33 | .btn & { 34 | position: relative; 35 | top: -1px; 36 | } 37 | } 38 | 39 | // Colors 40 | // Contextual variations (linked labels get darker on :hover) 41 | 42 | .label-default { 43 | .label-variant(@label-default-bg); 44 | } 45 | 46 | .label-primary { 47 | .label-variant(@label-primary-bg); 48 | } 49 | 50 | .label-success { 51 | .label-variant(@label-success-bg); 52 | } 53 | 54 | .label-info { 55 | .label-variant(@label-info-bg); 56 | } 57 | 58 | .label-warning { 59 | .label-variant(@label-warning-bg); 60 | } 61 | 62 | .label-danger { 63 | .label-variant(@label-danger-bg); 64 | } 65 | --------------------------------------------------------------------------------