From fd0abcd9f0adba2a4809d9ebf45aebe50f11b529 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Mon, 16 Jul 2018 14:13:33 -0700 Subject: [PATCH] Remove old JS runtimes --- .travis.yml | 8 +-- lib/autoprefixer-rails/processor.rb | 87 ++--------------------------- mini_racer.gemfile | 16 ------ shared.gemfile | 7 --- sprockets3.gemfile | 2 +- sprockets4.gemfile | 2 +- 6 files changed, 9 insertions(+), 113 deletions(-) delete mode 100644 mini_racer.gemfile delete mode 100644 shared.gemfile diff --git a/.travis.yml b/.travis.yml index 7710ced..a346985 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,3 @@ -sudo: false language: ruby rvm: - "2.5" @@ -10,19 +9,16 @@ cache: bundler gemfile: - sprockets3.gemfile - sprockets4.gemfile - - mini_racer.gemfile before_install: - - nvm install stable + - nvm install node env: - EXECJS_RUNTIME=Node - # mini_racer / rubyracer or rubyrhino depending on platform: + # mini_racer - matrix: exclude: - rvm: "2.3" env: "EXECJS_RUNTIME=Node" - - rvm: "2.3" - gemfile: mini_racer.gemfile - rvm: "2.4" gemfile: sprockets3.gemfile diff --git a/lib/autoprefixer-rails/processor.rb b/lib/autoprefixer-rails/processor.rb index 775e511..4da8863 100644 --- a/lib/autoprefixer-rails/processor.rb +++ b/lib/autoprefixer-rails/processor.rb @@ -145,9 +145,9 @@ def find_config(file) # Lazy load for JS library def runtime @runtime ||= begin - if ExecJS.eval('typeof(Array.prototype.map)') != 'function' - raise "Current ExecJS runtime does't support ES5. " + - "Please install node.js." + if ExecJS.eval('typeof Uint8Array') != 'function' + raise "Current ExecJS runtime does't support ES6. " + + "Please install latest Node.js." end ExecJS.compile(build_js) @@ -159,90 +159,13 @@ def read_js @@js ||= begin root = Pathname(File.dirname(__FILE__)) path = root.join("../../vendor/autoprefixer.js") - path.read.gsub(/Object.setPrototypeOf\(chalk[^)]+\)/, '') + path.read end end - def polyfills - <<-JS - if (typeof Uint8Array === "undefined") - global.Uint8Array = Array; - if (typeof ArrayBuffer === "undefined") - global.ArrayBuffer = Array; - if (typeof Set === "undefined") { - global.Set = function (values) { this.values = values } - global.Set.prototype = { - has: function (i) { return this.values.indexOf(i) !== -1 } - } - } - if (typeof Map === "undefined") { - global.Map = function () { this.data = { } } - global.Map.prototype = { - set: function (k, v) { this.data[k] = v }, - get: function (k) { return this.data[k] }, - has: function (k) { - return Object.keys(this.data).indexOf(k) !== -1 - }, - } - } - Math.log2 = Math.log2 || - function(x) { return Math.log(x) * Math.LOG2E; }; - Math.sign = Math.sign || - function(x) { - x = +x; - if (x === 0 || isNaN(x)) return Number(x); - return x > 0 ? 1 : -1; - }; - Array.prototype.fill = Array.prototype.fill || - function(value) { - var O = Object(this); - var len = O.length >>> 0; - var start = arguments[1]; - var relativeStart = start >> 0; - var k = relativeStart < 0 ? - Math.max(len + relativeStart, 0) : - Math.min(relativeStart, len); - var end = arguments[2]; - var relativeEnd = end === undefined ? - len : end >> 0; - var final = relativeEnd < 0 ? - Math.max(len + relativeEnd, 0) : - Math.min(relativeEnd, len); - while (k < final) { - O[k] = value; - k++; - } - return O; - }; - if (!Object.assign) { - Object.assign = function(target, firstSource) { - var to = Object(target); - for (var i = 1; i < arguments.length; i++) { - var nextSource = arguments[i]; - if (nextSource === undefined || nextSource === null) continue; - var keysArray = Object.keys(Object(nextSource)); - for (var n = 0, len = keysArray.length; n < len; n++) { - var nextKey = keysArray[n]; - var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey); - if (desc !== undefined && desc.enumerable) { - to[nextKey] = nextSource[nextKey]; - } - } - } - return to; - } - } - if (!Array.isView) { - Array.isView = function () { - return false - } - } - JS - end - # Return processor JS with some extra methods def build_js - 'var global = this;' + polyfills + read_js + process_proxy + 'var global = this;' + read_js + process_proxy end # Return JS code for process method proxy diff --git a/mini_racer.gemfile b/mini_racer.gemfile deleted file mode 100644 index 85209c8..0000000 --- a/mini_racer.gemfile +++ /dev/null @@ -1,16 +0,0 @@ -source 'https://rubygems.org' - -gemspec - -gem 'execjs' -gem 'rails', '>= 5.0.2' -gem 'sprockets', '>= 4.0.0.beta4' - -# Cannot use shared.gemfile, because therubyracer requires an older version -# of libv8 than mini_racer -gem 'mini_racer', platforms: [:mri, :rbx] - -gem 'racc', platforms: :rbx -gem 'rubysl', platforms: :rbx - -gem 'tzinfo-data', platforms: [:mingw, :mswin, :jruby] diff --git a/shared.gemfile b/shared.gemfile deleted file mode 100644 index 84fc3ec..0000000 --- a/shared.gemfile +++ /dev/null @@ -1,7 +0,0 @@ -gem 'therubyrhino', platforms: 'jruby' -gem 'therubyracer', platforms: ['mri', 'rbx'] - -gem 'racc', platforms: 'rbx' -gem 'rubysl', platforms: 'rbx' - -gem 'tzinfo-data', platforms: [:mingw, :mswin, :jruby] diff --git a/sprockets3.gemfile b/sprockets3.gemfile index aef1408..ba6ecb0 100644 --- a/sprockets3.gemfile +++ b/sprockets3.gemfile @@ -6,4 +6,4 @@ gem 'rails', '< 5' gem 'sprockets', '>= 3.4.0', '< 4.0' gem 'sprockets-rails' -eval_gemfile "#{ File.dirname(__FILE__) }/shared.gemfile" +gem 'mini_racer' diff --git a/sprockets4.gemfile b/sprockets4.gemfile index d43def1..9da96ae 100644 --- a/sprockets4.gemfile +++ b/sprockets4.gemfile @@ -6,4 +6,4 @@ gem 'execjs' gem 'rails', '>= 5.0.0.beta2' gem 'sprockets', '>= 4.0.0.beta1' -eval_gemfile "#{ File.dirname(__FILE__) }/shared.gemfile" +gem 'mini_racer'